diff options
Diffstat (limited to 'src/levels.c')
-rw-r--r-- | src/levels.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/src/levels.c b/src/levels.c index 221da15..c5083eb 100644 --- a/src/levels.c +++ b/src/levels.c @@ -1,4 +1,6 @@ #include "levels.h" +#include "game.h" +#include "world.h" const LevelInfo levelInfoList[LEVELS_COUNT] = { }; @@ -10,19 +12,22 @@ void initLevels(Levels * levels) { void startLevel(Game * game, Levels * levels, int levelNum) { levels->currentLevel = levelNum; + initWorld(&game->world); levelInfoList[levelNum].initCb(game, levels); } -void updateLevel(Game * game, Levels * levels) { +bool updateLevel(Game * game, Levels * levels) { if (levels->currentLevel != NO_LEVEL) - levelInfoList[levels->currentLevel].updateCb(game, levels); + return levelInfoList[levels->currentLevel].updateCb(game, levels); + + return false; } -void endLevel(Levels * levels) { +void endLevel(Game * game, Levels * levels) { if (levels->currentLevel != NO_LEVEL) levelInfoList[levels->currentLevel].closeCb(levels); + freeWorld(&game->world); levels->currentLevel = NO_LEVEL; levels->data = NULL; } - |