void ServiceBuilding::unserialize(InputSerialStream &stream) { WorkingBuilding::unserialize(stream); _serviceTimer = stream.read_int(2, 0, 1000); _serviceDelay = stream.read_int(2, 0, 1000); _serviceRange = stream.read_int(2, 0, 65535); }
void Market::unserialize(InputSerialStream &stream) { ServiceBuilding::unserialize(stream); _goodStore.unserialize(stream); stream.read_objectID((void**)&_marketBuyer); _buyerDelay = stream.read_int(2, 0, 1000); }
void ServiceWalker::unserialize(InputSerialStream &stream) { Walker::unserialize(stream); _service = (ServiceType) stream.read_int(1, 0, S_MAX); init(_service); stream.read_objectID((void**)&_building); _maxDistance = stream.read_int(2, 0, 65535); }
void Tilemap::unserialize(InputSerialStream &stream) { _size = stream.read_int(2, 0, 1000); init(_size); // loads the graphics map PicLoader &picLoader = PicLoader::instance(); short int imgId; // 16bits for (int i=0; i<_size; ++i) { for (int j=0; j<_size; ++j) { Tile &tile = at(i, j); TerrainTile &terrain = tile.get_terrain(); imgId = (short)stream.read_int(2, 0, 65535); // terrain terrain.unserialize(stream); // cannot access the overlay at this stage (it has not be unserialized yet) if (imgId != 0 && !terrain.isBuilding()) { // master landscape tile! std::string picName = TerrainTileHelper::convId2PicName( imgId ); Picture& pic = PicLoader::instance().get_picture( picName ); int tile_size = (pic.get_width()+2)/60; // size of the multi-tile. the multi-tile is a square. // master is the left-most subtile Tile* master; if (tile_size == 1) { master = NULL; } else { master = &at(i, j); } for (int di=0; di<tile_size; ++di) { // for each subrow of the multi-tile for (int dj=0; dj<tile_size; ++dj) { // for each subcol of the multi-tile Tile &sub_tile = at(i+di, j+dj); sub_tile.set_master_tile(master); sub_tile.set_picture(&pic); } } } } } }
void TraineeWalker::unserialize(InputSerialStream &stream) { Walker::unserialize(stream); _traineeType = (WalkerTraineeType) stream.read_int(1, 0, WTT_MAX); init(_traineeType); stream.read_objectID((void**)&_originBuilding); stream.read_objectID((void**)&_destinationBuilding); _maxDistance = stream.read_int(2, 0, 65535); }
void Walker::unserialize(InputSerialStream &stream) { _pathWay.unserialize(stream); _action._action = (WalkerActionType) stream.read_int(1, 0, WA_MAX); _action._direction = (DirectionType) stream.read_int(1, 0, D_MAX); _i = stream.read_int(2, 0, 1000); _j = stream.read_int(2, 0, 1000); _si = stream.read_int(1, 0, 50); _sj = stream.read_int(1, 0, 50); _ii = stream.read_int(4, 0, 1000000); _jj = stream.read_int(4, 0, 1000000); _speed = stream.read_int(1, 0, 50); _midTileI = stream.read_int(1, 0, 50); _midTileJ = stream.read_int(1, 0, 50); _animIndex = stream.read_int(1, 0, 50); }
void Building::unserialize(InputSerialStream &stream) { Construction::unserialize(stream); _damageLevel = (float)stream.read_int(1, 0, 100); _fireLevel = (float)stream.read_int(1, 0, 100); int size = stream.read_int(1, 0, WTT_MAX); for (int i=0; i<size; ++i) { WalkerTraineeType traineeType = (WalkerTraineeType) stream.read_int(1, 0, WTT_MAX); int traineeLevel = stream.read_int(1, 0, 200); _traineeMap[traineeType] = traineeLevel; } size = stream.read_int(1, 0, WTT_MAX); for (int i=0; i<size; ++i) { WalkerTraineeType traineeType = (WalkerTraineeType) stream.read_int(1, 0, WTT_MAX); _reservedTrainees.insert(traineeType); } }
void WorkingBuilding::unserialize(InputSerialStream &stream) { Building::unserialize(stream); _currentWorkers = stream.read_int(1, 0, 100); }
void TerrainTile::unserialize(InputSerialStream &stream) { int terrainBitset = stream.read_int(2, 0, 65535); decode(terrainBitset); stream.read_objectID((void**)&_overlay); }