#if ( !defined(_ASTEROIDSENUMS_H) || defined(GENERATE_ENUM_STRINGS) )

#if ( !defined(GENERATE_ENUM_STRINGS))
	#define _ASTEROIDSENUMS_H
#endif

#include "EnumToString.h"

namespace asteroids {

BEGIN_ENUM(GameEntityType)
{
	DECL_ENUM_ELEMENT(GameEntityTypeUnknown),
	DECL_ENUM_ELEMENT(GameEntityTypeShip),
	DECL_ENUM_ELEMENT(GameEntityTypeRocket),
	DECL_ENUM_ELEMENT(GameEntityTypeAsteroid),
	DECL_ENUM_ELEMENT(GameEntityTypeShipPart),
	DECL_ENUM_LAST(GameEntityType)
}
END_ENUM(GameEntityType)

BEGIN_ENUM(ViewState)
{
	DECL_ENUM_ELEMENT(ViewStateMainMenu),
	DECL_ENUM_ELEMENT(ViewStateGameRunning),
	DECL_ENUM_ELEMENT(ViewStatePaused),
	DECL_ENUM_ELEMENT(ViewStatePlayerDied),
	DECL_ENUM_ELEMENT(ViewStateShipExplodeFade),
	DECL_ENUM_ELEMENT(ViewStateLevelComplete),
	DECL_ENUM_ELEMENT(ViewStateShowHighscore),
	DECL_ENUM_ELEMENT(ViewStateEnterPlayername),
	DECL_ENUM_ELEMENT(ViewStateEditor),
	DECL_ENUM_ELEMENT(ViewStateOptions),
	DECL_ENUM_ELEMENT(ViewStateGameOver),
	DECL_ENUM_LAST(ViewState)
}
END_ENUM(ViewState)

BEGIN_ENUM(GameState)
{
	DECL_ENUM_ELEMENT(GameStateRunning),
	DECL_ENUM_ELEMENT(GameStatePaused),
	DECL_ENUM_LAST(GameState)
}
END_ENUM(GameState)

}

#include "AsteroidsEvents.h"

#endif /* _ASTEROIDSENUMS_H */

