summaryrefslogtreecommitdiff
path: root/src/waypoint_cmd.cpp
diff options
context:
space:
mode:
authorMichael Lutz <michi@icosahedron.de>2021-11-14 16:39:17 +0100
committerMichael Lutz <michi@icosahedron.de>2021-12-16 22:28:32 +0100
commit6fe445e6c0fa3163aba48b1ec6d810b6594777bd (patch)
tree320cd8d2d76b38ee06f9fde07ea349adeb3f228a /src/waypoint_cmd.cpp
parent21675ec7e22bfe53f20300cc27b4d50c84aeb4dc (diff)
downloadopenttd-6fe445e6c0fa3163aba48b1ec6d810b6594777bd.tar.xz
Codechange: Un-bitstuff station/depot/waypoint commands.
Diffstat (limited to 'src/waypoint_cmd.cpp')
-rw-r--r--src/waypoint_cmd.cpp43
1 files changed, 13 insertions, 30 deletions
diff --git a/src/waypoint_cmd.cpp b/src/waypoint_cmd.cpp
index a3edf71e8..85c52c98f 100644
--- a/src/waypoint_cmd.cpp
+++ b/src/waypoint_cmd.cpp
@@ -164,30 +164,18 @@ extern CommandCost CanExpandRailStation(const BaseStation *st, TileArea &new_ta,
* piece of rail
* @param flags type of operation
* @param start_tile northern most tile where waypoint will be built
- * @param p1 various bitstuffed elements
- * - p1 = (bit 0- 5) - railtype (not used)
- * - p1 = (bit 6) - orientation (Axis)
- * - p1 = (bit 8-15) - width of waypoint
- * - p1 = (bit 16-23) - height of waypoint
- * - p1 = (bit 24) - allow waypoints directly adjacent to other waypoints.
- * @param p2 various bitstuffed elements
- * - p2 = (bit 0- 7) - custom station class
- * - p2 = (bit 8-15) - custom station id
- * @param text unused
+ * @param axis orientation (Axis)
+ * @param width width of waypoint
+ * @param height height of waypoint
+ * @param spec_class custom station class
+ * @param spec_index custom station id
+ * @param station_to_join station ID to join (NEW_STATION if build new one)
+ * @param adjacent allow waypoints directly adjacent to other waypoints.
* @return the cost of this operation or an error
*/
-CommandCost CmdBuildRailWaypoint(DoCommandFlag flags, TileIndex start_tile, uint32 p1, uint32 p2, const std::string &text)
+CommandCost CmdBuildRailWaypoint(DoCommandFlag flags, TileIndex start_tile, Axis axis, byte width, byte height, StationClassID spec_class, byte spec_index, StationID station_to_join, bool adjacent)
{
- /* Unpack parameters */
- Axis axis = Extract<Axis, 6, 1>(p1);
- byte width = GB(p1, 8, 8);
- byte height = GB(p1, 16, 8);
- bool adjacent = HasBit(p1, 24);
-
- StationClassID spec_class = Extract<StationClassID, 0, 8>(p2);
- byte spec_index = GB(p2, 8, 8);
- StationID station_to_join = GB(p2, 16, 16);
-
+ if (!IsEnumValid(axis)) return CMD_ERROR;
/* Check if the given station class is valid */
if (spec_class != STAT_CLASS_WAYP) return CMD_ERROR;
if (spec_index >= StationClass::Get(spec_class)->GetSpecCount()) return CMD_ERROR;
@@ -299,12 +287,9 @@ CommandCost CmdBuildRailWaypoint(DoCommandFlag flags, TileIndex start_tile, uint
* Build a buoy.
* @param flags operation to perform
* @param tile tile where to place the buoy
- * @param p1 unused
- * @param p2 unused
- * @param text unused
* @return the cost of this operation or an error
*/
-CommandCost CmdBuildBuoy(DoCommandFlag flags, TileIndex tile, uint32 p1, uint32 p2, const std::string &text)
+CommandCost CmdBuildBuoy(DoCommandFlag flags, TileIndex tile)
{
if (tile == 0 || !HasTileWaterGround(tile)) return_cmd_error(STR_ERROR_SITE_UNSUITABLE);
if (IsBridgeAbove(tile)) return_cmd_error(STR_ERROR_MUST_DEMOLISH_BRIDGE_FIRST);
@@ -409,15 +394,13 @@ static bool IsUniqueWaypointName(const std::string &name)
/**
* Rename a waypoint.
* @param flags type of operation
- * @param tile unused
- * @param p1 id of waypoint
- * @param p2 unused
+ * @param waypoint_id id of waypoint
* @param text the new name or an empty string when resetting to the default
* @return the cost of this operation or an error
*/
-CommandCost CmdRenameWaypoint(DoCommandFlag flags, TileIndex tile, uint32 p1, uint32 p2, const std::string &text)
+CommandCost CmdRenameWaypoint(DoCommandFlag flags, StationID waypoint_id, const std::string &text)
{
- Waypoint *wp = Waypoint::GetIfValid(p1);
+ Waypoint *wp = Waypoint::GetIfValid(waypoint_id);
if (wp == nullptr) return CMD_ERROR;
if (wp->owner != OWNER_NONE) {