@@ -2746,13 +2746,13 @@ static const SaveLoad _roadstop_desc[] =
SLE_VAR(RoadStop,type, SLE_UINT8),
SLE_REF(RoadStop,next, REF_ROADSTOPS),
SLE_REF(RoadStop,prev, REF_ROADSTOPS),
SLE_CONDNULL(4, 0, 24),
SLE_CONDVAR(RoadStop, num_vehicles, SLE_UINT8, 25, SL_MAX_VERSION),
SLE_CONDNULL(1, 25, 25),
SLE_END()
};
static const SaveLoad _station_desc[] = {
SLE_CONDVAR(Station, xy, SLE_FILE_U16 | SLE_VAR_U32, 0, 5),
@@ -2907,23 +2907,27 @@ static void Save_ROADSTOP(void)
}
static void Load_ROADSTOP(void)
{
int index;
Vehicle *v;
while ((index = SlIterateArray()) != -1) {
RoadStop *rs;
if (!AddBlockIfNeeded(&_roadstop_pool, index))
error("RoadStops: failed loading savegame: too many RoadStops");
rs = GetRoadStop(index);
rs->num_vehicles = 0;
SlObject(rs, _roadstop_desc);
FOR_ALL_VEHICLES(v) {
if (v->type == VEH_Road && v->u.road.slot != NULL) GetRoadStopByTile(v->dest_tile, v->cargo_type == CT_PASSENGERS ? RS_BUS : RS_TRUCK)->num_vehicles++;
const ChunkHandler _station_chunk_handlers[] = {
{ 'STNS', Save_STNS, Load_STNS, CH_ARRAY },
{ 'ROAD', Save_ROADSTOP, Load_ROADSTOP, CH_ARRAY | CH_LAST},
Status change: