| 73 | // *********************************************************************** |
| 74 | |
| 75 | void InputInit() { |
| 76 | Arena* pArena = ArenaCreate(); |
| 77 | pInputState = New(pArena, InputState); |
| 78 | pInputState->pArena = pArena; |
| 79 | |
| 80 | pInputState->stringToControllerButton.pArena = pArena; |
| 81 | pInputState->stringToControllerAxis.pArena = pArena; |
| 82 | pInputState->stringToKeyCode.pArena = pArena; |
| 83 | pInputState->keyCodeToInternalKeyCode.pArena = pArena; |
| 84 | pInputState->stringToMouseCode.pArena = pArena; |
| 85 | pInputState->stringToSDLControllerButton.pArena = pArena; |
| 86 | pInputState->stringToSDLControllerAxis.pArena = pArena; |
| 87 | pInputState->stringToSDLControllerButton.pArena = pArena; |
| 88 | pInputState->primaryBindings.pArena = pArena; |
| 89 | pInputState->primaryAxisBindings.pArena = pArena; |
| 90 | pInputState->keyboardAltBindings.pArena = pArena; |
| 91 | pInputState->mouseAltBindings.pArena = pArena; |
| 92 | pInputState->keyboardAxisBindings.pArena = pArena; |
| 93 | pInputState->mouseAxisBindings.pArena = pArena; |
| 94 | pInputState->primaryAxisBindings.pArena = pArena; |
| 95 | pInputState->textInputString.pArena = pArena; |
| 96 | |
| 97 | // @Todo: macros to help with this nonesense? |
| 98 | |
| 99 | // Setup hashmaps for controller labels |
| 100 | pInputState->stringToControllerButton.Add("FaceBottom"_hash, ControllerButton::FaceBottom); |
| 101 | pInputState->stringToControllerButton.Add("FaceRight"_hash, ControllerButton::FaceRight); |
| 102 | pInputState->stringToControllerButton.Add("FaceLeft"_hash, ControllerButton::FaceLeft); |
| 103 | pInputState->stringToControllerButton.Add("FaceTop"_hash, ControllerButton::FaceTop); |
| 104 | pInputState->stringToControllerButton.Add("LeftStick"_hash, ControllerButton::LeftStick); |
| 105 | pInputState->stringToControllerButton.Add("RightStick"_hash, ControllerButton::RightStick); |
| 106 | pInputState->stringToControllerButton.Add("LeftShoulder"_hash, ControllerButton::LeftShoulder); |
| 107 | pInputState->stringToControllerButton.Add("RightShoulder"_hash, ControllerButton::RightShoulder); |
| 108 | pInputState->stringToControllerButton.Add("DpadDown"_hash, ControllerButton::DpadDown); |
| 109 | pInputState->stringToControllerButton.Add("DpadLeft"_hash, ControllerButton::DpadLeft); |
| 110 | pInputState->stringToControllerButton.Add("DpadRight"_hash, ControllerButton::DpadRight); |
| 111 | pInputState->stringToControllerButton.Add("DpadUp"_hash, ControllerButton::DpadUp); |
| 112 | pInputState->stringToControllerButton.Add("Start"_hash, ControllerButton::Start); |
| 113 | pInputState->stringToControllerButton.Add("Select"_hash, ControllerButton::Select); |
| 114 | |
| 115 | |
| 116 | pInputState->stringToControllerAxis.Add("LeftX"_hash, ControllerAxis::LeftX); |
| 117 | pInputState->stringToControllerAxis.Add("LeftY"_hash, ControllerAxis::LeftY); |
| 118 | pInputState->stringToControllerAxis.Add("RightX"_hash, ControllerAxis::RightX); |
| 119 | pInputState->stringToControllerAxis.Add("RightY"_hash, ControllerAxis::RightY); |
| 120 | pInputState->stringToControllerAxis.Add("TriggerLeft"_hash, ControllerAxis::TriggerLeft); |
| 121 | pInputState->stringToControllerAxis.Add("TriggerRight"_hash, ControllerAxis::TriggerRight); |
| 122 | |
| 123 | |
| 124 | pInputState->stringToKeyCode.Add("Keycode_A"_hash, SDLK_a); |
| 125 | pInputState->stringToKeyCode.Add("Keycode_B"_hash, SDLK_b); |
| 126 | pInputState->stringToKeyCode.Add("Keycode_C"_hash, SDLK_c); |
| 127 | pInputState->stringToKeyCode.Add("Keycode_D"_hash, SDLK_d); |
| 128 | pInputState->stringToKeyCode.Add("Keycode_E"_hash, SDLK_e); |
| 129 | pInputState->stringToKeyCode.Add("Keycode_F"_hash, SDLK_f); |
| 130 | pInputState->stringToKeyCode.Add("Keycode_G"_hash, SDLK_g); |
| 131 | pInputState->stringToKeyCode.Add("Keycode_H"_hash, SDLK_h); |
| 132 | pInputState->stringToKeyCode.Add("Keycode_I"_hash, SDLK_i); |