Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
Jun 22, 2006, 12:48:01 PM (19 years ago)
Author:
bensch
Message:

merged network back
merged with command:
svn merge -r8625:HEAD https://svn.orxonox.net/orxonox/branches/network .
no conflicts

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/lib/network/network_game_manager.cc

    r8623 r8708  
    112112  stats->setUniqueID( SharedNetworkData::getInstance()->getNewUniqueID() );
    113113  stats->setSynchronized( true );
    114   stats->setOwner( getHostID() );
     114  stats->setOwner( SharedNetworkData::getInstance()->getHostID() );
    115115 
    116116  stats->setTeamId( team );
     
    247247{
    248248  if ( isServer() )
    249     setPreferedTeam( getHostID(), teamId );
     249    setPreferedTeam( SharedNetworkData::getInstance()->getHostID(), teamId );
    250250  else
    251251  {
     
    284284bool NetworkGameManager::chatMessageHandler( MessageId messageId, byte * data, int dataLength, void * someData, int userId )
    285285{
     286  PRINTF(0)("NetworkGameManager::chatMessageHandler %d %d\n", userId, SharedNetworkData::getInstance()->getHostID() );
     287  if ( NetworkGameManager::getInstance()->isServer() && userId !=  SharedNetworkData::getInstance()->getHostID() )
     288  {
     289    MessageManager::getInstance()->sendMessage( messageId, data, dataLength, RT_ALL_NOT_ME, 0, MP_HIGHBANDWIDTH );
     290  }
     291 
    286292  assert( State::getGameRules() );
    287293  assert( State::getGameRules()->isA( CL_NETWORK_GAME_RULES ) );
     
    289295  NetworkGameRules & rules = *(dynamic_cast<NetworkGameRules*>(State::getGameRules()));
    290296 
    291   if ( dataLength < 2*INTSIZE )
     297  if ( dataLength < 3*INTSIZE )
    292298  {
    293299    PRINTF(2)("got too small chatmessage from client %d\n", userId);
     
    298304  int messageType = 0;
    299305  Converter::byteArrayToInt( data, &messageType );
     306  int senderUserId = 0;
     307  Converter::byteArrayToInt( data+INTSIZE, &senderUserId );
    300308  std::string message;
    301   Converter::byteArrayToString( data+INTSIZE, message, dataLength-INTSIZE );
    302  
    303   rules.handleChatMessage( userId, message, messageType );
     309  Converter::byteArrayToString( data+2*INTSIZE, message, dataLength-2*INTSIZE );
     310 
     311  rules.handleChatMessage( senderUserId, message, messageType );
    304312
    305313  return true;
     
    310318 * @param message message text
    311319 * @param messageType some int
    312  * @param userId user to send message to -1 = ALL
    313  */
    314 void NetworkGameManager::sendChatMessage( const std::string & message, int messageType, int userId )
    315 {
    316   byte * buf = new byte[message.length()+2*INTSIZE];
     320 */
     321void NetworkGameManager::sendChatMessage( const std::string & message, int messageType )
     322{
     323  byte * buf = new byte[message.length()+3*INTSIZE];
    317324
    318325  assert( Converter::intToByteArray( messageType, buf, INTSIZE ) == INTSIZE );
    319   assert( Converter::stringToByteArray(message, buf+INTSIZE, message.length()+INTSIZE) == message.length()+INTSIZE );
    320  
    321   if ( userId == -1 )
    322     MessageManager::getInstance()->sendMessage( MSGID_CHATMESSAGE, buf, message.length()+2*INTSIZE, RT_ALL_ME, 0, MP_HIGHBANDWIDTH );
     326  assert( Converter::intToByteArray( SharedNetworkData::getInstance()->getHostID(), buf+INTSIZE, INTSIZE ) == INTSIZE );
     327  assert( Converter::stringToByteArray(message, buf+2*INTSIZE, message.length()+INTSIZE) == message.length()+INTSIZE );
     328 
     329  if ( this->isServer() )
     330    MessageManager::getInstance()->sendMessage( MSGID_CHATMESSAGE, buf, message.length()+3*INTSIZE, RT_ALL_ME, 0, MP_HIGHBANDWIDTH );
    323331  else
    324     MessageManager::getInstance()->sendMessage( MSGID_CHATMESSAGE, buf, message.length()+2*INTSIZE, RT_USER, userId, MP_HIGHBANDWIDTH );
     332    MessageManager::getInstance()->sendMessage( MSGID_CHATMESSAGE, buf, message.length()+3*INTSIZE, RT_ALL_NOT_ME, 0, MP_HIGHBANDWIDTH );
     333
    325334 
    326335  delete [] buf;
Note: See TracChangeset for help on using the changeset viewer.