summaryrefslogtreecommitdiff
path: root/src/economy.cpp
diff options
context:
space:
mode:
authorrubidium <rubidium@openttd.org>2008-12-26 20:45:02 +0000
committerrubidium <rubidium@openttd.org>2008-12-26 20:45:02 +0000
commitc34ce32f261fb145af2d2153f0e694ac7a99a80c (patch)
tree8f057180fb9ab731f9c1950f45a7d957bf7d4ae0 /src/economy.cpp
parent7fbd5beb0f92c6f53b4b8d9206773003328b2e7d (diff)
downloadopenttd-c34ce32f261fb145af2d2153f0e694ac7a99a80c.tar.xz
(svn r14747) -Codechange: remove DeleteVehicleChain in favour of the vehicle destructor as that was already doing the same for a few vehicle types.
Diffstat (limited to 'src/economy.cpp')
-rw-r--r--src/economy.cpp26
1 files changed, 2 insertions, 24 deletions
diff --git a/src/economy.cpp b/src/economy.cpp
index cccbf0b93..ccd0cc2b6 100644
--- a/src/economy.cpp
+++ b/src/economy.cpp
@@ -383,35 +383,13 @@ void ChangeOwnershipOfCompanyItems(Owner old_owner, Owner new_owner)
}
FOR_ALL_VEHICLES(v) {
- if (v->owner == old_owner && IsInsideMM(v->type, VEH_TRAIN, VEH_AIRCRAFT + 1)) {
+ if (v->owner == old_owner && IsCompanyBuildableVehicleType(v->type)) {
if (new_owner == INVALID_OWNER) {
DeleteWindowById(WC_VEHICLE_VIEW, v->index);
DeleteWindowById(WC_VEHICLE_DETAILS, v->index);
DeleteWindowById(WC_VEHICLE_ORDERS, v->index);
- if (v->IsPrimaryVehicle() || (v->type == VEH_TRAIN && IsFreeWagon(v))) {
- switch (v->type) {
- default: NOT_REACHED();
-
- case VEH_TRAIN: {
- Vehicle *u = v;
- do {
- Vehicle *next = GetNextVehicle(u);
- delete u;
- u = next;
- } while (u != NULL);
- } break;
-
- case VEH_ROAD:
- case VEH_SHIP:
- delete v;
- break;
-
- case VEH_AIRCRAFT:
- DeleteVehicleChain(v);
- break;
- }
- }
+ if (v->Previous() == NULL) delete v;
} else {
v->owner = new_owner;
v->colormap = PAL_NONE;