make keybinds easier to change

This commit is contained in:
outis-gooner 2026-03-02 20:59:09 -08:00
parent b42a4a4e4d
commit cce03a8eed
10 changed files with 151 additions and 118 deletions

View file

@ -1001,17 +1001,17 @@ void UIController::handleKeyPress(unsigned int iPad, unsigned int key)
bool kbDown = false, kbPressed = false, kbReleased = false; bool kbDown = false, kbPressed = false, kbReleased = false;
switch(key) switch(key)
{ {
case ACTION_MENU_UP: kbDown = KMInput.IsKeyDown(VK_UP); kbPressed = KMInput.IsKeyPressed(VK_UP); kbReleased = KMInput.IsKeyReleased(VK_UP); break; case ACTION_MENU_UP: kbDown = KMInput.IsKeyDown(KMInput::KEY_UP); kbPressed = KMInput.IsKeyPressed(KMInput::KEY_UP); kbReleased = KMInput.IsKeyReleased(KMInput::KEY_UP); break;
case ACTION_MENU_DOWN: kbDown = KMInput.IsKeyDown(VK_DOWN); kbPressed = KMInput.IsKeyPressed(VK_DOWN); kbReleased = KMInput.IsKeyReleased(VK_DOWN); break; case ACTION_MENU_DOWN: kbDown = KMInput.IsKeyDown(KMInput::KEY_DOWN); kbPressed = KMInput.IsKeyPressed(KMInput::KEY_DOWN); kbReleased = KMInput.IsKeyReleased(KMInput::KEY_DOWN); break;
case ACTION_MENU_LEFT: kbDown = KMInput.IsKeyDown(VK_LEFT); kbPressed = KMInput.IsKeyPressed(VK_LEFT); kbReleased = KMInput.IsKeyReleased(VK_LEFT); break; case ACTION_MENU_LEFT: kbDown = KMInput.IsKeyDown(KMInput::KEY_LEFT); kbPressed = KMInput.IsKeyPressed(KMInput::KEY_LEFT); kbReleased = KMInput.IsKeyReleased(KMInput::KEY_LEFT); break;
case ACTION_MENU_RIGHT: kbDown = KMInput.IsKeyDown(VK_RIGHT); kbPressed = KMInput.IsKeyPressed(VK_RIGHT); kbReleased = KMInput.IsKeyReleased(VK_RIGHT); break; case ACTION_MENU_RIGHT: kbDown = KMInput.IsKeyDown(KMInput::KEY); kbPressed = KMInput.IsKeyPressed(KMInput::KEY_RIGHT); kbReleased = KMInput.IsKeyReleased(KMInput::KEY_RIGHT); break;
case ACTION_MENU_OK: kbDown = KMInput.IsKeyDown(VK_RETURN); kbPressed = KMInput.IsKeyPressed(VK_RETURN); kbReleased = KMInput.IsKeyReleased(VK_RETURN); break; case ACTION_MENU_OK: kbDown = KMInput.IsKeyDown(KMInput::KEY_UP); kbPressed = KMInput.IsKeyPressed(KMInput::KEY_A); kbReleased = KMInput.IsKeyReleased(KMInput::KEY_A); break;
case ACTION_MENU_A: kbDown = KMInput.IsKeyDown(VK_RETURN); kbPressed = KMInput.IsKeyPressed(VK_RETURN); kbReleased = KMInput.IsKeyReleased(VK_RETURN); break; case ACTION_MENU_A: kbDown = KMInput.IsKeyDown(KMInput::KEY_A); kbPressed = KMInput.IsKeyPressed(KMInput::KEY_A); kbReleased = KMInput.IsKeyReleased(KMInput::KEY_A); break;
case ACTION_MENU_CANCEL: kbDown = KMInput.IsKeyDown(VK_ESCAPE); kbPressed = KMInput.IsKeyPressed(VK_ESCAPE); kbReleased = KMInput.IsKeyReleased(VK_ESCAPE); break; case ACTION_MENU_CANCEL: kbDown = KMInput.IsKeyDown(KMInput::KEY_B); kbPressed = KMInput.IsKeyPressed(KMInput::KEY_B); kbReleased = KMInput.IsKeyReleased(KMInput::KEY_B); break;
case ACTION_MENU_B: kbDown = KMInput.IsKeyDown(VK_ESCAPE); kbPressed = KMInput.IsKeyPressed(VK_ESCAPE); kbReleased = KMInput.IsKeyReleased(VK_ESCAPE); break; case ACTION_MENU_B: kbDown = KMInput.IsKeyDown(KMInput::KEY_B); kbPressed = KMInput.IsKeyPressed(KMInput::KEY_B); kbReleased = KMInput.IsKeyReleased(KMInput::KEY_B); break;
case ACTION_MENU_PAUSEMENU: kbDown = KMInput.IsKeyDown(VK_ESCAPE); kbPressed = KMInput.IsKeyPressed(VK_ESCAPE); kbReleased = KMInput.IsKeyReleased(VK_ESCAPE); break; case ACTION_MENU_PAUSEMENU: kbDown = KMInput.IsKeyDown(KMInput::KEY_B); kbPressed = KMInput.IsKeyPressed(KMInput::KEY_B); kbReleased = KMInput.IsKeyReleased(KMInput::KEY_B); break;
case ACTION_MENU_LEFT_SCROLL: kbDown = KMInput.IsKeyDown('Q'); kbPressed = KMInput.IsKeyPressed('Q'); kbReleased = KMInput.IsKeyReleased('Q'); break; case ACTION_MENU_LEFT_SCROLL: kbDown = KMInput.IsKeyDown(KMInput::KEY_LEFT_SCROLL); kbPressed = KMInput.IsKeyPressed(KMInput::KEY_LEFT_SCROLL); kbReleased = KMInput.IsKeyReleased(KMInput::KEY_LEFT_SCROLL); break;
case ACTION_MENU_RIGHT_SCROLL: kbDown = KMInput.IsKeyDown('E'); kbPressed = KMInput.IsKeyPressed('E'); kbReleased = KMInput.IsKeyReleased('E'); break; case ACTION_MENU_RIGHT_SCROLL: kbDown = KMInput.IsKeyDown(KMInput::KEY_RIGHT_SCROLL); kbPressed = KMInput.IsKeyPressed(KMInput::KEY_RIGHT_SCROLL); kbReleased = KMInput.IsKeyReleased(KMInput::KEY_RIGHT_SCROLL); break;
} }
pressed = pressed || kbPressed; pressed = pressed || kbPressed;
released = released || kbReleased; released = released || kbReleased;

