diff options
author | rubidium <rubidium@openttd.org> | 2008-12-31 17:52:42 +0000 |
---|---|---|
committer | rubidium <rubidium@openttd.org> | 2008-12-31 17:52:42 +0000 |
commit | 5a6d3a601db0c5cb95293227046dc365178bdd82 (patch) | |
tree | d22a025a3b452598337569dc3987b2eb4c0d28ed /src | |
parent | 9a5f4f28f4dde16173da267e47d8a8d4e86e8d2b (diff) | |
download | openttd-5a6d3a601db0c5cb95293227046dc365178bdd82.tar.xz |
(svn r14779) -Fix (r14747) [FS#2485]: selling an articulated vehicle removed only the first part and not the rest.
Diffstat (limited to 'src')
-rw-r--r-- | src/train_cmd.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/train_cmd.cpp b/src/train_cmd.cpp index d1fa79a97..e98461410 100644 --- a/src/train_cmd.cpp +++ b/src/train_cmd.cpp @@ -938,7 +938,11 @@ static Vehicle *UnlinkWagon(Vehicle *v, Vehicle *first) if (v == NULL) return NULL; if (IsTrainWagon(v)) SetFreeWagon(v); - first->SetNext(NULL); + + /* First can be an articulated engine, meaning GetNextVehicle() isn't + * v->Next(). Thus set the next vehicle of the last articulated part + * and the last articulated part is just before the next vehicle (v). */ + v->Previous()->SetNext(NULL); return v; } |