diff options
author | nathansmithsmith <nathansmith7@mailfence.com> | 2023-10-02 11:51:45 -0600 |
---|---|---|
committer | nathansmithsmith <nathansmith7@mailfence.com> | 2023-10-02 11:51:45 -0600 |
commit | 5b03b11020a39790b81a00cf5cae8f04bc4caffa (patch) | |
tree | 51648dc53d017c613bbffad56fca6fc7133a761f /src | |
parent | f22a4557c99a8541d2ce3e3f8b61db5a33f4240b (diff) |
Started using the level handler
Diffstat (limited to 'src')
-rw-r--r-- | src/levels.c | 13 | ||||
-rw-r--r-- | src/levels.h | 4 | ||||
-rw-r--r-- | src/levels/level1.c | 26 | ||||
-rw-r--r-- | src/levels/level1.h | 11 | ||||
-rw-r--r-- | src/levelsInclude.h | 3 | ||||
-rw-r--r-- | src/world.c | 2 |
6 files changed, 53 insertions, 6 deletions
diff --git a/src/levels.c b/src/levels.c index 221da15..c5083eb 100644 --- a/src/levels.c +++ b/src/levels.c @@ -1,4 +1,6 @@ #include "levels.h" +#include "game.h" +#include "world.h" const LevelInfo levelInfoList[LEVELS_COUNT] = { }; @@ -10,19 +12,22 @@ void initLevels(Levels * levels) { void startLevel(Game * game, Levels * levels, int levelNum) { levels->currentLevel = levelNum; + initWorld(&game->world); levelInfoList[levelNum].initCb(game, levels); } -void updateLevel(Game * game, Levels * levels) { +bool updateLevel(Game * game, Levels * levels) { if (levels->currentLevel != NO_LEVEL) - levelInfoList[levels->currentLevel].updateCb(game, levels); + return levelInfoList[levels->currentLevel].updateCb(game, levels); + + return false; } -void endLevel(Levels * levels) { +void endLevel(Game * game, Levels * levels) { if (levels->currentLevel != NO_LEVEL) levelInfoList[levels->currentLevel].closeCb(levels); + freeWorld(&game->world); levels->currentLevel = NO_LEVEL; levels->data = NULL; } - diff --git a/src/levels.h b/src/levels.h index 5d0546f..3277f62 100644 --- a/src/levels.h +++ b/src/levels.h @@ -30,7 +30,7 @@ extern const LevelInfo levelInfoList[LEVELS_COUNT]; void initLevels(Levels * levels); void startLevel(Game * game, Levels * levels, int levelNum); -void updateLevel(Game * game, Levels * levels); -void endLevel(Levels * levels); +bool updateLevel(Game * game, Levels * levels); // Returns true on end of level +void endLevel(Game * game, Levels * levels); #endif diff --git a/src/levels/level1.c b/src/levels/level1.c new file mode 100644 index 0000000..eb9695e --- /dev/null +++ b/src/levels/level1.c @@ -0,0 +1,26 @@ +#include "level1.h" +#include "game.h" +#include "world.h" +#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) { +} + +bool updateLevel1(Game * game, Levels * levels) { + return false; +} + diff --git a/src/levels/level1.h b/src/levels/level1.h new file mode 100644 index 0000000..58a7b2c --- /dev/null +++ b/src/levels/level1.h @@ -0,0 +1,11 @@ +#include "gameCommon.h" +#include "levels.h" + +#ifndef LEVEL1_H +#define LEVEL1_H + +void initLevel1(Game * game, Levels * levels); +void closelevel1(Levels * levels); +bool updateLevel1(Game * game, Levels * levels); + +#endif diff --git a/src/levelsInclude.h b/src/levelsInclude.h new file mode 100644 index 0000000..54e6c5f --- /dev/null +++ b/src/levelsInclude.h @@ -0,0 +1,3 @@ +#include "levels/level1.h" + +// As you can tell I fucking hate your stupid fat ass diff --git a/src/world.c b/src/world.c index c34f17b..0148043 100644 --- a/src/world.c +++ b/src/world.c @@ -40,6 +40,8 @@ void freeWorld(World * world) { if (world->vacantIds != NULL) KF_FREE(world->vacantIds); + + world->entities = NULL; } // Not for direct use. |