Make WATER_LEVEL configurable, fix slight comparison bug in findSpawnPos()
authorkwolekr <mirrorisim@gmail.com>
Mon, 29 Oct 2012 03:41:48 +0000 (23:41 -0400)
committerPerttu Ahola <celeron55@gmail.com>
Mon, 21 Jan 2013 19:41:09 +0000 (21:41 +0200)
src/defaultsettings.cpp
src/server.cpp

index db7df6edc441356d4e0c89703264c1269776d5ea..5a1b76b4aa19de879d82af31cbcc0259d020b7a8 100644 (file)
@@ -163,6 +163,7 @@ void set_default_settings(Settings *settings)
        settings->setDefault("max_block_generate_distance", "7");
        settings->setDefault("time_send_interval", "5");
        settings->setDefault("time_speed", "72");
+       settings->setDefault("water_level", "1");
        settings->setDefault("server_unload_unused_data_timeout", "29");
        settings->setDefault("server_map_save_interval", "5.3");
        settings->setDefault("full_block_send_enable_min_time_from_building", "2.0");
index 853d0a486bd26bf58c8eff693c7a54dc869db229..a7767842d7127c1e86977ea5fd3cf217f80fd13a 100644 (file)
@@ -4832,6 +4832,8 @@ v3f findSpawnPos(ServerMap &map)
 #endif
 
 #if 1
+       s16 water_level = g_settings->getS16("water_level");
+
        // Try to find a good place a few times
        for(s32 i=0; i<1000; i++)
        {
@@ -4843,13 +4845,13 @@ v3f findSpawnPos(ServerMap &map)
                // Get ground height at point (fallbacks to heightmap function)
                s16 groundheight = map.findGroundLevel(nodepos2d);
                // Don't go underwater
-               if(groundheight < WATER_LEVEL)
+               if(groundheight <= water_level)
                {
                        //infostream<<"-> Underwater"<<std::endl;
                        continue;
                }
                // Don't go to high places
-               if(groundheight > WATER_LEVEL + 4)
+               if(groundheight > water_level + 6)
                {
                        //infostream<<"-> Underwater"<<std::endl;
                        continue;