📄 objectstatemanager.cpp
字号:
// ObjectStateManager.cpp: implementation of the CObjectStateManager class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "ObjectStateManager.h"
#include "Object.h"
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CObjectStateManager::CObjectStateManager()
{
}
CObjectStateManager::~CObjectStateManager()
{
}
void CObjectStateManager::InitObjectState(CObject* pObject)
{
pObject->SetState(eObjectState_None);
}
BOOL CObjectStateManager::StartObjectState(CObject* pObject,BYTE State,DWORD dwParam)
{
switch(pObject->GetState())
{
case eObjectState_Die:
{
// 磷芭唱 霸烙阑 场郴绰扒 攫力唱 啊瓷窍促.
if( State != eObjectState_Exit )
{
char buf[256];
sprintf(buf, "StartObjectState(NowState : %d, ChangeState : %d)", pObject->GetState(), State);
ASSERTMSG(0, buf);
}
}
return FALSE;
case eObjectState_Ungijosik:
case eObjectState_Exchange:
case eObjectState_StreetStall_Owner:
case eObjectState_StreetStall_Guest:
case eObjectState_Deal:
case eObjectState_Move:
case eObjectState_TiedUp:
case eObjectState_Tactic:
{
// 磷芭唱 霸烙阑 场郴绰扒 攫力唱 啊瓷窍促.
if( State != eObjectState_Die &&
State != eObjectState_Exit )
{
char buf[256];
sprintf(buf, "StartObjectState(NowState : %d, ChangeState : %d)", pObject->GetState(), State);
ASSERTMSG(0, buf);
}
}
break;
default:
break;
}
// if( pObject->GetState() == eObjectState_Die )
// return;
if(eObjectState_Die == State)
{
BASEOBJECT_INFO info;
pObject->GetBaseObjectInfo(&info);
g_Console.LOG(4,"%s(%d) Killed",info.ObjectName,info.dwObjectID);
}
pObject->OnStartObjectState(State,dwParam);
pObject->SetState(State);
return TRUE;
}
void CObjectStateManager::EndObjectState(CObject* pObject,BYTE State, DWORD EndStateCount)
{
if(pObject->GetState() != State)
{
// 磷澜 惑怕甫 辑滚俊辑 刚历 官操扁 锭巩俊 咯扁 甸绢棵荐 乐促.
if(pObject->GetState() != eObjectState_Die)
{
char temp[256];
sprintf(temp,"EndObjectState... But CurState and State is different Cur:%d, State:%d",pObject->GetState(),State);
ASSERTMSG(0,temp);
}
return;
}
if(EndStateCount == 0) // 瘤陛 溜矫 场辰促
{
pObject->SetState(eObjectState_None);
pObject->OnEndObjectState(State);
}
else
{
pObject->m_ObjectState.State_End_Time = gCurTime + EndStateCount;
pObject->m_ObjectState.bEndState = TRUE;
}
}
BYTE CObjectStateManager::GetObjectState(CObject* pObject)
{
return pObject->GetState();
}
void CObjectStateManager::StateProcess(CObject* pObject)
{
pObject->StateProcess();
if(pObject->m_ObjectState.bEndState)
{
if(pObject->m_ObjectState.State_End_Time < gCurTime)
{
// if(pObject->m_BaseObjectInfo.ObjectState == eObjectState_Die)
// {
// int a=0;
// }
EndObjectState(pObject,pObject->m_BaseObjectInfo.ObjectState);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -