
#ifndef __CCHARACTERBASE_H__
#define __CCHARACTERBASE_H__

#include "..\CommonIncludes.h"
#include "..\..\00_HeaderFiles\00_ManagementClasses\CImageManager.h"
#include "..\..\00_HeaderFiles\00_ManagementClasses\CMapCellManager.h"

//==============================================================
//! @class CCharacterBase
//! @brief キャラクター基底クラス
//!     
//!     キャラクターの座標を取得するためのメンバ変数とメンバ関数、
//!     キャラクターの描画を行うメンバ関数だけを持っています。
//!     
//!     m_iGetterX, m_iGetterYは取得用なので
//!     キャラクターの座標を格納する変数は、派生クラスで実装します。
//!     
//==============================================================
class CCharacterBase
{
public:
	
	CCharacterBase( void );
	
	//! 基底クラスのデストラクタは仮想関数にします。
	virtual ~CCharacterBase( void );
	
	//! キャラクターのX座標を返却します。
	int GetterX( void ) const;
	
	//! キャラクターのY座標を返却します。
	int GetterY( void ) const;
	
protected:
	
	//! 座標取得用の変数です。
	//! 実際のキャラクターの座標との対応は派生クラスで行います。
	int m_iGetterX;
	
	//! 座標取得用の変数です。
	//! 実際のキャラクターの座標との対応は派生クラスで行います。
	int m_iGetterY;
	
	//==============================================================
	//! @brief 画像の描画を請け負います。
	//! 
	//!     マップ内の座標からゲーム画面の座標へ調整をしますが、
	//!     あとで座標変換用のクラスを作成する必要がありそうです。
	//==============================================================
	void DrawBase( CImageManager* arg_pinImageManager,
	               int arg_iX,
	               int arg_iY,
	               CImageManager::EImageID arg_eImageID );
	
};

#endif