View file

@ -50,10 +50,10 @@ void Input::tick(LocalPlayer *player)
if (iPad == 0 && KMInput.IsCaptured()) if (iPad == 0 && KMInput.IsCaptured())
{ {
float kbX = 0.0f, kbY = 0.0f; float kbX = 0.0f, kbY = 0.0f;
if (KMInput.IsKeyDown('W')) { kbY += 1.0f; sprintForward += 1.0f; usingKeyboardMovement = true; } if (KMInput.IsKeyDown(KeyboardMouseInput::KEY_WALK_UP)) { kbY += 1.0f; sprintForward += 1.0f; usingKeyboardMovement = true; }
if (KMInput.IsKeyDown('S')) { kbY -= 1.0f; sprintForward -= 1.0f; usingKeyboardMovement = true; } if (KMInput.IsKeyDown(KeyboardMouseInput::KEY_WALK_DOWN)) { kbY -= 1.0f; sprintForward -= 1.0f; usingKeyboardMovement = true; }
if (KMInput.IsKeyDown('A')) { kbX += 1.0f; usingKeyboardMovement = true; } // inverted like gamepad if (KMInput.IsKeyDown(KeyboardMouseInput::KEY_WALK_LEFT)) { kbX += 1.0f; usingKeyboardMovement = true; } // inverted like gamepad
if (KMInput.IsKeyDown('D')) { kbX -= 1.0f; usingKeyboardMovement = true; } if (KMInput.IsKeyDown(KeyboardMouseInput::KEY_WALK_RIGHT)) { kbX -= 1.0f; usingKeyboardMovement = true; }
// Normalize diagonal // Normalize diagonal
if (kbX != 0.0f && kbY != 0.0f) { kbX *= 0.707f; kbY *= 0.707f; } if (kbX != 0.0f && kbY != 0.0f) { kbX *= 0.707f; kbY *= 0.707f; }
if (pMinecraft->localgameModes[iPad]->isInputAllowed(MINECRAFT_ACTION_LEFT) || pMinecraft->localgameModes[iPad]->isInputAllowed(MINECRAFT_ACTION_RIGHT)) if (pMinecraft->localgameModes[iPad]->isInputAllowed(MINECRAFT_ACTION_LEFT) || pMinecraft->localgameModes[iPad]->isInputAllowed(MINECRAFT_ACTION_RIGHT))

View file

@ -294,7 +294,7 @@ void LocalPlayer::aiStep()
#ifdef _WINDOWS64 #ifdef _WINDOWS64
// Keyboard sprint: Ctrl held while moving forward // Keyboard sprint: Ctrl held while moving forward
if (GetXboxPad() == 0 && input->usingKeyboardMovement && KMInput.IsKeyDown(VK_CONTROL) && sprintForward > 0.0f && if (GetXboxPad() == 0 && input->usingKeyboardMovement && KMInput.IsKeyDown(KMInput::KEY_SPRINT) && sprintForward > 0.0f &&
enoughFoodToSprint && !isUsingItem() && !hasEffect(MobEffect::blindness) && onGround) enoughFoodToSprint && !isUsingItem() && !hasEffect(MobEffect::blindness) && onGround)
{ {
if (!isSprinting()) setSprinting(true); if (!isSprinting()) setSprinting(true);

View file

@ -1450,13 +1450,13 @@ void Minecraft::run_middle()
// Keyboard/mouse button presses for player 0 // Keyboard/mouse button presses for player 0
if (i == 0) if (i == 0)
{ {
if (KMInput.ConsumeKeyPress(VK_ESCAPE)) localplayers[i]->ullButtonsPressed |= 1LL<<MINECRAFT_ACTION_PAUSEMENU; if (KMInput.ConsumeKeyPress(KMInput::KEY_PAUSE)) localplayers[i]->ullButtonsPressed |= 1LL<<MINECRAFT_ACTION_PAUSEMENU;
if (KMInput.ConsumeKeyPress('E')) localplayers[i]->ullButtonsPressed |= 1LL<<MINECRAFT_ACTION_INVENTORY; if (KMInput.ConsumeKeyPress(KMInput::KEY_INVEN)) localplayers[i]->ullButtonsPressed |= 1LL<<MINECRAFT_ACTION_INVENTORY;
if (KMInput.ConsumeKeyPress('Q')) localplayers[i]->ullButtonsPressed |= 1LL<<MINECRAFT_ACTION_DROP; if (KMInput.ConsumeKeyPress(KMInput::KEY_DROP)) localplayers[i]->ullButtonsPressed |= 1LL<<MINECRAFT_ACTION_DROP;
if (KMInput.ConsumeKeyPress('C')) localplayers[i]->ullButtonsPressed |= 1LL<<MINECRAFT_ACTION_CRAFTING; if (KMInput.ConsumeKeyPress(KMInput::KEY_CRAFT)) localplayers[i]->ullButtonsPressed |= 1LL<<MINECRAFT_ACTION_CRAFTING;
if (KMInput.ConsumeKeyPress(VK_F5)) localplayers[i]->ullButtonsPressed |= 1LL<<MINECRAFT_ACTION_RENDER_THIRD_PERSON; if (KMInput.ConsumeKeyPress(KMInput::KEY_TOGGLE_VIEW)) localplayers[i]->ullButtonsPressed |= 1LL<<MINECRAFT_ACTION_RENDER_THIRD_PERSON;
// In flying mode, Shift held = sneak/descend // In flying mode, Shift held = sneak/descend
if (localplayers[i]->abilities.flying && KMInput.IsKeyDown(VK_SHIFT)) if (localplayers[i]->abilities.flying && KMInput.IsKeyDown(KMInput::KEY_SNEAK))
localplayers[i]->ullButtonsPressed |= 1LL<<MINECRAFT_ACTION_SNEAK_TOGGLE; localplayers[i]->ullButtonsPressed |= 1LL<<MINECRAFT_ACTION_SNEAK_TOGGLE;
} }
#endif #endif
@ -5134,4 +5134,3 @@ int Minecraft::MustSignInReturnedPSN(void *pParam, int iPad, C4JStorage::EMessag
return 0; return 0;
} }
#endif #endif

View file

@ -96,7 +96,7 @@ void KeyboardMouseInput::OnRawMouseInput(LPARAM lParam)
if (raw->data.mouse.usFlags == MOUSE_MOVE_RELATIVE) if (raw->data.mouse.usFlags == MOUSE_MOVE_RELATIVE)
{ {
m_mouseDeltaXAccum += (float)raw->data.mouse.lLastX; m_mouseDeltaXAccum += (float)raw->data.mouse.lLastX;
m_mouseDeltaYAccum += (float)raw->data.mouse.lLastY; m_mouseDeltaYAccum += (float)raw->data.mouse.lLastY
} }
} }
} }

