/*!
 * @file Door.h
 * @brief ゲーム中のトラップのプロトタイプ定義
 * @date 2014/01/26
 * @author Deskull
 * 2014 Sikabane Works.
 */

#include "stdafx.h"
#include "Coordinates.h"
#include "GameElement.h"

namespace Deeangband
{

/*! 
 * @class Door
 * @brief ドアのクラス
 */
class Door : public GameElement
{
private:

	ID floorID; //!<所在フロアID
	Coordinates position; //!<所在座標

	friend class boost::serialization::access;

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

public:

	/*! 
	 * @brief Doorクラスコンストラクタ(GameElementメンバ対応)
	 * @param id GameElementのID
	 * @param tag GameElementのタグ
	 * @param gameWorld 所属元gameWorld参照ポインタ
	 */
	Door::Door(ID id, TAG tag, GameWorld *gameWorld);

	Door::Door(void);

	Door::~Door(void);
};

}