From f98d0433f9a72c09eddad319763e750e2deb19a3 Mon Sep 17 00:00:00 2001
From: proller <proller@github.com>
Date: Sat, 23 Mar 2013 17:37:50 +0400
Subject: [PATCH] Random guest name and finite liquid checkbox

---
 src/guiMainMenu.cpp | 18 ++++++++++++++++++
 src/guiMainMenu.h   | 17 +++++++++++++++--
 src/main.cpp        |  4 ++++
 3 files changed, 37 insertions(+), 2 deletions(-)

diff --git a/src/guiMainMenu.cpp b/src/guiMainMenu.cpp
index 79170d99a..9e6b01dd6 100644
--- a/src/guiMainMenu.cpp
+++ b/src/guiMainMenu.cpp
@@ -140,6 +140,7 @@ enum
 	GUI_ID_SHADERS_CB,
 	GUI_ID_PRELOAD_ITEM_VISUALS_CB,
 	GUI_ID_ENABLE_PARTICLES_CB,
+	GUI_ID_LIQUID_FINITE_CB,
 	GUI_ID_DAMAGE_CB,
 	GUI_ID_CREATIVE_CB,
 	GUI_ID_PUBLIC_CB,
@@ -430,6 +431,10 @@ void GUIMainMenu::regenerateGui(v2u32 screensize)
 			e->setDrawBackground(true);
 			if (m_data->serverlist_show_available == false)
 				m_data->servers = ServerList::getLocal();
+#if USE_CURL
+			else
+				m_data->servers = ServerList::getOnline();
+#endif
 			updateGuiServerList();
 			e->setSelected(0);
 		}
@@ -722,6 +727,13 @@ void GUIMainMenu::regenerateGui(v2u32 screensize)
 					GUI_ID_ENABLE_PARTICLES_CB, wgettext("Enable Particles"));
 		}
 
+		{
+			core::rect<s32> rect(0, 0, option_w+20+20, 30);
+			rect += m_topleft_client + v2s32(option_x+175*2, option_y+20*3);
+			Environment->addCheckBox(m_data->liquid_finite, rect, this,
+					GUI_ID_LIQUID_FINITE_CB, wgettext("Finite liquid"));
+		}
+
 		// Key change button
 		{
 			core::rect<s32> rect(0, 0, 120, 30);
@@ -968,6 +980,12 @@ void GUIMainMenu::readInput(MainMenuData *dst)
 			dst->enable_particles = ((gui::IGUICheckBox*)e)->isChecked();
 	}
 
+	{
+		gui::IGUIElement *e = getElementFromId(GUI_ID_LIQUID_FINITE_CB);
+		if(e != NULL && e->getType() == gui::EGUIET_CHECK_BOX)
+			dst->liquid_finite = ((gui::IGUICheckBox*)e)->isChecked();
+	}
+
 	{
 		gui::IGUIElement *e = getElementFromId(GUI_ID_WORLD_LISTBOX);
 		if(e != NULL && e->getType() == gui::EGUIET_LIST_BOX)
diff --git a/src/guiMainMenu.h b/src/guiMainMenu.h
index a21f3b32a..fa5f19def 100644
--- a/src/guiMainMenu.h
+++ b/src/guiMainMenu.h
@@ -52,6 +52,7 @@ struct MainMenuData
 	int enable_shaders;
 	bool preload_item_visuals;
 	bool enable_particles;
+	bool liquid_finite;
 	// Server options
 	bool creative_mode;
 	bool enable_damage;
@@ -71,7 +72,13 @@ struct MainMenuData
 
 	MainMenuData():
 		// Generic
-		selected_tab(0),
+		selected_tab(
+#if USE_CURL
+		    1
+#else
+		    0
+#endif
+		),
 		// Client opts
 		fancy_trees(false),
 		smooth_lighting(false),
@@ -84,7 +91,13 @@ struct MainMenuData
 		// Actions
 		only_refresh(false),
 
-		serverlist_show_available(false)
+		serverlist_show_available(
+#if USE_CURL
+		    true
+#else
+		    false
+#endif
+)
 	{}
 };
 
diff --git a/src/main.cpp b/src/main.cpp
index e4dbb8a54..1d6252757 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -1557,6 +1557,7 @@ int main(int argc, char *argv[])
 				menudata.enable_shaders = g_settings->getS32("enable_shaders");
 				menudata.preload_item_visuals = g_settings->getBool("preload_item_visuals");
 				menudata.enable_particles = g_settings->getBool("enable_particles");
+				menudata.liquid_finite = g_settings->getBool("liquid_finite");
 				driver->setTextureCreationFlag(video::ETCF_CREATE_MIP_MAPS, menudata.mip_map);
 				menudata.creative_mode = g_settings->getBool("creative_mode");
 				menudata.enable_damage = g_settings->getBool("enable_damage");
@@ -1724,6 +1725,8 @@ int main(int argc, char *argv[])
 				}
 
 				playername = wide_to_narrow(menudata.name);
+				if (playername == "")
+					playername = std::string("Guest") + itos(myrand_range(1000,9999));
 				password = translatePassword(playername, menudata.password);
 				//infostream<<"Main: password hash: '"<<password<<"'"<<std::endl;
 
@@ -1747,6 +1750,7 @@ int main(int argc, char *argv[])
 				g_settings->setS32("enable_shaders", menudata.enable_shaders);
 				g_settings->set("preload_item_visuals", itos(menudata.preload_item_visuals));
 				g_settings->set("enable_particles", itos(menudata.enable_particles));
+				g_settings->set("liquid_finite", itos(menudata.liquid_finite));
 
 				g_settings->set("creative_mode", itos(menudata.creative_mode));
 				g_settings->set("enable_damage", itos(menudata.enable_damage));
-- 
GitLab