Networking fixes - it now more or less works over ENet!

This was SVN commit r6216.
This commit is contained in:
Matei 2008-07-12 19:08:38 +00:00
parent 6980b066a3
commit f6ac13c15a
5 changed files with 57 additions and 58 deletions

View File

@ -477,7 +477,7 @@ bool CNetClient::OnInGame( void *pContext, CFsmEvent* pEvent )
CNetMessage* pMessage = ( CNetMessage* )pEvent->GetParamRef();
if ( pMessage )
{
if ( pEvent->GetType() >= NMT_COMMAND_FIRST && pEvent->GetType() < NMT_COMMAND_LAST )
if ( pMessage->GetType() >= NMT_COMMAND_FIRST && pMessage->GetType() < NMT_COMMAND_LAST )
{
pClient->QueueIncomingMessage( pMessage );

View File

@ -200,35 +200,6 @@ CStr CNetMessage::ToString( void ) const
return ret;
}
//-----------------------------------------------------------------------------
// Name: Clone()
// Desc: Makes a copy of the message and return it to caller
//-----------------------------------------------------------------------------
CNetMessage* CNetMessage::Clone( void ) const
{
// Create new message
CNetMessage* pCloneMessage = new CNetMessage;
if ( !pCloneMessage ) return NULL;
// Copy this message content into clone message
Copy( pCloneMessage );
return pCloneMessage;
}
//-----------------------------------------------------------------------------
// Name: Copy()
// Desc: Copies the content of this message into the message parameter
//-----------------------------------------------------------------------------
void CNetMessage::Copy( CNetMessage* pMessage ) const
{
// Validate parameter
if ( !pMessage ) return;
// Copy header information
pMessage->m_Type = m_Type;
}
//-----------------------------------------------------------------------------
// Name: ScriptingInit()
// Desc:
@ -985,6 +956,54 @@ CNetMessage* CNetMessageFactory::CreateMessage(const void* pData,
case NMT_END_COMMAND_BATCH:
pNewMessage = new CEndCommandBatchMessage;
break;
case NMT_CHAT:
pNewMessage = new CChatMessage;
break;
case NMT_GOTO:
pNewMessage = new CGotoMessage;
break;
case NMT_PATROL:
pNewMessage = new CPatrolMessage;
break;
case NMT_ADD_WAYPOINT:
pNewMessage = new CAddWaypointMessage;
break;
case NMT_GENERIC:
pNewMessage = new CGenericMessage;
break;
case NMT_PRODUCE:
pNewMessage = new CProduceMessage;
break;
case NMT_PLACE_OBJECT:
pNewMessage = new CPlaceObjectMessage;
break;
case NMT_RUN:
pNewMessage = new CRunMessage;
break;
case NMT_NOTIFY_REQUEST:
pNewMessage = new CNotifyRequestMessage;
break;
case NMT_FORMATION_GOTO:
pNewMessage = new CFormationGotoMessage;
break;
case NMT_FORMATION_GENERIC:
pNewMessage = new CFormationGenericMessage;
break;
default:
LOG(CLogger::Error, LOG_CAT_NET, "CNetMessageFactory::CreateMessage(): Unknown message received" );
break;
}
if ( pNewMessage )

View File

@ -118,23 +118,6 @@ public:
// virtual CStr GetString( void ) const;
// operator CStr() const { return GetString(); }
/**
* Makes a copy of the message
*
* @return A copy of the message
*/
virtual CNetMessage* Clone( void ) const;
// virtual CNetMessage* Copy( void ) const;
protected:
/**
* Copies the content of this message into the message specified parameter
*
* @param Message destination
*/
virtual void Copy( CNetMessage* pMessage ) const;
private:
// Not implemented

View File

@ -406,7 +406,10 @@ bool CNetHost::Poll( void )
NET_LOG4( "Message %s of size %u was received from %x", pNewMessage->ToString().c_str(), pNewMessage->GetSerializedLength(), event.peer->data );
// Successfully handled?
if ( !HandleMessageReceive( pNewMessage, it->pSession ) ) return false;
if ( !HandleMessageReceive( pNewMessage, it->pSession ) ) {
enet_packet_destroy( event.packet );
return false;
}
// Done using the packet
enet_packet_destroy( event.packet );
@ -506,14 +509,8 @@ bool CNetHost::SendMessage(
}
else
{
NET_LOG4( "Message %s of size %u was sent to %x", pMessage->ToString().c_str(), pMessage->GetSerializedLength(), pSession->m_Peer->data );
CStr8 str = pMessage->ToString();
std::string::size_type loc = str.find( "CEndCommandBatchMessage" );
if( loc != std::string::npos )
{
int x = 0;
}
NET_LOG4( "Message %s of size %u was sent to %x",
pMessage->ToString().c_str(), pMessage->GetSerializedLength(), pSession->m_Peer->data );
}
enet_host_flush( m_Host );

View File

@ -79,10 +79,10 @@ void CTurnManager::SendMessage(CNetMessage *pMsg, size_t clientMask)
{
for (size_t i=0;i<m_Clients.size();i++)
{
if (clientMask & (1<<i))
if (true || (clientMask & (1<<i)))
{
if (m_Clients[i].m_Pipe)
m_Clients[i].m_Pipe->Push(pMsg->Clone());
m_Clients[i].m_Pipe->Push(pMsg);
}
}
}