aboutsummaryrefslogtreecommitdiff
path: root/plugins/movement
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/movement')
-rw-r--r--plugins/movement/Makefile2
-rw-r--r--plugins/movement/dependencies.txt1
-rw-r--r--plugins/movement/movement.c21
-rw-r--r--plugins/movement/movement.h8
4 files changed, 27 insertions, 5 deletions
diff --git a/plugins/movement/Makefile b/plugins/movement/Makefile
index 9d23279..c75d541 100644
--- a/plugins/movement/Makefile
+++ b/plugins/movement/Makefile
@@ -1,4 +1,4 @@
-plugins/movement/movement.so: plugins/movement/movement.c plugins/game/game.h
+plugins/movement/movement.so: plugins/movement/movement.c plugins/movement/movement.h plugins/game/game.h
cc -g -shared -fpic -o plugins/movement/movement.so plugins/movement/movement.c
PLUGINS := ${PLUGINS} plugins/movement/movement.so
diff --git a/plugins/movement/dependencies.txt b/plugins/movement/dependencies.txt
new file mode 100644
index 0000000..dc22e61
--- /dev/null
+++ b/plugins/movement/dependencies.txt
@@ -0,0 +1 @@
+game
diff --git a/plugins/movement/movement.c b/plugins/movement/movement.c
index 494c8b0..25c5f93 100644
--- a/plugins/movement/movement.c
+++ b/plugins/movement/movement.c
@@ -1,23 +1,36 @@
#include "../game/game.h"
+enum direction last_player_move;
+
+void move_player(enum direction dir)
+{
+ int x, y;
+ x = y = 0;
+
+ dir_to_xy(dir, &x, &y);
+ last_player_move = dir;
+
+ move(&player, x, y);
+}
+
static void move_up()
{
- move(&player, 0, -1);
+ move_player(UP);
}
static void move_left()
{
- move(&player, -1, 0);
+ move_player(LEFT);
}
static void move_down()
{
- move(&player, 0, 1);
+ move_player(DOWN);
}
static void move_right()
{
- move(&player, 1, 0);
+ move_player(RIGHT);
}
__attribute__((constructor)) static void init()
diff --git a/plugins/movement/movement.h b/plugins/movement/movement.h
new file mode 100644
index 0000000..c3afdac
--- /dev/null
+++ b/plugins/movement/movement.h
@@ -0,0 +1,8 @@
+#ifndef _MOVEMENT_H_
+#define _MOVEMENT_H_
+#include "../game/game.h"
+
+extern enum direction last_player_move;
+void move_player(enum direction dir);
+
+#endif