bool GameMode_HandlesKeyDown(Key key) { Screen* activeScreen = Gui_GetActiveScreen(); if (key == KeyBind_Get(KeyBind_Inventory) && activeScreen == Gui_HUD) { Gui_ReplaceActive(InventoryScreen_MakeInstance()); return true; } else if (key == KeyBind_Get(KeyBind_DropBlock) && !Game_ClassicMode) { if (Inventory_CanChangeSelected() && Inventory_SelectedBlock != BLOCK_AIR) { /* Don't assign SelectedIndex directly, because we don't want held block switching positions if they already have air in their inventory hotbar. */ Inventory_Set(Inventory_SelectedIndex, BLOCK_AIR); Event_RaiseVoid(&UserEvents_HeldBlockChanged); } return true; } return false; }
static bool InputHandler_HandleNonClassicKey(Key key) { if (key == KeyBinds[KEYBIND_HIDE_GUI]) { Game_HideGui = !Game_HideGui; } else if (key == KeyBinds[KEYBIND_SMOOTH_CAMERA]) { InputHandler_Toggle(key, &Camera.Smooth, " &eSmooth camera is &aenabled", " &eSmooth camera is &cdisabled"); } else if (key == KeyBinds[KEYBIND_AXIS_LINES]) { InputHandler_Toggle(key, &Game_ShowAxisLines, " &eAxis lines (&4X&e, &2Y&e, &1Z&e) now show", " &eAxis lines no longer show"); } else if (key == KeyBinds[KEYBIND_AUTOROTATE]) { InputHandler_Toggle(key, &AutoRotate_Enabled, " &eAuto rotate is &aenabled", " &eAuto rotate is &cdisabled"); } else if (key == KeyBinds[KEYBIND_THIRD_PERSON]) { Camera_CycleActive(); } else if (key == KeyBinds[KEYBIND_DROP_BLOCK]) { if (Inventory_CheckChangeSelected() && Inventory_SelectedBlock != BLOCK_AIR) { /* Don't assign SelectedIndex directly, because we don't want held block switching positions if they already have air in their inventory hotbar. */ Inventory_Set(Inventory.SelectedIndex, BLOCK_AIR); Event_RaiseVoid(&UserEvents.HeldBlockChanged); } } else if (key == KeyBinds[KEYBIND_IDOVERLAY]) { if (Gui_OverlaysCount) return true; Gui_ShowOverlay(TexIdsOverlay_MakeInstance()); } else if (key == KeyBinds[KEYBIND_BREAK_LIQUIDS]) { InputHandler_Toggle(key, &Game_BreakableLiquids, " &eBreakable liquids is &aenabled", " &eBreakable liquids is &cdisabled"); } else { return false; } return true; }