Mercurial > hg > openttd
diff src/openttd.cpp @ 5879:abfe68a96c2f draft
(svn r8477) -Fix
-Codechange: Remove the unnecessary attributes Station::{bus,lorry}_tile_obsolete by replacing them with a scan of the map for existing road stops when loading old savegames
author | tron <tron@openttd.org> |
---|---|
date | Wed, 31 Jan 2007 06:25:46 +0000 |
parents | 1ab2872708ff |
children | a44e494ecc90 |
line wrap: on
line diff
--- a/src/openttd.cpp +++ b/src/openttd.cpp @@ -1282,6 +1282,22 @@ // In 5.1, Oilrigs have been moved (again) if (CheckSavegameVersionOldStyle(5, 1)) UpdateOilRig(); + /* From this version on there can be multiple road stops of the same type per + * station. Convert the existing stops to the new internal data structure. + */ + if (CheckSavegameVersion(6)) { + for (TileIndex t = 0; t < map_size; t++) { + if (IsRoadStopTile(t)) { + RoadStop *rs = new RoadStop(t); + if (rs == NULL) error("Too many road stops in savegame"); + + Station *st = GetStationByTile(t); + RoadStop **head = IsTruckStop(t) ? &st->truck_stops : &st->bus_stops; + *head = rs; + } + } + } + /* In version 6.1 we put the town index in the map-array. To do this, we need * to use m2 (16bit big), so we need to clean m2, and that is where this is * all about ;) */