X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=src%2FguiMainMenu.cpp;h=43ec85c8a94f68682007314d120a3c00b4ec4f4c;hb=7372282a725cc9633eba3bb7bae8f4055e3235bb;hp=1d7f224f614fa3bf3af6be185414f09fbd7f85f5;hpb=2587bb361cfc96b3a695d1476e39b9c0ecaa6553;p=dragonfireclient.git diff --git a/src/guiMainMenu.cpp b/src/guiMainMenu.cpp index 1d7f224f6..43ec85c8a 100644 --- a/src/guiMainMenu.cpp +++ b/src/guiMainMenu.cpp @@ -22,7 +22,11 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "debug.h" #include "serialization.h" #include - +#include +#include +#include +#include +#include #include "gettext.h" @@ -76,6 +80,8 @@ void GUIMainMenu::regenerateGui(v2u32 screensize) bool enable_damage; bool fancy_trees; bool smooth_lighting; + bool clouds_3d; + bool opaque_water; // Client options { @@ -113,6 +119,20 @@ void GUIMainMenu::regenerateGui(v2u32 screensize) else smooth_lighting = m_data->smooth_lighting; } + { + gui::IGUIElement *e = getElementFromId(GUI_ID_3D_CLOUDS_CB); + if(e != NULL && e->getType() == gui::EGUIET_CHECK_BOX) + clouds_3d = ((gui::IGUICheckBox*)e)->isChecked(); + else + clouds_3d = m_data->clouds_3d; + } + { + gui::IGUIElement *e = getElementFromId(GUI_ID_OPAQUE_WATER_CB); + if(e != NULL && e->getType() == gui::EGUIET_CHECK_BOX) + opaque_water = ((gui::IGUICheckBox*)e)->isChecked(); + else + opaque_water = m_data->opaque_water; + } // Server options { @@ -164,6 +184,7 @@ void GUIMainMenu::regenerateGui(v2u32 screensize) v2s32 topleft_client(40, 0); v2s32 size_client = size - v2s32(40, 0); + changeCtype(""); { core::rect rect(0, 0, 20, 125); rect += topleft_client + v2s32(-15, 60); @@ -177,9 +198,10 @@ void GUIMainMenu::regenerateGui(v2u32 screensize) { core::rect rect(0, 0, 110, 20); rect += topleft_client + v2s32(35, 50+6); - Environment->addStaticText(chartowchar_t(gettext("Name/Password")), + Environment->addStaticText(wgettext("Name/Password"), rect, false, true, this, -1); } + changeCtype("C"); { core::rect rect(0, 0, 230, 30); rect += topleft_client + v2s32(160, 50); @@ -194,21 +216,25 @@ void GUIMainMenu::regenerateGui(v2u32 screensize) gui::IGUIEditBox *e = Environment->addEditBox(L"", rect, true, this, 264); e->setPasswordBox(true); + if(text_name != L"" && text_address != L"") + Environment->setFocus(e); } + changeCtype(""); // Address + port { core::rect rect(0, 0, 110, 20); rect += topleft_client + v2s32(35, 100+6); - Environment->addStaticText(chartowchar_t(gettext("Address/Port")), + Environment->addStaticText(wgettext("Address/Port"), rect, false, true, this, -1); } + changeCtype("C"); { core::rect rect(0, 0, 230, 30); rect += topleft_client + v2s32(160, 100); gui::IGUIElement *e = Environment->addEditBox(text_address.c_str(), rect, true, this, GUI_ID_ADDRESS_INPUT); - if(text_name != L"") + if(text_name != L"" && text_address == L"") Environment->setFocus(e); } { @@ -217,23 +243,36 @@ void GUIMainMenu::regenerateGui(v2u32 screensize) rect += topleft_client + v2s32(size_client.X-60-100, 100); Environment->addEditBox(text_port.c_str(), rect, true, this, GUI_ID_PORT_INPUT); } + changeCtype(""); { core::rect rect(0, 0, 400, 20); rect += topleft_client + v2s32(160, 100+35); - Environment->addStaticText(chartowchar_t(gettext("Leave address blank to start a local server.")), + Environment->addStaticText(wgettext("Leave address blank to start a local server."), rect, false, true, this, -1); } { core::rect rect(0, 0, 250, 30); rect += topleft_client + v2s32(35, 150); Environment->addCheckBox(fancy_trees, rect, this, GUI_ID_FANCYTREE_CB, - chartowchar_t(gettext("Fancy trees"))); + wgettext("Fancy trees")); } { core::rect rect(0, 0, 250, 30); - rect += topleft_client + v2s32(35, 150+30); + rect += topleft_client + v2s32(35, 150+20); Environment->addCheckBox(smooth_lighting, rect, this, GUI_ID_SMOOTH_LIGHTING_CB, - chartowchar_t(gettext("Smooth Lighting"))); + wgettext("Smooth Lighting")); + } + { + core::rect rect(0, 0, 250, 30); + rect += topleft_client + v2s32(35, 150+40); + Environment->addCheckBox(clouds_3d, rect, this, GUI_ID_3D_CLOUDS_CB, + wgettext("3D Clouds")); + } + { + core::rect rect(0, 0, 250, 30); + rect += topleft_client + v2s32(35, 150+60); + Environment->addCheckBox(opaque_water, rect, this, GUI_ID_OPAQUE_WATER_CB, + wgettext("Opaque water")); } // Start game button { @@ -241,7 +280,7 @@ void GUIMainMenu::regenerateGui(v2u32 screensize) //rect += topleft_client + v2s32(size_client.X/2-180/2, 225-30/2); rect += topleft_client + v2s32(size_client.X-180-40, 150+25); Environment->addButton(rect, this, GUI_ID_JOIN_GAME_BUTTON, - chartowchar_t(gettext("Start Game / Connect"))); + wgettext("Start Game / Connect")); } // Key change button @@ -250,7 +289,7 @@ void GUIMainMenu::regenerateGui(v2u32 screensize) //rect += topleft_client + v2s32(size_client.X/2-180/2, 225-30/2); rect += topleft_client + v2s32(size_client.X-180-40-100-20, 150+25); Environment->addButton(rect, this, GUI_ID_CHANGE_KEYS_BUTTON, - chartowchar_t(gettext("Change keys"))); + wgettext("Change keys")); } /* Server section @@ -273,13 +312,13 @@ void GUIMainMenu::regenerateGui(v2u32 screensize) core::rect rect(0, 0, 250, 30); rect += topleft_server + v2s32(35, 30); Environment->addCheckBox(creative_mode, rect, this, GUI_ID_CREATIVE_CB, - chartowchar_t(gettext("Creative Mode"))); + wgettext("Creative Mode")); } { core::rect rect(0, 0, 250, 30); rect += topleft_server + v2s32(35, 60); Environment->addCheckBox(enable_damage, rect, this, GUI_ID_DAMAGE_CB, - chartowchar_t(gettext("Enable Damage"))); + wgettext("Enable Damage")); } // Map delete button { @@ -287,8 +326,9 @@ void GUIMainMenu::regenerateGui(v2u32 screensize) //rect += topleft_server + v2s32(size_server.X-40-130, 100+25); rect += topleft_server + v2s32(40, 100+25); Environment->addButton(rect, this, GUI_ID_DELETE_MAP_BUTTON, - chartowchar_t(gettext("Delete map"))); + wgettext("Delete map")); } + changeCtype("C"); } void GUIMainMenu::drawMenu() @@ -350,15 +390,25 @@ void GUIMainMenu::acceptInput() if(e != NULL && e->getType() == gui::EGUIET_CHECK_BOX) m_data->enable_damage = ((gui::IGUICheckBox*)e)->isChecked(); } + { + gui::IGUIElement *e = getElementFromId(GUI_ID_FANCYTREE_CB); + if(e != NULL && e->getType() == gui::EGUIET_CHECK_BOX) + m_data->fancy_trees = ((gui::IGUICheckBox*)e)->isChecked(); + } { gui::IGUIElement *e = getElementFromId(GUI_ID_SMOOTH_LIGHTING_CB); if(e != NULL && e->getType() == gui::EGUIET_CHECK_BOX) m_data->smooth_lighting = ((gui::IGUICheckBox*)e)->isChecked(); } { - gui::IGUIElement *e = getElementFromId(GUI_ID_FANCYTREE_CB); + gui::IGUIElement *e = getElementFromId(GUI_ID_3D_CLOUDS_CB); if(e != NULL && e->getType() == gui::EGUIET_CHECK_BOX) - m_data->fancy_trees = ((gui::IGUICheckBox*)e)->isChecked(); + m_data->clouds_3d = ((gui::IGUICheckBox*)e)->isChecked(); + } + { + gui::IGUIElement *e = getElementFromId(GUI_ID_OPAQUE_WATER_CB); + if(e != NULL && e->getType() == gui::EGUIET_CHECK_BOX) + m_data->opaque_water = ((gui::IGUICheckBox*)e)->isChecked(); } m_accepted = true;