View file

@ -15,6 +15,37 @@
class KeyboardMouseInput class KeyboardMouseInput
{ {
public: public:
//game controls
const static int KEY_WALK_UP = 'W';
const static int KEY_WALK_DOWN = 'S';
const static int KEY_WALK_LEFT = 'A';
const static int KEY_WALK_RIGHT = 'D';
const static int KEY_SNEAK = VK_SHIFT;
const static int KEY_INVEN = 'E';
const static int KEY_DROP = 'Q';
const static int KEY_CRAFT = 'C';
const static int KEY_JUMP = VK_SPACE;
const static int KEY_SPRINT = VK_CONTROL;
const static int KEY_PAUSE = VK_ESCAPE;
//menu controls
const static int KEY_UP = VK_UP;
const static int KEY_DOWN = VK_DOWN;
const static int KEY_LEFT = VK_LEFT;
const static int KEY_RIGHT = VK_RIGHT;
const static int KEY_A = VK_RETURN;
const static int KEY_B = VK_ESCAPE;
const static int KEY_LEFT_SCROLL = 'Q';
const static int KEY_RIGHT_SCROLL = 'E';
//debug type shit
const static int KEY_TOGGLE_VIEW = VK_F5;
const static int KEY_DEBUG_OVERLAY = VK_F4;
const static int KEY_DEBUG_CONSOLE_OVERLAY = VK_F3;
const static int KEY_FULLSCREEN = VK_F11;
const static int KEY_TOGGLE_CAPTURE = VK_MENU;
const static int KEY_GAME_INFO_MENU = VK_TAB;
KeyboardMouseInput(); KeyboardMouseInput();
~KeyboardMouseInput(); ~KeyboardMouseInput();

View file

@ -1256,7 +1256,7 @@ int APIENTRY _tWinMain(_In_ HINSTANCE hInstance,
static bool altToggleSuppressCapture = false; static bool altToggleSuppressCapture = false;
bool shouldCapture = app.GetGameStarted() && !ui.GetMenuDisplayed(0) && pMinecraft->screen == NULL; bool shouldCapture = app.GetGameStarted() && !ui.GetMenuDisplayed(0) && pMinecraft->screen == NULL;
// Left Alt key toggles capture on/off for debugging // Left Alt key toggles capture on/off for debugging
if (KMInput.IsKeyPressed(VK_MENU)) if (KMInput.IsKeyPressed(KMInput::KEY_TOGGLE_CAPTURE))
{ {
if (KMInput.IsCaptured()) { KMInput.SetCapture(false); altToggleSuppressCapture = true; } if (KMInput.IsCaptured()) { KMInput.SetCapture(false); altToggleSuppressCapture = true; }
else if (shouldCapture) { KMInput.SetCapture(true); altToggleSuppressCapture = false; } else if (shouldCapture) { KMInput.SetCapture(true); altToggleSuppressCapture = false; }
@ -1273,7 +1273,7 @@ int APIENTRY _tWinMain(_In_ HINSTANCE hInstance,
} }
// F3 toggles the debug console overlay, F11 toggles fullscreen // F3 toggles the debug console overlay, F11 toggles fullscreen
if (KMInput.IsKeyPressed(VK_F3)) if (KMInput.IsKeyPressed(KMInput::KEY_DEBUG_CONSOLE_OVERLAY))
{ {
static bool s_debugConsole = false; static bool s_debugConsole = false;
s_debugConsole = !s_debugConsole; s_debugConsole = !s_debugConsole;
@ -1281,19 +1281,19 @@ int APIENTRY _tWinMain(_In_ HINSTANCE hInstance,
} }
#ifdef _DEBUG_MENUS_ENABLED #ifdef _DEBUG_MENUS_ENABLED
if (KMInput.IsKeyPressed(VK_F4)) if (KMInput.IsKeyPressed(KeyboardMouseInput::KEY_DEBUG_OVERLAY))
{ {
ui.NavigateToScene(ProfileManager.GetPrimaryPad(), eUIScene_DebugOverlay, NULL, eUILayer_Debug); ui.NavigateToScene(ProfileManager.GetPrimaryPad(), eUIScene_DebugOverlay, NULL, eUILayer_Debug);
} }
#endif #endif
if (KMInput.IsKeyPressed(VK_F11)) if (KMInput.IsKeyPressed(KMInput::KEY_FULLSCREEN))
{ {
ToggleFullscreen(); ToggleFullscreen();
} }
// TAB opens game info menu. - Vvis :3 - Updated by detectiveren // TAB opens game info menu. - Vvis :3 - Updated by detectiveren
if (KMInput.IsKeyPressed(VK_TAB) && !ui.GetMenuDisplayed(0)) if (KMInput.IsKeyPressed(KMInput::KEY_GAME_INFO_MENU) && !ui.GetMenuDisplayed(0))
{ {
if (Minecraft* pMinecraft = Minecraft::GetInstance()) if (Minecraft* pMinecraft = Minecraft::GetInstance())
{ {
@ -1306,7 +1306,7 @@ int APIENTRY _tWinMain(_In_ HINSTANCE hInstance,
#ifdef _DEBUG_MENUS_ENABLED #ifdef _DEBUG_MENUS_ENABLED
// F3 toggles onscreen debug info // F3 toggles onscreen debug info
if (KMInput.IsKeyPressed(VK_F3)) if (KMInput.IsKeyPressed(KMInput::KEY_DEBUG_CONSOLE_OVERLAY))
{ {
if (Minecraft* pMinecraft = Minecraft::GetInstance()) if (Minecraft* pMinecraft = Minecraft::GetInstance())
{ {
@ -1318,7 +1318,7 @@ int APIENTRY _tWinMain(_In_ HINSTANCE hInstance,
} }
// F4 opens debug overlay // F4 opens debug overlay
if (KMInput.IsKeyPressed(VK_F4)) if (KMInput.IsKeyPressed(KeyboardMouseInput::KEY_DEBUG_OVERLAY))
{ {
if (Minecraft* pMinecraft = Minecraft::GetInstance()) if (Minecraft* pMinecraft = Minecraft::GetInstance())
{ {

3
build.bat Normal file
View file

@ -0,0 +1,3 @@
cmake --build build --config Debug --target MinecraftClient
cd .\build\Debug
.\MinecraftClient.exe