/* The Halfling Project - A Graphics Engine and Projects
 *
 * The Halfling Project is the legal property of Adrian Astley
 * Copyright Adrian Astley 2013
 */

#ifndef CRATE_DEMO_GAME_STATE_MANAGER_H
#define CRATE_DEMO_GAME_STATE_MANAGER_H

#include "common/game_state_manager_base.h"


namespace CrateDemo {

class GameStateManager : public Common::GameStateManagerBase {
public:
	GameStateManager();

private:

public:
	bool Initialize();
	void Shutdown();
	/**
	 * Return the wanted period of time between update() calls.
	 *
	 * IE: If you want update to be called 20 times a second, this
	 * should return 50.
	 *
	 * NOTE: This should probably be inlined.
	 * NOTE: This will only be called at the beginning of HalflingEngine::Run()
	 * TODO: Contemplate the cost/benefit of calling this once per frame
	 *
	 * @return    The period in milliseconds
	 */
	inline double GetUpdatePeriod() { return 30.0; }
	/**
	 * Called every time the game logic should be updated. The frequency
	 * of this being called is determined by getUpdatePeriod()
	 */
	void Update();
	void GamePaused();
	void GameUnpaused();
};

} // End of namespace CrateDemo

#endif

/* The Halfling Project - A Graphics Engine and Projects
 *
 * The Halfling Project is the legal property of Adrian Astley
 * Copyright Adrian Astley 2013
 */

#ifndef CRATE_DEMO_GAME_STATE_MANAGER_H
#define CRATE_DEMO_GAME_STATE_MANAGER_H

#include "common/game_state_manager_interface.h"


namespace CrateDemo {

class GameStateManager : public Common::IGameStateManager {
public:
	GameStateManager();

private:

public:
	bool Initialize();
	void Shutdown();
	/**
	 * Return the wanted period of time between update() calls.
	 *
	 * IE: If you want update to be called 20 times a second, this
	 * should return 50.
	 *
	 * NOTE: This should probably be inlined.
	 * NOTE: This will only be called at the beginning of HalflingEngine::Run()
	 * TODO: Contemplate the cost/benefit of calling this once per frame
	 *
	 * @return    The period in milliseconds
	 */
	inline double GetUpdatePeriod() { return 30.0; }
	/**
	 * Called every time the game logic should be updated. The frequency
	 * of this being called is determined by getUpdatePeriod()
	 */
	void Update();
	void GamePaused();
	void GameUnpaused();
};

} // End of namespace CrateDemo

#endif

--- 
+++ 
@@ -7,12 +7,12 @@
 #ifndef CRATE_DEMO_GAME_STATE_MANAGER_H
 #define CRATE_DEMO_GAME_STATE_MANAGER_H
 
-#include "common/game_state_manager_interface.h"
+#include "common/game_state_manager_base.h"
 
 
 namespace CrateDemo {
 
-class GameStateManager : public Common::IGameStateManager {
+class GameStateManager : public Common::GameStateManagerBase {
 public:
 	GameStateManager();
 
CRATE_DEMO: Update GameStateManager to use new base class name
