Add gamepad support and hook it up with movement

This commit is contained in:
Joshalosh 2023-09-23 21:09:07 +10:00 committed by doyle
parent 1ff0daba4a
commit 8ac5b66a3f

View File

@ -629,6 +629,8 @@ void FP_Update(TELY_Platform *platform, FP_Game *game, TELY_Renderer *renderer,
game->clicked_entity = game->prev_active_entity;
Dqn_V2 dir_vector = {};
// NOTE: Keyboard movement input
if (TELY_Platform_InputScanCodeIsDown(input, TELY_PlatformInputScanCode_W))
dir_vector.y = -1.f;
if (TELY_Platform_InputScanCodeIsDown(input, TELY_PlatformInputScanCode_A))
@ -638,6 +640,15 @@ void FP_Update(TELY_Platform *platform, FP_Game *game, TELY_Renderer *renderer,
if (TELY_Platform_InputScanCodeIsDown(input, TELY_PlatformInputScanCode_D))
dir_vector.x = +1.f;
// NOTE: Gamepad movement input
for (uint32_t gamepad = 0; gamepad < MAX_GAMEPADS; gamepad++) {
if (input->button_codes[gamepad]) {
dir_vector.x += input->left_stick[gamepad].x;
dir_vector.y += input->left_stick[gamepad].y;
}
}
if (dir_vector.x && dir_vector.y) {
dir_vector.x *= 0.7071067811865475244f;
dir_vector.y *= 0.7071067811865475244f;