/*!
* @file Stair.h
* @brief ゲーム中の階段のプロトタイプ
* @date 2014/01/26
* @author Deskull
* 2014 Sikabane Works.
*/

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

namespace Deeangband
{

	/*! 
	* @class Stair
	* @brief 階段のクラス
	*/
	class Stair : public GameElement
	{
	private:
		ID floorID1; //!<接続フロアID1
		ID floorID2; //!<接続フロアID2
		Coordinates position1; //!<接続座標1
		Coordinates position2; //!<接続座標2

		friend class boost::serialization::access;
		template<class Archive> void serialize(Archive &archive, const unsigned int) 
		{
			archive & BOOST_SERIALIZATION_NVP(floorID1);
			archive & BOOST_SERIALIZATION_NVP(floorID2);
			archive & BOOST_SERIALIZATION_NVP(position1);
			archive & BOOST_SERIALIZATION_NVP(position2);
		}

	public:

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

		Stair::Stair(void);

		Stair::~Stair(void);
	};

}