Do not update viewport signs when running headlessly

pull/642/head
Jonathan G Rennison 3 months ago
parent 04e47eca9a
commit ced17a74e8

@ -236,6 +236,7 @@ static inline RailType UpdateRailType(RailType rt, RailType min)
*/
void UpdateAllVirtCoords()
{
if (IsHeadless()) return;
UpdateAllStationVirtCoords();
UpdateAllSignVirtCoords();
UpdateAllTownVirtCoords();

@ -15,6 +15,7 @@
#include "strings_func.h"
#include "core/pool_func.hpp"
#include "viewport_kdtree.h"
#include "network/network.h"
#include "table/strings.h"
@ -45,6 +46,7 @@ Sign::~Sign()
*/
void Sign::UpdateVirtCoord()
{
if (IsHeadless()) return;
Point pt = RemapCoords(this->x, this->y, this->z);
if (_viewport_sign_kdtree_valid && this->sign.kdtree_valid) _viewport_sign_kdtree.Remove(ViewportSignKdtreeItem::MakeSign(this->index));

@ -508,6 +508,7 @@ void Station::UpdateCargoHistory()
*/
void Station::UpdateVirtCoord()
{
if (IsHeadless()) return;
Point pt = RemapCoords2(TileX(this->xy) * TILE_SIZE, TileY(this->xy) * TILE_SIZE);
pt.y -= 32 * ZOOM_LVL_BASE;
@ -546,6 +547,7 @@ void Station::MoveSign(TileIndex new_xy)
/** Update the virtual coords needed to draw the station sign for all stations. */
void UpdateAllStationVirtCoords()
{
if (IsHeadless()) return;
for (BaseStation *st : BaseStation::Iterate()) {
st->UpdateVirtCoord();
}

@ -533,6 +533,7 @@ static bool IsCloseToTown(TileIndex tile, uint dist)
/** Resize the sign (label) of the town after it changes population. */
void Town::UpdateVirtCoord()
{
if (IsHeadless()) return;
this->UpdateLabel();
Point pt = RemapCoords2(TileX(this->xy) * TILE_SIZE, TileY(this->xy) * TILE_SIZE);
@ -550,6 +551,7 @@ void Town::UpdateVirtCoord()
/** Update the virtual coords needed to draw the town sign for all towns. */
void UpdateAllTownVirtCoords()
{
if (IsHeadless()) return;
for (Town *t : Town::Iterate()) {
t->UpdateVirtCoord();
}

@ -5037,7 +5037,7 @@ void RebuildViewportKdtree()
/* Reset biggest size sign seen */
_viewport_sign_maxwidth = 0;
if (_network_dedicated) {
if (IsHeadless()) {
_viewport_sign_kdtree_valid = false;
_viewport_sign_kdtree.Build<ViewportSignKdtreeItem*>(nullptr, nullptr);
return;

@ -40,6 +40,7 @@
*/
void Waypoint::UpdateVirtCoord()
{
if (IsHeadless()) return;
Point pt = RemapCoords2(TileX(this->xy) * TILE_SIZE, TileY(this->xy) * TILE_SIZE);
if (_viewport_sign_kdtree_valid && this->sign.kdtree_valid) _viewport_sign_kdtree.Remove(ViewportSignKdtreeItem::MakeWaypoint(this->index));

Loading…
Cancel
Save