(svn r2176) Revise CheckOprhanedSlot():

- Don't assert the vehicle type, as it can be anything
- Don't touch the slot information of the vehicle, because it's possible that it is not a road vehicle anymore and even if it is, it has nothing to to with that slot
- Trim the debug printout, because the information about the vehicle is arbitrary
(Joint effort with Darkvater)
This commit is contained in:
tron 2005-04-10 20:48:43 +00:00
parent 41f38775a1
commit 4dbf5b37cc

View File

@ -2426,15 +2426,12 @@ static void CheckOrphanedSlots(const Station *st, RoadStopType rst)
for (rs = GetPrimaryRoadStop(st, rst); rs != NULL; rs = rs->next) { for (rs = GetPrimaryRoadStop(st, rst); rs != NULL; rs = rs->next) {
for (k = 0; k < NUM_SLOTS; k++) { for (k = 0; k < NUM_SLOTS; k++) {
if (rs->slot[k] != INVALID_SLOT) { if (rs->slot[k] != INVALID_SLOT) {
Vehicle *v = GetVehicle(rs->slot[k]); const Vehicle *v = GetVehicle(rs->slot[k]);
assert(v->type == VEH_Road); if (v->type != VEH_Road || v->u.road.slot != rs) {
if (v->u.road.slot != rs) { DEBUG(ms, 0) (
DEBUG(ms, 1) ("Multistop: %s slot desync between stop at 0x%X of station %d " "Multistop: Orphaned %s slot at 0x%X of station %d (don't panic)",
"and Vehicle %d at going to 0x%X! (don't panic)", (v->cargo_type == CT_PASSENGERS) ? "Bus" : "Truck", (rst == RS_BUS) ? "bus" : "truck", rs->xy, st->index);
rs->xy, st->index, v->unitnumber, v->dest_tile);
v->u.road.slot = NULL;
v->u.road.slot_age = 0;
rs->slot[k] = INVALID_SLOT; rs->slot[k] = INVALID_SLOT;
} }
} }