summaryrefslogtreecommitdiff
path: root/station_cmd.c
diff options
context:
space:
mode:
authorcelestar <celestar@openttd.org>2006-04-18 08:50:17 +0000
committercelestar <celestar@openttd.org>2006-04-18 08:50:17 +0000
commite75e4e8f74614e360414c7ec43899b8c461c911f (patch)
tree30ec24c2a1d82c9e46e78489ed951320b67741d9 /station_cmd.c
parent62f7907d3a5210160a1a3bf134e95213382c9c90 (diff)
downloadopenttd-e75e4e8f74614e360414c7ec43899b8c461c911f.tar.xz
(svn r4466) -Fix: (FS#71) Game no longer crashes when the last vehicle serving a station has been deleted.
-Negative side effect: upon loading old games, stations whose last vehicle was a station have (temporarily) lower ratings. -Positive side effect: station.h no longer includes vehicle.h (breaks the station.h->vehicle.h->rail.h chain)
Diffstat (limited to 'station_cmd.c')
-rw-r--r--station_cmd.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/station_cmd.c b/station_cmd.c
index a6fdad852..62d71ccb8 100644
--- a/station_cmd.c
+++ b/station_cmd.c
@@ -467,7 +467,7 @@ static void StationInitialize(Station *st, TileIndex tile)
st->delete_ctr = 0;
st->facilities = 0;
- st->last_vehicle = INVALID_VEHICLE;
+ st->last_vehicle_type = VEH_Invalid;
for (ge = st->goods; ge != endof(st->goods); ge++) {
ge->waiting_acceptance = 0;
@@ -2317,8 +2317,7 @@ static void UpdateStationRating(Station *st)
{
byte days = ge->days_since_pickup;
- if (st->last_vehicle != INVALID_VEHICLE &&
- GetVehicle(st->last_vehicle)->type == VEH_Ship)
+ if (st->last_vehicle_type == VEH_Ship)
days >>= 2;
(days > 21) ||
(rating += 25, days > 12) ||
@@ -2644,7 +2643,7 @@ void BuildOilRig(TileIndex tile)
st->time_since_load = 255;
st->time_since_unload = 255;
st->delete_ctr = 0;
- st->last_vehicle = INVALID_VEHICLE;
+ st->last_vehicle_type = VEH_Invalid;
st->facilities = FACIL_AIRPORT | FACIL_DOCK;
st->build_date = _date;
@@ -2817,7 +2816,8 @@ static const SaveLoad _station_desc[] = {
SLE_CONDVAR(Station,airport_flags, SLE_VAR_U32 | SLE_FILE_U16, 0, 2),
SLE_CONDVAR(Station,airport_flags, SLE_UINT32, 3, SL_MAX_VERSION),
- SLE_VAR(Station,last_vehicle, SLE_UINT16),
+ SLE_CONDNULL(2, 0, 25), /* Ex last-vehicle */
+ SLE_CONDVAR(Station,last_vehicle_type, SLE_UINT8 , 26, SL_MAX_VERSION),
// Was custom station class and id
SLE_CONDNULL(2, 3, 25),