Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
May 22, 2008, 2:02:06 PM (16 years ago)
Author:
rgrieder
Message:

merged merge branch back to trunk

File:
1 edited

Legend:

Unmodified
Added
Removed
  • code/trunk/src/network/GameStateManager.cc

    r1293 r1360  
    117117        client = it->second;
    118118      GameState *server = reference;
    119       //head_->findClient(clientID)->setGamestateID(id);
    120119      COUT(3) << "client: " << client << " server: " << server << " gamestatemap: " << &gameStateMap << std::endl;
    121120      if(client)
     
    127126      GameState *server = reference;
    128127//       ackGameState(clientID, reference->id);
    129       //head_->findClient(clientID)->setGamestateID(id);
    130128      return encode(server);
    131129      // return an undiffed gamestate and set appropriate flags
     
    223221    orxonox::Iterator<Synchronisable> it=orxonox::ObjectList<Synchronisable>::start();
    224222    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 ??
    225231    // loop as long as we have some data ;)
    226232    while(data < state->data+state->size){
     
    270276      ++it;
    271277    }
    272    
     278    //client->setPartialGamestateID(state->id);
    273279    return true;
    274280  }
     
    427433  void GameStateManager::ackGameState(int clientID, int gamestateID) {
    428434    ClientInformation *temp = head_->findClient(clientID);
     435    if(temp==0)
     436      return;
    429437    int curid = temp->getGamestateID();
     438    if(curid > gamestateID)
     439      // the network packets got messed up
     440      return;
    430441    COUT(4) << "acking gamestate " << gamestateID << " for clientid: " << clientID << " curid: " << curid << std::endl;
    431442    // decrease usage of gamestate and save it
    432443//     deleteUnusedGameState(curid);
    433444    //increase gamestateused
    434     --(gameStateUsed.find(curid)->second);
     445    if(curid!=GAMESTATEID_INITIAL)
     446      --(gameStateUsed.find(curid)->second);
    435447    ++(gameStateUsed.find(gamestateID)->second);
    436448    temp->setGamestateID(gamestateID);
     
    458470 
    459471  void GameStateManager::removeClient(ClientInformation* client){
    460     gameStateUsed[client->getGamestateID()]--;
     472    if(!client)
     473      return;
     474    if(client->getGamestateID()>=0)
     475      gameStateUsed[client->getGamestateID()]--;
    461476    head_->removeClient(client->getID());
    462477  }
Note: See TracChangeset for help on using the changeset viewer.