class IScreen
{
p1ublic:
virtual void onEnter() = 0;
virtual void onUpdate() = 0;
virtual void onExit() = 0;
}
class View
{
public:
View();
void changeScreenTo(std::string aNewScreen);
private:
std::map<std::string, std::unique_ptr<IScreen>> mScreens;
IScreen* mCurrentScreen;
}
View::View()
{
mScreens.insert( ScreenBattle().getName(), std::make_unique<ScreenBattle>() );
mScreens.insert( ScreenMainMenu().getName(), std::make_unique<ScreenMainMenu>() );
mScreens.insert( ScreenUpgrade().getName(), std::make_unique<ScreenUpgrade>() );