diff --git a/src/saveload/afterload.cpp b/src/saveload/afterload.cpp index 798503f2c2..052d3d6e32 100644 --- a/src/saveload/afterload.cpp +++ b/src/saveload/afterload.cpp @@ -216,7 +216,6 @@ static bool InitializeWindowsAndCaches() UpdateAllStationVirtCoords(); UpdateAllSignVirtCoords(); UpdateAllTownVirtCoords(); - UpdateAllWaypointVirtCoords(); Company *c; FOR_ALL_COMPANIES(c) { diff --git a/src/settings_gui.cpp b/src/settings_gui.cpp index ae1dc9122a..d56537a049 100644 --- a/src/settings_gui.cpp +++ b/src/settings_gui.cpp @@ -322,7 +322,6 @@ struct GameOptionsWindow : Window { ReadLanguagePack(index); CheckForMissingGlyphsInLoadedLanguagePack(); UpdateAllStationVirtCoords(); - UpdateAllWaypointVirtCoords(); ReInitAllWindows(); MarkWholeScreenDirty(); break; diff --git a/src/station_base.h b/src/station_base.h index b9efcc1aed..9d092f0577 100644 --- a/src/station_base.h +++ b/src/station_base.h @@ -119,6 +119,11 @@ struct BaseStation { */ virtual uint32 GetNewGRFVariable(const struct ResolverObject *object, byte variable, byte parameter, bool *available) const = 0; + /** + * Update the coordinated of the sign (as shown in the viewport). + */ + virtual void UpdateVirtCoord() = 0; + /** * Get the base station belonging to a specific tile. * @param tile The tile to get the base station from. diff --git a/src/station_cmd.cpp b/src/station_cmd.cpp index bb1db7152b..c6e98c6128 100644 --- a/src/station_cmd.cpp +++ b/src/station_cmd.cpp @@ -33,6 +33,7 @@ #include "elrail_func.h" #include "station_base.h" #include "roadstop_base.h" +#include "waypoint.h" #include "table/strings.h" @@ -384,11 +385,15 @@ void Station::UpdateVirtCoord() /** Update the virtual coords needed to draw the station sign for all stations. */ void UpdateAllStationVirtCoords() { - Station *st; + BaseStation *st; FOR_ALL_STATIONS(st) { st->UpdateVirtCoord(); } + + FOR_ALL_WAYPOINTS(st) { + st->UpdateVirtCoord(); + } } /** Get a mask of the cargo types that the station accepts. diff --git a/src/town_cmd.cpp b/src/town_cmd.cpp index 843e639be5..4634359438 100644 --- a/src/town_cmd.cpp +++ b/src/town_cmd.cpp @@ -2286,7 +2286,6 @@ CommandCost CmdRenameTown(TileIndex tile, DoCommandFlag flags, uint32 p1, uint32 t->UpdateVirtCoord(); InvalidateWindowData(WC_TOWN_DIRECTORY, 0, 1); UpdateAllStationVirtCoords(); - UpdateAllWaypointVirtCoords(); } return CommandCost(); } diff --git a/src/waypoint.cpp b/src/waypoint.cpp index acfda83341..e56fbca0d9 100644 --- a/src/waypoint.cpp +++ b/src/waypoint.cpp @@ -17,18 +17,6 @@ WaypointPool _waypoint_pool("Waypoint"); INSTANTIATE_POOL_METHODS(Waypoint) -/** - * Update all signs - */ -void UpdateAllWaypointVirtCoords() -{ - Waypoint *wp; - - FOR_ALL_WAYPOINTS(wp) { - wp->UpdateVirtCoord(); - } -} - /** * Daily loop for waypoints */ diff --git a/src/waypoint.h b/src/waypoint.h index 1ffb74fe2a..ee3122fe4b 100644 --- a/src/waypoint.h +++ b/src/waypoint.h @@ -51,6 +51,5 @@ struct Waypoint : WaypointPool::PoolItem<&_waypoint_pool>, BaseStation { CommandCost RemoveTrainWaypoint(TileIndex tile, DoCommandFlag flags, bool justremove); void ShowWaypointWindow(const Waypoint *wp); void DrawWaypointSprite(int x, int y, int stat_id, RailType railtype); -void UpdateAllWaypointVirtCoords(); #endif /* WAYPOINT_H */