48 lines
970 B
C++
48 lines
970 B
C++
#pragma once
|
||
|
||
typedef struct tagResonanceItemConfig
|
||
{
|
||
WORD nItemId;
|
||
AttriGroup attri; //属性
|
||
|
||
tagResonanceItemConfig()
|
||
{
|
||
memset(this,0,sizeof(*this));
|
||
}
|
||
}RESONANCEITEMCONFIG;
|
||
|
||
|
||
class CResonanceItemProvider :protected CLuaConfigBase
|
||
{
|
||
public:
|
||
typedef CLuaConfigBase Inherited;
|
||
typedef CObjectAllocator<char> CDataAllocator;
|
||
|
||
public:
|
||
CResonanceItemProvider();
|
||
~CResonanceItemProvider();
|
||
|
||
/*
|
||
* nResonanceId : 共鸣ID
|
||
* nItemId :道具ID
|
||
*/
|
||
AttriGroup* GetResonanceItemConfig(WORD nResonanceId, WORD nItemId)
|
||
{
|
||
if (m_ResonanceItems.find(nResonanceId) != m_ResonanceItems.end())
|
||
{
|
||
if (m_ResonanceItems[nResonanceId].find(nItemId) != m_ResonanceItems[nResonanceId].end())
|
||
{
|
||
return &m_ResonanceItems[nResonanceId][nItemId];
|
||
}
|
||
}
|
||
return nullptr;
|
||
}
|
||
public:
|
||
bool Load(LPCTSTR sFilePath);
|
||
bool ReadAllConfig();
|
||
|
||
|
||
private:
|
||
CDataAllocator m_DataAllocator;
|
||
std::map<WORD, std::map<WORD, AttriGroup> >m_ResonanceItems;
|
||
}; |