BOOL ClientEngine::OnCommandHandle( UINT16 wCommandID, UINT64 u64ConnID, CBufferHelper *pBufferHelper ) { switch(wCommandID) { PROCESS_COMMAND_ITEM_T(CMD_CONNECT_NOTIFY, OnCmdConnectNotify); PROCESS_COMMAND_ITEM_T(CMD_CHAR_PICK_CHAR_ACK, OnCmdPickCharAck); PROCESS_COMMAND_ITEM_T(CMD_CHAR_HEART_BEAT_ACK, OnCmdHearBeatAck); default: { for(std::vector<IMessageHandler*>::iterator itor = m_vtMsgHandler.begin(); itor != m_vtMsgHandler.end(); itor++) { IMessageHandler *pHandler = *itor; if(pHandler->OnCommandHandle(wCommandID, u64ConnID, pBufferHelper)) { break; } } } break; } return TRUE; }
BOOL CClientCmdHandler::OnCommandHandle( UINT16 wCommandID, UINT64 u64ConnID, CBufferHelper *pBufferHelper ) { BOOL bHandled = TRUE; switch(wCommandID) { PROCESS_COMMAND_ITEM_T(CMD_CHAR_LOGIN_ACK, OnCmdLoginGameAck); PROCESS_COMMAND_ITEM_T(CMD_CHAR_NEW_CHAR_ACK, OnCmdNewCharAck); PROCESS_COMMAND_ITEM_T(CMD_CHAR_DEL_CHAR_ACK, OnCmdDelCharAck); PROCESS_COMMAND_ITEM_T(CMD_CHAR_NEW_ACCOUNT_ACK,OnCmdNewAccountAck); PROCESS_COMMAND_ITEM_T(CMD_CHAR_ENTER_GAME_ACK, OnCmdEnterGameAck) PROCESS_COMMAND_ITEM_T(CMD_CHAR_NEARBY_ADD, OnCmdNearByAdd); PROCESS_COMMAND_ITEM_T(CMD_CHAR_NEARBY_UPDATE, OnCmdNearByUpdate); PROCESS_COMMAND_ITEM_T(CMD_CHAR_NEARBY_REMOVE, OnCmdNearByRemove); PROCESS_COMMAND_ITEM_T(CMD_CHAR_UPDATE_MYSELF, OnCmdUpdateMyself); default: { bHandled = FALSE; } break; } return bHandled; }