Code:
case MC_NET_CHECKPING:
{
MUID uid;
if (pCommand->GetParameter(&uid, 0, MPT_UID)==false) break;
MCommand* pNew = new MCommand(m_CommandManager.GetCommandDescByID(MC_NET_PING), uid, m_This);
pNew->AddParameter(new MCommandParameterUInt(timeGetTime()));
Post(pNew);
return true;
}
break;
case MC_NET_PING:
{
unsigned int nTimeStamp;
if (pCommand->GetParameter(&nTimeStamp, 0, MPT_UINT)==false) break;
MCommand* pNew = new MCommand(m_CommandManager.GetCommandDescByID(MC_NET_PONG), pCommand->m_Sender, m_This);
pNew->AddParameter(new MCommandParameterUInt(nTimeStamp));
Post(pNew);
return true;
}
break;
case MC_NET_PONG:
{
unsigned int nTimeStamp;
pCommand->GetParameter(&nTimeStamp, 0, MPT_UINT);
OnNetPong(pCommand->GetSenderUID(), nTimeStamp);
LOG(LOG_DEBUG, "Ping from (%u:%u) = %d",
pCommand->GetSenderUID().High, pCommand->GetSenderUID().Low, timeGetTime()-nTimeStamp);
return true;
}
break;
};