Fix game pause in singleplayer
parent
03297acbf4
commit
e4d1970abf
|
@ -988,6 +988,7 @@ static void show_chat_menu(FormspecFormSource* current_formspec,
|
||||||
new GUIFormSpecMenu(device, guiroot, -1,
|
new GUIFormSpecMenu(device, guiroot, -1,
|
||||||
&g_menumgr,
|
&g_menumgr,
|
||||||
NULL, NULL, tsrc);
|
NULL, NULL, tsrc);
|
||||||
|
menu->doPause = false;
|
||||||
menu->setFormSource(current_formspec);
|
menu->setFormSource(current_formspec);
|
||||||
menu->setTextDest(current_textdest);
|
menu->setTextDest(current_textdest);
|
||||||
menu->drop();
|
menu->drop();
|
||||||
|
@ -1034,6 +1035,7 @@ static void show_pause_menu(FormspecFormSource* current_formspec,
|
||||||
current_textdest = new LocalFormspecHandler("MT_PAUSE_MENU");
|
current_textdest = new LocalFormspecHandler("MT_PAUSE_MENU");
|
||||||
GUIFormSpecMenu *menu =
|
GUIFormSpecMenu *menu =
|
||||||
new GUIFormSpecMenu(device, guiroot, -1, &g_menumgr, NULL, NULL, tsrc);
|
new GUIFormSpecMenu(device, guiroot, -1, &g_menumgr, NULL, NULL, tsrc);
|
||||||
|
menu->doPause = true;
|
||||||
menu->setFormSource(current_formspec);
|
menu->setFormSource(current_formspec);
|
||||||
menu->setTextDest(current_textdest);
|
menu->setTextDest(current_textdest);
|
||||||
menu->drop();
|
menu->drop();
|
||||||
|
@ -1881,6 +1883,7 @@ void the_game(bool &kill, bool random_input, InputHandler *input,
|
||||||
|
|
||||||
PlayerInventoryFormSource *src = new PlayerInventoryFormSource(&client);
|
PlayerInventoryFormSource *src = new PlayerInventoryFormSource(&client);
|
||||||
assert(src);
|
assert(src);
|
||||||
|
menu->doPause = false;
|
||||||
menu->setFormSpec(src->getForm(), inventoryloc);
|
menu->setFormSpec(src->getForm(), inventoryloc);
|
||||||
menu->setFormSource(src);
|
menu->setFormSource(src);
|
||||||
menu->setTextDest(new TextDestPlayerInventory(&client));
|
menu->setTextDest(new TextDestPlayerInventory(&client));
|
||||||
|
@ -2399,6 +2402,7 @@ void the_game(bool &kill, bool random_input, InputHandler *input,
|
||||||
new GUIFormSpecMenu(device, guiroot, -1,
|
new GUIFormSpecMenu(device, guiroot, -1,
|
||||||
&g_menumgr,
|
&g_menumgr,
|
||||||
&client, gamedef, tsrc);
|
&client, gamedef, tsrc);
|
||||||
|
menu->doPause = false;
|
||||||
menu->setFormSource(current_formspec);
|
menu->setFormSource(current_formspec);
|
||||||
menu->setTextDest(current_textdest);
|
menu->setTextDest(current_textdest);
|
||||||
menu->drop();
|
menu->drop();
|
||||||
|
@ -2953,6 +2957,7 @@ void the_game(bool &kill, bool random_input, InputHandler *input,
|
||||||
new GUIFormSpecMenu(device, guiroot, -1,
|
new GUIFormSpecMenu(device, guiroot, -1,
|
||||||
&g_menumgr,
|
&g_menumgr,
|
||||||
&client, gamedef, tsrc);
|
&client, gamedef, tsrc);
|
||||||
|
menu->doPause = false;
|
||||||
menu->setFormSpec(meta->getString("formspec"),
|
menu->setFormSpec(meta->getString("formspec"),
|
||||||
inventoryloc);
|
inventoryloc);
|
||||||
menu->setFormSource(new NodeMetadataFormSource(
|
menu->setFormSource(new NodeMetadataFormSource(
|
||||||
|
|
|
@ -2320,6 +2320,7 @@ bool GUIFormSpecMenu::OnEvent(const SEvent& event)
|
||||||
kp == getKeySetting("keymap_inventory")))
|
kp == getKeySetting("keymap_inventory")))
|
||||||
{
|
{
|
||||||
if (m_allowclose){
|
if (m_allowclose){
|
||||||
|
doPause = false;
|
||||||
acceptInput(quit_mode_cancel);
|
acceptInput(quit_mode_cancel);
|
||||||
quitMenu();
|
quitMenu();
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -242,6 +242,8 @@ public:
|
||||||
void acceptInput(FormspecQuitMode quitmode);
|
void acceptInput(FormspecQuitMode quitmode);
|
||||||
bool preprocessEvent(const SEvent& event);
|
bool preprocessEvent(const SEvent& event);
|
||||||
bool OnEvent(const SEvent& event);
|
bool OnEvent(const SEvent& event);
|
||||||
|
bool doPause;
|
||||||
|
bool pausesGame() { return doPause; }
|
||||||
|
|
||||||
GUITable* getTable(std::wstring tablename);
|
GUITable* getTable(std::wstring tablename);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue