diff options
Diffstat (limited to 'src/levels')
| -rw-r--r-- | src/levels/level10.c | 66 | ||||
| -rw-r--r-- | src/levels/level10.h | 15 | 
2 files changed, 81 insertions, 0 deletions
diff --git a/src/levels/level10.c b/src/levels/level10.c new file mode 100644 index 0000000..371928a --- /dev/null +++ b/src/levels/level10.c @@ -0,0 +1,66 @@ +#include "level10.h" +#include "game.h" +#include "world.h" +#include "entity.h" +#include "entityGrouping.h" + +void initLevel10(Game * game, Levels * levels) { +    levels->data = KF_MALLOC(sizeof(Level10)); + +    if (levels->data == NULL) { +        ALLOCATION_ERROR; +        return; +    } + +    Level10 * data = (Level10*)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, -800.0}, QuaternionIdentity()}, +		(WorldEntry){ENTITY_GENERALE, (Vector3){-800.0, -800.0, -800.0}, QuaternionIdentity()} +	 }; + +    addEntriesToWorld( +		&game->world, +		game, +		entries, +		sizeof(entries) / sizeof(WorldEntry) +	); +} + +void closelevel10(Levels * levels) { +    if (levels->data != NULL) +        KF_FREE(levels->data); +} + +bool updateLevel10(Game * game, Levels * levels) { +   Level10 * data = (Level10*)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) { +               data->stage = 2; +            } + +            break; +        case 2: +            if (game->world.entitiesCount == 1) { +                levelDone = true; +            } + +            break; +        default: +            levelDone = true; +            break; +    } + +   return levelDone; +} diff --git a/src/levels/level10.h b/src/levels/level10.h new file mode 100644 index 0000000..32c7811 --- /dev/null +++ b/src/levels/level10.h @@ -0,0 +1,15 @@ +#include "gameCommon.h" +#include "levels.h" + +#ifndef LEVEL10_H +#define LEVEL10_H + +typedef struct Level10 { +    int stage; +} Level10; + +void initLevel10(Game * game, Levels * levels); +void closelevel10(Levels * levels); +bool updateLevel10(Game * game, Levels * levels); + +#endif  | 
