⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 triggergroupinfolist.cpp

📁 奇迹世界 部分源代码奇迹世界 部分源代码奇迹世界 部分源代码
💻 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 + -