aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornathansmithsmith <nathansmith7@mailfence.com>2023-10-02 21:27:41 -0600
committernathansmithsmith <nathansmith7@mailfence.com>2023-10-02 21:27:41 -0600
commit2bd87ba9d98973e59e89fab4be60ce4ef4cf95ae (patch)
tree2e8e9e17c79115bf3d1b9d7e01297330a9e2f774
parent5b03b11020a39790b81a00cf5cae8f04bc4caffa (diff)
Now using the level handler
-rw-r--r--CMakeLists.txt2
-rw-r--r--src/game.c28
-rw-r--r--src/game.h2
-rw-r--r--src/levels.c3
-rw-r--r--src/levels.h2
-rw-r--r--src/levels/level1.c11
-rw-r--r--src/levels/testLevel.c25
-rw-r--r--src/levels/testLevel.h11
-rw-r--r--src/levelsInclude.h1
9 files changed, 61 insertions, 24 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 6f9e256..991753a 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -8,7 +8,7 @@ set(C_STANDARD_REQUIRED ON)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
# Add source files.
-file(GLOB SRC_FILES src/*.c src/entities/*.c)
+file(GLOB SRC_FILES src/*.c src/entities/*.c src/levels/*.c)
add_executable(${PROJECT_NAME} ${SRC_FILES})
diff --git a/src/game.c b/src/game.c
index b552b73..4f36d6a 100644
--- a/src/game.c
+++ b/src/game.c
@@ -36,17 +36,21 @@ void initGame(Game * game) {
// entries[i] = (WorldEntry){ENTITY_SOLDATO, (Vector3){0.0, 0.0, i*10}, QuaternionIdentity()};
// }
- WorldEntry entries[2] = {
- (WorldEntry){ENTITY_ANTIFA, (Vector3){0.0, 0.0, 0.0}, QuaternionIdentity()},
- (WorldEntry){ENTITY_MUSSOLINI, (Vector3){0.0, 0.0, 200.0}, QuaternionIdentity()}
- };
-
- addEntriesToWorld(
- &game->world,
- game,
- entries,
- sizeof(entries) / sizeof(WorldEntry)
- );
+ // WorldEntry entries[2] = {
+ // (WorldEntry){ENTITY_ANTIFA, (Vector3){0.0, 0.0, 0.0}, QuaternionIdentity()},
+ // (WorldEntry){ENTITY_MUSSOLINI, (Vector3){0.0, 0.0, 200.0}, QuaternionIdentity()}
+ // };
+ //
+ // addEntriesToWorld(
+ // &game->world,
+ // game,
+ // entries,
+ // sizeof(entries) / sizeof(WorldEntry)
+ // );
+
+ // Levels.
+ initLevels(&game->levels);
+ startLevel(game, &game->levels, 0);
}
void closeGame(Game * game) {
@@ -54,6 +58,8 @@ void closeGame(Game * game) {
freeWorld(&game->world);
freeGameScreen(&game->gameScreen);
+ endLevel(game, &game->levels);
+
// Close window last.
CloseWindow();
}
diff --git a/src/game.h b/src/game.h
index 7149e4d..fd84c74 100644
--- a/src/game.h
+++ b/src/game.h
@@ -7,6 +7,7 @@
#include "world.h"
#include "settings.h"
#include "bullets.h"
+#include "levels.h"
#ifndef GAME_H
#define GAME_H
@@ -23,6 +24,7 @@ typedef struct Game {
Cameras cameras;
Assets assets;
World world;
+ Levels levels;
Settings settings;
} Game;
diff --git a/src/levels.c b/src/levels.c
index c5083eb..50034c1 100644
--- a/src/levels.c
+++ b/src/levels.c
@@ -1,8 +1,11 @@
#include "levels.h"
#include "game.h"
#include "world.h"
+#include "levelsInclude.h"
const LevelInfo levelInfoList[LEVELS_COUNT] = {
+ (LevelInfo){initTestLevel, closeTestLevel, updateTestLevel},
+ (LevelInfo){initLevel1, closelevel1, updateLevel1}
};
void initLevels(Levels * levels) {
diff --git a/src/levels.h b/src/levels.h
index 3277f62..07544d0 100644
--- a/src/levels.h
+++ b/src/levels.h
@@ -5,7 +5,7 @@
#ifndef LEVELS_H
#define LEVELS_H
-#define LEVELS_COUNT 1
+#define LEVELS_COUNT 2
#define NO_LEVEL -1
diff --git a/src/levels/level1.c b/src/levels/level1.c
index eb9695e..f473c85 100644
--- a/src/levels/level1.c
+++ b/src/levels/level1.c
@@ -4,17 +4,6 @@
#include "entity.h"
void initLevel1(Game * game, Levels * levels) {
- WorldEntry entries[] = {
- (WorldEntry){ENTITY_ANTIFA, (Vector3){0.0, 0.0, 0.0}, QuaternionIdentity()},
- (WorldEntry){ENTITY_MUSSOLINI, (Vector3){0.0, 0.0, 200.0}, QuaternionIdentity()}
- };
-
- addEntriesToWorld(
- &game->world,
- game,
- entries,
- sizeof(entries) / sizeof(WorldEntry)
- );
}
void closelevel1(Levels * levels) {
diff --git a/src/levels/testLevel.c b/src/levels/testLevel.c
new file mode 100644
index 0000000..f036b1f
--- /dev/null
+++ b/src/levels/testLevel.c
@@ -0,0 +1,25 @@
+#include "testLevel.h"
+#include "game.h"
+#include "world.h"
+
+void initTestLevel(Game * game, Levels * levels) {
+ WorldEntry entries[] = {
+ (WorldEntry){ENTITY_ANTIFA, (Vector3){0.0, 0.0, 0.0}, QuaternionIdentity()},
+ (WorldEntry){ENTITY_MUSSOLINI, (Vector3){0.0, 0.0, 200.0}, QuaternionIdentity()}
+ };
+
+ addEntriesToWorld(
+ &game->world,
+ game,
+ entries,
+ sizeof(entries) / sizeof(WorldEntry)
+ );
+}
+
+void closeTestLevel(Levels * levels) {
+}
+
+bool updateTestLevel(Game * game, Levels * levels) {
+ return false;
+}
+
diff --git a/src/levels/testLevel.h b/src/levels/testLevel.h
new file mode 100644
index 0000000..eb7c470
--- /dev/null
+++ b/src/levels/testLevel.h
@@ -0,0 +1,11 @@
+#include "gameCommon.h"
+#include "levels.h"
+
+#ifndef TEST_LEVEL_H
+#define TEST_LEVEL_H
+
+void initTestLevel(Game * game, Levels * levels);
+void closeTestLevel(Levels * levels);
+bool updateTestLevel(Game * game, Levels * levels);
+
+#endif
diff --git a/src/levelsInclude.h b/src/levelsInclude.h
index 54e6c5f..24c0027 100644
--- a/src/levelsInclude.h
+++ b/src/levelsInclude.h
@@ -1,3 +1,4 @@
+#include "levels/testLevel.h"
#include "levels/level1.h"
// As you can tell I fucking hate your stupid fat ass