Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
Feb 13, 2011, 9:34:22 PM (13 years ago)
Author:
scheusso
Message:

-some cleaning up
-fixing disconnect behaviour
-trying to find a bug

File:
1 edited

Legend:

Unmodified
Added
Removed
  • code/branches/network6/src/libraries/network/GamestateManager.cc

    r7825 r7878  
    110110      bool b = processGamestate(it->second);
    111111      assert(b);
    112       sendAck( it->second->getID(), it->second->getPeerID() );
     112//       sendAck( it->second->getID(), it->second->getPeerID() );
    113113      delete it->second;
    114114    }
     
    122122  bool GamestateManager::sendAck(unsigned int gamestateID, uint32_t peerID)
    123123  {
     124    assert( gamestateID != ACKID_NACK );
    124125    packet::Acknowledgement *ack = new packet::Acknowledgement(gamestateID, peerID);
    125126    if( !this->sendPacket(ack))
     
    151152    {
    152153      assert(peerMap_.size()!=0);
    153       newID = peerMap_[NETWORK_PEER_ID_SERVER].lastProcessedGamestateID;
     154      newID = peerMap_[NETWORK_PEER_ID_SERVER].lastReceivedGamestateID;
    154155    }
    155156   
     
    190191      }
    191192
    192       peerGamestates.push_back(0);  // insert an empty gamestate* to change
     193      peerGamestates.push_back(0);  // insert an empty gamestate* to be changed
    193194      finishGamestate( peerID, peerGamestates.back(), baseGamestate, currentGamestate_ );
    194195      if( peerGamestates.back()==0 )
     
    266267    unsigned int curid = it->second.lastAckedGamestateID;
    267268
    268     if(gamestateID == ACKID_NACK){
    269       it->second.lastAckedGamestateID = GAMESTATEID_INITIAL;
    270 //       temp->setGamestateID(GAMESTATEID_INITIAL);
    271       // now delete all saved gamestates for this client
    272       std::map<uint32_t, packet::Gamestate*>::iterator it2;
    273       for(it2 = it->second.gamestates.begin(); it2!=it->second.gamestates.end(); ++it2 ){
    274         delete it2->second;
    275       }
    276       it->second.gamestates.clear();
    277       return true;
    278     }
     269    assert(gamestateID != ACKID_NACK);
     270//     if(gamestateID == ACKID_NACK){
     271//       it->second.lastAckedGamestateID = GAMESTATEID_INITIAL;
     272// //       temp->setGamestateID(GAMESTATEID_INITIAL);
     273//       // now delete all saved gamestates for this client
     274//       std::map<uint32_t, packet::Gamestate*>::iterator it2;
     275//       for(it2 = it->second.gamestates.begin(); it2!=it->second.gamestates.end(); ++it2 ){
     276//         delete it2->second;
     277//       }
     278//       it->second.gamestates.clear();
     279//       return true;
     280//     }
    279281
    280282    assert(curid==GAMESTATEID_INITIAL || curid<=gamestateID);
     
    303305  }
    304306 
    305   uint32_t GamestateManager::getLastProcessedGamestateID(unsigned int peerID)
     307  uint32_t GamestateManager::getLastReceivedGamestateID(unsigned int peerID)
    306308  {
    307309    assert( this->peerMap_.find(peerID)!=this->peerMap_.end() );
    308310    if( this->peerMap_.find(peerID) != this->peerMap_.end() )
    309       return this->peerMap_[peerID].lastProcessedGamestateID;
     311      return this->peerMap_[peerID].lastReceivedGamestateID;
    310312    else
    311313      return GAMESTATEID_INITIAL;
     
    317319    assert(peerMap_.find(peerID)==peerMap_.end());
    318320    peerMap_[peerID].peerID = peerID;
    319     peerMap_[peerID].lastProcessedGamestateID = GAMESTATEID_INITIAL;
     321    peerMap_[peerID].lastReceivedGamestateID = GAMESTATEID_INITIAL;
    320322    peerMap_[peerID].lastAckedGamestateID = GAMESTATEID_INITIAL;
    321323    if( GameMode::isMaster() )
     
    363365    if( gs->spreadData(gsMode) )
    364366    {
    365       this->peerMap_[gs->getPeerID()].lastProcessedGamestateID = gs->getID();
     367      this->peerMap_[gs->getPeerID()].lastReceivedGamestateID = gs->getID();
    366368      return true;
    367369    }
Note: See TracChangeset for help on using the changeset viewer.