aboutsummaryrefslogtreecommitdiff
path: root/src/levels.h
diff options
context:
space:
mode:
authornathansmithsmith <nathansmith7@mailfence.com>2023-10-01 19:36:15 -0600
committernathansmithsmith <nathansmith7@mailfence.com>2023-10-01 19:36:15 -0600
commit939c371224e94f0ea4bdfb5f67e50b7ab943127c (patch)
treee786f0c2c551a0d4ea6ebf64878a293a85778d69 /src/levels.h
parente68a40c4da4093a51ea7596757413ca4964ff51f (diff)
Worked on levels a bit more
Diffstat (limited to 'src/levels.h')
-rw-r--r--src/levels.h21
1 files changed, 13 insertions, 8 deletions
diff --git a/src/levels.h b/src/levels.h
index 8630757..d349a93 100644
--- a/src/levels.h
+++ b/src/levels.h
@@ -7,16 +7,15 @@
#define LEVELS_COUNT 1
-typedef struct Level Level;
+typedef struct Levels Levels;
-typedef void (*LevelInitCb)(Game * game, Level * level);
-typedef void (*LevelUpdateCb)(Game * game, Level * level);
+typedef void (*LevelInitCb)(Game * game, Levels * levels);
+typedef bool (*LevelUpdateCb)(Game * game, Levels * levels); // Returns true when level is complete
-typedef struct Level {
- WorldEntry * entries;
- size_t entriesCount;
- LevelUpdateCb updateCb;
-} Level;
+typedef struct Levels {
+ int currentLevel;
+ void * data; // Null if not used.
+} Levels;
typedef struct LevelInfo {
LevelInitCb initCb;
@@ -25,4 +24,10 @@ typedef struct LevelInfo {
extern const LevelInfo levelInfoList[LEVELS_COUNT];
+void initLevels(Levels * levels);
+void freeLevels(Levels * levels);
+
+void startLevel(Game * game, Levels * levels, int levelNum);
+void endLevel(Levels * levels);
+
#endif