Files
2022-10-26 12:25:11 +08:00

79 lines
1.5 KiB
C++

#include "SunClientPrecompiledHeader.h"
#include "triggermanex.h"
#include <TriggerGroupInfo.h>
#include <TriggerInfoManager.h>
#include <IActionTrigger.h>
#include <IConditionTrigger.h>
#include <TriggerCommon.h>
#include "Trigger.h"
#include "ObjectManager.h"
#include "MapObject.h"
TriggerManEx::TriggerManEx(void)
{
}
TriggerManEx::~TriggerManEx(void)
{
}
VOID TriggerManEx::Init( TriggerGroupInfo& IN rTriggerGroupInfo)
{
ASSERT( GetTriggerCount() == 0 );
// Æ®¸®°Å Á¤º¸ ÂüÁ¶
const TRIGGER_INFO_LIST& mapTriggerInfo = rTriggerGroupInfo.GetTriggerInfos();
TRIGGER_INFO_LIST::const_iterator iter = mapTriggerInfo.begin();
const TRIGGER_INFO_LIST::const_iterator end = mapTriggerInfo.end();
for (; iter != end; ++iter)
{
TriggerInfo* pTriggerInfo = *iter;
if( !pTriggerInfo )
{
ASSERT( NULL );
continue;
}
Trigger* pTrigger = new Trigger;
pTrigger->Init( (TriggerManager*)this, pTriggerInfo );
pTrigger->OnInit();
if( !InsertTrigger( pTrigger ) )
{
delete pTrigger;
assert(!"TriggerManEx::Init");
continue;
}
}
}
VOID TriggerManEx::Release()
{
TriggerManager::Release();
int iSize = (int)m_vecTrgObj.size();
for(int i = 0; i < iSize; i++)
{
SAFE_DELETE(m_vecTrgObj[i]);
}
m_vecTrgObj.clear();
}
VOID TriggerManEx::OnMsg( TRIGGER_MSG * pMsg, BOOL bDone)
{
TRIGGER_LIST::iterator iter;
for( iter = m_listTrigger.begin(); iter !=m_listTrigger.end(); ++iter )
{
Trigger* pTrigger = static_cast<Trigger*>( iter->second );
if( pTrigger )
{
pTrigger->OnMsg( pMsg );
}
}
}