mirror of
https://github.com/OpenTTD/OpenTTD.git
synced 2025-03-12 18:40:29 +00:00
Fix #9020: Update station coverage highlight when adding/removing tiles
This commit is contained in:
parent
c73f578e8c
commit
fbbc80f79e
@ -744,9 +744,16 @@ static void DeleteStationIfEmpty(BaseStation *st)
|
||||
void Station::AfterStationTileSetChange(bool adding, StationType type)
|
||||
{
|
||||
this->UpdateVirtCoord();
|
||||
this->RecomputeCatchment();
|
||||
DirtyCompanyInfrastructureWindows(this->owner);
|
||||
if (adding) InvalidateWindowData(WC_STATION_LIST, this->owner, 0);
|
||||
|
||||
if (adding) {
|
||||
this->RecomputeCatchment();
|
||||
MarkCatchmentTilesDirty();
|
||||
InvalidateWindowData(WC_STATION_LIST, this->owner, 0);
|
||||
} else {
|
||||
MarkCatchmentTilesDirty();
|
||||
this->RecomputeCatchment();
|
||||
}
|
||||
|
||||
switch (type) {
|
||||
case STATION_RAIL:
|
||||
@ -1628,6 +1635,7 @@ CommandCost RemoveFromRailBaseStation(TileArea ta, std::vector<T *> &affected_st
|
||||
if (st->train_station.tile == INVALID_TILE) {
|
||||
st->facilities &= ~FACIL_TRAIN;
|
||||
SetWindowWidgetDirty(WC_STATION_VIEW, st->index, WID_SV_TRAINS);
|
||||
MarkCatchmentTilesDirty();
|
||||
st->UpdateVirtCoord();
|
||||
DeleteStationIfEmpty(st);
|
||||
}
|
||||
@ -1662,6 +1670,7 @@ CommandCost CmdRemoveFromRailStation(DoCommandFlag flags, TileIndex start, TileI
|
||||
|
||||
if (st->train_station.tile == INVALID_TILE) SetWindowWidgetDirty(WC_STATION_VIEW, st->index, WID_SV_TRAINS);
|
||||
st->MarkTilesDirty(false);
|
||||
MarkCatchmentTilesDirty();
|
||||
st->RecomputeCatchment();
|
||||
}
|
||||
|
||||
|
@ -3495,7 +3495,7 @@ CommandCost CmdScrollViewport(DoCommandFlag flags, TileIndex tile, ViewportScrol
|
||||
return CommandCost();
|
||||
}
|
||||
|
||||
static void MarkCatchmentTilesDirty()
|
||||
void MarkCatchmentTilesDirty()
|
||||
{
|
||||
if (_viewport_highlight_town != nullptr) {
|
||||
MarkWholeScreenDirty();
|
||||
|
@ -98,5 +98,6 @@ struct Town;
|
||||
|
||||
void SetViewportCatchmentStation(const Station *st, bool sel);
|
||||
void SetViewportCatchmentTown(const Town *t, bool sel);
|
||||
void MarkCatchmentTilesDirty();
|
||||
|
||||
#endif /* VIEWPORT_FUNC_H */
|
||||
|
Loading…
Reference in New Issue
Block a user