/*!
* @file HaveSymbol.h
* @brief シンボル保持抽象クラスのプロトタイプ宣言
* @date 2014/06/11
* @author Deskull
* 2014 Sikabane Works.
*/

#pragma once

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

namespace Deeangband
{

	/*! 
	* @class HaveSymbol
	* @brief シンボル保持抽象クラス
	*/
	class HaveSymbol
	{
	private:


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

	protected:

		SYMBOL symbol;     //!< シンボルキャラ
		Color symbolColor; //!< シンボルカラー
		Color backColor;   //!< 背景カラー
		ID tileID;         //!< タイルID

	public:

		/*! 
		 * @brief HaveSymbolクラスコンストラクタ
		 */
		HaveSymbol::HaveSymbol(void);

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

		/*! 
		 * @brief HaveSymbolデータ初期化
		 */
		void HaveSymbol::WipeData(void);

		/*!
		 * @brief シンボルを返す
		 * @return シンボル
		 */
		SYMBOL HaveSymbol::GetSymbol(void);

		/*!
		 * @brief シンボルカラーを返す
		 * @return シンボルカラー
		 */
		Color HaveSymbol::GetSymbolColor(void);

		/*!
		 * @brief 背景カラーを返す
		 * @return 背景カラー
		 */
		Color HaveSymbol::GetBackColor(void);

		/*!
		 * @brief 背景カラーを返す
		 * @return 背景カラー
		 */
		ID HaveSymbol::GetTileID(void);
	};
}

