(svn r14747) -Codechange: remove DeleteVehicleChain in favour of the vehicle destructor as that was already doing the same for a few vehicle types.

This commit is contained in:
rubidium
2008-12-26 20:45:02 +00:00
parent 73ca72922c
commit f18043ee21
6 changed files with 14 additions and 53 deletions

View File

@@ -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;