Changeset 1739 for code/branches/network/src/network/GamestateClient.cc
- Timestamp:
- Sep 8, 2008, 1:36:32 AM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
code/branches/network/src/network/GamestateClient.cc
r1735 r1739 73 73 return 0; 74 74 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(); 81 86 cleanup(); 82 87 return id; … … 151 156 } 152 157 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; 158 173 } 159 174
Note: See TracChangeset
for help on using the changeset viewer.