Fix having to click chat/inventory/fullscreens buttons in extended touch controls twice to get them to work (Thanks SpicedSoup)

This commit is contained in:
UnknownShadow200 2020-06-28 18:16:37 +10:00
parent 2484ff0117
commit c6dc091b2f
4 changed files with 27 additions and 14 deletions

View File

@ -91,6 +91,19 @@ int ScheduledTask_Add(double interval, ScheduledTaskCallback callback) {
} }
void Game_ToggleFullscreen(void) {
int state = Window_GetWindowState();
cc_result res;
if (state == WINDOW_STATE_FULLSCREEN) {
res = Window_ExitFullscreen();
if (res) Logger_Warn(res, "leaving fullscreen");
} else {
res = Window_EnterFullscreen();
if (res) Logger_Warn(res, "going fullscreen");
}
}
void Game_SetViewDistance(int distance) { void Game_SetViewDistance(int distance) {
distance = min(distance, Game_MaxViewDistance); distance = min(distance, Game_MaxViewDistance);
if (distance == Game_ViewDistance) return; if (distance == Game_ViewDistance) return;

View File

@ -49,6 +49,7 @@ enum FpsLimitMethod {
}; };
extern const char* const FpsLimit_Names[FPS_LIMIT_COUNT]; extern const char* const FpsLimit_Names[FPS_LIMIT_COUNT];
void Game_ToggleFullscreen(void);
void Game_SetViewDistance(int distance); void Game_SetViewDistance(int distance);
void Game_UserSetViewDistance(int distance); void Game_UserSetViewDistance(int distance);
void Game_SetFov(int fov); void Game_SetFov(int fov);

View File

@ -887,20 +887,10 @@ static cc_bool HandleNonClassicKey(int key) {
} }
static cc_bool HandleCoreKey(int key) { static cc_bool HandleCoreKey(int key) {
cc_result res;
if (key == KeyBinds[KEYBIND_HIDE_FPS]) { if (key == KeyBinds[KEYBIND_HIDE_FPS]) {
Gui_ShowFPS = !Gui_ShowFPS; Gui_ShowFPS = !Gui_ShowFPS;
} else if (key == KeyBinds[KEYBIND_FULLSCREEN]) { } else if (key == KeyBinds[KEYBIND_FULLSCREEN]) {
int state = Window_GetWindowState(); Game_ToggleFullscreen();
if (state == WINDOW_STATE_FULLSCREEN) {
res = Window_ExitFullscreen();
if (res) Logger_Warn(res, "leaving fullscreen");
} else {
res = Window_EnterFullscreen();
if (res) Logger_Warn(res, "going fullscreen");
}
} else if (key == KeyBinds[KEYBIND_FOG]) { } else if (key == KeyBinds[KEYBIND_FOG]) {
const short* viewDists = Gui_ClassicMenu ? classicDists : normDists; const short* viewDists = Gui_ClassicMenu ? classicDists : normDists;
int count = Gui_ClassicMenu ? Array_Elems(classicDists) : Array_Elems(normDists); int count = Gui_ClassicMenu ? Array_Elems(classicDists) : Array_Elems(normDists);

View File

@ -3481,17 +3481,26 @@ static void TouchMore_Toggle(KeyBind bind) {
Input_SetPressed(key, !Input_Pressed[key]); Input_SetPressed(key, !Input_Pressed[key]);
} }
static void TouchMore_Chat(void* s, void* w) { TouchMore_Toggle(KEYBIND_CHAT); }
static void TouchMore_Speed(void* s, void* w) { TouchMore_Toggle(KEYBIND_SPEED); } static void TouchMore_Speed(void* s, void* w) { TouchMore_Toggle(KEYBIND_SPEED); }
static void TouchMore_Fly(void* s, void* w) { TouchMore_Toggle(KEYBIND_FLY); } static void TouchMore_Fly(void* s, void* w) { TouchMore_Toggle(KEYBIND_FLY); }
static void TouchMore_Inv(void* s, void* w) { TouchMore_Toggle(KEYBIND_INVENTORY); }
static void TouchMore_Screen(void* s, void* w) { TouchMore_Toggle(KEYBIND_FULLSCREEN); }
static void TouchMore_Noclip(void* s, void* w) { TouchMore_Toggle(KEYBIND_NOCLIP); } static void TouchMore_Noclip(void* s, void* w) { TouchMore_Toggle(KEYBIND_NOCLIP); }
static void TouchMore_Chat(void* s, void* w) {
Gui_Remove((struct Screen*)&TouchMoreScreen);
ChatScreen_OpenInput(&String_Empty);
}
static void TouchMore_Inv(void* s, void* w) {
Gui_Remove((struct Screen*)&TouchMoreScreen);
InventoryScreen_Show();
}
static void TouchMore_Menu(void* s, void* w) { static void TouchMore_Menu(void* s, void* w) {
Gui_Remove((struct Screen*)&TouchMoreScreen); Gui_Remove((struct Screen*)&TouchMoreScreen);
PauseScreen_Show(); PauseScreen_Show();
} }
static void TouchMore_Screen(void* s, void* w) {
Gui_Remove((struct Screen*)&TouchMoreScreen);
Game_ToggleFullscreen();
}
static void TouchMore_Fog(void* s, void* w) { static void TouchMore_Fog(void* s, void* w) {
Input_SetPressed(KeyBinds[KEYBIND_FOG], true); Input_SetPressed(KeyBinds[KEYBIND_FOG], true);