Allow referencing waypoints in news items

This commit is contained in:
Jonathan G Rennison 2021-01-21 22:55:30 +00:00
parent ac6581ac8f
commit 01c051793c
2 changed files with 5 additions and 1 deletions

View File

@ -71,7 +71,7 @@ static TileIndex GetReferenceTile(NewsReferenceType reftype, uint32 ref)
{ {
switch (reftype) { switch (reftype) {
case NR_TILE: return (TileIndex)ref; case NR_TILE: return (TileIndex)ref;
case NR_STATION: return Station::Get((StationID)ref)->xy; case NR_STATION: return BaseStation::Get((StationID)ref)->xy;
case NR_INDUSTRY: return Industry::Get((IndustryID)ref)->location.tile + TileDiffXY(1, 1); case NR_INDUSTRY: return Industry::Get((IndustryID)ref)->location.tile + TileDiffXY(1, 1);
case NR_TOWN: return Town::Get((TownID)ref)->xy; case NR_TOWN: return Town::Get((TownID)ref)->xy;
default: return INVALID_TILE; default: return INVALID_TILE;

View File

@ -16,6 +16,7 @@
#include "viewport_kdtree.h" #include "viewport_kdtree.h"
#include "tracerestrict.h" #include "tracerestrict.h"
#include "newgrf_debug.h" #include "newgrf_debug.h"
#include "news_func.h"
#include "safeguards.h" #include "safeguards.h"
@ -58,4 +59,7 @@ Waypoint::~Waypoint()
RemoveOrderFromAllVehicles(OT_GOTO_WAYPOINT, this->index); RemoveOrderFromAllVehicles(OT_GOTO_WAYPOINT, this->index);
if (_viewport_sign_kdtree_valid && this->sign.kdtree_valid) _viewport_sign_kdtree.Remove(ViewportSignKdtreeItem::MakeWaypoint(this->index)); if (_viewport_sign_kdtree_valid && this->sign.kdtree_valid) _viewport_sign_kdtree.Remove(ViewportSignKdtreeItem::MakeWaypoint(this->index));
TraceRestrictRemoveDestinationID(TROCAF_WAYPOINT, this->index); TraceRestrictRemoveDestinationID(TROCAF_WAYPOINT, this->index);
/* Remove all news items */
DeleteStationNews(this->index);
} }