Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
Sep 6, 2008, 3:16:11 PM (16 years ago)
Author:
scheusso
Message:

further bugfixes concerning packet handling

File:
1 edited

Legend:

Unmodified
Added
Removed
  • code/branches/network/src/network/packet/Gamestate.cc

    r1713 r1715  
    4949}
    5050
    51 Gamestate::Gamestate(unsigned char *data, bool compressed, int clientID):
     51Gamestate::Gamestate(unsigned char *data, int clientID):
    5252    Packet(data, clientID)
    5353{
    54   compressed_ = compressed;
    5554}
    5655
     
    106105  //start write gamestate header
    107106  HEADER->packetType = ENUM::Gamestate;
    108   assert( *(ENUM::Type *)&data_[ 0 ] == ENUM::Gamestate);
     107  assert( *(ENUM::Type *)(data_) == ENUM::Gamestate);
    109108  HEADER->normsize = currentsize;
    110109  HEADER->id = id;
    111110  HEADER->diffed = false;
    112111  HEADER->complete = true;
    113   compressed_=false;
     112  HEADER->compressed = false;
    114113  //stop write gamestate header
    115114 
     
    121120bool Gamestate::spreadData(int mode)
    122121{
    123   assert(data_ && !compressed_ && !HEADER->diffed);
     122  assert(data_ && !HEADER->compressed && !HEADER->diffed);
    124123  unsigned int size, objectID, classID;
    125124  unsigned char *mem=data_+sizeof(GamestateHeader);
     
    167166{
    168167  assert(data_);
    169   if(compressed_)
     168  if(HEADER->compressed)
    170169    return HEADER->compsize+sizeof(GamestateHeader);
    171170  else
     
    203202  //copy and modify header
    204203  HEADER->compsize = buffer;
     204  HEADER->compressed = true;
    205205  *GAMESTATE_HEADER(ndata) = *HEADER;
    206206  //delete old data
     
    208208  //save new data
    209209  data_ = ndata;
    210   compressed_ = true;
    211210  return true;
    212211}
    213212bool Gamestate::decompressData()
    214213{
    215   assert(compressed_);
     214  assert(HEADER->compressed);
    216215  //COUT(4) << "GameStateClient: uncompressing gamestate. id: " << a->id << ", baseid: " << a->base_id << ", normsize: " << a->normsize << ", compsize: " << a->compsize << std::endl;
    217216  int normsize = HEADER->normsize;
     
    236235  }
    237236 
    238   compressed_ = false;
     237  HEADER->compressed = false;
    239238  //copy over the header
    240239  *GAMESTATE_HEADER(ndata) = *HEADER;
     
    273272  }
    274273
    275   Gamestate *g = new Gamestate(ndata, false, 0);
     274  *GAMESTATE_HEADER(ndata) = *HEADER;
     275  GAMESTATE_HEADER(ndata)->diffed = true;
     276  Gamestate *g = new Gamestate(ndata, 0);
    276277  return g;
    277278}
     
    280281{
    281282  assert(this && base);
    282   assert(!this->compressed_ && !base->compressed_);
     283  assert(!HEADER->compressed && !GAMESTATE_HEADER(base->data_)->compressed);
    283284  //unsigned char *basep = base->getGs()/*, *gs = getGs()*/;
    284285  unsigned char *basep = GAMESTATE_START(base->data_);
     
    304305    }
    305306  }
    306  
    307   Gamestate *g = new Gamestate(ndata, false, 0);
     307  *GAMESTATE_HEADER(ndata) = *HEADER;
     308  GAMESTATE_HEADER(ndata)->diffed = false;
     309  Gamestate *g = new Gamestate(ndata, 0);
    308310  return g;
    309311}
Note: See TracChangeset for help on using the changeset viewer.