55 lines
907 B
C
55 lines
907 B
C
#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;
|