(svn r16390) -Codechange: move u.road to RoadVehicle.
This commit is contained in:
@@ -914,7 +914,7 @@ bool AfterLoadGame()
|
||||
if (v->type == VEH_TRAIN) {
|
||||
v->u.rail.track = TRACK_BIT_WORMHOLE;
|
||||
} else {
|
||||
v->u.road.state = RVSB_WORMHOLE;
|
||||
((RoadVehicle *)v)->state = RVSB_WORMHOLE;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1049,15 +1049,18 @@ bool AfterLoadGame()
|
||||
Vehicle *v;
|
||||
FOR_ALL_VEHICLES(v) {
|
||||
if (v->type == VEH_ROAD) {
|
||||
v->vehstatus &= ~0x40;
|
||||
v->u.road.slot = NULL;
|
||||
v->u.road.slot_age = 0;
|
||||
RoadVehicle *rv = (RoadVehicle *)v;
|
||||
rv->vehstatus &= ~0x40;
|
||||
rv->slot = NULL;
|
||||
rv->slot_age = 0;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
Vehicle *v;
|
||||
FOR_ALL_VEHICLES(v) {
|
||||
if (v->type == VEH_ROAD && v->u.road.slot != NULL) v->u.road.slot->num_vehicles++;
|
||||
if (v->type != VEH_ROAD) continue;
|
||||
RoadVehicle *rv = (RoadVehicle *)v;
|
||||
if (rv->slot != NULL) rv->slot->num_vehicles++;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1373,8 +1376,10 @@ bool AfterLoadGame()
|
||||
/* In some old savegames a bit was cleared when it should not be cleared */
|
||||
Vehicle *v;
|
||||
FOR_ALL_VEHICLES(v) {
|
||||
if (v->type == VEH_ROAD && (v->u.road.state == 250 || v->u.road.state == 251)) {
|
||||
SetBit(v->u.road.state, RVS_IS_STOPPING);
|
||||
if (v->type != VEH_ROAD) continue;
|
||||
RoadVehicle *rv = (RoadVehicle *)v;
|
||||
if (rv->state == 250 || rv->state == 251) {
|
||||
SetBit(rv->state, RVS_IS_STOPPING);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -175,10 +175,11 @@ void FixOldVehicles()
|
||||
v->name = CopyFromOldName(_old_vehicle_names[v->index]);
|
||||
|
||||
/* We haven't used this bit for stations for ages */
|
||||
if (v->type == VEH_ROAD &&
|
||||
v->u.road.state != RVSB_IN_DEPOT &&
|
||||
v->u.road.state != RVSB_WORMHOLE) {
|
||||
ClrBit(v->u.road.state, RVS_IS_STOPPING);
|
||||
if (v->type == VEH_ROAD) {
|
||||
RoadVehicle *rv = (RoadVehicle *)v;
|
||||
if (rv->state != RVSB_IN_DEPOT && rv->state != RVSB_WORMHOLE) {
|
||||
ClrBit(rv->state, RVS_IS_STOPPING);
|
||||
}
|
||||
}
|
||||
|
||||
/* The subtype should be 0, but it sometimes isn't :( */
|
||||
@@ -1089,13 +1090,13 @@ static const OldChunks vehicle_train_chunk[] = {
|
||||
};
|
||||
|
||||
static const OldChunks vehicle_road_chunk[] = {
|
||||
OCL_SVAR( OC_UINT8, VehicleRoad, state ),
|
||||
OCL_SVAR( OC_UINT8, VehicleRoad, frame ),
|
||||
OCL_SVAR( OC_UINT16, VehicleRoad, blocked_ctr ),
|
||||
OCL_SVAR( OC_UINT8, VehicleRoad, overtaking ),
|
||||
OCL_SVAR( OC_UINT8, VehicleRoad, overtaking_ctr ),
|
||||
OCL_SVAR( OC_UINT16, VehicleRoad, crashed_ctr ),
|
||||
OCL_SVAR( OC_UINT8, VehicleRoad, reverse_ctr ),
|
||||
OCL_SVAR( OC_UINT8, RoadVehicle, state ),
|
||||
OCL_SVAR( OC_UINT8, RoadVehicle, frame ),
|
||||
OCL_SVAR( OC_UINT16, RoadVehicle, blocked_ctr ),
|
||||
OCL_SVAR( OC_UINT8, RoadVehicle, overtaking ),
|
||||
OCL_SVAR( OC_UINT8, RoadVehicle, overtaking_ctr ),
|
||||
OCL_SVAR( OC_UINT16, RoadVehicle, crashed_ctr ),
|
||||
OCL_SVAR( OC_UINT8, RoadVehicle, reverse_ctr ),
|
||||
|
||||
OCL_NULL( 1 ), ///< Junk
|
||||
|
||||
@@ -1157,7 +1158,7 @@ static bool LoadOldVehicleUnion(LoadgameState *ls, int num)
|
||||
switch (v->type) {
|
||||
default: NOT_REACHED();
|
||||
case VEH_TRAIN : res = LoadChunk(ls, &v->u.rail, vehicle_train_chunk); break;
|
||||
case VEH_ROAD : res = LoadChunk(ls, &v->u.road, vehicle_road_chunk); break;
|
||||
case VEH_ROAD : res = LoadChunk(ls, v, vehicle_road_chunk); break;
|
||||
case VEH_SHIP : res = LoadChunk(ls, v, vehicle_ship_chunk); break;
|
||||
case VEH_AIRCRAFT: res = LoadChunk(ls, v, vehicle_air_chunk); break;
|
||||
case VEH_EFFECT : res = LoadChunk(ls, v, vehicle_effect_chunk); break;
|
||||
|
@@ -253,7 +253,7 @@ void AfterLoadVehicles(bool part_of_load)
|
||||
if (part_of_load) v->fill_percent_te_id = INVALID_TE_ID;
|
||||
v->first = NULL;
|
||||
if (v->type == VEH_TRAIN) v->u.rail.first_engine = INVALID_ENGINE;
|
||||
if (v->type == VEH_ROAD) v->u.road.first_engine = INVALID_ENGINE;
|
||||
if (v->type == VEH_ROAD) ((RoadVehicle *)v)->first_engine = INVALID_ENGINE;
|
||||
|
||||
v->cargo.InvalidateCache();
|
||||
}
|
||||
@@ -344,9 +344,11 @@ void AfterLoadVehicles(bool part_of_load)
|
||||
|
||||
FOR_ALL_VEHICLES(v) {
|
||||
switch (v->type) {
|
||||
case VEH_ROAD:
|
||||
v->u.road.roadtype = HasBit(EngInfo(v->First()->engine_type)->misc_flags, EF_ROAD_TRAM) ? ROADTYPE_TRAM : ROADTYPE_ROAD;
|
||||
v->u.road.compatible_roadtypes = RoadTypeToRoadTypes(v->u.road.roadtype);
|
||||
case VEH_ROAD: {
|
||||
RoadVehicle *rv = (RoadVehicle *)v;
|
||||
rv->roadtype = HasBit(EngInfo(v->First()->engine_type)->misc_flags, EF_ROAD_TRAM) ? ROADTYPE_TRAM : ROADTYPE_ROAD;
|
||||
rv->compatible_roadtypes = RoadTypeToRoadTypes(rv->roadtype);
|
||||
}
|
||||
/* FALL THROUGH */
|
||||
case VEH_TRAIN:
|
||||
case VEH_SHIP:
|
||||
@@ -542,19 +544,19 @@ const SaveLoad *GetVehicleDescription(VehicleType vt)
|
||||
static const SaveLoad _roadveh_desc[] = {
|
||||
SLE_WRITEBYTE(Vehicle, type, VEH_ROAD),
|
||||
SLE_VEH_INCLUDEX(),
|
||||
SLE_VARX(cpp_offsetof(Vehicle, u) + cpp_offsetof(VehicleRoad, state), SLE_UINT8),
|
||||
SLE_VARX(cpp_offsetof(Vehicle, u) + cpp_offsetof(VehicleRoad, frame), SLE_UINT8),
|
||||
SLE_VARX(cpp_offsetof(Vehicle, u) + cpp_offsetof(VehicleRoad, blocked_ctr), SLE_UINT16),
|
||||
SLE_VARX(cpp_offsetof(Vehicle, u) + cpp_offsetof(VehicleRoad, overtaking), SLE_UINT8),
|
||||
SLE_VARX(cpp_offsetof(Vehicle, u) + cpp_offsetof(VehicleRoad, overtaking_ctr), SLE_UINT8),
|
||||
SLE_VARX(cpp_offsetof(Vehicle, u) + cpp_offsetof(VehicleRoad, crashed_ctr), SLE_UINT16),
|
||||
SLE_VARX(cpp_offsetof(Vehicle, u) + cpp_offsetof(VehicleRoad, reverse_ctr), SLE_UINT8),
|
||||
SLE_VAR(RoadVehicle, state, SLE_UINT8),
|
||||
SLE_VAR(RoadVehicle, frame, SLE_UINT8),
|
||||
SLE_VAR(RoadVehicle, blocked_ctr, SLE_UINT16),
|
||||
SLE_VAR(RoadVehicle, overtaking, SLE_UINT8),
|
||||
SLE_VAR(RoadVehicle, overtaking_ctr, SLE_UINT8),
|
||||
SLE_VAR(RoadVehicle, crashed_ctr, SLE_UINT16),
|
||||
SLE_VAR(RoadVehicle, reverse_ctr, SLE_UINT8),
|
||||
|
||||
SLE_CONDREFX(cpp_offsetof(Vehicle, u) + cpp_offsetof(VehicleRoad, slot), REF_ROADSTOPS, 6, SL_MAX_VERSION),
|
||||
SLE_CONDNULL(1, 6, SL_MAX_VERSION),
|
||||
SLE_CONDVARX(cpp_offsetof(Vehicle, u) + cpp_offsetof(VehicleRoad, slot_age), SLE_UINT8, 6, SL_MAX_VERSION),
|
||||
SLE_CONDREF(RoadVehicle, slot, REF_ROADSTOPS, 6, SL_MAX_VERSION),
|
||||
SLE_CONDNULL(1, 6, SL_MAX_VERSION),
|
||||
SLE_CONDVAR(RoadVehicle, slot_age, SLE_UINT8, 6, SL_MAX_VERSION),
|
||||
/* reserve extra space in savegame here. (currently 16 bytes) */
|
||||
SLE_CONDNULL(16, 2, SL_MAX_VERSION),
|
||||
SLE_CONDNULL(16, 2, SL_MAX_VERSION),
|
||||
|
||||
SLE_END()
|
||||
};
|
||||
|
Reference in New Issue
Block a user