From ce4d64bd41937d7dff18ca607122188dc338d696 Mon Sep 17 00:00:00 2001 From: Xander Swan Date: Wed, 17 Dec 2025 18:38:21 -0500 Subject: switch to raylib, update some structure --- src/input.odin | 52 ++++++++++++++++++++++------------------------------ 1 file changed, 22 insertions(+), 30 deletions(-) (limited to 'src/input.odin') diff --git a/src/input.odin b/src/input.odin index 6c02349..de2af7e 100644 --- a/src/input.odin +++ b/src/input.odin @@ -1,10 +1,10 @@ package demonchime -import sapp "shared:sokol/app" +import rl "vendor:raylib" KeybindInput :: union { - sapp.Keycode, - sapp.Mousebutton, + rl.KeyboardKey, + rl.MouseButton, } Keybind :: struct { @@ -13,44 +13,36 @@ Keybind :: struct { just_pressed: bool, } -Input :: struct { +actions: struct { move_left: Keybind, move_right: Keybind, jump: Keybind, - - key_down: [sapp.MAX_KEYCODES]bool, - key_just_down: [sapp.MAX_KEYCODES]bool, - mouse_down: [sapp.MAX_MOUSEBUTTONS]bool, - mouse_just_down: [sapp.MAX_MOUSEBUTTONS]bool, } -init_keybinds :: proc(input: ^Input) { - input.move_left.input = sapp.Keycode.A - input.move_right.input = sapp.Keycode.D - input.jump.input = sapp.Keycode.SPACE +init_keybinds :: proc() { + actions.move_left.input = .A + actions.move_right.input = .D + actions.jump.input = .SPACE } -input_event :: proc(event: ^sapp.Event, input: ^Input) { - #partial switch event.type { - case .KEY_DOWN: - input.key_down[event.key_code] = true - input.key_just_down[event.key_code] = true - case .KEY_UP: - input.key_down[event.key_code] = false - case .MOUSE_DOWN: - input.mouse_down[event.key_code] = true - input.mouse_just_down[event.key_code] = true - case .MOUSE_UP: - input.mouse_down[event.key_code] = false +is_keybind_down :: proc(keybind: Keybind) -> bool { + switch val in keybind.input { + case rl.KeyboardKey: + return rl.IsKeyDown(val) + case rl.MouseButton: + return rl.IsMouseButtonDown(val) } + + assert(false) + return false } -is_keybind_down :: proc(input: Input, keybind: Keybind) -> bool { +is_keybind_just_down :: proc(keybind: Keybind) -> bool { switch val in keybind.input { - case sapp.Keycode: - return input.key_down[val] - case sapp.Mousebutton: - return input.mouse_down[val] + case rl.KeyboardKey: + return rl.IsKeyPressed(val) + case rl.MouseButton: + return rl.IsMouseButtonPressed(val) } assert(false) -- cgit v1.3-2-g0d8e