diff options
author | frosch <frosch@openttd.org> | 2009-01-10 17:39:43 +0000 |
---|---|---|
committer | frosch <frosch@openttd.org> | 2009-01-10 17:39:43 +0000 |
commit | bc786f9e59cf2f19c2e11de7c85a139bc4bac92b (patch) | |
tree | 3ac521259aa68c37f3b7ea6e9a8605691cb10ec2 | |
parent | 496f6aed3c8d294dcecb0dd6582c3ae54df3e55b (diff) | |
download | openttd-bc786f9e59cf2f19c2e11de7c85a139bc4bac92b.tar.xz |
(svn r14975) -Fix (r14957): Do not immediatelly move the train when leaving the station and the destination is not yet known.
-rw-r--r-- | src/train_cmd.cpp | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/train_cmd.cpp b/src/train_cmd.cpp index 8fc439dd5..1ed39f811 100644 --- a/src/train_cmd.cpp +++ b/src/train_cmd.cpp @@ -3652,6 +3652,12 @@ static void TrainController(Vehicle *v, Vehicle *nomove, bool update_image) { Vehicle *prev; + if (v->current_order.IsType(OT_LEAVESTATION)) { + v->current_order.Free(); + InvalidateWindowWidget(WC_VEHICLE_VIEW, v->index, VVW_WIDGET_START_STOP_VEH); + return; + } + /* For every vehicle after and including the given vehicle */ for (prev = v->Previous(); v != nomove; prev = v, v = v->Next()) { DiagDirection enterdir = DIAGDIR_BEGIN; @@ -3680,9 +3686,6 @@ static void TrainController(Vehicle *v, Vehicle *nomove, bool update_image) if (HasBit(r, VETS_ENTERED_STATION)) { /* The new position is the end of the platform */ TrainEnterStation(v, r >> VETS_STATION_ID_OFFSET); - } else if (v->current_order.IsType(OT_LEAVESTATION)) { - v->current_order.Free(); - InvalidateWindowWidget(WC_VEHICLE_VIEW, v->index, VVW_WIDGET_START_STOP_VEH); } } } else { |