#include "levels.h" #include "game.h" #include "world.h" #include "killLog.h" #include "levelsInclude.h" const LevelInfo levelInfoList[LEVELS_COUNT] = { (LevelInfo){initLevel1, closelevel1, updateLevel1}, (LevelInfo){initLevel2, closelevel2, updateLevel2}, (LevelInfo){initLevel3, closelevel3, updateLevel3}, (LevelInfo){initTestLevel, closeTestLevel, updateTestLevel} }; void initLevels(Levels * levels) { levels->currentLevel = NO_LEVEL; levels->data = NULL; } void startLevel(Game * game, Levels * levels, int levelNum) { levels->currentLevel = levelNum; resetKillLog(&game->killLog); initWorld(&game->world); levelInfoList[levelNum].initCb(game, levels); } bool updateLevel(Game * game, Levels * levels) { if (levels->currentLevel != NO_LEVEL) return levelInfoList[levels->currentLevel].updateCb(game, levels); return false; } 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; }