Tune caves
[oweals/minetest.git] / src / game.cpp
index 1dcda043e763fd57e0e70788f30dac85be8f5f0a..941f286d91abcccf577b32078f0f6cc274b6e86f 100644 (file)
@@ -56,7 +56,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 #include "clientmap.h"
 #include "sky.h"
 #include "sound.h"
-#if USE_AUDIO
+#if USE_SOUND
        #include "sound_openal.h"
 #endif
 #include "event_manager.h"
@@ -880,22 +880,23 @@ public:
 
        void fetchSounds(const std::string &name,
                        std::set<std::string> &dst_paths,
-                       std::set<std::vector<char> > &dst_datas)
+                       std::set<std::string> &dst_datas)
        {
                if(m_fetched.count(name))
                        return;
                m_fetched.insert(name);
                std::string base = porting::path_share + DIR_DELIM + "testsounds";
                dst_paths.insert(base + DIR_DELIM + name + ".ogg");
-               dst_paths.insert(base + DIR_DELIM + name + "1.ogg");
-               dst_paths.insert(base + DIR_DELIM + name + "2.ogg");
-               dst_paths.insert(base + DIR_DELIM + name + "3.ogg");
-               dst_paths.insert(base + DIR_DELIM + name + "4.ogg");
-               dst_paths.insert(base + DIR_DELIM + name + "5.ogg");
-               dst_paths.insert(base + DIR_DELIM + name + "6.ogg");
-               dst_paths.insert(base + DIR_DELIM + name + "7.ogg");
-               dst_paths.insert(base + DIR_DELIM + name + "8.ogg");
-               dst_paths.insert(base + DIR_DELIM + name + "9.ogg");
+               dst_paths.insert(base + DIR_DELIM + name + ".0.ogg");
+               dst_paths.insert(base + DIR_DELIM + name + ".1.ogg");
+               dst_paths.insert(base + DIR_DELIM + name + ".2.ogg");
+               dst_paths.insert(base + DIR_DELIM + name + ".3.ogg");
+               dst_paths.insert(base + DIR_DELIM + name + ".4.ogg");
+               dst_paths.insert(base + DIR_DELIM + name + ".5.ogg");
+               dst_paths.insert(base + DIR_DELIM + name + ".6.ogg");
+               dst_paths.insert(base + DIR_DELIM + name + ".7.ogg");
+               dst_paths.insert(base + DIR_DELIM + name + ".8.ogg");
+               dst_paths.insert(base + DIR_DELIM + name + ".9.ogg");
        }
 };
 
@@ -953,7 +954,7 @@ void the_game(
        // Sound manager
        ISoundManager *sound = NULL;
        bool sound_is_dummy = false;
-#if USE_AUDIO
+#if USE_SOUND
        infostream<<"Attempting to use OpenAL audio"<<std::endl;
        sound = createOpenALSoundManager(&soundfetcher);
        if(!sound)
@@ -972,31 +973,6 @@ void the_game(
        SoundMaker soundmaker(sound, nodedef);
        soundmaker.registerReceiver(&eventmgr);
        
-       // Preload sounds
-#if 0
-       sound->loadSound("default_grass_footstep", porting::path_share + DIR_DELIM
-                       + "sounds" + DIR_DELIM + "default_grass_walk1.ogg");
-       sound->loadSound("default_grass_footstep", porting::path_share + DIR_DELIM
-                       + "sounds" + DIR_DELIM + "default_grass_walk2.ogg");
-       sound->loadSound("default_grass_footstep", porting::path_share + DIR_DELIM
-                       + "sounds" + DIR_DELIM + "default_grass_walk3.ogg");
-       
-       sound->loadSound("default_dig_crumbly", porting::path_share + DIR_DELIM
-                       + "sounds" + DIR_DELIM + "default_dig_crumbly1.ogg");
-       sound->loadSound("default_dig_crumbly", porting::path_share + DIR_DELIM
-                       + "sounds" + DIR_DELIM + "default_dig_crumbly2.ogg");
-       
-       sound->loadSound("default_dig_cracky", porting::path_share + DIR_DELIM
-                       + "sounds" + DIR_DELIM + "default_dig_cracky1.ogg");
-       
-       sound->loadSound("default_place_node", porting::path_share + DIR_DELIM
-                       + "sounds" + DIR_DELIM + "default_place_node1.ogg");
-       sound->loadSound("default_place_node", porting::path_share + DIR_DELIM
-                       + "sounds" + DIR_DELIM + "default_place_node2.ogg");
-       sound->loadSound("default_place_node", porting::path_share + DIR_DELIM
-                       + "sounds" + DIR_DELIM + "default_place_node3.ogg");
-#endif
-
        // Add chat log output for errors to be shown in chat
        LogOutputBuffer chat_log_error_buf(LMT_ERROR);
 
@@ -1016,6 +992,7 @@ void the_game(
                server->start(port);
        }
 
+       try{
        do{ // Client scope (breakable do-while(0))
        
        /*
@@ -1163,9 +1140,8 @@ void the_game(
                        ss<<L" Item definitions\n";
                        ss<<(client.nodedefReceived()?L"[X]":L"[  ]");
                        ss<<L" Node definitions\n";
-                       //ss<<(client.texturesReceived()?L"[X]":L"[  ]");
-                       ss<<L"["<<(int)(client.textureReceiveProgress()*100+0.5)<<L"%] ";
-                       ss<<L" Textures\n";
+                       ss<<L"["<<(int)(client.mediaReceiveProgress()*100+0.5)<<L"%] ";
+                       ss<<L" Media\n";
 
                        draw_load_screen(ss.str(), driver, font);
                        
@@ -2937,6 +2913,14 @@ void the_game(
 
        // Client scope (client is destructed before destructing *def and tsrc)
        }while(0);
+       } // try-catch
+       catch(SerializationError &e)
+       {
+               error_message = L"A serialization error occurred:\n"
+                               + narrow_to_wide(e.what()) + L"\n\nThe server is probably "
+                               L" running a different version of Minetest.";
+               errorstream<<wide_to_narrow(error_message)<<std::endl;
+       }
        
        if(!sound_is_dummy)
                delete sound;