Changeset 1751 for code/trunk/src/network/GamestateClient.cc
- Timestamp:
- Sep 9, 2008, 4:31:34 PM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
code/trunk/src/network/GamestateClient.cc
r1747 r1751 75 75 int id = GAMESTATEID_INITIAL; 76 76 bool b = saveShipCache(); 77 if(processGamestate(tempGamestate_)){ 78 if(b) 79 loadShipCache(); 80 id = tempGamestate_->getID(); 81 } 77 packet::Gamestate *processed = processGamestate(tempGamestate_); 78 assert(processed); 79 //successfully loaded data from gamestate. now save gamestate for diff and delete the old gs 80 tempGamestate_=0; 81 gamestateMap_[processed->getID()]=processed; 82 last_diff_ = processed->getBaseID(); 83 last_gamestate_ = processed->getID(); 84 if(b) 85 loadShipCache(); 86 id = processed->getID(); 82 87 cleanup(); 83 88 return id; … … 130 135 if(myShip_){ 131 136 // unsigned char *data = new unsigned char[myShip_->getSize()]; 132 int size=myShip_->getSize (0x1);137 int size=myShip_->getSize2(0, 0x1); 133 138 if(size==0) 134 139 return false; 135 140 shipCache_ = new unsigned char [size]; 136 141 unsigned char *temp = shipCache_; 137 if(!myShip_->getData 2(temp, 0x1))142 if(!myShip_->getData(temp, 0, 0x1)) 138 143 COUT(3) << "could not save shipCache" << std::endl; 139 144 return true; … … 152 157 } 153 158 154 bool GamestateClient::processGamestate(packet::Gamestate *gs){ 155 assert(gs->decompressData()); 156 if(gs->isDiffed()) 157 assert(gs->undiff(gamestateMap_[gs->getBaseID()])); 158 return gs->spreadData(); 159 packet::Gamestate *GamestateClient::processGamestate(packet::Gamestate *gs){ 160 if(gs->isCompressed()) 161 assert(gs->decompressData()); 162 if(gs->isDiffed()){ 163 packet::Gamestate *base = gamestateMap_[gs->getBaseID()]; 164 assert(base); 165 packet::Gamestate *undiffed = gs->undiff(base); 166 delete gs; 167 gs=undiffed; 168 COUT(3) << "successfully undiffed gamestate id: " << undiffed->getID() << std::endl; 169 } 170 if(gs->spreadData()) 171 return gs; 172 else 173 return NULL; 159 174 } 160 175
Note: See TracChangeset
for help on using the changeset viewer.