aboutsummaryrefslogtreecommitdiff
path: root/src/levels.h
diff options
context:
space:
mode:
authornathansmithsmith <nathansmith7@mailfence.com>2023-10-01 19:46:39 -0600
committernathansmithsmith <nathansmith7@mailfence.com>2023-10-01 19:46:39 -0600
commitf22a4557c99a8541d2ce3e3f8b61db5a33f4240b (patch)
tree18c357ac65d1e006307160fb693e9cdfe71ea401 /src/levels.h
parent939c371224e94f0ea4bdfb5f67e50b7ab943127c (diff)
Better design for level handling
Diffstat (limited to 'src/levels.h')
-rw-r--r--src/levels.h7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/levels.h b/src/levels.h
index d349a93..5d0546f 100644
--- a/src/levels.h
+++ b/src/levels.h
@@ -7,9 +7,12 @@
#define LEVELS_COUNT 1
+#define NO_LEVEL -1
+
typedef struct Levels Levels;
typedef void (*LevelInitCb)(Game * game, Levels * levels);
+typedef void (*LevelCloseCb)(Levels * levels);
typedef bool (*LevelUpdateCb)(Game * game, Levels * levels); // Returns true when level is complete
typedef struct Levels {
@@ -19,15 +22,15 @@ typedef struct Levels {
typedef struct LevelInfo {
LevelInitCb initCb;
+ LevelCloseCb closeCb;
LevelUpdateCb updateCb;
} LevelInfo;
extern const LevelInfo levelInfoList[LEVELS_COUNT];
void initLevels(Levels * levels);
-void freeLevels(Levels * levels);
-
void startLevel(Game * game, Levels * levels, int levelNum);
+void updateLevel(Game * game, Levels * levels);
void endLevel(Levels * levels);
#endif