Changeset 8708 in orxonox.OLD for trunk/src/lib/network/network_game_manager.cc
- Timestamp:
- Jun 22, 2006, 12:48:01 PM (19 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/lib/network/network_game_manager.cc
r8623 r8708 112 112 stats->setUniqueID( SharedNetworkData::getInstance()->getNewUniqueID() ); 113 113 stats->setSynchronized( true ); 114 stats->setOwner( getHostID() );114 stats->setOwner( SharedNetworkData::getInstance()->getHostID() ); 115 115 116 116 stats->setTeamId( team ); … … 247 247 { 248 248 if ( isServer() ) 249 setPreferedTeam( getHostID(), teamId );249 setPreferedTeam( SharedNetworkData::getInstance()->getHostID(), teamId ); 250 250 else 251 251 { … … 284 284 bool NetworkGameManager::chatMessageHandler( MessageId messageId, byte * data, int dataLength, void * someData, int userId ) 285 285 { 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 286 292 assert( State::getGameRules() ); 287 293 assert( State::getGameRules()->isA( CL_NETWORK_GAME_RULES ) ); … … 289 295 NetworkGameRules & rules = *(dynamic_cast<NetworkGameRules*>(State::getGameRules())); 290 296 291 if ( dataLength < 2*INTSIZE )297 if ( dataLength < 3*INTSIZE ) 292 298 { 293 299 PRINTF(2)("got too small chatmessage from client %d\n", userId); … … 298 304 int messageType = 0; 299 305 Converter::byteArrayToInt( data, &messageType ); 306 int senderUserId = 0; 307 Converter::byteArrayToInt( data+INTSIZE, &senderUserId ); 300 308 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 ); 304 312 305 313 return true; … … 310 318 * @param message message text 311 319 * @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 */ 321 void NetworkGameManager::sendChatMessage( const std::string & message, int messageType ) 322 { 323 byte * buf = new byte[message.length()+3*INTSIZE]; 317 324 318 325 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 ); 323 331 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 325 334 326 335 delete [] buf;
Note: See TracChangeset
for help on using the changeset viewer.