CSCommon: MQuestMap.h 소스 파일

MAIET

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