diff options
author | Elias Fleckenstein <eliasfleckenstein@web.de> | 2021-06-09 18:26:52 +0200 |
---|---|---|
committer | Elias Fleckenstein <eliasfleckenstein@web.de> | 2021-06-09 18:26:52 +0200 |
commit | 02de1c17961b9a67bd6b75d5991408067041ffe9 (patch) | |
tree | aab355108c74406eb914024587c160f861649247 /plugins/movement/movement.c | |
parent | b956b3dea0cbc513221a5d640f24793783269411 (diff) | |
download | dungeon_game-02de1c17961b9a67bd6b75d5991408067041ffe9.tar.xz |
Modularize input
Diffstat (limited to 'plugins/movement/movement.c')
-rw-r--r-- | plugins/movement/movement.c | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/plugins/movement/movement.c b/plugins/movement/movement.c new file mode 100644 index 0000000..494c8b0 --- /dev/null +++ b/plugins/movement/movement.c @@ -0,0 +1,44 @@ +#include "../game/game.h" + +static void move_up() +{ + move(&player, 0, -1); +} + +static void move_left() +{ + move(&player, -1, 0); +} + +static void move_down() +{ + move(&player, 0, 1); +} + +static void move_right() +{ + move(&player, 1, 0); +} + +__attribute__((constructor)) static void init() +{ + register_input_handler('w', (struct input_handler) { + .run_if_dead = false, + .callback = &move_up, + }); + + register_input_handler('a', (struct input_handler) { + .run_if_dead = false, + .callback = &move_left, + }); + + register_input_handler('s', (struct input_handler) { + .run_if_dead = false, + .callback = &move_down, + }); + + register_input_handler('d', (struct input_handler) { + .run_if_dead = false, + .callback = &move_right, + }); +} |