changeset 3475:cfc8648d09e4 draft

(svn r4320) -Fix/Codechange: rs->num_vehicles is no longer saved or loaded, but computed on the fly. Partly fixes FS#101
author celestar <celestar@openttd.org>
date Sat, 08 Apr 2006 05:44:37 +0000
parents ca61aedfd525
children 798ceee089b7
files station_cmd.c
diffstat 1 files changed, 6 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/station_cmd.c
+++ b/station_cmd.c
@@ -2749,7 +2749,7 @@
 	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()
 };
@@ -2910,6 +2910,7 @@
 static void Load_ROADSTOP(void)
 {
 	int index;
+	Vehicle *v;
 
 	while ((index = SlIterateArray()) != -1) {
 		RoadStop *rs;
@@ -2918,9 +2919,12 @@
 			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[] = {