Changeset 1360 for code/trunk/src/network/GameStateManager.cc
- Timestamp:
- May 22, 2008, 2:02:06 PM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
code/trunk/src/network/GameStateManager.cc
r1293 r1360 117 117 client = it->second; 118 118 GameState *server = reference; 119 //head_->findClient(clientID)->setGamestateID(id);120 119 COUT(3) << "client: " << client << " server: " << server << " gamestatemap: " << &gameStateMap << std::endl; 121 120 if(client) … … 127 126 GameState *server = reference; 128 127 // ackGameState(clientID, reference->id); 129 //head_->findClient(clientID)->setGamestateID(id);130 128 return encode(server); 131 129 // return an undiffed gamestate and set appropriate flags … … 223 221 orxonox::Iterator<Synchronisable> it=orxonox::ObjectList<Synchronisable>::start(); 224 222 syncData sync; 223 /*ClientInformation *client = head_->findClient(clientID); 224 if(client) 225 if(client->getPartialGamestateID()>state->id){ 226 COUT(3) << "we received an obsolete partial gamestate" << std::endl; 227 return false; 228 } 229 else;*/ 230 //what should we do now ?? 225 231 // loop as long as we have some data ;) 226 232 while(data < state->data+state->size){ … … 270 276 ++it; 271 277 } 272 278 //client->setPartialGamestateID(state->id); 273 279 return true; 274 280 } … … 427 433 void GameStateManager::ackGameState(int clientID, int gamestateID) { 428 434 ClientInformation *temp = head_->findClient(clientID); 435 if(temp==0) 436 return; 429 437 int curid = temp->getGamestateID(); 438 if(curid > gamestateID) 439 // the network packets got messed up 440 return; 430 441 COUT(4) << "acking gamestate " << gamestateID << " for clientid: " << clientID << " curid: " << curid << std::endl; 431 442 // decrease usage of gamestate and save it 432 443 // deleteUnusedGameState(curid); 433 444 //increase gamestateused 434 --(gameStateUsed.find(curid)->second); 445 if(curid!=GAMESTATEID_INITIAL) 446 --(gameStateUsed.find(curid)->second); 435 447 ++(gameStateUsed.find(gamestateID)->second); 436 448 temp->setGamestateID(gamestateID); … … 458 470 459 471 void GameStateManager::removeClient(ClientInformation* client){ 460 gameStateUsed[client->getGamestateID()]--; 472 if(!client) 473 return; 474 if(client->getGamestateID()>=0) 475 gameStateUsed[client->getGamestateID()]--; 461 476 head_->removeClient(client->getID()); 462 477 }
Note: See TracChangeset
for help on using the changeset viewer.