📄 triggergroupinfolist.cpp
字号:
#include "StdAfx.h"
#include ".\triggergroupinfolist.h"
#include <ProgramCommon/WzArchive.h>
#include ".\TriggerGroupInfo.h"
#include <algorithm>
//TriggerGroupInfoList g_TriggerGroupInfoList;
TriggerGroupInfoList::TriggerGroupInfoList(void)
{
}
TriggerGroupInfoList::~TriggerGroupInfoList(void)
{
Unload();
}
VOID TriggerGroupInfoList::Unload()
{
TriggerGroupInfo * pInfo = NULL;
TRIGGER_GROUP_HASH::iterator it;
for( it = m_GroupHash.begin(); it != m_GroupHash.end(); ++it )
{
pInfo = it->second;
m_GroupHash.erase( it-- );
SAFE_DELETE(pInfo);
}
//for_each( m_GroupHash.begin(), m_GroupHash.end(), SafeDeleter1() );
m_GroupHash.clear();
}
VOID TriggerGroupInfoList::Load( CWzArchive & IN rArchive )
{
St_ChunkInfo ChunkInfo;
if( rArchive.GetVersion() < 145 ) return;
BOOL bTriggerChunk = FALSE;
while( TRUE )
{
ChunkInfo = rArchive.ReadChunk();
if( ChunkInfo.m_nID == 0x1786 )
{
bTriggerChunk = TRUE;
break;
}
rArchive.SkipCurrentChunk(ChunkInfo);
}
ASSERT( TRUE == bTriggerChunk );
_parseGroup( rArchive );
}
VOID TriggerGroupInfoList::_parseGroup( CWzArchive & IN rArchive )
{
// 弊缝狼 俺荐
WORD wNumberOfGroups = 0;
rArchive >> wNumberOfGroups;
for( WORD idx = 0 ; idx < wNumberOfGroups ; ++idx )
{
TriggerGroupInfo * pNewGroup = new TriggerGroupInfo;
pNewGroup->Load( rArchive );
m_GroupHash[ pNewGroup->GroupName() ] = pNewGroup;
}
}
TriggerGroupInfo * TriggerGroupInfoList::GetGroupInfo( const TCHAR * pszGroupName )
{
TRIGGER_GROUP_HASH::iterator itr = m_GroupHash.find( pszGroupName );
if ( itr != m_GroupHash.end() )
{
return itr->second;
}
return NULL;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -