#pragma once

#include <string>
using namespace std;

class GameWindow;

class GameState
{
	friend class GameStateManager;
private:
	wstring name;
	GameWindow *window;

public:
	GameState(GameWindow *win, wstring _name);
	virtual ~GameState(void);

	virtual void Initial() { }
	virtual void Update(float dt) { }
	virtual void Draw(float dt) { }
	virtual void Destroy() { }

public:
	GameWindow* GetWindow() { return window; }
};