aboutsummaryrefslogtreecommitdiff
path: root/src/levels.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/levels.c')
-rw-r--r--src/levels.c13
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;
}
-