From bffaf264ddd11d4ec5c094c416fb41feaf4c835d Mon Sep 17 00:00:00 2001 From: KikooDX Date: Sat, 9 Jan 2021 10:42:16 +0100 Subject: [PATCH] Moved player init code main.c->player.c --- include/player.h | 1 + src/main.c | 12 ++---------- src/player.c | 11 +++++++++++ 3 files changed, 14 insertions(+), 10 deletions(-) diff --git a/include/player.h b/include/player.h index 4cd5af2..38155da 100644 --- a/include/player.h +++ b/include/player.h @@ -20,6 +20,7 @@ typedef struct Player { #include "camera.h" #include "input.h" +void player_init(Player *player); void player_move(Player *player, const Level *level); void player_step(Player *player, Input *input, const Level *level, uint step); void player_draw(Player *player, Camera *camera); diff --git a/src/main.c b/src/main.c index 47ef43d..49fe413 100644 --- a/src/main.c +++ b/src/main.c @@ -28,16 +28,8 @@ int main(void) { int play_level(uint level_id) { /* create player */ - Player player = { - .pos = {TILE_SIZE, TILE_SIZE}, - .spd = {0, 0}, - .hbox = {TILE_SIZE - 1, TILE_SIZE - 1}, - .vbox = {7, 7}, - .origin = {0 * VEC_PRECISION, 0 * VEC_PRECISION}, - .grace = 0, - .jump_held = false, - .dead = false - }; + Player player; + player_init(&player); /* set level */ const Level *level; diff --git a/src/player.c b/src/player.c index 6f0c16d..c620787 100644 --- a/src/player.c +++ b/src/player.c @@ -23,6 +23,17 @@ #define SGN(x) (((x) > 0) ? (1) : (((x) < 0) ? (-1) : (0))) #define PLAYER_COLLIDE_SOLID(pos) (player_collide_or(player, pos, level) & F_SOLID) +void player_init(Player *player) { + player->pos = (Vec){TILE_SIZE, TILE_SIZE}; + player->spd = (Vec){0, 0}; + player->hbox = (Vec){TILE_SIZE - 1, TILE_SIZE - 1}; + player->vbox = (Vec){7, 7}; + player->origin = (Vec){0 * VEC_PRECISION, 0 * VEC_PRECISION}; + player->grace = 0; + player->jump_held = false; + player->dead = false; +} + void player_move(Player *player, const Level *level) { /* TODO: Take into account player's hitbox */ const int sgn_spd_x = SGN(player->spd.x);