MQuestMap.h
00001 #ifndef _MQUEST_MAP_H 00002 #define _MQUEST_MAP_H 00003 00004 00005 #include "MQuestConst.h" 00006 00008 struct MQuestSectorLink 00009 { 00010 char szName[64]; 00011 vector<int> vecTargetSectors; 00012 MQuestSectorLink() 00013 { 00014 szName[0] = 0; 00015 } 00016 }; 00017 00018 00020 struct MQuestSectorBacklink 00021 { 00022 int nSectorID; 00023 int nLinkIndex; 00024 }; 00025 00026 00028 struct MQuestMapSectorInfo 00029 { 00030 int nID; 00031 char szTitle[64]; 00032 bool bBoss; 00033 int nLinkCount; 00034 MQuestSectorLink Links[MAX_SECTOR_LINK]; 00035 vector<MQuestSectorBacklink> VecBacklinks; 00036 int nSpawnPointCount[MNST_END]; 00037 00038 MQuestMapSectorInfo() 00039 { 00040 nID = -1; 00041 szTitle[0] = 0; 00042 nLinkCount = 0; 00043 bBoss = false; 00044 memset(nSpawnPointCount, 0, sizeof(nSpawnPointCount)); 00045 } 00046 }; 00047 00048 00050 struct MQuestMapsetInfo 00051 { 00052 int nID; 00053 char szTitle[64]; 00054 int nLinkCount; 00055 vector<int> vecSectors; 00056 00057 MQuestMapsetInfo() 00058 { 00059 nID = -1; 00060 szTitle[0] = 0; 00061 nLinkCount = 0; 00062 } 00063 }; 00064 00065 00067 class MQuestMapCatalogue 00068 { 00069 private: 00070 typedef std::map<int, MQuestMapsetInfo*> MQuestMapsetMap; 00071 typedef std::map<int, MQuestMapSectorInfo*> MQuestMapSectorMap; 00072 00073 // 멤버 변수 00074 MQuestMapsetMap m_MapsetInfo; 00075 MQuestMapSectorMap m_SectorInfo; 00076 00077 // 함수 00078 void InsertMapset(MQuestMapsetInfo* pMapset); 00079 void InsertSector(MQuestMapSectorInfo* pSector); 00080 void ParseMapset(MXmlElement& element); 00081 void ParseMapsetSector1Pass(MXmlElement& elementMapset, MQuestMapsetInfo* pMapset); 00082 void ParseSector(MXmlElement& element, MQuestMapSectorInfo* pSector); 00083 void InitBackLinks(); 00084 public: 00085 MQuestMapCatalogue(); 00086 ~MQuestMapCatalogue(); 00087 00088 void Clear(); 00089 bool ReadXml(const char* szFileName); 00090 bool ReadXml(MZFileSystem* pFileSystem,const char* szFileName); 00091 void DebugReport(); 00092 00093 MQuestMapSectorInfo* GetSectorInfo(int nSector); 00094 MQuestMapsetInfo* GetMapsetInfo(int nMapset); 00095 MQuestMapSectorInfo* GetSectorInfoFromName(char* szSectorTitle); 00096 }; 00097 00098 00099 00100 00101 00102 #endif
MAIET entertainment