VEGO-Engine  0.1
Loading...
Searching...
No Matches
InputComponent.h
1#pragma once
2#include <SDL3/SDL.h>
3#include <map>
4
5#include "Component.h"
6
7enum class Key
8{
9 UP,
10 DOWN,
11 LEFT,
12 RIGHT,
13 SPACE,
14 ENTER,
15 ESCAPE,
16 TAB,
17 BACKSPACE,
18 DELETE,
19 HOME,
20 END,
21 PAGE_UP,
22 PAGE_DOWN,
23 INSERT,
24 CAPS_LOCK,
25 LEFT_SHIFT,
26 RIGHT_SHIFT,
27 LEFT_CTRL,
28 RIGHT_CTRL,
29 LEFT_ALT,
30 RIGHT_ALT,
31 F1,
32 F2,
33 F3,
34 F4,
35 F5,
36 F6,
37 F7,
38 F8,
39 F9,
40 F10,
41 F11,
42 F12,
43 A,
44 B,
45 C,
46 D,
47 E,
48 F,
49 G,
50 H,
51 I,
52 J,
53 K,
54 L,
55 M,
56 N,
57 O,
58 P,
59 Q,
60 R,
61 S,
62 T,
63 U,
64 V,
65 W,
66 X,
67 Y,
68 Z,
69 NUM_0,
70 NUM_1,
71 NUM_2,
72 NUM_3,
73 NUM_4,
74 NUM_5,
75 NUM_6,
76 NUM_7,
77 NUM_8,
78 NUM_9,
79 LEFT_BRACKET,
80 RIGHT_BRACKET,
81 SEMICOLON,
82 APOSTROPHE,
83 COMMA,
84 PERIOD,
85 SLASH,
86 BACKSLASH,
87 GRAVE
88};
89
90class InputComponent : public Component
91{
92public:
93 InputComponent();
94 ~InputComponent();
95
96 void init() override;
97 void update(uint_fast16_t diffTime) override;
98
99 bool isKeyDown(Key key);
100
101private:
102 const bool* m_keyStates;
103 SDL_Scancode mapKeyToSDL(Key key);
104 std::map<Key, SDL_Scancode> m_keyMappings;
105 void InitKeyMappings();
106};