Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
Sep 8, 2008, 1:36:32 AM (16 years ago)
Author:
scheusso
Message:

further fixes (diff/undiff not working yet)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • code/branches/network/src/network/GamestateClient.cc

    r1735 r1739  
    7373      return 0;
    7474    int id = GAMESTATEID_INITIAL;
    75     bool b = saveShipCache();
    76     if(processGamestate(tempGamestate_)){
    77       if(b)
    78         loadShipCache();
    79       id = tempGamestate_->getID();
    80     }
     75    //bool b = saveShipCache();
     76    packet::Gamestate *processed = processGamestate(tempGamestate_);
     77    assert(processed);
     78    //successfully loaded data from gamestate. now save gamestate for diff and delete the old gs
     79    tempGamestate_=0;
     80    gamestateMap_[processed->getID()]=processed;
     81    last_diff_ = processed->getBaseID();
     82    last_gamestate_ = processed->getID();
     83    //if(b)
     84      //loadShipCache();
     85    id = processed->getID();
    8186    cleanup();
    8287    return id;
     
    151156  }
    152157
    153   bool GamestateClient::processGamestate(packet::Gamestate *gs){
    154     assert(gs->decompressData());
    155     if(gs->isDiffed())
    156       assert(gs->undiff(gamestateMap_[gs->getBaseID()]));
    157     return gs->spreadData();
     158  packet::Gamestate *GamestateClient::processGamestate(packet::Gamestate *gs){
     159    if(gs->isCompressed())
     160      assert(gs->decompressData());
     161    if(gs->isDiffed()){
     162      packet::Gamestate *base = gamestateMap_[gs->getBaseID()];
     163      assert(base);
     164      packet::Gamestate *undiffed = gs->undiff(base);
     165      delete gs;
     166      gs=undiffed;
     167      COUT(3) << "successfully undiffed gamestate id: " << undiffed->getID() << std::endl;
     168    }
     169    if(gs->spreadData())
     170      return gs;
     171    else
     172      return NULL;
    158173  }
    159174
Note: See TracChangeset for help on using the changeset viewer.