Save point used when adding station to viewport kd tree, use for removal

This commit is contained in:
Jonathan G Rennison
2019-04-09 02:32:28 +01:00
parent 3807f0551d
commit 070160af40
7 changed files with 36 additions and 7 deletions

View File

@@ -3266,12 +3266,14 @@ ViewportSignKdtreeItem ViewportSignKdtreeItem::MakeStation(StationID id)
item.type = VKI_STATION;
item.id.station = id;
const Station *st = Station::Get(id);
Station *st = Station::Get(id);
Point pt = RemapCoords2(TileX(st->xy) * TILE_SIZE, TileY(st->xy) * TILE_SIZE);
pt.y -= 32 * ZOOM_LVL_BASE;
if ((st->facilities & FACIL_AIRPORT) && st->airport.type == AT_OILRIG) pt.y -= 16 * ZOOM_LVL_BASE;
st->viewport_sign_kdtree_pt = pt;
item.center = pt.x;
item.top = pt.y;
@@ -3281,17 +3283,29 @@ ViewportSignKdtreeItem ViewportSignKdtreeItem::MakeStation(StationID id)
return item;
}
ViewportSignKdtreeItem ViewportSignKdtreeItem::MakeStation(StationID id, Point pt)
{
ViewportSignKdtreeItem item;
item.type = VKI_STATION;
item.id.station = id;
item.center = pt.x;
item.top = pt.y;
return item;
}
ViewportSignKdtreeItem ViewportSignKdtreeItem::MakeWaypoint(StationID id)
{
ViewportSignKdtreeItem item;
item.type = VKI_WAYPOINT;
item.id.station = id;
const Waypoint *st = Waypoint::Get(id);
Waypoint *st = Waypoint::Get(id);
Point pt = RemapCoords2(TileX(st->xy) * TILE_SIZE, TileY(st->xy) * TILE_SIZE);
pt.y -= 32 * ZOOM_LVL_BASE;
st->viewport_sign_kdtree_pt = pt;
item.center = pt.x;
item.top = pt.y;
@@ -3301,6 +3315,16 @@ ViewportSignKdtreeItem ViewportSignKdtreeItem::MakeWaypoint(StationID id)
return item;
}
ViewportSignKdtreeItem ViewportSignKdtreeItem::MakeWaypoint(StationID id, Point pt)
{
ViewportSignKdtreeItem item;
item.type = VKI_WAYPOINT;
item.id.station = id;
item.center = pt.x;
item.top = pt.y;
return item;
}
ViewportSignKdtreeItem ViewportSignKdtreeItem::MakeTown(TownID id)
{
ViewportSignKdtreeItem item;