summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorP. J. McDermott <pj@pehjota.net>2021-08-08 15:42:37 (EDT)
committer P. J. McDermott <pj@pehjota.net>2021-08-08 15:42:37 (EDT)
commit8f383005a08607d88f198a4e9ba55527986a71d2 (patch)
treebe680930ac99c9fc14d998257b43ae88380c8b1c /src
parentf3e785b8098789d853715c30c1543d4b4982c05d (diff)
downloadmazefight-8f383005a08607d88f198a4e9ba55527986a71d2.zip
mazefight-8f383005a08607d88f198a4e9ba55527986a71d2.tar.gz
mazefight-8f383005a08607d88f198a4e9ba55527986a71d2.tar.bz2
player: Add vector getter
Diffstat (limited to 'src')
-rw-r--r--src/player.c16
-rw-r--r--src/player.h4
2 files changed, 20 insertions, 0 deletions
diff --git a/src/player.c b/src/player.c
index 4232842..3d84b0f 100644
--- a/src/player.c
+++ b/src/player.c
@@ -79,6 +79,22 @@ mf_player_new(struct mf_maze *maze, int cell_width)
return p;
}
+void
+mf_player_get_vector(struct mf_player *p, int *x, int *y, int *travel,
+ int *dx, int *dy)
+{
+ *x = p->cur_x;
+ *y = p->cur_y;
+ *travel = p->travel;
+ switch (p->cur_dir) {
+ case MF_PLAYER_DIR_U_: *dx = 0; *dy = -1; break;
+ case MF_PLAYER_DIR_D_: *dx = 0; *dy = 1; break;
+ case MF_PLAYER_DIR_L_: *dx = -1; *dy = 0; break;
+ case MF_PLAYER_DIR_R_: *dx = 1; *dy = 0; break;
+ default: *dx = 0; *dy = 0; break;
+ }
+}
+
static void
_mf_player_move(struct mf_player *p, enum _mf_player_dir dir)
{
diff --git a/src/player.h b/src/player.h
index d27500c..b180e20 100644
--- a/src/player.h
+++ b/src/player.h
@@ -26,6 +26,10 @@ struct mf_player *
mf_player_new(struct mf_maze *maze, int cell_width);
void
+mf_player_get_vector(struct mf_player *p, int *x, int *y, int *travel,
+ int *dx, int *dy);
+
+void
mf_player_key_event(struct mf_player *p, SDL_Event *e);
int