aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authornathansmithsmith <thenathansmithsmith@gmail.com>2023-12-11 14:12:52 -0700
committernathansmithsmith <thenathansmithsmith@gmail.com>2023-12-11 14:12:52 -0700
commitb2fbf16102fa3b9e7d248e9ab217d72566702a55 (patch)
treeb1def48bf465f52f812d47e9acc492a4b8fa3cd7 /src
parent1cc72bfcef218c3ae6051d42a5888fe204b518e0 (diff)
More level stuff
Diffstat (limited to 'src')
-rw-r--r--src/levels/level8.c37
-rw-r--r--src/levels/level8.h4
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);