#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; };