/*!
*  @file GameMessage.h
*  @brief ゲーム中メッセージのプロトタイプ
*  @date 2014/06/28
*  @author Deskull
*  2014 Sikabane Works.
*/

#pragma once

#include "stdafx.h"

namespace Deeangband
{
	/*!
	 * ゲームメッセージ種別
	 */
	typedef enum GAMEMESSAGE_TYPE
	{
		GAMEMESSAGE_NORMAL,
	} GAMEMESSAGE_TYPE;


	/*!
	* @class GameMessage
	* @brief ゲーム中メッセージのクラス
	*/
	class GameMessage
	{
	private:

		std::string message;
		GAMEMESSAGE_TYPE type;

		friend class boost::serialization::access;

		/*!
		* @brief クラスのシリアライズを設定する
		* @param archive アーカイブ化するクラスのアドレス
		* @param version ファイルバージョン
		* @return XMLSerializeテンプレート
		*/
		template<class Archive> void serialize(Archive &archive, const unsigned int version) 
		{
			if(version >= 0)
			{
			}
		}

	public:

		/*! 
		* @brief GameMessageクラスコンストラクタ
		*/
		GameMessage::GameMessage(std::string message, GAMEMESSAGE_TYPE type);

		/*! 
		* @brief GameMessageクラスデストラクタ
		*/
		GameMessage::~GameMessage(void);

		/*! 
		* @brief メッセージ本体を取得する
		* @return メッセージ本来ポインタ
		*/
		std::string *GameMessage::GetMessage(void);

		/*! 
		* @brief メッセージ種別を取得する
		* @return メッセージ種別
		*/
		GAMEMESSAGE_TYPE GameMessage::GetType(void);

	};

}

BOOST_CLASS_VERSION(Deeangband::GameMessage, 10);
