Add fast paths for clear/tree snow line checks in tile loop

This commit is contained in:
Jonathan G Rennison
2021-02-21 22:39:26 +00:00
parent 2e20da40ed
commit 4f74a83496
2 changed files with 14 additions and 2 deletions

View File

@@ -203,7 +203,13 @@ static void UpdateFences(TileIndex tile)
/** Convert to or from snowy tiles. */
static void TileLoopClearAlps(TileIndex tile)
{
int k = GetTileZ(tile) - GetSnowLine() + 1;
int k;
if ((int)TileHeight(tile) < GetSnowLine() - 1) {
/* Fast path to avoid needing to check all 4 corners */
k = -1;
} else {
k = GetTileZ(tile) - GetSnowLine() + 1;
}
if (k < 0) {
/* Below the snow line, do nothing if no snow. */