1
0
mirror of https://github.com/OpenTTD/OpenTTD synced 2026-01-28 22:54:29 +01:00

Codechange: Make TileType enum an enum class.

This commit is contained in:
Cyprian Klimaszewski
2026-01-20 10:59:20 +01:00
committed by rubidium42
parent 7d34e09f94
commit 97f3e5b70f
94 changed files with 988 additions and 982 deletions

View File

@@ -337,13 +337,13 @@ uint32_t GetTerrainType(TileIndex tile, TileContext context)
case LandscapeType::Arctic: {
bool has_snow;
switch (GetTileType(tile)) {
case MP_CLEAR:
case TileType::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: {
case TileType::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);
@@ -351,13 +351,13 @@ uint32_t GetTerrainType(TileIndex tile, TileContext context)
break;
}
case MP_ROAD:
case TileType::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 = IsOnSnowOrDesert(tile);
break;
case MP_TREES: {
case TileType::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);
@@ -365,7 +365,7 @@ uint32_t GetTerrainType(TileIndex tile, TileContext context)
break;
}
case MP_TUNNELBRIDGE:
case TileType::TunnelBridge:
if (context == TCX_ON_BRIDGE) {
has_snow = (GetBridgeHeight(tile) > GetSnowLine());
} else {
@@ -375,16 +375,16 @@ uint32_t GetTerrainType(TileIndex tile, TileContext context)
}
break;
case MP_STATION:
case MP_HOUSE:
case MP_INDUSTRY:
case MP_OBJECT:
case TileType::Station:
case TileType::House:
case TileType::Industry:
case TileType::Object:
/* These tiles usually have a levelling foundation. So use max Z */
has_snow = (GetTileMaxZ(tile) > GetSnowLine());
break;
case MP_VOID:
case MP_WATER:
case TileType::Void:
case TileType::Water:
genworld:
has_snow = (GetTileZ(tile) > GetSnowLine());
break;
@@ -433,16 +433,16 @@ uint32_t GetNearbyTileInformation(TileIndex tile, bool grf_version8)
TileType tile_type = GetTileType(tile);
/* Fake tile type for trees on shore */
if (IsTileType(tile, MP_TREES) && GetTreeGround(tile) == TREE_GROUND_SHORE) tile_type = MP_WATER;
if (IsTileType(tile, TileType::Trees) && GetTreeGround(tile) == TREE_GROUND_SHORE) tile_type = TileType::Water;
/* Fake tile type for road waypoints */
if (IsRoadWaypointTile(tile)) tile_type = MP_ROAD;
if (IsRoadWaypointTile(tile)) tile_type = TileType::Road;
auto [tileh, z] = GetTilePixelSlope(tile);
/* Return 0 if the tile is a land tile */
uint8_t terrain_type = (HasTileWaterClass(tile) ? (to_underlying(GetWaterClass(tile)) + 1) & 3 : 0) << 5 | GetTerrainType(tile) << 2 | (tile_type == MP_WATER ? 1 : 0) << 1;
uint8_t terrain_type = (HasTileWaterClass(tile) ? (to_underlying(GetWaterClass(tile)) + 1) & 3 : 0) << 5 | GetTerrainType(tile) << 2 | (tile_type == TileType::Water ? 1 : 0) << 1;
if (grf_version8) z /= TILE_HEIGHT;
return tile_type << 24 | ClampTo<uint8_t>(z) << 16 | terrain_type << 8 | tileh;
return to_underlying(tile_type) << 24 | ClampTo<uint8_t>(z) << 16 | terrain_type << 8 | tileh;
}
/**