forked from metin2/client
49 lines
1.2 KiB
C++
49 lines
1.2 KiB
C++
#pragma once
|
|
|
|
#include "RaceData.h"
|
|
|
|
class CRaceManager : public CSingleton<CRaceManager>
|
|
{
|
|
public:
|
|
typedef std::map<DWORD, CRaceData *> TRaceDataMap;
|
|
typedef TRaceDataMap::iterator TRaceDataIterator;
|
|
|
|
public:
|
|
CRaceManager();
|
|
virtual ~CRaceManager();
|
|
|
|
void Create();
|
|
void Destroy();
|
|
|
|
void RegisterRaceName(DWORD dwRaceIndex, const char * c_szName);
|
|
void RegisterRaceSrcName(const char * c_szName, const char * c_szSrcName);
|
|
|
|
void SetPathName(const char * c_szPathName);
|
|
const char * GetFullPathFileName(const char* c_szFileName);
|
|
|
|
// Handling
|
|
void CreateRace(DWORD dwRaceIndex);
|
|
void SelectRace(DWORD dwRaceIndex);
|
|
CRaceData * GetSelectedRaceDataPointer();
|
|
// Handling
|
|
|
|
BOOL GetRaceDataPointer(DWORD dwRaceIndex, CRaceData ** ppRaceData);
|
|
|
|
|
|
protected:
|
|
CRaceData* __LoadRaceData(DWORD dwRaceIndex);
|
|
bool __LoadRaceMotionList(CRaceData& rkRaceData, const char* pathName, const char* motionListFileName);
|
|
|
|
void __Initialize();
|
|
void __DestroyRaceDataMap();
|
|
|
|
protected:
|
|
TRaceDataMap m_RaceDataMap;
|
|
|
|
std::map<std::string, std::string> m_kMap_stRaceName_stSrcName;
|
|
std::map<DWORD, std::string> m_kMap_dwRaceKey_stRaceName;
|
|
|
|
private:
|
|
std::string m_strPathName;
|
|
CRaceData * m_pSelectedRaceData;
|
|
}; |