mirror of
https://github.com/OpenTTD/OpenTTD.git
synced 2025-03-06 14:27:16 +00:00
(svn r26581) -Fix [FS#5989]: transfering cargo to a station doesn't give that station a rating and thus the cargo does not decay... until the first pickup happens
For cargo drops from industries/houses, the station gets a rating too so why not when cargo is dropped at the station from a train?
This commit is contained in:
parent
89c25b955e
commit
b590a64718
@ -1558,8 +1558,18 @@ static void LoadUnloadVehicle(Vehicle *front)
|
||||
}
|
||||
}
|
||||
|
||||
/* Mark the station dirty if we transfer, but not if we only deliver. */
|
||||
dirty_station = v->cargo.ActionCount(VehicleCargoList::MTA_TRANSFER) > 0;
|
||||
if (v->cargo.ActionCount(VehicleCargoList::MTA_TRANSFER) > 0) {
|
||||
/* Mark the station dirty if we transfer, but not if we only deliver. */
|
||||
dirty_station = true;
|
||||
|
||||
if (!ge->HasRating()) {
|
||||
/* Upon transfering cargo, make sure the station has a rating. Fake a pickup for the
|
||||
* first unload to prevent the cargo from quickly decaying after the initial drop. */
|
||||
ge->time_since_pickup = 0;
|
||||
SetBit(ge->status, GoodsEntry::GES_RATING);
|
||||
}
|
||||
}
|
||||
|
||||
amount_unloaded = v->cargo.Unload(amount_unloaded, &ge->cargo, payment);
|
||||
remaining = v->cargo.UnloadCount() > 0;
|
||||
if (amount_unloaded > 0) {
|
||||
@ -1758,6 +1768,7 @@ static void LoadUnloadVehicle(Vehicle *front)
|
||||
if (dirty_station) {
|
||||
st->MarkTilesDirty(true);
|
||||
SetWindowDirty(WC_STATION_VIEW, last_visited);
|
||||
InvalidateWindowData(WC_STATION_LIST, last_visited);
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user