mirror of
https://github.com/JGRennison/OpenTTD-patches.git
synced 2024-11-04 06:00:15 +00:00
(svn r24882) -Fix: desync when NewGRF changes the stats related to acceleration (power, weight, tractive effort, etc) during service or 32 day triggers
This commit is contained in:
parent
34b7a60a54
commit
0dd0bbc071
@ -1637,6 +1637,9 @@ static void LoadUnloadVehicle(Vehicle *front, int *cargo_left)
|
||||
front->load_unload_ticks = max(1, unloading_time);
|
||||
|
||||
if (completely_emptied) {
|
||||
/* Make sure the vehicle is marked dirty, since we need to update the NewGRF
|
||||
* properties such as weight, power and TE whenever the trigger runs. */
|
||||
assert(dirty_vehicle);
|
||||
TriggerVehicle(front, VEHICLE_TRIGGER_EMPTY);
|
||||
}
|
||||
|
||||
|
@ -836,7 +836,11 @@ static void RunVehicleDayProc()
|
||||
if ((v->day_counter & 0x1F) == 0 && v->HasEngineType()) {
|
||||
uint16 callback = GetVehicleCallback(CBID_VEHICLE_32DAY_CALLBACK, 0, 0, v->engine_type, v);
|
||||
if (callback != CALLBACK_FAILED) {
|
||||
if (HasBit(callback, 0)) TriggerVehicle(v, VEHICLE_TRIGGER_CALLBACK_32); // Trigger vehicle trigger 10
|
||||
if (HasBit(callback, 0)) {
|
||||
/* After a vehicle trigger, the graphics and properties of the vehicle could change. */
|
||||
TriggerVehicle(v, VEHICLE_TRIGGER_CALLBACK_32); // Trigger vehicle trigger 10
|
||||
v->MarkDirty();
|
||||
}
|
||||
if (HasBit(callback, 1)) v->colourmap = PAL_NONE;
|
||||
|
||||
if (callback & ~3) ErrorUnknownCallbackResult(v->GetGRFID(), CBID_VEHICLE_32DAY_CALLBACK, callback);
|
||||
@ -1340,7 +1344,9 @@ void VehicleEnterDepot(Vehicle *v)
|
||||
|
||||
VehicleServiceInDepot(v);
|
||||
|
||||
/* After a vehicle trigger, the graphics and properties of the vehicle could change. */
|
||||
TriggerVehicle(v, VEHICLE_TRIGGER_DEPOT);
|
||||
v->MarkDirty();
|
||||
|
||||
if (v->current_order.IsType(OT_GOTO_DEPOT)) {
|
||||
SetWindowDirty(WC_VEHICLE_VIEW, v->index);
|
||||
|
Loading…
Reference in New Issue
Block a user