Changeset 9656 in orxonox.OLD for trunk/src/lib/network/network_game_manager.cc
- Timestamp:
- Aug 4, 2006, 11:01:28 PM (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/lib/network/network_game_manager.cc
r9494 r9656 68 68 69 69 this->gameState = 0; 70 registerVar( new SynchronizeableInt( &gameState, &gameState, "gameState" ) );70 registerVar( new SynchronizeableInt( &gameState, &gameState, "gameState", PERMISSION_MASTER_SERVER ) ); 71 71 } 72 72 … … 91 91 bool NetworkGameManager::signalNewPlayer( int userId ) 92 92 { 93 assert( SharedNetworkData::getInstance()->isMasterServer() || SharedNetworkData::getInstance()->isProxyServerActive());93 assert( SharedNetworkData::getInstance()->isMasterServer()); 94 94 assert( State::getGameRules() ); 95 95 assert( State::getGameRules()->isA( CL_NETWORK_GAME_RULES ) ); … … 97 97 NetworkGameRules & rules = *(dynamic_cast<NetworkGameRules*>(State::getGameRules())); 98 98 99 int team = rules.getTeamForNewUser();100 ClassID playableClassId = rules.getPlayableClassId( userId, team );101 std::string playableModel = rules.getPlayableModelFileName( userId, team, playableClassId );102 std::string playableTexture = rules.getPlayableModelFileName( userId, team, playableClassId );103 float playableScale = rules.getPlayableScale( userId, team, playableClassId );99 int team = rules.getTeamForNewUser(); 100 ClassID playableClassId = rules.getPlayableClassId( userId, team ); 101 std::string playableModel = rules.getPlayableModelFileName( userId, team, playableClassId ); 102 std::string playableTexture = rules.getPlayableModelFileName( userId, team, playableClassId ); 103 float playableScale = rules.getPlayableScale( userId, team, playableClassId ); 104 104 105 105 BaseObject * bo = Factory::fabricate( playableClassId ); … … 111 111 112 112 playable.loadMD2Texture( playableTexture ); 113 113 playable.setTeam(team); 114 114 playable.loadModel( playableModel, 100.0f ); 115 115 playable.setOwner( userId ); … … 159 159 /** 160 160 * handler for remove synchronizeable messages 161 * @param message Id161 * @param messageType 162 162 * @param data 163 163 * @param dataLength … … 166 166 * @return true on successfull handling else handler will be called again 167 167 */ 168 bool NetworkGameManager::delSynchronizeableHandler( Message Id messageId, byte * data, int dataLength, void * someData, int userId)168 bool NetworkGameManager::delSynchronizeableHandler( MessageType messageType, byte * data, int dataLength, void * someData, int senderId, int destinationId ) 169 169 { 170 170 … … 172 172 173 173 if ( SharedNetworkData::getInstance()->isMasterServer() || 174 SharedNetworkData::getInstance()->isProxyServerActive() && SharedNetworkData::getInstance()->isUserClient( userId))175 { 176 PRINTF(0)("Recieved DeleteSynchronizeable message from client %d!\n", userId);174 SharedNetworkData::getInstance()->isProxyServerActive() && SharedNetworkData::getInstance()->isUserClient(senderId)) 175 { 176 PRINTF(0)("Recieved DeleteSynchronizeable message from client %d!\n", senderId); 177 177 return true; 178 178 } … … 183 183 if ( len != dataLength ) 184 184 { 185 PRINTF(2)("Recieved DeleteSynchronizeable message with incorrect size (%d) from client %d!\n", dataLength, userId);185 PRINTF(2)("Recieved DeleteSynchronizeable message with incorrect size (%d) from client %d!\n", dataLength, senderId); 186 186 return true; 187 187 } … … 217 217 assert( Converter::intToByteArray( uniqueId, buf, INTSIZE ) == INTSIZE ); 218 218 219 MessageManager::getInstance()->sendMessage( MSGID_DELETESYNCHRONIZEABLE, buf, INTSIZE, RT_ALL_BUT_ME, 0, MP_HIGHBANDWIDTH );219 MessageManager::getInstance()->sendMessage( MSGID_DELETESYNCHRONIZEABLE, buf, INTSIZE, RT_ALL_BUT_ME, NET_UNASSIGNED, MP_HIGHBANDWIDTH ); 220 220 } 221 221 … … 224 224 /** 225 225 * handler for MSGID_PREFEREDTEAM message 226 * @param message Id226 * @param messageType 227 227 * @param data 228 228 * @param dataLength … … 231 231 * @return 232 232 */ 233 bool NetworkGameManager::preferedTeamHandler( Message Id messageId, byte * data, int dataLength, void * someData, int userId)234 { 235 assert( SharedNetworkData::getInstance()->isMasterServer() || SharedNetworkData::getInstance()->isProxyServerActive());233 bool NetworkGameManager::preferedTeamHandler( MessageType messageType, byte * data, int dataLength, void * someData, int senderId, int destinationId ) 234 { 235 assert( SharedNetworkData::getInstance()->isMasterServer() ); 236 236 237 237 int teamId = 0; … … 240 240 if ( len != dataLength ) 241 241 { 242 PRINTF(2)("Recieved DeleteSynchronizeable message with incorrect size (%d) from client %d!\n", dataLength, userId);242 PRINTF(2)("Recieved DeleteSynchronizeable message with incorrect size (%d) from client %d!\n", dataLength, senderId); 243 243 return true; 244 244 } 245 245 246 NetworkGameManager::getInstance()->setPreferedTeam( userId, teamId ); 247 248 return true; 249 } 250 246 PRINTF(0)("Client %i wishes to play in team %i\n", senderId, teamId); 247 NetworkGameManager::getInstance()->setPreferedTeam( senderId, teamId ); 248 249 return true; 250 } 251 252 253 /** 254 * this actualy sets the new prefered team id 255 * @param userId: the user that changes team 256 * @param teamId: the new team id for the user 257 */ 251 258 void NetworkGameManager::setPreferedTeam( int userId, int teamId ) 252 259 { … … 259 266 } 260 267 268 261 269 /** 262 270 * set prefered team for this host … … 265 273 void NetworkGameManager::prefereTeam( int teamId ) 266 274 { 267 if ( SharedNetworkData::getInstance()->isMasterServer() /*|| SharedNetworkData::getInstance()->isProxyServerActive()*/)268 setPreferedTeam( SharedNetworkData::getInstance()->getHostID(), teamId );275 if ( SharedNetworkData::getInstance()->isMasterServer() ) 276 this->setPreferedTeam( SharedNetworkData::getInstance()->getHostID(), teamId ); 269 277 else 270 278 { … … 273 281 assert( Converter::intToByteArray( teamId, buf, INTSIZE) == INTSIZE ); 274 282 275 MessageManager::getInstance()->sendMessage( MSGID_PREFEREDTEAM, buf, INTSIZE, RT_USER, 0, MP_HIGHBANDWIDTH ); 283 // send this message to the master server 284 MessageManager::getInstance()->sendMessage( MSGID_PREFEREDTEAM, buf, INTSIZE, RT_USER, NET_ID_MASTER_SERVER, MP_HIGHBANDWIDTH ); 276 285 } 277 286 } … … 306 315 307 316 308 bool NetworkGameManager::chatMessageHandler( Message Id messageId, byte * data, int dataLength, void * someData, int userId)309 { 310 PRINTF(0)("NetworkGameManager::chatMessageHandler %d %d\n", userId, SharedNetworkData::getInstance()->getHostID() );311 if ( (SharedNetworkData::getInstance()->isMasterServer() /*|| SharedNetworkData::getInstance()->isProxyServerActive()*/) && userId != SharedNetworkData::getInstance()->getHostID() )312 { 313 MessageManager::getInstance()->sendMessage( message Id, data, dataLength, RT_ALL_BUT_ME, 0, MP_HIGHBANDWIDTH );317 bool NetworkGameManager::chatMessageHandler( MessageType messageType, byte * data, int dataLength, void * someData, int senderId, int destinationId ) 318 { 319 PRINTF(0)("NetworkGameManager::chatMessageHandler %d %d\n", senderId, SharedNetworkData::getInstance()->getHostID() ); 320 if ( (SharedNetworkData::getInstance()->isMasterServer() /*|| SharedNetworkData::getInstance()->isProxyServerActive()*/) && senderId != SharedNetworkData::getInstance()->getHostID() ) 321 { 322 MessageManager::getInstance()->sendMessage( messageType, data, dataLength, RT_ALL_BUT_ME, NET_UNASSIGNED, MP_HIGHBANDWIDTH ); 314 323 } 315 324 … … 321 330 if ( dataLength < 3*INTSIZE ) 322 331 { 323 PRINTF(2)("got too small chatmessage from client %d\n", userId);332 PRINTF(2)("got too small chatmessage from client %d\n", senderId); 324 333 325 334 return true; 326 335 } 327 336 328 int messageType = 0;329 Converter::byteArrayToInt( data, & messageType);337 int chatType = 0; 338 Converter::byteArrayToInt( data, &chatType); 330 339 int senderUserId = 0; 331 340 Converter::byteArrayToInt( data+INTSIZE, &senderUserId ); … … 333 342 Converter::byteArrayToString( data+2*INTSIZE, message, dataLength-2*INTSIZE ); 334 343 335 rules.handleChatMessage( senderUserId, message, messageType);344 rules.handleChatMessage( senderUserId, message, chatType); 336 345 337 346 return true; … … 352 361 353 362 if ( SharedNetworkData::getInstance()->isMasterServer() /*|| SharedNetworkData::getInstance()->isProxyServerActive()*/) 354 MessageManager::getInstance()->sendMessage( MSGID_CHATMESSAGE, buf, message.length()+3*INTSIZE, RT_ALL_ME, 0, MP_HIGHBANDWIDTH );363 MessageManager::getInstance()->sendMessage( MSGID_CHATMESSAGE, buf, message.length()+3*INTSIZE, RT_ALL_ME, NET_UNASSIGNED, MP_HIGHBANDWIDTH ); 355 364 else 356 MessageManager::getInstance()->sendMessage( MSGID_CHATMESSAGE, buf, message.length()+3*INTSIZE, RT_ALL_BUT_ME, 0, MP_HIGHBANDWIDTH );365 MessageManager::getInstance()->sendMessage( MSGID_CHATMESSAGE, buf, message.length()+3*INTSIZE, RT_ALL_BUT_ME, NET_UNASSIGNED, MP_HIGHBANDWIDTH ); 357 366 358 367
Note: See TracChangeset
for help on using the changeset viewer.