Fix viewport signs and text effects marking viewports dirty unnecessarily

* When at high zoom levels where the signs are not shown
* Where the sign type is disabled in the display options
This commit is contained in:
Jonathan G Rennison
2020-02-17 23:23:15 +00:00
parent 57f490db2b
commit c42ce832ae
10 changed files with 33 additions and 17 deletions

View File

@@ -417,7 +417,8 @@ void Station::UpdateVirtCoord()
SetDParam(0, this->index);
SetDParam(1, this->facilities);
this->sign.UpdatePosition(pt.x, pt.y, STR_VIEWPORT_STATION);
bool shown = HasBit(_display_opt, DO_SHOW_STATION_NAMES) && !(_local_company != this->owner && this->owner != OWNER_NONE && !HasBit(_display_opt, DO_SHOW_COMPETITOR_SIGNS));
this->sign.UpdatePosition(shown ? ZOOM_LVL_DRAW_SPR : ZOOM_LVL_END, pt.x, pt.y, STR_VIEWPORT_STATION);
if (_viewport_sign_kdtree_valid) _viewport_sign_kdtree.Insert(ViewportSignKdtreeItem::MakeStation(this->index));