X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=src%2FguiPauseMenu.cpp;h=2d42fdb77dec4189933ed5de7f3fd7f1a2043277;hb=29932d4bddad6a0ad4269606e38701d544784951;hp=ae1f58a9d40cdb410bee922385e5ef67f70f2620;hpb=10b06419ab454e8931a9b6502029bc298e8bce35;p=dragonfireclient.git diff --git a/src/guiPauseMenu.cpp b/src/guiPauseMenu.cpp index ae1f58a9d..2d42fdb77 100644 --- a/src/guiPauseMenu.cpp +++ b/src/guiPauseMenu.cpp @@ -20,14 +20,16 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "guiPauseMenu.h" #include "debug.h" #include "serialization.h" +#include "porting.h" +#include "config.h" GUIPauseMenu::GUIPauseMenu(gui::IGUIEnvironment* env, gui::IGUIElement* parent, s32 id, - IrrlichtDevice *dev, - int *active_menu_count): - GUIModalMenu(env, parent, id, active_menu_count) + IGameCallback *gamecallback, + IMenuManager *menumgr): + GUIModalMenu(env, parent, id, menumgr) { - m_dev = dev; + m_gamecallback = gamecallback; } GUIPauseMenu::~GUIPauseMenu() @@ -57,6 +59,11 @@ void GUIPauseMenu::removeChildren() if(e != NULL) e->remove(); } + { + gui::IGUIElement *e = getElementFromId(260); + if(e != NULL) + e->remove(); + } } void GUIPauseMenu::regenerateGui(v2u32 screensize) @@ -86,16 +93,21 @@ void GUIPauseMenu::regenerateGui(v2u32 screensize) */ { core::rect rect(0, 0, 140, 30); - rect = rect + v2s32(size.X/2-140/2, size.Y/2-30/2-25); + rect = rect + v2s32(size.X/2-140/2, size.Y/2-30/2-50); Environment->addButton(rect, this, 256, L"Continue"); } { core::rect rect(0, 0, 140, 30); - rect = rect + v2s32(size.X/2-140/2, size.Y/2-30/2+25); - Environment->addButton(rect, this, 257, L"Exit"); + rect = rect + v2s32(size.X/2-140/2, size.Y/2-30/2+0); + Environment->addButton(rect, this, 260, L"Disconnect"); } { - core::rect rect(0, 0, 180, 220); + core::rect rect(0, 0, 140, 30); + rect = rect + v2s32(size.X/2-140/2, size.Y/2-30/2+50); + Environment->addButton(rect, this, 257, L"Exit to OS"); + } + { + core::rect rect(0, 0, 180, 240); rect = rect + v2s32(size.X/2 + 90, size.Y/2-rect.getHeight()/2); const wchar_t *text = L"Keys:\n" @@ -103,25 +115,45 @@ void GUIPauseMenu::regenerateGui(v2u32 screensize) L"- Mouse left: dig blocks\n" L"- Mouse right: place blocks\n" L"- Mouse wheel: select item\n" + L"- 0...9: select item\n" + L"- Shift: sneak\n" L"- R: Toggle viewing all loaded chunks\n" L"- I: Inventory menu\n" L"- ESC: This menu\n" - L"- T: Chat\n" - L"\n" - L"To generate a new map, remove the map directory.\n"; + L"- T: Chat\n"; Environment->addStaticText(text, rect, false, true, this, 258); } { core::rect rect(0, 0, 180, 220); rect = rect + v2s32(size.X/2 - 90 - rect.getWidth(), size.Y/2-rect.getHeight()/2); - wchar_t text[200]; + + v2u32 max_texture_size; + { + video::IVideoDriver* driver = Environment->getVideoDriver(); + max_texture_size = driver->getMaxTextureSize(); + } + + /*wchar_t text[200]; swprintf(text, 200, L"Minetest-c55\n" - L"SER_FMT_VER_HIGHEST=%i", - (int)SER_FMT_VER_HIGHEST - ); + L"by Perttu Ahola\n" + L"celeron55@gmail.com\n\n" + SWPRINTF_CHARSTRING L"\n" + L"userdata path = " + SWPRINTF_CHARSTRING + , + BUILD_INFO, + porting::path_userdata.c_str() + );*/ + + std::ostringstream os; + os<<"Minetest-c55\n"; + os<<"by Perttu Ahola\n"; + os<<"celeron55@gmail.com\n"; + os<addStaticText(text, rect, false, true, this, 259); + Environment->addStaticText(narrow_to_wide(os.str()).c_str(), rect, false, true, this, 259); } } @@ -142,10 +174,18 @@ bool GUIPauseMenu::OnEvent(const SEvent& event) { if(event.EventType==EET_KEY_INPUT_EVENT) { - if(event.KeyInput.Key==KEY_ESCAPE && event.KeyInput.PressedDown) + if(event.KeyInput.PressedDown) { - quitMenu(); - return true; + if(event.KeyInput.Key==KEY_ESCAPE) + { + quitMenu(); + return true; + } + else if(event.KeyInput.Key==KEY_RETURN) + { + quitMenu(); + return true; + } } } if(event.EventType==EET_GUI_EVENT) @@ -167,10 +207,16 @@ bool GUIPauseMenu::OnEvent(const SEvent& event) { case 256: // continue quitMenu(); - break; + // ALWAYS return immediately after quitMenu() + return true; + case 260: // disconnect + m_gamecallback->disconnect(); + quitMenu(); + return true; case 257: // exit - m_dev->closeDevice(); - break; + m_gamecallback->exitToOS(); + quitMenu(); + return true; } } }