diff options
author | nathansmithsmith <thenathansmithsmith@gmail.com> | 2023-12-11 14:12:52 -0700 |
---|---|---|
committer | nathansmithsmith <thenathansmithsmith@gmail.com> | 2023-12-11 14:12:52 -0700 |
commit | b2fbf16102fa3b9e7d248e9ab217d72566702a55 (patch) | |
tree | b1def48bf465f52f812d47e9acc492a4b8fa3cd7 /src | |
parent | 1cc72bfcef218c3ae6051d42a5888fe204b518e0 (diff) |
More level stuff
Diffstat (limited to 'src')
-rw-r--r-- | src/levels/level8.c | 37 | ||||
-rw-r--r-- | src/levels/level8.h | 4 |
2 files changed, 39 insertions, 2 deletions
diff --git a/src/levels/level8.c b/src/levels/level8.c index b132c76..2e86726 100644 --- a/src/levels/level8.c +++ b/src/levels/level8.c @@ -5,9 +5,19 @@ #include "entityGrouping.h" void initLevel8(Game * game, Levels * levels) { + levels->data = KF_MALLOC(sizeof(Level8)); + + if (levels->data == NULL) { + ALLOCATION_ERROR; + return; + } + + Level8 * data = (Level8*)levels->data; + data->stage = 0; + WorldEntry entries[] = { (WorldEntry){ENTITY_ANTIFA, (Vector3){0.0, 0.0, 0.0}, QuaternionIdentity()}, - (WorldEntry){ENTITY_GENERALE, (Vector3){0.0, 0.0, 300.0}, QuaternionIdentity()} + (WorldEntry){ENTITY_GENERALE, (Vector3){0.0, 0.0, 700.0}, QuaternionIdentity()} }; addEntriesToWorld( @@ -19,8 +29,31 @@ void initLevel8(Game * game, Levels * levels) { } void closelevel8(Levels * levels) { + if (levels->data != NULL) + KF_FREE(levels->data); } bool updateLevel8(Game * game, Levels * levels) { - return game->world.entitiesCount == 1; + Level8 * data = (Level8*)levels->data; + bool levelDone = false; + + switch (data->stage) { + case 0: + if (game->world.entitiesCount == 1) { + data->stage = 1; + } + + break; + case 1: + if (game->world.entitiesCount == 1) { + levelDone = true; + } + + break; + default: + levelDone = true; + break; + } + + return levelDone; } diff --git a/src/levels/level8.h b/src/levels/level8.h index b2bbdc9..e2debb1 100644 --- a/src/levels/level8.h +++ b/src/levels/level8.h @@ -4,6 +4,10 @@ #ifndef LEVEL8_H #define LEVEL8_H +typedef struct Level8 { + int stage; +} Level8; + void initLevel8(Game * game, Levels * levels); void closelevel8(Levels * levels); bool updateLevel8(Game * game, Levels * levels); |