Initial commit: client source
This commit is contained in:
@@ -0,0 +1,64 @@
|
||||
#pragma once
|
||||
|
||||
class CMapBase : public CScreen
|
||||
{
|
||||
public:
|
||||
enum EMAPTYPE
|
||||
{
|
||||
MAPTYPE_INVALID,
|
||||
MAPTYPE_INDOOR,
|
||||
MAPTYPE_OUTDOOR,
|
||||
};
|
||||
|
||||
public:
|
||||
CMapBase();
|
||||
virtual ~CMapBase();
|
||||
|
||||
virtual void Clear();
|
||||
virtual bool Initialize() = 0;
|
||||
virtual bool Destroy() = 0;
|
||||
virtual bool Load(float x, float y, float z) = 0;
|
||||
|
||||
virtual bool Update(float fX, float fY, float fZ) = 0;
|
||||
virtual void UpdateAroundAmbience(float fX, float fY, float fZ) = 0;
|
||||
virtual float GetHeight(float fx, float fy) = 0;
|
||||
virtual void OnBeginEnvironment() = 0; // 렌더링 할 때 불려지며 여기서 Environment에 관련 있는 것들을 셋팅 한다.
|
||||
|
||||
virtual void ApplyLight(DWORD dwVersion, const D3DLIGHT8& c_rkLight) = 0;
|
||||
|
||||
protected:
|
||||
virtual void OnRender() = 0;
|
||||
virtual void OnSetEnvironmentDataPtr() = 0; // Environment 데이터가 설정될 때 불려진다.
|
||||
virtual void OnResetEnvironmentDataPtr() = 0;
|
||||
|
||||
public:
|
||||
void Render();
|
||||
void SetEnvironmentDataPtr(const TEnvironmentData * c_pEnvironmentData);
|
||||
void ResetEnvironmentDataPtr(const TEnvironmentData * c_pEnvironmentData);
|
||||
bool Enter();
|
||||
bool Leave();
|
||||
bool IsReady() { return m_bReady; }
|
||||
|
||||
bool LoadProperty();
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
// Setting
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
EMAPTYPE GetType() const { return m_eType; }
|
||||
void SetType(EMAPTYPE eType) { m_eType = eType; }
|
||||
|
||||
const std::string & GetName() const { return m_strName; }
|
||||
void SetName(const std::string & cr_strName) { m_strName = cr_strName; }
|
||||
|
||||
bool IsCopiedMap() const { return m_strParentMapName.length() > 0; } // "원본 데이터는 따로 있는" 복사 맵인가?
|
||||
const std::string& GetParentMapName() const { return m_strParentMapName; } // 원본 데이터를 갖고있는 맵의 이름을 리턴 (복사맵의 경우 필수로 세팅되어야 함)
|
||||
const std::string& GetMapDataDirectory() const { return IsCopiedMap() ? m_strParentMapName : m_strName; }
|
||||
|
||||
protected:
|
||||
EMAPTYPE m_eType; // 맵 종류... 현재는 Indoor와 Ourdoor가 있다.
|
||||
std::string m_strName; // 맵 이름. 맵 이름이 맵 식별자가 될 수 있을까?
|
||||
std::string m_strParentMapName; // 원본 맵의 이름. 이 값이 세팅되어 있다면 실제 모든 맵 데이터는 ParentMap/* 경로에서 읽어온다. 맵의 일부만 읽어오는 기능은 필요없대서 패스.
|
||||
bool m_bReady;
|
||||
|
||||
const TEnvironmentData * mc_pEnvironmentData;
|
||||
};
|
||||
Reference in New Issue
Block a user