forked from 0ad/0ad
Networking fixes - it now more or less works over ENet!
This was SVN commit r6216.
This commit is contained in:
parent
6980b066a3
commit
f6ac13c15a
@ -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 );
|
||||
|
||||
|
@ -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 )
|
||||
|
@ -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
|
||||
|
@ -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 );
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user