#include "StdAfx.h" #include "DnTriggerObject.h" #include "DnTriggerElement.h" #if defined( PRE_TRIGGER_UNITTEST_LOG ) #include "DNGameRoom.h" #include "DnWorld.h" #include "EtWorldSector.h" #include <../NetworkLib/Log.h> extern CLog g_TriggerUnitTestLog; #endif // #if defined( PRE_TRIGGER_UNITTEST_LOG ) #if defined( PRE_TRIGGER_LOG ) #include "EtWorldSector.h" #include "EtWorldGrid.h" #include "DnWorld.h" #include "DNGameRoom.h" #include "DNRUDPGameServer.h" #endif // #if defined( PRE_TRIGGER_LOG ) CDnTriggerObject::CDnTriggerObject( CEtTrigger *pTrigger ) : CEtTriggerObject( pTrigger ) { #if defined( PRE_TRIGGER_LOG ) m_pGameRoom = NULL; m_bLog = false; if( pTrigger && pTrigger->GetSector() && pTrigger->GetSector()->GetParentGrid() && pTrigger->GetSector()->GetParentGrid()->GetWorld() ) { m_pGameRoom = static_cast(((CDnWorld*)pTrigger->GetSector()->GetParentGrid()->GetWorld())->GetCurrentTask()); if( m_pGameRoom ) { #if !defined( _FINAL_BUILD ) // ¸ðµç ¼­¹ö¸¸ ·Î±× ³²°Üº»´Ù. m_bLog = true; #else // #if !defined( _FINAL_BUILD ) // 1¹ø ¼­¹ö¸¸ ·Î±× ³²°Üº»´Ù. m_bLog = ( m_pGameRoom->GetGameServer() && m_pGameRoom->GetGameServer()->GetServerID() == 1 ) ? true : false; #endif // #if !defined( _FINAL_BUILD ) if( m_bLog ) { QueryPerformanceFrequency(&m_liFrequency); } } } #endif // #if defined( PRE_TRIGGER_LOG ) } CDnTriggerObject::~CDnTriggerObject() { #if defined( PRE_TRIGGER_UNITTEST_LOG ) if( m_dTime > 0.f ) { char szLog[1024]; int iMapIndex = 0; if( GetTrigger() && GetTrigger()->GetSector() && GetTrigger()->GetSector()->GetParentGrid() && GetTrigger()->GetSector()->GetParentGrid()->GetWorld() ) { CDNGameRoom* pGameRoom = (((CDnWorld*)GetTrigger()->GetSector()->GetParentGrid()->GetWorld())->GetCurrentTask()); if( pGameRoom ) iMapIndex = pGameRoom->m_iMapIdx; } sprintf( szLog, "[%.3f ms] MapIndex=%d Categoty:%s TriggerName:%s\r\n", m_dTime, iMapIndex, GetCategory(), GetTriggerName() ); g_TriggerUnitTestLog.LogA( szLog ); } #endif // #if defined( PRE_TRIGGER_UNITTEST_LOG ) } CEtTriggerElement *CDnTriggerObject::AllocTriggerElement() { return new CDnTriggerElement( this ); } #if defined( PRE_TRIGGER_LOG ) bool CDnTriggerObject::Process( LOCAL_TIME LocalTime, float fDelta ) { if( !m_bLog ) { return CEtTriggerObject::Process( LocalTime, fDelta ); } QueryPerformanceCounter(&m_liStartTime); bool bRet = CEtTriggerObject::Process( LocalTime, fDelta ); QueryPerformanceCounter(&m_liCurTime); double dElapsed = (1000 * ( m_liCurTime.QuadPart - m_liStartTime.QuadPart ) / static_cast( m_liFrequency.QuadPart )); m_pGameRoom->m_dTriggerTime += dElapsed; return bRet; } bool CDnTriggerObject::ProcessQueue( LOCAL_TIME LocalTime, float fDelta ) { if( !m_bLog ) { return CEtTriggerObject::ProcessQueue( LocalTime, fDelta ); } QueryPerformanceCounter(&m_liStartTime); bool bRet = CEtTriggerObject::ProcessQueue( LocalTime, fDelta ); QueryPerformanceCounter(&m_liCurTime); double dElapsed = (1000 * ( m_liCurTime.QuadPart - m_liStartTime.QuadPart ) / static_cast( m_liFrequency.QuadPart )); m_pGameRoom->m_dTriggerTime += dElapsed; return bRet; } #endif // #if defined( PRE_TRIGGER_LOG )