diff --git a/src/bridge_map.h b/src/bridge_map.h index c0aac05f4b..8691539ecb 100644 --- a/src/bridge_map.h +++ b/src/bridge_map.h @@ -102,8 +102,8 @@ inline void ClearSingleBridgeMiddle(Tile t, Axis a) */ inline void ClearBridgeMiddle(Tile t) { - ClearSingleBridgeMiddle(t, AXIS_X); - ClearSingleBridgeMiddle(t, AXIS_Y); + ClearSingleBridgeMiddle(t, Axis::X); + ClearSingleBridgeMiddle(t, Axis::Y); } /** diff --git a/src/direction_func.h b/src/direction_func.h index e444e662a2..5e730b1934 100644 --- a/src/direction_func.h +++ b/src/direction_func.h @@ -42,7 +42,7 @@ inline bool IsValidDirection(Direction d) */ inline bool IsValidAxis(Axis d) { - return d < AXIS_END; + return d < Axis::End; } /** @@ -247,7 +247,7 @@ inline DiagDirection AxisToDiagDir(Axis a) inline DiagDirections AxisToDiagDirs(Axis a) { assert(IsValidAxis(a)); - return a == AXIS_X + return a == Axis::X ? DiagDirections{DIAGDIR_NE, DIAGDIR_SW} : DiagDirections{DIAGDIR_SE, DIAGDIR_NW}; } diff --git a/src/direction_type.h b/src/direction_type.h index a9ca1ee16d..fb075efab5 100644 --- a/src/direction_type.h +++ b/src/direction_type.h @@ -123,11 +123,11 @@ DECLARE_INCREMENT_DECREMENT_OPERATORS(DiagDirDiff) * (and south-east edge). The Y axis must be so the one which goes * align the north-east edge (and south-west) edge. */ -enum Axis : uint8_t { - AXIS_X = 0, ///< The X axis - AXIS_Y = 1, ///< The y axis - AXIS_END, ///< Used for iterations - INVALID_AXIS = 0xFF, ///< Flag for an invalid Axis +enum class Axis : uint8_t { + X = 0, ///< The X axis + Y = 1, ///< The y axis + End, ///< End marker. + Invalid = 0xFF, ///< Flag for an invalid Axis }; DECLARE_ENUM_AS_ADDABLE(Axis) @@ -136,6 +136,6 @@ DECLARE_ENUM_AS_ADDABLE(Axis) * @tparam T the type contained within the array. */ template -using AxisIndexArray = EnumIndexArray; +using AxisIndexArray = EnumIndexArray; #endif /* DIRECTION_TYPE_H */ diff --git a/src/dock_gui.cpp b/src/dock_gui.cpp index 0f7c4dc687..1a596f54b7 100644 --- a/src/dock_gui.cpp +++ b/src/dock_gui.cpp @@ -520,7 +520,7 @@ struct BuildDocksDepotWindow : public PickerWindowBase { private: static void UpdateDocksDirection() { - if (_ship_depot_direction != AXIS_X) { + if (_ship_depot_direction != Axis::X) { SetTileSelectSize(1, 2); } else { SetTileSelectSize(2, 1); @@ -553,7 +553,7 @@ public: switch (widget) { case WID_BDD_X: case WID_BDD_Y: { - Axis axis = widget == WID_BDD_X ? AXIS_X : AXIS_Y; + Axis axis = widget == WID_BDD_X ? Axis::X : Axis::Y; Rect ir = r.Shrink(WidgetDimensions::scaled.bevel); if (FillDrawPixelInfo(&tmp_dpi, ir)) { @@ -562,8 +562,8 @@ public: int y = (ir.Height() - ScaleSpriteTrad(64)) / 2; int x1 = ScaleSpriteTrad(63); int x2 = ScaleSpriteTrad(31); - DrawShipDepotSprite(x + (axis == AXIS_X ? x1 : x2), y + ScaleSpriteTrad(17), axis, DepotPart::North); - DrawShipDepotSprite(x + (axis == AXIS_X ? x2 : x1), y + ScaleSpriteTrad(33), axis, DepotPart::South); + DrawShipDepotSprite(x + (axis == Axis::X ? x1 : x2), y + ScaleSpriteTrad(17), axis, DepotPart::North); + DrawShipDepotSprite(x + (axis == Axis::X ? x2 : x1), y + ScaleSpriteTrad(33), axis, DepotPart::South); } break; } @@ -576,7 +576,7 @@ public: case WID_BDD_X: case WID_BDD_Y: this->RaiseWidget(WID_BDD_X + _ship_depot_direction); - _ship_depot_direction = (widget == WID_BDD_X ? AXIS_X : AXIS_Y); + _ship_depot_direction = (widget == WID_BDD_X ? Axis::X : Axis::Y); this->LowerWidget(WID_BDD_X + _ship_depot_direction); SndClickBeep(); UpdateDocksDirection(); @@ -616,5 +616,5 @@ static void ShowBuildDocksDepotPicker(Window *parent) void InitializeDockGui() { - _ship_depot_direction = AXIS_X; + _ship_depot_direction = Axis::X; } diff --git a/src/elrail.cpp b/src/elrail.cpp index 82d38dbef9..8c5613660b 100644 --- a/src/elrail.cpp +++ b/src/elrail.cpp @@ -506,7 +506,7 @@ void DrawRailCatenaryOnBridge(const TileInfo *ti) Axis axis = GetBridgeAxis(ti->tile); TileLocationGroup tlg = GetTileLocationGroup(ti->tile); - RailCatenarySprite offset = (RailCatenarySprite)(axis == AXIS_X ? 0 : WIRE_Y_FLAT_BOTH - WIRE_X_FLAT_BOTH); + RailCatenarySprite offset = (RailCatenarySprite)(axis == Axis::X ? 0 : WIRE_Y_FLAT_BOTH - WIRE_X_FLAT_BOTH); const SortableSpriteStruct *sss; if ((length % 2) && num == length) { @@ -531,9 +531,9 @@ void DrawRailCatenaryOnBridge(const TileInfo *ti) /* Finished with wires, draw pylons * every other tile needs a pylon on the northern end */ if (num % 2) { - DiagDirection pcp_pos = (axis == AXIS_X ? DIAGDIR_NE : DIAGDIR_NW); - Direction ppp_pos = (axis == AXIS_X ? DIR_NW : DIR_NE); - if (HasBit(tlg, (axis == AXIS_X ? 0 : 1))) ppp_pos = ReverseDir(ppp_pos); + DiagDirection pcp_pos = (axis == Axis::X ? DIAGDIR_NE : DIAGDIR_NW); + Direction ppp_pos = (axis == Axis::X ? DIR_NW : DIR_NE); + if (HasBit(tlg, (axis == Axis::X ? 0 : 1))) ppp_pos = ReverseDir(ppp_pos); uint x = ti->x + _x_pcp_offsets[pcp_pos] + _x_ppp_offsets[ppp_pos]; uint y = ti->y + _y_pcp_offsets[pcp_pos] + _y_ppp_offsets[ppp_pos]; AddSortableSpriteToDraw(pylon_base + _pylon_sprites[ppp_pos], PAL_NONE, x, y, height, pylon_bounds, IsTransparencySet(TO_CATENARY)); @@ -541,9 +541,9 @@ void DrawRailCatenaryOnBridge(const TileInfo *ti) /* need a pylon on the southern end of the bridge */ if (GetTunnelBridgeLength(ti->tile, start) + 1 == length) { - DiagDirection pcp_pos = (axis == AXIS_X ? DIAGDIR_SW : DIAGDIR_SE); - Direction ppp_pos = (axis == AXIS_X ? DIR_NW : DIR_NE); - if (HasBit(tlg, (axis == AXIS_X ? 0 : 1))) ppp_pos = ReverseDir(ppp_pos); + DiagDirection pcp_pos = (axis == Axis::X ? DIAGDIR_SW : DIAGDIR_SE); + Direction ppp_pos = (axis == Axis::X ? DIR_NW : DIR_NE); + if (HasBit(tlg, (axis == Axis::X ? 0 : 1))) ppp_pos = ReverseDir(ppp_pos); uint x = ti->x + _x_pcp_offsets[pcp_pos] + _x_ppp_offsets[ppp_pos]; uint y = ti->y + _y_pcp_offsets[pcp_pos] + _y_ppp_offsets[ppp_pos]; AddSortableSpriteToDraw(pylon_base + _pylon_sprites[ppp_pos], PAL_NONE, x, y, height, pylon_bounds, IsTransparencySet(TO_CATENARY)); diff --git a/src/ground_vehicle.hpp b/src/ground_vehicle.hpp index 2ef3f6fb1e..97684117aa 100644 --- a/src/ground_vehicle.hpp +++ b/src/ground_vehicle.hpp @@ -213,7 +213,7 @@ struct GroundVehicle : public SpecializedVehicle { int8_t x_pos = this->x_pos; int8_t y_pos = this->y_pos; /* DiagDirToAxis() is a simple mask */ - int8_t d = DiagDirToAxis(dir) == AXIS_X ? x_pos : y_pos; + int8_t d = DiagDirToAxis(dir) == Axis::X ? x_pos : y_pos; /* We need only the least significant bit */ d &= 1; d ^= (int8_t)(dir == DIAGDIR_NW || dir == DIAGDIR_NE); diff --git a/src/landscape.cpp b/src/landscape.cpp index cafe81efc0..77ccb56f2c 100644 --- a/src/landscape.cpp +++ b/src/landscape.cpp @@ -879,7 +879,7 @@ static void GenerateTerrain(int type, uint flag) uint w = templ->width; uint h = templ->height; - if (DiagDirToAxis(direction) == AXIS_Y) std::swap(w, h); + if (DiagDirToAxis(direction) == Axis::Y) std::swap(w, h); const uint8_t *p = reinterpret_cast(templ->data); diff --git a/src/map.cpp b/src/map.cpp index 19042ded73..710d7dfce3 100644 --- a/src/map.cpp +++ b/src/map.cpp @@ -133,8 +133,8 @@ TileIndex TileAddWrap(TileIndex tile, int addx, int addy) /** 'Lookup table' for tile offsets given an Axis */ extern const AxisIndexArray _tileoffs_by_axis{{{ - {1, 0}, // AXIS_X - {0, 1}, // AXIS_Y + {1, 0}, // Axis::X + {0, 1}, // Axis::Y }}}; /** 'Lookup table' for tile offsets given a DiagDirection */ diff --git a/src/newgrf/newgrf_act0_bridges.cpp b/src/newgrf/newgrf_act0_bridges.cpp index 2e841382d3..501f47d1c1 100644 --- a/src/newgrf/newgrf_act0_bridges.cpp +++ b/src/newgrf/newgrf_act0_bridges.cpp @@ -125,8 +125,8 @@ static ChangeInfoResult BridgeChangeInfo(uint first, uint last, int prop, ByteRe uint16_t tiles = buf.ReadExtendedByte(); for (uint j = 0; j != tiles; ++j) { if (j < std::size(bridge->pillar_flags)) { - bridge->pillar_flags[j][AXIS_X] = BridgePillarFlags{buf.ReadByte()}; - bridge->pillar_flags[j][AXIS_Y] = BridgePillarFlags{buf.ReadByte()}; + bridge->pillar_flags[j][Axis::X] = BridgePillarFlags{buf.ReadByte()}; + bridge->pillar_flags[j][Axis::Y] = BridgePillarFlags{buf.ReadByte()}; } else { buf.ReadWord(); } diff --git a/src/newgrf_commons.cpp b/src/newgrf_commons.cpp index 31362e9fb8..56bff4450c 100644 --- a/src/newgrf_commons.cpp +++ b/src/newgrf_commons.cpp @@ -414,8 +414,8 @@ TileIndex GetNearbyTile(uint8_t parameter, TileIndex tile, bool signed_offsets, if (signed_offsets && y >= 8) y -= 16; /* Swap width and height depending on axis for railway stations */ - if (axis == INVALID_AXIS && HasStationTileRail(tile)) axis = GetRailStationAxis(tile); - if (axis == AXIS_Y) std::swap(x, y); + if (axis == Axis::Invalid && HasStationTileRail(tile)) axis = GetRailStationAxis(tile); + if (axis == Axis::Y) std::swap(x, y); /* Make sure we never roam outside of the map, better wrap in that case */ return Map::WrapToMap(tile + TileDiffXY(x, y)); diff --git a/src/newgrf_commons.h b/src/newgrf_commons.h index 472e5d80c3..1cee6f4219 100644 --- a/src/newgrf_commons.h +++ b/src/newgrf_commons.h @@ -307,7 +307,7 @@ extern AirportTileOverrideManager _airporttile_mngr; extern ObjectOverrideManager _object_mngr; uint32_t GetTerrainType(TileIndex tile, TileContext context = TCX_NORMAL); -TileIndex GetNearbyTile(uint8_t parameter, TileIndex tile, bool signed_offsets = true, Axis axis = INVALID_AXIS); +TileIndex GetNearbyTile(uint8_t parameter, TileIndex tile, bool signed_offsets = true, Axis axis = Axis::Invalid); uint32_t GetNearbyTileInformation(TileIndex tile, bool grf_version8); uint32_t GetCompanyInfo(CompanyID owner, const struct Livery *l = nullptr); CommandCost GetErrorMessageFromLocationCallbackResult(uint16_t cb_res, std::span textstack, const GRFFile *grffile, StringID default_error); diff --git a/src/newgrf_station.cpp b/src/newgrf_station.cpp index 4f9a336ffa..748b9a7ace 100644 --- a/src/newgrf_station.cpp +++ b/src/newgrf_station.cpp @@ -128,7 +128,7 @@ uint32_t GetPlatformInfo(Axis axis, uint8_t tile, int platforms, int length, int { uint32_t retval = 0; - if (axis == AXIS_X) { + if (axis == Axis::X) { std::swap(platforms, length); std::swap(x, y); } @@ -165,7 +165,7 @@ uint32_t GetPlatformInfo(Axis axis, uint8_t tile, int platforms, int length, int static TileIndex FindRailStationEnd(TileIndex tile, TileIndexDiff delta, bool check_type, bool check_axis) { uint8_t orig_type = 0; - Axis orig_axis = AXIS_X; + Axis orig_axis = Axis::X; StationID sid = GetStationIndex(tile); if (check_type) orig_type = GetCustomStationSpecIndex(tile); @@ -214,8 +214,8 @@ static uint32_t GetRailContinuationInfo(TileIndex tile) Axis axis = GetRailStationAxis(tile); /* Choose appropriate lookup table to use */ - const Direction *dir = axis == AXIS_X ? x_dir : y_dir; - const DiagDirection *diagdir = axis == AXIS_X ? x_exits : y_exits; + const Direction *dir = axis == Axis::X ? x_dir : y_dir; + const DiagDirection *diagdir = axis == Axis::X ? x_exits : y_exits; uint32_t res = 0; uint i; @@ -296,12 +296,12 @@ TownScopeResolver *StationResolverObject::GetTown() case 0x43: return GetCompanyInfo(_current_company); // Station owner case 0x44: return 2; // PBS status case 0x67: // Land info of nearby tile - if (this->axis != INVALID_AXIS && this->tile != INVALID_TILE) { + if (this->axis != Axis::Invalid && this->tile != INVALID_TILE) { TileIndex tile = this->tile; if (parameter != 0) tile = GetNearbyTile(parameter, tile, true, this->axis); // only perform if it is required Slope tileh = GetTileSlope(tile); - bool swap = (this->axis == AXIS_Y && HasBit(tileh, CORNER_W) != HasBit(tileh, CORNER_E)); + bool swap = (this->axis == Axis::Y && HasBit(tileh, CORNER_W) != HasBit(tileh, CORNER_E)); return GetNearbyTileInformation(tile, this->ro.grffile->grf_version >= 8) ^ (swap ? SLOPE_EW : 0); } @@ -362,7 +362,7 @@ TownScopeResolver *StationResolverObject::GetTown() if (parameter != 0) tile = GetNearbyTile(parameter, tile); // only perform if it is required Slope tileh = GetTileSlope(tile); - bool swap = (axis == AXIS_Y && HasBit(tileh, CORNER_W) != HasBit(tileh, CORNER_E)); + bool swap = (axis == Axis::Y && HasBit(tileh, CORNER_W) != HasBit(tileh, CORNER_E)); return GetNearbyTileInformation(tile, this->ro.grffile->grf_version >= 8) ^ (swap ? SLOPE_EW : 0); } @@ -701,8 +701,8 @@ CommandCost PerformStationTileSlopeCheck(TileIndex north_tile, TileIndex cur_til Slope slope = GetTileSlope(cur_tile); StationResolverObject object(statspec, nullptr, cur_tile, CBID_STATION_LAND_SLOPE_CHECK, - (slope << 4) | (slope ^ (axis == AXIS_Y && HasBit(slope, CORNER_W) != HasBit(slope, CORNER_E) ? SLOPE_EW : 0)), - (numtracks << 24) | (plat_len << 16) | (axis == AXIS_Y ? TileX(diff) << 8 | TileY(diff) : TileY(diff) << 8 | TileX(diff))); + (slope << 4) | (slope ^ (axis == Axis::Y && HasBit(slope, CORNER_W) != HasBit(slope, CORNER_E) ? SLOPE_EW : 0)), + (numtracks << 24) | (plat_len << 16) | (axis == Axis::Y ? TileX(diff) << 8 | TileY(diff) : TileY(diff) << 8 | TileX(diff))); object.station_scope.axis = axis; std::array regs100; diff --git a/src/newgrf_station.h b/src/newgrf_station.h index 2f6005b609..7994eeccbb 100644 --- a/src/newgrf_station.h +++ b/src/newgrf_station.h @@ -54,7 +54,7 @@ struct StationScopeResolver : public ScopeResolver { * @param tile %Tile of the station. */ StationScopeResolver(ResolverObject &ro, const StationSpec *statspec, BaseStation *st, TileIndex tile) - : ScopeResolver(ro), tile(tile), st(st), statspec(statspec), cargo_type(INVALID_CARGO), axis(INVALID_AXIS) + : ScopeResolver(ro), tile(tile), st(st), statspec(statspec), cargo_type(INVALID_CARGO), axis(Axis::Invalid) { } diff --git a/src/object_cmd.cpp b/src/object_cmd.cpp index b9e0dc612b..a882793b9a 100644 --- a/src/object_cmd.cpp +++ b/src/object_cmd.cpp @@ -819,7 +819,7 @@ static bool TryBuildCoastLighthouse() int perimeter = (GB(r, 16, 16) % (2 * (maxx + maxy))) - maxy; DiagDirection dir; for (dir = DIAGDIR_NE; perimeter > 0; dir++) { - perimeter -= (DiagDirToAxis(dir) == AXIS_X) ? maxx : maxy; + perimeter -= (DiagDirToAxis(dir) == Axis::X) ? maxx : maxy; } TileIndex tile; diff --git a/src/pathfinder/water_regions.cpp b/src/pathfinder/water_regions.cpp index b21fa53335..1a2148f25d 100644 --- a/src/pathfinder/water_regions.cpp +++ b/src/pathfinder/water_regions.cpp @@ -171,7 +171,7 @@ public: } else if (!ft.is_bridge) { assert(DistanceManhattan(ft.new_tile, tile) == 1); const auto side = DiagdirBetweenTiles(tile, ft.new_tile); - const int local_x_or_y = DiagDirToAxis(side) == AXIS_X ? TileY(tile) - TileY(this->tile_area.tile) : TileX(tile) - TileX(this->tile_area.tile); + const int local_x_or_y = DiagDirToAxis(side) == Axis::X ? TileY(tile) - TileY(this->tile_area.tile) : TileX(tile) - TileX(this->tile_area.tile); SetBit(this->data.edge_traversability_bits[side], local_x_or_y); } else { this->data.has_cross_region_aqueducts = true; diff --git a/src/rail_cmd.cpp b/src/rail_cmd.cpp index 9380c44ef9..e3a7eefd62 100644 --- a/src/rail_cmd.cpp +++ b/src/rail_cmd.cpp @@ -540,7 +540,7 @@ CommandCost CmdBuildSingleRail(DoCommandFlags flags, TileIndex tile, RailType ra } if (flags.Test(DoCommandFlag::Execute)) { - MakeRoadCrossing(tile, road_owner, tram_owner, _current_company, (track == TRACK_X ? AXIS_Y : AXIS_X), railtype, roadtype_road, roadtype_tram, GetTownIndex(tile)); + MakeRoadCrossing(tile, road_owner, tram_owner, _current_company, (track == TRACK_X ? Axis::Y : Axis::X), railtype, roadtype_road, roadtype_tram, GetTownIndex(tile)); UpdateLevelCrossing(tile, false); MarkDirtyAdjacentLevelCrossingTiles(tile, GetCrossingRoadAxis(tile)); Company::Get(_current_company)->infrastructure.rail[railtype] += LEVELCROSSING_TRACKBIT_FACTOR; diff --git a/src/rail_gui.cpp b/src/rail_gui.cpp index 7645f54cc0..8c32a8fcfd 100644 --- a/src/rail_gui.cpp +++ b/src/rail_gui.cpp @@ -177,12 +177,12 @@ static void PlaceRail_Waypoint(TileIndex tile) Axis axis = GetAxisForNewRailWaypoint(tile); if (IsValidAxis(axis)) { /* Valid tile for waypoints */ - VpStartPlaceSizing(tile, axis == AXIS_X ? VPM_X_LIMITED : VPM_Y_LIMITED, DDSP_BUILD_STATION); + VpStartPlaceSizing(tile, axis == Axis::X ? VPM_X_LIMITED : VPM_Y_LIMITED, DDSP_BUILD_STATION); VpSetPlaceSizingLimit(_settings_game.station.station_spread); } else { /* Tile where we can't build rail waypoints. This is always going to fail, * but provides the user with a proper error message. */ - Command::Post(STR_ERROR_CAN_T_BUILD_RAIL_WAYPOINT , tile, AXIS_X, 1, 1, STAT_CLASS_WAYP, 0, StationID::Invalid(), false); + Command::Post(STR_ERROR_CAN_T_BUILD_RAIL_WAYPOINT , tile, Axis::X, 1, 1, STAT_CLASS_WAYP, 0, StationID::Invalid(), false); } } @@ -210,7 +210,7 @@ static void PlaceRail_Station(TileIndex tile) } else { int w = _settings_client.gui.station_numtracks; int h = _settings_client.gui.station_platlength; - if (_station_gui.axis == AXIS_X) std::swap(w, h); + if (_station_gui.axis == Axis::X) std::swap(w, h); StationPickerSelection params = _station_gui; RailType rt = _cur_railtype; @@ -378,7 +378,7 @@ static void BuildRailClick_Remove(Window *w) if (!_settings_client.gui.station_dragdrop) { int x = _settings_client.gui.station_numtracks; int y = _settings_client.gui.station_platlength; - if (_station_gui.axis == AXIS_X) std::swap(x, y); + if (_station_gui.axis == Axis::X) std::swap(x, y); SetTileSelectSize(x, y); } else { VpSetPlaceSizingLimit(_settings_game.station.station_spread); @@ -789,7 +789,7 @@ struct BuildRailToolbarWindow : Window { Command::Post(STR_ERROR_CAN_T_REMOVE_RAIL_WAYPOINT , CcPlaySound_CONSTRUCTION_RAIL, end_tile, start_tile, keep_rail); } else { TileArea ta(start_tile, end_tile); - Axis axis = select_method == VPM_X_LIMITED ? AXIS_X : AXIS_Y; + Axis axis = select_method == VPM_X_LIMITED ? Axis::X : Axis::Y; bool adjacent = _ctrl_pressed; auto proc = [=](bool test, StationID to_join) -> bool { @@ -980,7 +980,7 @@ static void HandleStationPlacement(TileIndex start, TileIndex end) uint numtracks = ta.w; uint platlength = ta.h; - if (_station_gui.axis == AXIS_X) std::swap(numtracks, platlength); + if (_station_gui.axis == Axis::X) std::swap(numtracks, platlength); StationPickerSelection params = _station_gui; RailType rt = _cur_railtype; @@ -1178,7 +1178,7 @@ public: } else { int x = _settings_client.gui.station_numtracks; int y = _settings_client.gui.station_platlength; - if (_station_gui.axis == AXIS_X) std::swap(x, y); + if (_station_gui.axis == Axis::X) std::swap(x, y); if (!_remove_button_clicked) { SetTileSelectSize(x, y); } @@ -1249,7 +1249,7 @@ public: AutoRestoreBackup dpi_backup(_cur_dpi, &tmp_dpi); int x = (ir.Width() - ScaleSpriteTrad(PREVIEW_WIDTH)) / 2 + ScaleSpriteTrad(PREVIEW_LEFT); int y = (ir.Height() + ScaleSpriteTrad(PREVIEW_HEIGHT)) / 2 - ScaleSpriteTrad(PREVIEW_BOTTOM); - if (!DrawStationTile(x, y, _cur_railtype, AXIS_X, _station_gui.sel_class, _station_gui.sel_type)) { + if (!DrawStationTile(x, y, _cur_railtype, Axis::X, _station_gui.sel_class, _station_gui.sel_type)) { StationPickerDrawSprite(x, y, StationType::Rail, _cur_railtype, INVALID_ROADTYPE, 2); } } @@ -1263,7 +1263,7 @@ public: AutoRestoreBackup dpi_backup(_cur_dpi, &tmp_dpi); int x = (ir.Width() - ScaleSpriteTrad(PREVIEW_WIDTH)) / 2 + ScaleSpriteTrad(PREVIEW_LEFT); int y = (ir.Height() + ScaleSpriteTrad(PREVIEW_HEIGHT)) / 2 - ScaleSpriteTrad(PREVIEW_BOTTOM); - if (!DrawStationTile(x, y, _cur_railtype, AXIS_Y, _station_gui.sel_class, _station_gui.sel_type)) { + if (!DrawStationTile(x, y, _cur_railtype, Axis::Y, _station_gui.sel_class, _station_gui.sel_type)) { StationPickerDrawSprite(x, y, StationType::Rail, _cur_railtype, INVALID_ROADTYPE, 3); } } diff --git a/src/road_cmd.cpp b/src/road_cmd.cpp index c335facd22..a89e2a351f 100644 --- a/src/road_cmd.cpp +++ b/src/road_cmd.cpp @@ -739,12 +739,12 @@ CommandCost CmdBuildRoad(DoCommandFlags flags, TileIndex tile, RoadBits pieces, switch (GetTrackBits(tile)) { case TRACK_BIT_X: if (pieces.Any(ROAD_X)) goto do_clear; - roaddir = AXIS_Y; + roaddir = Axis::Y; break; case TRACK_BIT_Y: if (pieces.Any(ROAD_Y)) goto do_clear; - roaddir = AXIS_X; + roaddir = Axis::X; break; default: goto do_clear; @@ -974,8 +974,8 @@ CommandCost CmdBuildLongRoad(DoCommandFlags flags, TileIndex end_tile, TileIndex if (!ValParamRoadType(rt) || !IsValidAxis(axis) || !IsValidDisallowedRoadDirections(drd)) return CMD_ERROR; /* Only drag in X or Y direction dictated by the direction variable */ - if (axis == AXIS_X && TileY(start_tile) != TileY(end_tile)) return CMD_ERROR; // x-axis - if (axis == AXIS_Y && TileX(start_tile) != TileX(end_tile)) return CMD_ERROR; // y-axis + if (axis == Axis::X && TileY(start_tile) != TileY(end_tile)) return CMD_ERROR; // x-axis + if (axis == Axis::Y && TileX(start_tile) != TileX(end_tile)) return CMD_ERROR; // y-axis DiagDirection dir = AxisToDiagDir(axis); @@ -990,7 +990,7 @@ CommandCost CmdBuildLongRoad(DoCommandFlags flags, TileIndex end_tile, TileIndex /* On the X-axis, we have to swap the initial bits, so they * will be interpreted correctly in the GTTS. Furthermore * when you just 'click' on one tile to build them. */ - if ((drd == DisallowedRoadDirection::Northbound || drd == DisallowedRoadDirection::Southbound) && (axis == AXIS_Y) == (start_tile == end_tile && start_half == end_half)) drd.Flip({DisallowedRoadDirection::Northbound, DisallowedRoadDirection::Southbound}); + if ((drd == DisallowedRoadDirection::Northbound || drd == DisallowedRoadDirection::Southbound) && (axis == Axis::Y) == (start_tile == end_tile && start_half == end_half)) drd.Flip({DisallowedRoadDirection::Northbound, DisallowedRoadDirection::Southbound}); CommandCost cost(ExpensesType::Construction); CommandCost last_error = CMD_ERROR; @@ -1072,8 +1072,8 @@ std::tuple CmdRemoveLongRoad(DoCommandFlags flags, TileIndex if (!ValParamRoadType(rt) || !IsValidAxis(axis)) return { CMD_ERROR, 0 }; /* Only drag in X or Y direction dictated by the direction variable */ - if (axis == AXIS_X && TileY(start_tile) != TileY(end_tile)) return { CMD_ERROR, 0 }; // x-axis - if (axis == AXIS_Y && TileX(start_tile) != TileX(end_tile)) return { CMD_ERROR, 0 }; // y-axis + if (axis == Axis::X && TileY(start_tile) != TileY(end_tile)) return { CMD_ERROR, 0 }; // x-axis + if (axis == Axis::Y && TileX(start_tile) != TileX(end_tile)) return { CMD_ERROR, 0 }; // y-axis /* Swap start and ending tile, also the half-tile drag vars. */ if (start_tile > end_tile || (start_tile == end_tile && start_half)) { @@ -1832,7 +1832,7 @@ static void DrawTile_Road(TileInfo *ti) } else if (draw_pbs || tram_rti != nullptr || road_rti->UsesOverlay()) { /* Add another rail overlay, unless there is only the base road sprite. */ pal = draw_pbs ? PALETTE_CRASH : PAL_NONE; - SpriteID rail = GetCrossingRoadAxis(ti->tile) == AXIS_Y ? GetRailTypeInfo(GetRailType(ti->tile))->base_sprites.single_x : GetRailTypeInfo(GetRailType(ti->tile))->base_sprites.single_y; + SpriteID rail = GetCrossingRoadAxis(ti->tile) == Axis::Y ? GetRailTypeInfo(GetRailType(ti->tile))->base_sprites.single_x : GetRailTypeInfo(GetRailType(ti->tile))->base_sprites.single_y; DrawGroundSprite(rail, pal); } diff --git a/src/road_func.h b/src/road_func.h index d459e2333d..b4400bb3ff 100644 --- a/src/road_func.h +++ b/src/road_func.h @@ -111,7 +111,7 @@ inline RoadBits DiagDirToRoadBits(DiagDirection d) inline RoadBits AxisToRoadBits(Axis a) { assert(IsValidAxis(a)); - return a == AXIS_X ? ROAD_X : ROAD_Y; + return a == Axis::X ? ROAD_X : ROAD_Y; } diff --git a/src/road_gui.cpp b/src/road_gui.cpp index cc9c1bd7f2..8f2bc346a7 100644 --- a/src/road_gui.cpp +++ b/src/road_gui.cpp @@ -266,12 +266,12 @@ static void PlaceRoad_Waypoint(TileIndex tile) Axis axis = GetAxisForNewRoadWaypoint(tile); if (IsValidAxis(axis)) { /* Valid tile for waypoints */ - VpStartPlaceSizing(tile, axis == AXIS_X ? VPM_X_LIMITED : VPM_Y_LIMITED, DDSP_BUILD_ROAD_WAYPOINT); + VpStartPlaceSizing(tile, axis == Axis::X ? VPM_X_LIMITED : VPM_Y_LIMITED, DDSP_BUILD_ROAD_WAYPOINT); VpSetPlaceSizingLimit(_settings_game.station.station_spread); } else { /* Tile where we can't build road waypoints. This is always going to fail, * but provides the user with a proper error message. */ - Command::Post(STR_ERROR_CAN_T_BUILD_ROAD_WAYPOINT, tile, AXIS_X, 1, 1, ROADSTOP_CLASS_WAYP, 0, StationID::Invalid(), false); + Command::Post(STR_ERROR_CAN_T_BUILD_ROAD_WAYPOINT, tile, Axis::X, 1, 1, ROADSTOP_CLASS_WAYP, 0, StationID::Invalid(), false); } } @@ -285,7 +285,7 @@ static void PlaceRoad_BusStation(TileIndex tile) VpStartPlaceSizing(tile, VPM_X_AND_Y, DDSP_REMOVE_BUSSTOP); } else { if (_roadstop_gui.orientation < DIAGDIR_END) { // Not a drive-through stop. - VpStartPlaceSizing(tile, (DiagDirToAxis(_roadstop_gui.orientation) == AXIS_X) ? VPM_X_LIMITED : VPM_Y_LIMITED, DDSP_BUILD_BUSSTOP); + VpStartPlaceSizing(tile, (DiagDirToAxis(_roadstop_gui.orientation) == Axis::X) ? VPM_X_LIMITED : VPM_Y_LIMITED, DDSP_BUILD_BUSSTOP); } else { VpStartPlaceSizing(tile, VPM_X_AND_Y_LIMITED, DDSP_BUILD_BUSSTOP); } @@ -303,7 +303,7 @@ static void PlaceRoad_TruckStation(TileIndex tile) VpStartPlaceSizing(tile, VPM_X_AND_Y, DDSP_REMOVE_TRUCKSTOP); } else { if (_roadstop_gui.orientation < DIAGDIR_END) { // Not a drive-through stop. - VpStartPlaceSizing(tile, (DiagDirToAxis(_roadstop_gui.orientation) == AXIS_X) ? VPM_X_LIMITED : VPM_Y_LIMITED, DDSP_BUILD_TRUCKSTOP); + VpStartPlaceSizing(tile, (DiagDirToAxis(_roadstop_gui.orientation) == Axis::X) ? VPM_X_LIMITED : VPM_Y_LIMITED, DDSP_BUILD_TRUCKSTOP); } else { VpStartPlaceSizing(tile, VPM_X_AND_Y_LIMITED, DDSP_BUILD_TRUCKSTOP); } @@ -652,19 +652,19 @@ struct BuildRoadToolbarWindow : Window { _one_way_button_clicked = RoadTypeIsRoad(this->roadtype) ? this->IsWidgetLowered(WID_ROT_ONE_WAY) : false; switch (this->last_started_action) { case WID_ROT_ROAD_X: - _place_road_dir = AXIS_X; + _place_road_dir = Axis::X; _place_road_start_half_x = _tile_fract_coords.x >= 8; VpStartPlaceSizing(tile, VPM_FIX_Y, DDSP_PLACE_ROAD_X_DIR); break; case WID_ROT_ROAD_Y: - _place_road_dir = AXIS_Y; + _place_road_dir = Axis::Y; _place_road_start_half_y = _tile_fract_coords.y >= 8; VpStartPlaceSizing(tile, VPM_FIX_X, DDSP_PLACE_ROAD_Y_DIR); break; case WID_ROT_AUTOROAD: - _place_road_dir = INVALID_AXIS; + _place_road_dir = Axis::Invalid; _place_road_start_half_x = _tile_fract_coords.x >= 8; _place_road_start_half_y = _tile_fract_coords.y >= 8; VpStartPlaceSizing(tile, VPM_X_OR_Y, DDSP_PLACE_AUTOROAD); @@ -751,11 +751,11 @@ struct BuildRoadToolbarWindow : Window { ( (_tile_fract_coords.x < _tile_fract_coords.y && (_tile_fract_coords.x + _tile_fract_coords.y) < 16) || (_tile_fract_coords.x > _tile_fract_coords.y && (_tile_fract_coords.x + _tile_fract_coords.y) > 16) ))) { /* Set dir = X */ - _place_road_dir = AXIS_X; + _place_road_dir = Axis::X; _place_road_end_half = pt.x & 8; } else { /* Set dir = Y */ - _place_road_dir = AXIS_Y; + _place_road_dir = Axis::Y; _place_road_end_half = pt.y & 8; } @@ -790,7 +790,7 @@ struct BuildRoadToolbarWindow : Window { case DDSP_PLACE_ROAD_X_DIR: case DDSP_PLACE_ROAD_Y_DIR: case DDSP_PLACE_AUTOROAD: { - bool start_half = _place_road_dir == AXIS_Y ? _place_road_start_half_y : _place_road_start_half_x; + bool start_half = _place_road_dir == Axis::Y ? _place_road_start_half_y : _place_road_start_half_x; if (_remove_button_clicked) { Command::Post(GetRoadTypeInfo(this->roadtype)->strings.err_remove_road, CcPlaySound_CONSTRUCTION_OTHER, @@ -809,7 +809,7 @@ struct BuildRoadToolbarWindow : Window { Command::Post(STR_ERROR_CAN_T_REMOVE_ROAD_WAYPOINT, CcPlaySound_CONSTRUCTION_OTHER, end_tile, start_tile); } else { TileArea ta(start_tile, end_tile); - Axis axis = select_method == VPM_X_LIMITED ? AXIS_X : AXIS_Y; + Axis axis = select_method == VPM_X_LIMITED ? Axis::X : Axis::Y; bool adjacent = _ctrl_pressed; auto proc = [=](bool test, StationID to_join) -> bool { diff --git a/src/roadstop.cpp b/src/roadstop.cpp index 47c19d4ef6..190d99f702 100644 --- a/src/roadstop.cpp +++ b/src/roadstop.cpp @@ -307,8 +307,8 @@ void RoadStop::Entry::Enter(const RoadVehicle *rv) static DiagDirection GetEntryDirection(bool east, Axis axis) { switch (axis) { - case AXIS_X: return east ? DIAGDIR_NE : DIAGDIR_SW; - case AXIS_Y: return east ? DIAGDIR_SE : DIAGDIR_NW; + case Axis::X: return east ? DIAGDIR_NE : DIAGDIR_SW; + case Axis::Y: return east ? DIAGDIR_SE : DIAGDIR_NW; default: NOT_REACHED(); } } diff --git a/src/saveload/afterload.cpp b/src/saveload/afterload.cpp index 93124ea902..181002c30c 100644 --- a/src/saveload/afterload.cpp +++ b/src/saveload/afterload.cpp @@ -2646,7 +2646,7 @@ bool AfterLoadGame() const DiagDirection vdir = DirToDiagDir(v->direction); /* Have we passed the visibility "switch" state already? */ - uint8_t pos = (DiagDirToAxis(vdir) == AXIS_X ? v->x_pos : v->y_pos) & TILE_UNIT_MASK; + uint8_t pos = (DiagDirToAxis(vdir) == Axis::X ? v->x_pos : v->y_pos) & TILE_UNIT_MASK; uint8_t frame = (vdir == DIAGDIR_NE || vdir == DIAGDIR_NW) ? TILE_SIZE - 1 - pos : pos; extern const uint8_t _tunnel_visibility_frame[DIAGDIR_END]; @@ -2781,7 +2781,7 @@ bool AfterLoadGame() Direction dir = rv->direction; /* Test if we are reversing. */ - Axis a = trackbits == TRACK_BIT_X ? AXIS_X : AXIS_Y; + Axis a = trackbits == TRACK_BIT_X ? Axis::X : Axis::Y; if (AxisToDirection(a) != dir && AxisToDirection(a) != ReverseDir(dir)) { /* When reversing, the road vehicle is on the edge of the tile, diff --git a/src/script/api/script_marine.cpp b/src/script/api/script_marine.cpp index 1fde9d9530..2dc69a8a55 100644 --- a/src/script/api/script_marine.cpp +++ b/src/script/api/script_marine.cpp @@ -83,7 +83,7 @@ EnforcePrecondition(false, ::IsValidTile(front)); EnforcePrecondition(false, (::TileX(front) == ::TileX(tile)) != (::TileY(front) == ::TileY(tile))); - return ScriptObject::Command::Do(tile, ::TileX(front) == ::TileX(tile) ? AXIS_Y : AXIS_X); + return ScriptObject::Command::Do(tile, ::TileX(front) == ::TileX(tile) ? Axis::Y : Axis::X); } /* static */ bool ScriptMarine::BuildDock(TileIndex tile, StationID station_id) diff --git a/src/script/api/script_rail.cpp b/src/script/api/script_rail.cpp index d36f1225e8..24a9cff31b 100644 --- a/src/script/api/script_rail.cpp +++ b/src/script/api/script_rail.cpp @@ -159,7 +159,7 @@ EnforcePrecondition(false, station_id == ScriptStation::STATION_NEW || station_id == ScriptStation::STATION_JOIN_ADJACENT || ScriptStation::IsValidStation(station_id)); bool adjacent = station_id != ScriptStation::STATION_JOIN_ADJACENT; - return ScriptObject::Command::Do(tile, (::RailType)GetCurrentRailType(), direction == RAILTRACK_NW_SE ? AXIS_Y : AXIS_X, num_platforms, platform_length, STAT_CLASS_DFLT, 0, ScriptStation::IsValidStation(station_id) ? station_id : StationID::Invalid(), adjacent); + return ScriptObject::Command::Do(tile, (::RailType)GetCurrentRailType(), direction == RAILTRACK_NW_SE ? Axis::Y : Axis::X, num_platforms, platform_length, STAT_CLASS_DFLT, 0, ScriptStation::IsValidStation(station_id) ? station_id : StationID::Invalid(), adjacent); } /* static */ bool ScriptRail::BuildNewGRFRailStation(TileIndex tile, RailTrack direction, SQInteger num_platforms, SQInteger platform_length, StationID station_id, CargoType cargo_type, IndustryType source_industry, IndustryType goal_industry, SQInteger distance, bool source_station) @@ -187,7 +187,7 @@ std::min(15u, num_platforms) << 4 | std::min(15u, platform_length) ); - Axis axis = direction == RAILTRACK_NW_SE ? AXIS_Y : AXIS_X; + Axis axis = direction == RAILTRACK_NW_SE ? Axis::Y : Axis::X; bool adjacent = station_id != ScriptStation::STATION_JOIN_ADJACENT; StationID to_join = ScriptStation::IsValidStation(station_id) ? station_id : StationID::Invalid(); if (res.second != CALLBACK_FAILED) { @@ -211,7 +211,7 @@ EnforcePrecondition(false, GetRailTracks(tile) == RAILTRACK_NE_SW || GetRailTracks(tile) == RAILTRACK_NW_SE); EnforcePrecondition(false, IsRailTypeAvailable(GetCurrentRailType())); - return ScriptObject::Command::Do(tile, GetRailTracks(tile) == RAILTRACK_NE_SW ? AXIS_X : AXIS_Y, 1, 1, STAT_CLASS_WAYP, 0, StationID::Invalid(), false); + return ScriptObject::Command::Do(tile, GetRailTracks(tile) == RAILTRACK_NE_SW ? Axis::X : Axis::Y, 1, 1, STAT_CLASS_WAYP, 0, StationID::Invalid(), false); } /* static */ bool ScriptRail::RemoveRailWaypointTileRectangle(TileIndex tile, TileIndex tile2, bool keep_rail) diff --git a/src/script/api/script_road.cpp b/src/script/api/script_road.cpp index 69bd5a97d5..3b01c6a704 100644 --- a/src/script/api/script_road.cpp +++ b/src/script/api/script_road.cpp @@ -530,7 +530,7 @@ static bool NeighbourHasReachableRoad(::RoadType rt, TileIndex start_tile, DiagD EnforcePrecondition(false, !one_way || RoadTypeIsRoad(ScriptObject::GetRoadType())); EnforcePrecondition(false, IsRoadTypeAvailable(GetCurrentRoadType())); - Axis axis = ::TileY(start) != ::TileY(end) ? AXIS_Y : AXIS_X; + Axis axis = ::TileY(start) != ::TileY(end) ? Axis::Y : Axis::X; return ScriptObject::Command::Do(end, start, ScriptObject::GetRoadType(), axis, one_way ? DisallowedRoadDirection::Northbound : DisallowedRoadDirections{}, (start < end) == !full, (start < end) != !full, true); } @@ -606,7 +606,7 @@ static bool NeighbourHasReachableRoad(::RoadType rt, TileIndex start_tile, DiagD EnforcePrecondition(false, ::TileX(start) == ::TileX(end) || ::TileY(start) == ::TileY(end)); EnforcePrecondition(false, IsRoadTypeAvailable(GetCurrentRoadType())); - return ScriptObject::Command::Do(end, start, ScriptObject::GetRoadType(), ::TileY(start) != ::TileY(end) ? AXIS_Y : AXIS_X, start < end, start >= end); + return ScriptObject::Command::Do(end, start, ScriptObject::GetRoadType(), ::TileY(start) != ::TileY(end) ? Axis::Y : Axis::X, start < end, start >= end); } /* static */ bool ScriptRoad::RemoveRoadFull(TileIndex start, TileIndex end) @@ -618,7 +618,7 @@ static bool NeighbourHasReachableRoad(::RoadType rt, TileIndex start_tile, DiagD EnforcePrecondition(false, ::TileX(start) == ::TileX(end) || ::TileY(start) == ::TileY(end)); EnforcePrecondition(false, IsRoadTypeAvailable(GetCurrentRoadType())); - return ScriptObject::Command::Do(end, start, ScriptObject::GetRoadType(), ::TileY(start) != ::TileY(end) ? AXIS_Y : AXIS_X, start >= end, start < end); + return ScriptObject::Command::Do(end, start, ScriptObject::GetRoadType(), ::TileY(start) != ::TileY(end) ? Axis::Y : Axis::X, start >= end, start < end); } /* static */ bool ScriptRoad::RemoveRoadDepot(TileIndex tile) diff --git a/src/slope_func.h b/src/slope_func.h index be33f63b07..3e306d4439 100644 --- a/src/slope_func.h +++ b/src/slope_func.h @@ -379,7 +379,7 @@ inline Foundation FlatteningFoundation(Slope s) */ inline Foundation InclinedFoundation(Axis axis) { - return (axis == AXIS_X ? FOUNDATION_INCLINED_X : FOUNDATION_INCLINED_Y); + return (axis == Axis::X ? FOUNDATION_INCLINED_X : FOUNDATION_INCLINED_Y); } /** diff --git a/src/station_cmd.cpp b/src/station_cmd.cpp index 0d9d5744b7..b36fbbca22 100644 --- a/src/station_cmd.cpp +++ b/src/station_cmd.cpp @@ -1463,7 +1463,7 @@ CommandCost CmdBuildRailStation(DoCommandFlags flags, TileIndex tile_org, RailTy if (plat_len == 0 || numtracks == 0) return CMD_ERROR; int w_org, h_org; - if (axis == AXIS_X) { + if (axis == Axis::X) { w_org = plat_len; h_org = numtracks; } else { @@ -1516,7 +1516,7 @@ CommandCost CmdBuildRailStation(DoCommandFlags flags, TileIndex tile_org, RailTy StationGfx gfx = *it + to_underlying(axis); if (statspec != nullptr) { - uint32_t platinfo = GetPlatformInfo(AXIS_X, gfx, plat_len, numtracks, j, i, false); + uint32_t platinfo = GetPlatformInfo(Axis::X, gfx, plat_len, numtracks, j, i, false); /* As the station is not yet completely finished, the station does not yet exist. */ uint16_t callback = GetStationCallback(CBID_STATION_BUILD_TILE_LAYOUT, platinfo, 0, statspec, nullptr, INVALID_TILE); if (callback != CALLBACK_FAILED && callback <= UINT8_MAX) gfx = (callback & ~1) + to_underlying(axis); @@ -1592,7 +1592,7 @@ CommandCost CmdBuildRailStation(DoCommandFlags flags, TileIndex tile_org, RailTy if (statspec != nullptr) { /* Use a fixed axis for GetPlatformInfo as our platforms / numtracks are always the right way around */ - uint32_t platinfo = GetPlatformInfo(AXIS_X, GetStationGfx(tile), plat_len, numtracks, j, i, false); + uint32_t platinfo = GetPlatformInfo(Axis::X, GetStationGfx(tile), plat_len, numtracks, j, i, false); /* As the station is not yet completely finished, the station does not yet exist. */ uint16_t callback = GetStationCallback(CBID_STATION_BUILD_TILE_LAYOUT, platinfo, 0, statspec, nullptr, tile); @@ -1624,7 +1624,7 @@ CommandCost CmdBuildRailStation(DoCommandFlags flags, TileIndex tile_org, RailTy /* Check whether we need to expand the reservation of trains already on the station. */ TileArea update_reservation_area; - if (axis == AXIS_X) { + if (axis == Axis::X) { update_reservation_area = TileArea(tile_org, 1, numtracks); } else { update_reservation_area = TileArea(tile_org, numtracks, 1); @@ -3453,7 +3453,7 @@ static void DrawTile_Station(TileInfo *ti) /* PBS debugging, draw reserved tracks darker */ if (_game_mode != GM_MENU && _settings_client.gui.show_track_reservation && HasStationRail(ti->tile) && HasStationReservation(ti->tile)) { - DrawGroundSprite(GetRailStationAxis(ti->tile) == AXIS_X ? rti->base_sprites.single_x : rti->base_sprites.single_y, PALETTE_CRASH); + DrawGroundSprite(GetRailStationAxis(ti->tile) == Axis::X ? rti->base_sprites.single_x : rti->base_sprites.single_y, PALETTE_CRASH); } } } @@ -3502,7 +3502,7 @@ static void DrawTile_Station(TileInfo *ti) if (IsDriveThroughStopTile(ti->tile)) { if (type != StationType::RoadWaypoint && (stopspec == nullptr || stop_draw_mode.Test(RoadStopDrawMode::Overlay))) { - uint sprite_offset = GetDriveThroughStopAxis(ti->tile) == AXIS_X ? 1 : 0; + uint sprite_offset = GetDriveThroughStopAxis(ti->tile) == Axis::X ? 1 : 0; DrawRoadOverlays(ti, PAL_NONE, road_rti, tram_rti, sprite_offset, sprite_offset); } } else { @@ -3873,7 +3873,7 @@ static VehicleEnterTileStates VehicleEnterTile_Station(Vehicle *v, TileIndex til x &= 0xF; y &= 0xF; - if (DiagDirToAxis(dir) != AXIS_X) std::swap(x, y); + if (DiagDirToAxis(dir) != Axis::X) std::swap(x, y); if (y == TILE_SIZE / 2) { if (dir != DIAGDIR_SE && dir != DIAGDIR_SW) x = TILE_SIZE - 1 - x; stop &= TILE_SIZE - 1; diff --git a/src/station_map.h b/src/station_map.h index 114bc3b363..9fe4e8aa29 100644 --- a/src/station_map.h +++ b/src/station_map.h @@ -503,7 +503,7 @@ inline void SetStationTileHavePylons(Tile t, bool b) inline Axis GetRailStationAxis(Tile t) { assert(HasStationRail(t)); - return HasBit(GetStationGfx(t), 0) ? AXIS_Y : AXIS_X; + return HasBit(GetStationGfx(t), 0) ? Axis::Y : Axis::X; } /** diff --git a/src/table/bridge_land.h b/src/table/bridge_land.h index 4f1c0c07fd..b71391befe 100644 --- a/src/table/bridge_land.h +++ b/src/table/bridge_land.h @@ -39,8 +39,8 @@ /** Sprite table for middle part of aqueduct. */ static const PalSpriteID _aqueduct_sprite_table_middle[] = { - {SPR_AQUEDUCT_MIDDLE_X, PAL_NONE}, {0x0, PAL_NONE}, {SPR_AQUEDUCT_PILLAR_X, PAL_NONE}, {0x0, PAL_NONE}, // AXIS_X - {SPR_AQUEDUCT_MIDDLE_Y, PAL_NONE}, {0x0, PAL_NONE}, {SPR_AQUEDUCT_PILLAR_Y, PAL_NONE}, {0x0, PAL_NONE}, // AIXS_Y + {SPR_AQUEDUCT_MIDDLE_X, PAL_NONE}, {0x0, PAL_NONE}, {SPR_AQUEDUCT_PILLAR_X, PAL_NONE}, {0x0, PAL_NONE}, // Axis::X + {SPR_AQUEDUCT_MIDDLE_Y, PAL_NONE}, {0x0, PAL_NONE}, {SPR_AQUEDUCT_PILLAR_Y, PAL_NONE}, {0x0, PAL_NONE}, // Axis::Y }; /** Sprite table for head part of aqueduct. */ diff --git a/src/table/water_land.h b/src/table/water_land.h index 0ac1c8f0cd..85795bedcc 100644 --- a/src/table/water_land.h +++ b/src/table/water_land.h @@ -46,11 +46,11 @@ static const DrawTileSeqStruct _shipdepot_display_se_seq[] = { /** Data for drawing ship depots by Axis and DepotPart. */ static const AxisIndexArray> _shipdepot_display_data{{{ - {{{ // AXIS_X + {{{ // Axis::X TILE_SPRITE_LINE(0xFDD, _shipdepot_display_ne_seq) // DepotPart::North TILE_SPRITE_LINE(0xFDD, _shipdepot_display_sw_seq) // DepotPart::South }}}, - {{{ // AXIS_Y + {{{ // Axis::Y TILE_SPRITE_LINE(0xFDD, _shipdepot_display_nw_seq) // DepotPart::North TILE_SPRITE_LINE(0xFDD, _shipdepot_display_se_seq) // DepotPart::South }}}, diff --git a/src/track_func.h b/src/track_func.h index 626fcf3f4c..41678b42da 100644 --- a/src/track_func.h +++ b/src/track_func.h @@ -56,8 +56,8 @@ inline bool IsValidTrackdir(Trackdir trackdir) /** * Convert an Axis to the corresponding Track - * AXIS_X -> TRACK_X - * AXIS_Y -> TRACK_Y + * Axis::X -> TRACK_X + * Axis::Y -> TRACK_Y * Uses the fact that they share the same internal encoding * * @param a the axis to convert diff --git a/src/tunnelbridge_cmd.cpp b/src/tunnelbridge_cmd.cpp index aad05c999b..4bf5d134aa 100644 --- a/src/tunnelbridge_cmd.cpp +++ b/src/tunnelbridge_cmd.cpp @@ -114,8 +114,8 @@ int CalcBridgeLenCostFactor(int length) Foundation GetBridgeFoundation(Slope tileh, Axis axis) { if (tileh == SLOPE_FLAT || - ((tileh == SLOPE_NE || tileh == SLOPE_SW) && axis == AXIS_X) || - ((tileh == SLOPE_NW || tileh == SLOPE_SE) && axis == AXIS_Y)) return FOUNDATION_NONE; + ((tileh == SLOPE_NE || tileh == SLOPE_SW) && axis == Axis::X) || + ((tileh == SLOPE_NW || tileh == SLOPE_SE) && axis == Axis::Y)) return FOUNDATION_NONE; return (HasSlopeHighestCorner(tileh) ? InclinedFoundation(axis) : FlatteningFoundation(tileh)); } @@ -197,7 +197,7 @@ static uint8_t GetBridgeRampDirectionBaseOffset(DiagDirection diagdir) */ static uint8_t GetBridgeMiddleAxisBaseOffset(Axis axis) { - return axis == AXIS_X ? 0 : 4; + return axis == Axis::X ? 0 : 4; } /** @@ -218,9 +218,9 @@ static CommandCost CheckBridgeSlope(BridgePieces bridge_piece, Axis axis, Slope Slope valid_inclined; if (bridge_piece == BRIDGE_PIECE_NORTH) { - valid_inclined = (axis == AXIS_X ? SLOPE_NE : SLOPE_NW); + valid_inclined = (axis == Axis::X ? SLOPE_NE : SLOPE_NW); } else { - valid_inclined = (axis == AXIS_X ? SLOPE_SW : SLOPE_SE); + valid_inclined = (axis == Axis::X ? SLOPE_SW : SLOPE_SE); } if ((tileh != SLOPE_FLAT) && (tileh != valid_inclined)) return CMD_ERROR; @@ -355,9 +355,9 @@ CommandCost CmdBuildBridge(DoCommandFlags flags, TileIndex tile_end, TileIndex t Axis direction; if (TileX(tile_start) == TileX(tile_end)) { - direction = AXIS_Y; + direction = Axis::Y; } else if (TileY(tile_start) == TileY(tile_end)) { - direction = AXIS_X; + direction = Axis::X; } else { return CommandCost(STR_ERROR_START_AND_END_MUST_BE_IN); } @@ -456,7 +456,7 @@ CommandCost CmdBuildBridge(DoCommandFlags flags, TileIndex tile_end, TileIndex t if (is_new_owner) owner = company; /* Check if the new bridge is compatible with tiles underneath. */ - TileIndexDiff delta = (direction == AXIS_X ? TileDiffXY(1, 0) : TileDiffXY(0, 1)); + TileIndexDiff delta = (direction == Axis::X ? TileDiffXY(1, 0) : TileDiffXY(0, 1)); for (TileIndex tile = tile_start + delta; tile != tile_end; tile += delta) { CommandCost ret = CheckBuildAbove(tile, flags, direction, z_start + 1); if (ret.Failed()) return ret; @@ -686,7 +686,7 @@ CommandCost CmdBuildTunnel(DoCommandFlags flags, TileIndex start_tile, Transport TileIndexDiff delta = TileOffsByDiagDir(direction); DiagDirection tunnel_in_way_dir; - if (DiagDirToAxis(direction) == AXIS_Y) { + if (DiagDirToAxis(direction) == Axis::Y) { tunnel_in_way_dir = (TileX(start_tile) < (Map::MaxX() / 2)) ? DIAGDIR_SW : DIAGDIR_NE; } else { tunnel_in_way_dir = (TileY(start_tile) < (Map::MaxX() / 2)) ? DIAGDIR_SE : DIAGDIR_NW; @@ -1349,7 +1349,7 @@ static void DrawTile_TunnelBridge(TileInfo *ti) RoadType tram_rt = GetRoadTypeTram(ti->tile); const RoadTypeInfo *road_rti = road_rt == INVALID_ROADTYPE ? nullptr : GetRoadTypeInfo(road_rt); const RoadTypeInfo *tram_rti = tram_rt == INVALID_ROADTYPE ? nullptr : GetRoadTypeInfo(tram_rt); - uint sprite_offset = DiagDirToAxis(tunnelbridge_direction) == AXIS_X ? 1 : 0; + uint sprite_offset = DiagDirToAxis(tunnelbridge_direction) == Axis::X ? 1 : 0; bool draw_underlay = true; /* Road underlay takes precedence over tram */ @@ -1409,7 +1409,7 @@ static void DrawTile_TunnelBridge(TileInfo *ti) SpriteID overlay = GetCustomRailSprite(rti, ti->tile, RailSpriteType::Overlay); DrawGroundSprite(overlay + RTO_X + to_underlying(DiagDirToAxis(tunnelbridge_direction)), PALETTE_CRASH); } else { - DrawGroundSprite(DiagDirToAxis(tunnelbridge_direction) == AXIS_X ? rti->base_sprites.single_x : rti->base_sprites.single_y, PALETTE_CRASH); + DrawGroundSprite(DiagDirToAxis(tunnelbridge_direction) == Axis::X ? rti->base_sprites.single_x : rti->base_sprites.single_y, PALETTE_CRASH); } } @@ -1496,7 +1496,7 @@ static void DrawTile_TunnelBridge(TileInfo *ti) SpriteID surface = rti->UsesOverlay() ? GetCustomRailSprite(rti, ti->tile, RailSpriteType::Bridge) : rti->base_sprites.bridge_deck; if (surface != 0) { if (HasBridgeFlatRamp(ti->tileh, DiagDirToAxis(tunnelbridge_direction))) { - AddSortableSpriteToDraw(surface + ((DiagDirToAxis(tunnelbridge_direction) == AXIS_X) ? RTBO_X : RTBO_Y), PAL_NONE, *ti, {{0, 0, TILE_HEIGHT}, {TILE_SIZE, TILE_SIZE, 0}, {}}); + AddSortableSpriteToDraw(surface + ((DiagDirToAxis(tunnelbridge_direction) == Axis::X) ? RTBO_X : RTBO_Y), PAL_NONE, *ti, {{0, 0, TILE_HEIGHT}, {TILE_SIZE, TILE_SIZE, 0}, {}}); } else { AddSortableSpriteToDraw(surface + RTBO_SLOPE + tunnelbridge_direction, PAL_NONE, *ti, {{}, {TILE_SIZE, TILE_SIZE, TILE_HEIGHT}, {}}); } @@ -1514,7 +1514,7 @@ static void DrawTile_TunnelBridge(TileInfo *ti) } } else { if (HasBridgeFlatRamp(ti->tileh, DiagDirToAxis(tunnelbridge_direction))) { - AddSortableSpriteToDraw(DiagDirToAxis(tunnelbridge_direction) == AXIS_X ? rti->base_sprites.single_x : rti->base_sprites.single_y, PALETTE_CRASH, *ti, {{0, 0, TILE_HEIGHT}, {TILE_SIZE, TILE_SIZE, 0}, {}}); + AddSortableSpriteToDraw(DiagDirToAxis(tunnelbridge_direction) == Axis::X ? rti->base_sprites.single_x : rti->base_sprites.single_y, PALETTE_CRASH, *ti, {{0, 0, TILE_HEIGHT}, {TILE_SIZE, TILE_SIZE, 0}, {}}); } else { AddSortableSpriteToDraw(rti->base_sprites.single_sloped + tunnelbridge_direction, PALETTE_CRASH, *ti, {{}, {TILE_SIZE, TILE_SIZE, TILE_HEIGHT}, {}}); } @@ -1528,7 +1528,7 @@ static void DrawTile_TunnelBridge(TileInfo *ti) } BridgePillarFlags blocked_pillars; - if (DiagDirToAxis(tunnelbridge_direction) == AXIS_X) { + if (DiagDirToAxis(tunnelbridge_direction) == Axis::X) { blocked_pillars = {BridgePillarFlag::EdgeSW, BridgePillarFlag::EdgeNE}; } else { blocked_pillars = {BridgePillarFlag::EdgeNW, BridgePillarFlag::EdgeSE}; @@ -1587,7 +1587,7 @@ static BridgePillarFlags GetBridgeTilePillarFlags(TileIndex tile, TileIndex ramp const BridgeSpec *spec = GetBridgeSpec(type); if (!spec->ctrl_flags.Test(BridgeSpec::ControlFlag::InvalidPillarFlags)) { BridgePieces piece = CalcBridgePiece(GetTunnelBridgeLength(tile, rampnorth) + 1, GetTunnelBridgeLength(tile, rampsouth) + 1); - Axis axis = TileX(rampnorth) == TileX(rampsouth) ? AXIS_Y : AXIS_X; + Axis axis = TileX(rampnorth) == TileX(rampsouth) ? Axis::Y : Axis::X; return spec->pillar_flags[piece][axis]; } @@ -1658,7 +1658,7 @@ void DrawBridgeMiddle(const TileInfo *ti, BridgePillarFlags blocked_pillars) /* Draw floor and far part of bridge*/ if (!IsInvisibilitySet(TO_BRIDGES)) { - if (axis == AXIS_X) { + if (axis == Axis::X) { AddSortableSpriteToDraw(psid[0].sprite, psid[0].pal, x, y, z, {{0, 0, BRIDGE_Z_START}, {TILE_SIZE, 1, 40}, {0, 0, -BRIDGE_Z_START}}, IsTransparencySet(TO_BRIDGES)); } else { AddSortableSpriteToDraw(psid[0].sprite, psid[0].pal, x, y, z, {{0, 0, BRIDGE_Z_START}, {1, TILE_SIZE, 40}, {0, 0, -BRIDGE_Z_START}}, IsTransparencySet(TO_BRIDGES)); @@ -1682,7 +1682,7 @@ void DrawBridgeMiddle(const TileInfo *ti, BridgePillarFlags blocked_pillars) SpriteID overlay = GetCustomRailSprite(rti, rampnorth, RailSpriteType::Overlay, TCX_ON_BRIDGE); AddSortableSpriteToDraw(overlay + RTO_X + to_underlying(axis), PALETTE_CRASH, ti->x, ti->y, bridge_z, {{}, {TILE_SIZE, TILE_SIZE, 0}, {}}, IsTransparencySet(TO_BRIDGES)); } else { - AddSortableSpriteToDraw(axis == AXIS_X ? rti->base_sprites.single_x : rti->base_sprites.single_y, PALETTE_CRASH, ti->x, ti->y, bridge_z, {{}, {TILE_SIZE, TILE_SIZE, 0}, {}}, IsTransparencySet(TO_BRIDGES)); + AddSortableSpriteToDraw(axis == Axis::X ? rti->base_sprites.single_x : rti->base_sprites.single_y, PALETTE_CRASH, ti->x, ti->y, bridge_z, {{}, {TILE_SIZE, TILE_SIZE, 0}, {}}, IsTransparencySet(TO_BRIDGES)); } } @@ -1695,7 +1695,7 @@ void DrawBridgeMiddle(const TileInfo *ti, BridgePillarFlags blocked_pillars) /* draw roof, the component of the bridge which is logically between the vehicle and the camera */ if (!IsInvisibilitySet(TO_BRIDGES)) { - if (axis == AXIS_X) { + if (axis == Axis::X) { y += 12; if (psid[1].sprite & SPRITE_MASK) AddSortableSpriteToDraw(psid[1].sprite, psid[1].pal, x, y, z, {{0, 3, BRIDGE_Z_START}, {TILE_SIZE, 1, 40}, {0, -3, -BRIDGE_Z_START}}, IsTransparencySet(TO_BRIDGES)); } else { @@ -1966,7 +1966,7 @@ static VehicleEnterTileStates VehicleEnterTile_TunnelBridge(Vehicle *v, TileInde /* Direction of the vehicle */ const DiagDirection vdir = DirToDiagDir(v->GetMovingDirection()); /* New position of the vehicle on the tile */ - uint8_t pos = (DiagDirToAxis(vdir) == AXIS_X ? x : y) & TILE_UNIT_MASK; + uint8_t pos = (DiagDirToAxis(vdir) == Axis::X ? x : y) & TILE_UNIT_MASK; /* Number of units moved by the vehicle since entering the tile */ uint8_t frame = (vdir == DIAGDIR_NE || vdir == DIAGDIR_NW) ? TILE_SIZE - 1 - pos : pos; diff --git a/src/water_cmd.cpp b/src/water_cmd.cpp index cebe49d5b3..cd463b2c8a 100644 --- a/src/water_cmd.cpp +++ b/src/water_cmd.cpp @@ -993,7 +993,7 @@ static void DrawTile_Water(TileInfo *ti) case WaterTileType::Lock: DrawWaterLock(ti); - DrawBridgeMiddle(ti, DiagDirToAxis(GetLockDirection(ti->tile)) == AXIS_X + DrawBridgeMiddle(ti, DiagDirToAxis(GetLockDirection(ti->tile)) == Axis::X ? BridgePillarFlags{BridgePillarFlag::EdgeNE, BridgePillarFlag::EdgeSW} : BridgePillarFlags{BridgePillarFlag::EdgeNW, BridgePillarFlag::EdgeSE}); break; diff --git a/src/waypoint.cpp b/src/waypoint.cpp index 54d22ec757..a1e7b62dbd 100644 --- a/src/waypoint.cpp +++ b/src/waypoint.cpp @@ -27,8 +27,8 @@ */ void DrawWaypointSprite(int x, int y, StationClassID station_class, uint16_t station_type, RailType railtype) { - if (!DrawStationTile(x, y, railtype, AXIS_X, station_class, station_type)) { - StationPickerDrawSprite(x, y, StationType::RailWaypoint, railtype, INVALID_ROADTYPE, to_underlying(AXIS_X)); + if (!DrawStationTile(x, y, railtype, Axis::X, station_class, station_type)) { + StationPickerDrawSprite(x, y, StationType::RailWaypoint, railtype, INVALID_ROADTYPE, to_underlying(Axis::X)); } } diff --git a/src/waypoint_cmd.cpp b/src/waypoint_cmd.cpp index e44d89f0c7..bd4d984c59 100644 --- a/src/waypoint_cmd.cpp +++ b/src/waypoint_cmd.cpp @@ -109,12 +109,12 @@ Axis GetAxisForNewRailWaypoint(TileIndex tile) if (IsRailWaypointTile(tile)) return GetRailStationAxis(tile); /* Non-plain rail type, no valid axis for waypoints. */ - if (!IsTileType(tile, TileType::Railway) || GetRailTileType(tile) != RailTileType::Normal) return INVALID_AXIS; + if (!IsTileType(tile, TileType::Railway) || GetRailTileType(tile) != RailTileType::Normal) return Axis::Invalid; switch (GetTrackBits(tile)) { - case TRACK_BIT_X: return AXIS_X; - case TRACK_BIT_Y: return AXIS_Y; - default: return INVALID_AXIS; + case TRACK_BIT_X: return Axis::X; + case TRACK_BIT_Y: return Axis::Y; + default: return Axis::Invalid; } } @@ -131,14 +131,14 @@ Axis GetAxisForNewRoadWaypoint(TileIndex tile) if (IsRoadWaypointTile(tile)) return GetDriveThroughStopAxis(tile); /* Non-plain road type, no valid axis for waypoints. */ - if (!IsNormalRoadTile(tile)) return INVALID_AXIS; + if (!IsNormalRoadTile(tile)) return Axis::Invalid; RoadBits bits = GetAllRoadBits(tile); - if (!bits.Any(ROAD_Y)) return AXIS_X; - if (!bits.Any(ROAD_X)) return AXIS_Y; + if (!bits.Any(ROAD_Y)) return Axis::X; + if (!bits.Any(ROAD_X)) return Axis::Y; - return INVALID_AXIS; + return Axis::Invalid; } extern CommandCost ClearTile_Station(TileIndex tile, DoCommandFlags flags); @@ -226,9 +226,9 @@ CommandCost CmdBuildRailWaypoint(DoCommandFlags flags, TileIndex start_tile, Axi if (spec_index >= cls->GetSpecCount()) return CMD_ERROR; /* The number of parts to build */ - uint8_t count = axis == AXIS_X ? height : width; + uint8_t count = axis == Axis::X ? height : width; - if ((axis == AXIS_X ? width : height) != 1) return CMD_ERROR; + if ((axis == Axis::X ? width : height) != 1) return CMD_ERROR; if (count == 0 || count > _settings_game.station.station_spread) return CMD_ERROR; bool reuse = (station_to_join != NEW_STATION); @@ -362,9 +362,9 @@ CommandCost CmdBuildRoadWaypoint(DoCommandFlags flags, TileIndex start_tile, Axi const RoadStopSpec *roadstopspec = RoadStopClass::Get(spec_class)->GetSpec(spec_index); /* The number of parts to build */ - uint8_t count = axis == AXIS_X ? height : width; + uint8_t count = axis == Axis::X ? height : width; - if ((axis == AXIS_X ? width : height) != 1) return CMD_ERROR; + if ((axis == Axis::X ? width : height) != 1) return CMD_ERROR; if (count == 0 || count > _settings_game.station.station_spread) return CMD_ERROR; bool reuse = (station_to_join != NEW_STATION);