From f922b3839a434a28fb4cf939bfdb488da2cb9a6e Mon Sep 17 00:00:00 2001 From: bgiraudr Date: Mon, 24 Jan 2022 23:57:07 +0100 Subject: [PATCH] now can change capacities --- assets-cg/capacites/capacites.txt | 1 + include/player.h | 3 ++- src/capacite.c | 2 +- src/engine.c | 1 + src/player.c | 36 ++++++++++++++++++++++++++++++- 5 files changed, 40 insertions(+), 3 deletions(-) diff --git a/assets-cg/capacites/capacites.txt b/assets-cg/capacites/capacites.txt index 363d7ae..175a12a 100644 --- a/assets-cg/capacites/capacites.txt +++ b/assets-cg/capacites/capacites.txt @@ -1,2 +1,3 @@ Test capacité;5;2 Deuxième;10;3 +Charge;25;2 diff --git a/include/player.h b/include/player.h index 1257727..df3012d 100644 --- a/include/player.h +++ b/include/player.h @@ -33,4 +33,5 @@ struct Player { int player_facing(struct Game const *game); struct Player init_player(void); void add_move(struct Player *player, struct Move move); -void draw_player_moves(struct Player *player); \ No newline at end of file +void draw_player_moves(struct Player *player); +void replace_capacities(struct Player *player, struct Move move); \ No newline at end of file diff --git a/src/capacite.c b/src/capacite.c index 8f9320d..ca35f74 100644 --- a/src/capacite.c +++ b/src/capacite.c @@ -25,5 +25,5 @@ void draw_move(int x, int y, int x2, int y2, struct Move move) { } void draw_classic_move(int x, int y, struct Move move) { - draw_move(x, y, x+200, y+60, move); + draw_move(x, y, x+170, y+60, move); } \ No newline at end of file diff --git a/src/engine.c b/src/engine.c index 2695db1..416a456 100644 --- a/src/engine.c +++ b/src/engine.c @@ -127,6 +127,7 @@ void engine_action(struct Game const *game, int action) { } if(action == ACTION_F1) { game->player->sprint = game->player->sprint ? 0 : 1; + add_move(game->player, get_move_id(2)); } if(action == ACTION_OPTN) { draw_stats(game->player->stats); diff --git a/src/player.c b/src/player.c index be7fcc4..beb39ed 100644 --- a/src/player.c +++ b/src/player.c @@ -1,8 +1,11 @@ +#include + #include "player.h" #include "define.h" #include "map.h" #include "stats.h" #include "capacite.h" +#include "util.h" struct Player init_player(void) { @@ -55,7 +58,7 @@ void add_move(struct Player *player, struct Move move) { if(player->moves[1].name == NULL) { player->moves[1] = move; } else { - //TODO remplacer une capacité + replace_capacities(player, move); } } @@ -66,3 +69,34 @@ void draw_player_moves(struct Player *player) { } } +void replace_capacities(struct Player *player, struct Move move) { + int selection = 0; + int buffer = keydown(KEY_SHIFT); + while(1) { + clearevents(); + + selection += keydown(KEY_RIGHT) - keydown(KEY_LEFT); + if(selection > 1) selection = 1; + if(selection < 0) selection = 0; + + draw_classic_move(115,DHEIGHT/2-65, move); + draw_classic_move(20,DHEIGHT/2+5, player->moves[0]); + draw_classic_move(210,DHEIGHT/2+5, player->moves[1]); + + dtext(95 + (selection * 190), DHEIGHT/2+50 , C_RED, "[X]"); + dupdate(); + + if(keydown(KEY_SHIFT)) { + if(buffer) buffer = 0; + else break; + } + if(keydown(KEY_EXIT)) { + selection = -1; + break; + } + while(keydown(KEY_SHIFT)) clearevents(); + } + if(selection >= 0) { + player->moves[selection] = move; + } +} \ No newline at end of file