#pragma once #include "level/level.h" #include "cutscene/cutscene.h" #include "title/title.h" #include "ending/ending.h" #include "../resource/resource_texture.h" #define LEVEL_COUNT (LEVEL_FIVE + 1) typedef enum LevelType { LEVEL_ONE, LEVEL_TWO, LEVEL_THREE, LEVEL_FOUR, LEVEL_FIVE } LevelType; #define STATE_COUNT (STATE_CUTSCENE_THREE + 1) typedef enum StateType { STATE_TITLE, STATE_CUTSCENE_ONE, STATE_CUTSCENE_TWO, STATE_CUTSCENE_THREE, STATE_CUTSCENE_FOUR, STATE_CUTSCENE_FIVE, STATE_CUTSCENE_FINAL, STATE_ENDING, STATE_ENDING_TWO, STATE_ENDING_THREE, STATE_LEVEL_ONE, STATE_LEVEL_TWO, STATE_LEVEL_THREE, STATE_LEVEL_FOUR, STATE_LEVEL_FIVE } StateType; typedef struct State { ECS* ecs; StateType type; StateType setType; bool isChanging; LevelData levelData[LEVEL_COUNT]; union { Level level; Title title; Cutscene cutscene; Ending ending; } states; } State;