free monster

This commit is contained in:
bgiraudr 2022-02-11 19:41:41 +01:00
parent 902d77c7df
commit eb6469c2b5
3 changed files with 13 additions and 5 deletions

View File

@ -6,7 +6,7 @@
#include <gint/display.h>
struct Monster {
char *name;
const char *name;
bopti_image_t *sprite;
int nbMoves;
struct Stats *stats;
@ -15,4 +15,5 @@ struct Monster {
struct Monster *generate_monster(struct Game *game);
struct Move monster_select(struct Player *player, struct Monster *monster);
struct Monster *copyMonster(struct Monster *source);
struct Monster *copyMonster(struct Monster *source);
void free_monster(struct Monster *monster);

View File

@ -11,7 +11,9 @@
void create_battle(struct Game *game) {
game->player->stats.pv = game->player->stats.max_pv;
during_battle(game->player, generate_monster(game));
struct Monster *monster = generate_monster(game);
during_battle(game->player, monster);
free_monster(monster);
}
int during_battle(struct Player *player, struct Monster *monster) {
@ -51,7 +53,6 @@ int during_battle(struct Player *player, struct Monster *monster) {
}
tour++;
}
free(monster);
return LOSE;
}

View File

@ -29,7 +29,7 @@ struct Move monster_select(struct Player *player, struct Monster *monster) {
struct Monster *copyMonster(struct Monster *source) {
struct Monster *dest = malloc(sizeof(struct Monster));
dest->name = strdup(source->name);
dest->name = source->name;
dest->nbMoves = source->nbMoves;
dest->sprite = source->sprite;
@ -40,4 +40,10 @@ struct Monster *copyMonster(struct Monster *source) {
memcpy(dest->stats, source->stats, sizeof *source->stats);
return dest;
}
void free_monster(struct Monster *monster) {
free(monster->moves);
free(monster->stats);
free(monster);
}