mirror of
https://github.com/JGRennison/OpenTTD-patches.git
synced 2024-11-04 06:00:15 +00:00
(svn r18642) -Fix [FS#3432]: when a company goes bankrupt and has vehicles on a drive through road stop that is not theirs, the 'filled' cache of the road stops would get corrupted
This commit is contained in:
parent
6a9b7df760
commit
1c9fc3f3eb
@ -46,6 +46,7 @@
|
||||
#include "core/pool_func.hpp"
|
||||
#include "economy_base.h"
|
||||
#include "articulated_vehicles.h"
|
||||
#include "roadstop_base.h"
|
||||
|
||||
#include "table/sprites.h"
|
||||
#include "table/strings.h"
|
||||
@ -574,6 +575,15 @@ void Vehicle::PreDestructor()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (this->type == VEH_ROAD && this->IsPrimaryVehicle()) {
|
||||
RoadVehicle *v = RoadVehicle::From(this);
|
||||
if (!(v->vehstatus & VS_CRASHED) && IsInsideMM(v->state, RVSB_IN_DT_ROAD_STOP, RVSB_IN_DT_ROAD_STOP_END)) {
|
||||
/* Leave the drive through roadstop, when you have not already left it. */
|
||||
RoadStop::GetByTile(v->tile, GetRoadStopType(v->tile))->Leave(v);
|
||||
}
|
||||
}
|
||||
|
||||
if (this->Previous() == NULL) {
|
||||
InvalidateWindowData(WC_VEHICLE_DEPOT, this->tile);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user