forked from Mirrorlandia_minetest/minetest
Add in-game key change menu
This commit is contained in:
parent
b98e8d6da8
commit
7b548cd2b5
16
src/game.cpp
16
src/game.cpp
@ -30,6 +30,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
|||||||
#include "server.h"
|
#include "server.h"
|
||||||
#include "guiPasswordChange.h"
|
#include "guiPasswordChange.h"
|
||||||
#include "guiVolumeChange.h"
|
#include "guiVolumeChange.h"
|
||||||
|
#include "guiKeyChangeMenu.h"
|
||||||
#include "guiFormSpecMenu.h"
|
#include "guiFormSpecMenu.h"
|
||||||
#include "tool.h"
|
#include "tool.h"
|
||||||
#include "guiChatConsole.h"
|
#include "guiChatConsole.h"
|
||||||
@ -151,6 +152,11 @@ struct LocalFormspecHandler : public TextDest
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (fields.find("btn_key_config") != fields.end()) {
|
||||||
|
g_gamecallback->keyConfig();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (fields.find("btn_exit_menu") != fields.end()) {
|
if (fields.find("btn_exit_menu") != fields.end()) {
|
||||||
g_gamecallback->disconnect();
|
g_gamecallback->disconnect();
|
||||||
return;
|
return;
|
||||||
@ -1044,6 +1050,8 @@ static void show_pause_menu(GUIFormSpecMenu** cur_formspec,
|
|||||||
|
|
||||||
os << "button_exit[4," << (ypos++) << ";3,0.5;btn_sound;"
|
os << "button_exit[4," << (ypos++) << ";3,0.5;btn_sound;"
|
||||||
<< wide_to_narrow(wstrgettext("Sound Volume")) << "]";
|
<< wide_to_narrow(wstrgettext("Sound Volume")) << "]";
|
||||||
|
os << "button_exit[4," << (ypos++) << ";3,0.5;btn_key_config;"
|
||||||
|
<< wide_to_narrow(wstrgettext("Change Keys")) << "]";
|
||||||
os << "button_exit[4," << (ypos++) << ";3,0.5;btn_exit_menu;"
|
os << "button_exit[4," << (ypos++) << ";3,0.5;btn_exit_menu;"
|
||||||
<< wide_to_narrow(wstrgettext("Exit to Menu")) << "]";
|
<< wide_to_narrow(wstrgettext("Exit to Menu")) << "]";
|
||||||
os << "button_exit[4," << (ypos++) << ";3,0.5;btn_exit_os;"
|
os << "button_exit[4," << (ypos++) << ";3,0.5;btn_exit_os;"
|
||||||
@ -1877,6 +1885,14 @@ void the_game(bool &kill, bool random_input, InputHandler *input,
|
|||||||
g_gamecallback->changevolume_requested = false;
|
g_gamecallback->changevolume_requested = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(g_gamecallback->keyconfig_requested)
|
||||||
|
{
|
||||||
|
(new GUIKeyChangeMenu(guienv, guiroot, -1,
|
||||||
|
&g_menumgr))->drop();
|
||||||
|
g_gamecallback->keyconfig_requested = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/* Process TextureSource's queue */
|
/* Process TextureSource's queue */
|
||||||
tsrc->processQueue();
|
tsrc->processQueue();
|
||||||
|
|
||||||
|
@ -31,6 +31,7 @@ class IGameCallback
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
virtual void exitToOS() = 0;
|
virtual void exitToOS() = 0;
|
||||||
|
virtual void keyConfig() = 0;
|
||||||
virtual void disconnect() = 0;
|
virtual void disconnect() = 0;
|
||||||
virtual void changePassword() = 0;
|
virtual void changePassword() = 0;
|
||||||
virtual void changeVolume() = 0;
|
virtual void changeVolume() = 0;
|
||||||
@ -124,6 +125,7 @@ public:
|
|||||||
disconnect_requested(false),
|
disconnect_requested(false),
|
||||||
changepassword_requested(false),
|
changepassword_requested(false),
|
||||||
changevolume_requested(false),
|
changevolume_requested(false),
|
||||||
|
keyconfig_requested(false),
|
||||||
shutdown_requested(false),
|
shutdown_requested(false),
|
||||||
device(a_device)
|
device(a_device)
|
||||||
{
|
{
|
||||||
@ -152,9 +154,16 @@ public:
|
|||||||
changevolume_requested = true;
|
changevolume_requested = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
virtual void keyConfig()
|
||||||
|
{
|
||||||
|
keyconfig_requested = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
bool disconnect_requested;
|
bool disconnect_requested;
|
||||||
bool changepassword_requested;
|
bool changepassword_requested;
|
||||||
bool changevolume_requested;
|
bool changevolume_requested;
|
||||||
|
bool keyconfig_requested;
|
||||||
bool shutdown_requested;
|
bool shutdown_requested;
|
||||||
IrrlichtDevice *device;
|
IrrlichtDevice *device;
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user