From c9548c1a67aca10f9e6b431b0ac1f5c9db2410db Mon Sep 17 00:00:00 2001 From: KikooDX Date: Wed, 13 Jan 2021 14:24:00 +0100 Subject: [PATCH] Start position support. --- include/level.h | 6 ++++-- levels | 2 +- src/player.c | 3 +-- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/include/level.h b/include/level.h index 076a950..bfdbc68 100644 --- a/include/level.h +++ b/include/level.h @@ -4,10 +4,12 @@ #include #include "tiles.h" +#include "vec.h" typedef struct Level { - uint width; /* in tiles */ - uint height; /* in tiles */ + uint8_t width; /* in tiles */ + uint8_t height; /* in tiles */ + Vec start_pos; /* player starting position */ uint16_t bg_color; /* background color */ const Tile **layers; /* points toward the level content */ uint8_t layers_count; diff --git a/levels b/levels index 144f914..a310ffb 160000 --- a/levels +++ b/levels @@ -1 +1 @@ -Subproject commit 144f9142f3b7a9bf015fd254516bfa3342d370fc +Subproject commit a310ffb5a6a7c67df3a46b566a3f865cfa7d9ffd diff --git a/src/player.c b/src/player.c index 643d25a..953676d 100644 --- a/src/player.c +++ b/src/player.c @@ -26,8 +26,7 @@ #define PLAYER_COLLIDE_SOLID(pos) (player_collide_or(player, pos, level) & F_SOLID) void player_init(Player *player, const Level *level) { - player->pos.x = TILE_SIZE; - player->pos.y = TILE_SIZE; + vec_cpy(&player->pos, level->start_pos); player->spd.x = 0; player->spd.y = 0; player->hbox.x = TILE_SIZE - 1;