#pragma once

#include "play/play.h"

#include "../resource/resource_shader.h"
#include "../resource/resource_texture.h"
#include "../resource/resource_font.h"
#include "../resource/resource_music.h"
#include "../resource/resource_sound.h"

static const ShaderType* STATE_SHADERS[STATE_COUNT] =
{
	PLAY_SHADERS
};

static const u32 STATE_SHADER_COUNT[STATE_COUNT] = 
{
	PLAY_SHADER_COUNT
};

static const TextureType* STATE_TEXTURES[STATE_COUNT] =
{
	PLAY_TEXTURES
};

static const u32 STATE_TEXTURE_COUNT[STATE_COUNT] =
{
	PLAY_TEXTURE_COUNT
};

static const FontType* STATE_FONTS[STATE_COUNT] =
{
	PLAY_FONTS
};

static const u32 STATE_FONT_COUNT[STATE_COUNT] =
{
	PLAY_FONT_COUNT
};

static const SoundType* STATE_SOUNDS[STATE_COUNT] =
{
	PLAY_SOUNDS
};

static const u32 STATE_SOUND_COUNT[STATE_COUNT] =
{
	PLAY_SOUND_COUNT
};

static const MusicType* STATE_MUSIC[STATE_COUNT] =
{
	PLAY_MUSIC
};

static const u32 STATE_MUSIC_COUNT[STATE_COUNT] =
{
	PLAY_MUSIC_COUNT
};

void state_change(State* state, StateType type);
void state_init(State* state, Game* game, StateType type);
void state_free(State* state);
