/*!
* @file GameEngine.h
* @brief ゲームエンジンのプロトタイプ宣言
* @date 2013/04/13
* @author Deskull
* 2013-2014 Sikabane Works.
*/

#pragma once

#include "stdafx.h"
#include "Deeangband.h"

#include "Coordinates.h"
#include "GameCampaign.h"
#include "Direction.h"
#include "GameWorld.h"
#include "GameSurface.h"
#include "GameSurfaceSDL.h"
#include "GameLogger.h"

namespace Deeangband
{

	class GameEngine
	{
	private:
		GameWorld *gameWorld; //!< GameWorldの参照ポインタ
		GameSurface *gameSurface; //!< GameSurfaceの参照ポインタ
		GameLogger *gameLogger; //!< GameLoggerの参照ポインタ

	public:
		GameEngine::GameEngine();

		/*
		* @brief プレイ処理メインループ
		* @return ゲーム終了コード
		*/
		PLAY_EXIT_CODE GameEngine::PlayLoop(void);

		/*
		* @brief 受け取ったゲームコマンドを処理する
		* @param command 実行するゲームコマンド
		* @return ゲーム終了コード
		*/
		PLAY_EXIT_CODE GameEngine::DoGameCommand(GAME_COMMAND command);
	};
}
