1
0
mirror of https://github.com/OpenTTD/OpenTTD synced 2026-01-29 07:04:35 +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

@@ -39,14 +39,14 @@
{
if (!::IsValidTile(tile)) return false;
return ::IsTileType(tile, MP_STATION) && ::IsHangar(tile);
return ::IsTileType(tile, TileType::Station) && ::IsHangar(tile);
}
/* static */ bool ScriptAirport::IsAirportTile(TileIndex tile)
{
if (!::IsValidTile(tile)) return false;
return ::IsTileType(tile, MP_STATION) && ::IsAirport(tile);
return ::IsTileType(tile, TileType::Station) && ::IsAirport(tile);
}
/* static */ SQInteger ScriptAirport::GetAirportWidth(AirportType type)
@@ -93,7 +93,7 @@
{
EnforceDeityOrCompanyModeValid(-1);
if (!::IsValidTile(tile)) return -1;
if (!::IsTileType(tile, MP_STATION)) return -1;
if (!::IsTileType(tile, TileType::Station)) return -1;
const Station *st = ::Station::GetByTile(tile);
if (st->owner != ScriptObject::GetCompany() && ScriptCompanyMode::IsValid()) return -1;
@@ -106,7 +106,7 @@
{
EnforceDeityOrCompanyModeValid(INVALID_TILE);
if (!::IsValidTile(tile)) return INVALID_TILE;
if (!::IsTileType(tile, MP_STATION)) return INVALID_TILE;
if (!::IsTileType(tile, TileType::Station)) return INVALID_TILE;
if (GetNumHangars(tile) < 1) return INVALID_TILE;
const Station *st = ::Station::GetByTile(tile);

View File

@@ -21,9 +21,9 @@ ScriptDepotList::ScriptDepotList(ScriptTile::TransportType transport_type)
switch (transport_type) {
default: return;
case ScriptTile::TRANSPORT_ROAD: tile_type = ::MP_ROAD; break;
case ScriptTile::TRANSPORT_RAIL: tile_type = ::MP_RAILWAY; break;
case ScriptTile::TRANSPORT_WATER: tile_type = ::MP_WATER; break;
case ScriptTile::TRANSPORT_ROAD: tile_type = ::TileType::Road; break;
case ScriptTile::TRANSPORT_RAIL: tile_type = ::TileType::Railway; break;
case ScriptTile::TRANSPORT_WATER: tile_type = ::TileType::Water; break;
case ScriptTile::TRANSPORT_AIR: {
/* Hangars are not seen as real depots by the depot code. */

View File

@@ -38,7 +38,7 @@
/* static */ IndustryID ScriptIndustry::GetIndustryID(TileIndex tile)
{
if (!::IsValidTile(tile) || !::IsTileType(tile, MP_INDUSTRY)) return IndustryID::Invalid();
if (!::IsValidTile(tile) || !::IsTileType(tile, TileType::Industry)) return IndustryID::Invalid();
return ::GetIndustryIndex(tile);
}
@@ -182,7 +182,7 @@
const Industry *ind = ::Industry::Get(industry_id);
for (TileIndex tile_cur : ind->location) {
if (IsTileType(tile_cur, MP_STATION) && IsOilRig(tile_cur)) {
if (IsTileType(tile_cur, TileType::Station) && IsOilRig(tile_cur)) {
return tile_cur;
}
}
@@ -204,7 +204,7 @@
const Industry *ind = ::Industry::Get(industry_id);
for (TileIndex tile_cur : ind->location) {
if (IsTileType(tile_cur, MP_STATION) && IsOilRig(tile_cur)) {
if (IsTileType(tile_cur, TileType::Station) && IsOilRig(tile_cur)) {
return tile_cur;
}
}

View File

@@ -25,35 +25,35 @@
{
if (!::IsValidTile(tile)) return false;
return ::IsTileType(tile, MP_WATER) && ::GetWaterTileType(tile) == WaterTileType::Depot;
return ::IsTileType(tile, TileType::Water) && ::GetWaterTileType(tile) == WaterTileType::Depot;
}
/* static */ bool ScriptMarine::IsDockTile(TileIndex tile)
{
if (!::IsValidTile(tile)) return false;
return ::IsTileType(tile, MP_STATION) && ::IsDock(tile);
return ::IsTileType(tile, TileType::Station) && ::IsDock(tile);
}
/* static */ bool ScriptMarine::IsBuoyTile(TileIndex tile)
{
if (!::IsValidTile(tile)) return false;
return ::IsTileType(tile, MP_STATION) && ::IsBuoy(tile);
return ::IsTileType(tile, TileType::Station) && ::IsBuoy(tile);
}
/* static */ bool ScriptMarine::IsLockTile(TileIndex tile)
{
if (!::IsValidTile(tile)) return false;
return ::IsTileType(tile, MP_WATER) && ::GetWaterTileType(tile) == WaterTileType::Lock;
return ::IsTileType(tile, TileType::Water) && ::GetWaterTileType(tile) == WaterTileType::Lock;
}
/* static */ bool ScriptMarine::IsCanalTile(TileIndex tile)
{
if (!::IsValidTile(tile)) return false;
return ::IsTileType(tile, MP_WATER) && ::IsCanal(tile);
return ::IsTileType(tile, TileType::Water) && ::IsCanal(tile);
}
/* static */ bool ScriptMarine::AreWaterTilesConnected(TileIndex t1, TileIndex t2)

View File

@@ -34,14 +34,14 @@ static OrderType GetOrderTypeByTile(TileIndex t)
switch (::GetTileType(t)) {
default: break;
case MP_STATION:
case TileType::Station:
if (IsBuoy(t) || IsRailWaypoint(t) || IsRoadWaypoint(t)) return OT_GOTO_WAYPOINT;
if (IsHangar(t)) return OT_GOTO_DEPOT;
return OT_GOTO_STATION;
case MP_WATER: if (::IsShipDepot(t)) return OT_GOTO_DEPOT; break;
case MP_ROAD: if (::GetRoadTileType(t) == RoadTileType::Depot) return OT_GOTO_DEPOT; break;
case MP_RAILWAY:
case TileType::Water: if (::IsShipDepot(t)) return OT_GOTO_DEPOT; break;
case TileType::Road: if (::GetRoadTileType(t) == RoadTileType::Depot) return OT_GOTO_DEPOT; break;
case TileType::Railway:
if (IsRailDepot(t)) return OT_GOTO_DEPOT;
break;
}
@@ -266,7 +266,7 @@ static ScriptOrder::OrderPosition RealOrderPositionToScriptOrderPosition(Vehicle
}
} else if (st->ship_station.tile != INVALID_TILE) {
for (TileIndex t : st->ship_station) {
if (IsTileType(t, MP_STATION) && (IsDock(t) || IsOilRig(t)) && GetStationIndex(t) == st->index) return t;
if (IsTileType(t, TileType::Station) && (IsDock(t) || IsOilRig(t)) && GetStationIndex(t) == st->index) return t;
}
} else if (st->bus_stops != nullptr) {
return st->bus_stops->xy;
@@ -499,10 +499,10 @@ static ScriptOrder::OrderPosition RealOrderPositionToScriptOrderPosition(Vehicle
/* Check explicitly if the order is to a station (for aircraft) or
* to a depot (other vehicle types). */
if (::Vehicle::Get(vehicle_id)->type == VEH_AIRCRAFT) {
if (!::IsTileType(destination, MP_STATION)) return false;
if (!::IsTileType(destination, TileType::Station)) return false;
order.MakeGoToDepot(::GetStationIndex(destination), odtf, onsf, odaf);
} else {
if (::IsTileType(destination, MP_STATION)) return false;
if (::IsTileType(destination, TileType::Station)) return false;
order.MakeGoToDepot(::GetDepotIndex(destination), odtf, onsf, odaf);
}
}

View File

@@ -35,7 +35,7 @@
{
if (!::IsValidTile(tile)) return false;
return (::IsTileType(tile, MP_RAILWAY) && !::IsRailDepot(tile)) ||
return (::IsTileType(tile, TileType::Railway) && !::IsRailDepot(tile)) ||
(::HasStationTileRail(tile) && !::IsStationTileBlocked(tile)) || ::IsLevelCrossingTile(tile);
}
@@ -412,7 +412,7 @@ static const ScriptRailSignalData _possible_trackdirs[5][NUM_TRACK_DIRECTIONS] =
/* static */ ScriptRail::SignalType ScriptRail::GetSignalType(TileIndex tile, TileIndex front)
{
if (ScriptMap::DistanceManhattan(tile, front) != 1) return SIGNALTYPE_NONE;
if (!::IsTileType(tile, MP_RAILWAY) || !::HasSignals(tile)) return SIGNALTYPE_NONE;
if (!::IsTileType(tile, TileType::Railway) || !::HasSignals(tile)) return SIGNALTYPE_NONE;
int data_index = 2 + (::TileX(front) - ::TileX(tile)) + 2 * (::TileY(front) - ::TileY(tile));

View File

@@ -37,7 +37,7 @@
{
if (!::IsValidTile(tile)) return false;
return (::IsTileType(tile, MP_ROAD) && ::GetRoadTileType(tile) != RoadTileType::Depot) ||
return (::IsTileType(tile, TileType::Road) && ::GetRoadTileType(tile) != RoadTileType::Depot) ||
IsDriveThroughRoadStationTile(tile);
}
@@ -46,7 +46,7 @@
if (!::IsValidTile(tile)) return false;
if (!IsRoadTypeAvailable(GetCurrentRoadType())) return false;
return ::IsTileType(tile, MP_ROAD) && ::GetRoadTileType(tile) == RoadTileType::Depot &&
return ::IsTileType(tile, TileType::Road) && ::GetRoadTileType(tile) == RoadTileType::Depot &&
::GetPresentRoadTypes(tile).Test(::RoadType(GetCurrentRoadType()));
}
@@ -467,10 +467,10 @@ static bool NeighbourHasReachableRoad(::RoadType rt, TileIndex start_tile, DiagD
if (!::GetPresentRoadTypes(neighbour_tile).Test(rt)) return false;
switch (::GetTileType(neighbour_tile)) {
case MP_ROAD:
case TileType::Road:
return (::GetRoadTileType(neighbour_tile) != RoadTileType::Depot);
case MP_STATION:
case TileType::Station:
if (::IsDriveThroughStopTile(neighbour_tile)) {
return ::DiagDirToAxis(neighbour) == ::GetDriveThroughStopAxis(neighbour_tile);
}
@@ -625,7 +625,7 @@ static bool NeighbourHasReachableRoad(::RoadType rt, TileIndex start_tile, DiagD
{
EnforceCompanyModeValid(false);
EnforcePrecondition(false, ::IsValidTile(tile));
EnforcePrecondition(false, IsTileType(tile, MP_ROAD))
EnforcePrecondition(false, IsTileType(tile, TileType::Road))
EnforcePrecondition(false, GetRoadTileType(tile) == RoadTileType::Depot);
return ScriptObject::Command<CMD_LANDSCAPE_CLEAR>::Do(tile);
@@ -635,7 +635,7 @@ static bool NeighbourHasReachableRoad(::RoadType rt, TileIndex start_tile, DiagD
{
EnforceCompanyModeValid(false);
EnforcePrecondition(false, ::IsValidTile(tile));
EnforcePrecondition(false, IsTileType(tile, MP_STATION));
EnforcePrecondition(false, IsTileType(tile, TileType::Station));
EnforcePrecondition(false, IsStationRoadStop(tile));
return ScriptObject::Command<CMD_REMOVE_ROAD_STOP>::Do(tile, 1, 1, GetRoadStopType(tile), false);

View File

@@ -28,7 +28,7 @@
/* static */ StationID ScriptStation::GetStationID(TileIndex tile)
{
if (!::IsValidTile(tile) || !::IsTileType(tile, MP_STATION)) return StationID::Invalid();
if (!::IsValidTile(tile) || !::IsTileType(tile, TileType::Station)) return StationID::Invalid();
return ::GetStationIndex(tile);
}

View File

@@ -30,10 +30,10 @@
switch (::GetTileType(tile)) {
default: return false;
case MP_CLEAR: return true;
case MP_TREES: return true;
case MP_WATER: return IsCoast(tile);
case MP_ROAD:
case TileType::Clear: return true;
case TileType::Trees: return true;
case TileType::Water: return IsCoast(tile);
case TileType::Road:
/* Tram bits aren't considered buildable */
if (::GetRoadTypeTram(tile) != INVALID_ROADTYPE) return false;
/* Depots and crossings aren't considered buildable */
@@ -66,36 +66,36 @@
{
if (!::IsValidTile(tile)) return false;
return ::IsTileType(tile, MP_WATER) && ::IsSea(tile);
return ::IsTileType(tile, TileType::Water) && ::IsSea(tile);
}
/* static */ bool ScriptTile::IsRiverTile(TileIndex tile)
{
if (!::IsValidTile(tile)) return false;
return ::IsTileType(tile, MP_WATER) && ::IsRiver(tile);
return ::IsTileType(tile, TileType::Water) && ::IsRiver(tile);
}
/* static */ bool ScriptTile::IsWaterTile(TileIndex tile)
{
if (!::IsValidTile(tile)) return false;
return ::IsTileType(tile, MP_WATER) && !::IsCoast(tile);
return ::IsTileType(tile, TileType::Water) && !::IsCoast(tile);
}
/* static */ bool ScriptTile::IsCoastTile(TileIndex tile)
{
if (!::IsValidTile(tile)) return false;
return (::IsTileType(tile, MP_WATER) && ::IsCoast(tile)) ||
(::IsTileType(tile, MP_TREES) && ::GetTreeGround(tile) == TREE_GROUND_SHORE);
return (::IsTileType(tile, TileType::Water) && ::IsCoast(tile)) ||
(::IsTileType(tile, TileType::Trees) && ::GetTreeGround(tile) == TREE_GROUND_SHORE);
}
/* static */ bool ScriptTile::IsStationTile(TileIndex tile)
{
if (!::IsValidTile(tile)) return false;
return ::IsTileType(tile, MP_STATION);
return ::IsTileType(tile, TileType::Station);
}
/* static */ bool ScriptTile::IsSteepSlope(Slope slope)
@@ -116,49 +116,49 @@
{
if (!::IsValidTile(tile)) return false;
return ::IsTileType(tile, MP_TREES);
return ::IsTileType(tile, TileType::Trees);
}
/* static */ bool ScriptTile::IsFarmTile(TileIndex tile)
{
if (!::IsValidTile(tile)) return false;
return (::IsTileType(tile, MP_CLEAR) && ::IsClearGround(tile, CLEAR_FIELDS));
return (::IsTileType(tile, TileType::Clear) && ::IsClearGround(tile, CLEAR_FIELDS));
}
/* static */ bool ScriptTile::IsRockTile(TileIndex tile)
{
if (!::IsValidTile(tile)) return false;
return (::IsTileType(tile, MP_CLEAR) && ::GetClearGround(tile) == ::CLEAR_ROCKS);
return (::IsTileType(tile, TileType::Clear) && ::GetClearGround(tile) == ::CLEAR_ROCKS);
}
/* static */ bool ScriptTile::IsRoughTile(TileIndex tile)
{
if (!::IsValidTile(tile)) return false;
return (::IsTileType(tile, MP_CLEAR) && ::GetClearGround(tile) == ::CLEAR_ROUGH);
return (::IsTileType(tile, TileType::Clear) && ::GetClearGround(tile) == ::CLEAR_ROUGH);
}
/* static */ bool ScriptTile::IsSnowTile(TileIndex tile)
{
if (!::IsValidTile(tile)) return false;
return (::IsTileType(tile, MP_CLEAR) && ::IsSnowTile(tile));
return (::IsTileType(tile, TileType::Clear) && ::IsSnowTile(tile));
}
/* static */ bool ScriptTile::IsDesertTile(TileIndex tile)
{
if (!::IsValidTile(tile)) return false;
return (::IsTileType(tile, MP_CLEAR) && ::IsClearGround(tile, CLEAR_DESERT));
return (::IsTileType(tile, TileType::Clear) && ::IsClearGround(tile, CLEAR_DESERT));
}
/* static */ bool ScriptTile::IsHouseTile(TileIndex tile)
{
if (!::IsValidTile(tile)) return false;
return ::IsTileType(tile, MP_HOUSE);
return ::IsTileType(tile, TileType::House);
}
/* static */ ScriptTile::TerrainType ScriptTile::GetTerrainType(TileIndex tile)
@@ -213,8 +213,8 @@
/* static */ ScriptCompany::CompanyID ScriptTile::GetOwner(TileIndex tile)
{
if (!::IsValidTile(tile)) return ScriptCompany::COMPANY_INVALID;
if (::IsTileType(tile, MP_HOUSE)) return ScriptCompany::COMPANY_INVALID;
if (::IsTileType(tile, MP_INDUSTRY)) return ScriptCompany::COMPANY_INVALID;
if (::IsTileType(tile, TileType::House)) return ScriptCompany::COMPANY_INVALID;
if (::IsTileType(tile, TileType::Industry)) return ScriptCompany::COMPANY_INVALID;
return ScriptCompany::ResolveCompanyID(ScriptCompany::ToScriptCompanyID(::GetTileOwner(tile)));
}

View File

@@ -109,7 +109,7 @@ void ScriptTileList::RemoveTile(TileIndex tile)
static void FillIndustryCatchment(const Industry *i, SQInteger radius, BitmapTileArea &bta)
{
for (TileIndex cur_tile : i->location) {
if (!::IsTileType(cur_tile, MP_INDUSTRY) || ::GetIndustryIndex(cur_tile) != i->index) continue;
if (!::IsTileType(cur_tile, TileType::Industry) || ::GetIndustryIndex(cur_tile) != i->index) continue;
int tx = TileX(cur_tile);
int ty = TileY(cur_tile);
@@ -119,7 +119,7 @@ static void FillIndustryCatchment(const Industry *i, SQInteger radius, BitmapTil
if (tx + x < 0 || tx + x > (int)Map::MaxX()) continue;
TileIndex tile = TileXY(tx + x, ty + y);
if (!IsValidTile(tile)) continue;
if (::IsTileType(tile, MP_INDUSTRY) && ::GetIndustryIndex(tile) == i->index) continue;
if (::IsTileType(tile, TileType::Industry) && ::GetIndustryIndex(tile) == i->index) continue;
bta.SetTile(tile);
}
}
@@ -194,7 +194,7 @@ ScriptTileList_StationType::ScriptTileList_StationType(StationID station_id, Scr
TileArea ta(::TileXY(rect->left, rect->top), rect->Width(), rect->Height());
for (TileIndex cur_tile : ta) {
if (!::IsTileType(cur_tile, MP_STATION)) continue;
if (!::IsTileType(cur_tile, TileType::Station)) continue;
if (::GetStationIndex(cur_tile) != station_id) continue;
if (!station_types.Test(::GetStationType(cur_tile))) continue;
this->AddTile(cur_tile);

View File

@@ -93,25 +93,25 @@ ScriptVehicleList_Depot::ScriptVehicleList_Depot(TileIndex tile)
VehicleType type;
switch (GetTileType(tile)) {
case MP_STATION: // Aircraft
case TileType::Station: // Aircraft
if (!IsAirport(tile)) return;
type = VEH_AIRCRAFT;
dest = GetStationIndex(tile);
break;
case MP_RAILWAY:
case TileType::Railway:
if (!IsRailDepot(tile)) return;
type = VEH_TRAIN;
dest = GetDepotIndex(tile);
break;
case MP_ROAD:
case TileType::Road:
if (!IsRoadDepot(tile)) return;
type = VEH_ROAD;
dest = GetDepotIndex(tile);
break;
case MP_WATER:
case TileType::Water:
if (!IsShipDepot(tile)) return;
type = VEH_SHIP;
dest = GetDepotIndex(tile);

View File

@@ -24,7 +24,7 @@
/* static */ StationID ScriptWaypoint::GetWaypointID(TileIndex tile)
{
if (!::IsValidTile(tile) || !::IsTileType(tile, MP_STATION) || ::Waypoint::GetByTile(tile) == nullptr) return StationID::Invalid();
if (!::IsValidTile(tile) || !::IsTileType(tile, TileType::Station) || ::Waypoint::GetByTile(tile) == nullptr) return StationID::Invalid();
return ::GetStationIndex(tile);
}