mirror of
https://github.com/JGRennison/OpenTTD-patches.git
synced 2024-11-02 09:40:35 +00:00
(svn r20418) -Fix [FS#4017](r20125): During world generation the snow-mapbits are not yet available, so test the snowline variable directly (as before).
This commit is contained in:
parent
cd5180212e
commit
cc8d0af77c
@ -22,6 +22,7 @@
|
||||
#include "station_map.h"
|
||||
#include "tree_map.h"
|
||||
#include "tunnelbridge_map.h"
|
||||
#include "genworld.h"
|
||||
#include "core/mem_func.hpp"
|
||||
|
||||
/**
|
||||
@ -304,26 +305,36 @@ uint32 GetTerrainType(TileIndex tile, bool upper_halftile)
|
||||
bool has_snow;
|
||||
switch (GetTileType(tile)) {
|
||||
case MP_CLEAR:
|
||||
/* During map generation the snowstate may not be valid yet, as the tileloop may not have run yet. */
|
||||
if (_generating_world) goto genworld;
|
||||
has_snow = IsSnowTile(tile) && GetClearDensity(tile) >= 2;
|
||||
break;
|
||||
|
||||
case MP_RAILWAY: {
|
||||
/* During map generation the snowstate may not be valid yet, as the tileloop may not have run yet. */
|
||||
if (_generating_world) goto genworld; // we do not care about foundations here
|
||||
RailGroundType ground = GetRailGroundType(tile);
|
||||
has_snow = (ground == RAIL_GROUND_ICE_DESERT || (upper_halftile && ground == RAIL_GROUND_HALF_SNOW));
|
||||
break;
|
||||
}
|
||||
|
||||
case MP_ROAD:
|
||||
/* During map generation the snowstate may not be valid yet, as the tileloop may not have run yet. */
|
||||
if (_generating_world) goto genworld; // we do not care about foundations here
|
||||
has_snow = IsOnSnow(tile);
|
||||
break;
|
||||
|
||||
case MP_TREES: {
|
||||
/* During map generation the snowstate may not be valid yet, as the tileloop may not have run yet. */
|
||||
if (_generating_world) goto genworld;
|
||||
TreeGround ground = GetTreeGround(tile);
|
||||
has_snow = (ground == TREE_GROUND_SNOW_DESERT || ground == TREE_GROUND_ROUGH_SNOW) && GetTreeDensity(tile) >= 2;
|
||||
break;
|
||||
}
|
||||
|
||||
case MP_TUNNELBRIDGE:
|
||||
/* During map generation the snowstate may not be valid yet, as the tileloop may not have run yet. */
|
||||
if (_generating_world) goto genworld; // we do not care about foundations here
|
||||
has_snow = HasTunnelBridgeSnowOrDesert(tile);
|
||||
break;
|
||||
|
||||
@ -337,6 +348,7 @@ uint32 GetTerrainType(TileIndex tile, bool upper_halftile)
|
||||
|
||||
case MP_VOID:
|
||||
case MP_WATER:
|
||||
genworld:
|
||||
has_snow = (GetTileZ(tile) > GetSnowLine());
|
||||
break;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user