2 * This file is part of OpenTTD.
3 * OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
4 * OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
5 * See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
8 /** @file station_cmd.h Command definitions related to stations. */
13 #include "command_type.h"
14 #include "station_type.h"
16 enum StationClassID
: uint16_t;
17 enum RoadStopClassID
: uint16_t;
19 extern Town
*AirportGetNearestTown(const struct AirportSpec
*as
, Direction rotation
, TileIndex tile
, TileIterator
&&it
, uint
&mindist
);
20 extern uint8_t GetAirportNoiseLevelForDistance(const struct AirportSpec
*as
, uint distance
);
22 CommandCost
CmdBuildAirport(DoCommandFlag flags
, TileIndex tile
, uint8_t airport_type
, uint8_t layout
, StationID station_to_join
, bool allow_adjacent
);
23 CommandCost
CmdBuildDock(DoCommandFlag flags
, TileIndex tile
, StationID station_to_join
, bool adjacent
);
24 CommandCost
CmdBuildRailStation(DoCommandFlag flags
, TileIndex tile_org
, RailType rt
, Axis axis
, uint8_t numtracks
, uint8_t plat_len
, StationClassID spec_class
, uint16_t spec_index
, StationID station_to_join
, bool adjacent
);
25 CommandCost
CmdRemoveFromRailStation(DoCommandFlag flags
, TileIndex start
, TileIndex end
, bool keep_rail
);
26 CommandCost
CmdBuildRoadStop(DoCommandFlag flags
, TileIndex tile
, uint8_t width
, uint8_t length
, RoadStopType stop_type
, bool is_drive_through
, DiagDirection ddir
, RoadType rt
, RoadStopClassID spec_class
, uint16_t spec_index
, StationID station_to_join
, bool adjacent
);
27 CommandCost
CmdRemoveRoadStop(DoCommandFlag flags
, TileIndex tile
, uint8_t width
, uint8_t height
, RoadStopType stop_type
, bool remove_road
);
28 CommandCost
CmdRenameStation(DoCommandFlag flags
, StationID station_id
, const std::string
&text
);
29 CommandCost
CmdOpenCloseAirport(DoCommandFlag flags
, StationID station_id
);
31 DEF_CMD_TRAIT(CMD_BUILD_AIRPORT
, CmdBuildAirport
, CMD_AUTO
| CMD_NO_WATER
, CMDT_LANDSCAPE_CONSTRUCTION
)
32 DEF_CMD_TRAIT(CMD_BUILD_DOCK
, CmdBuildDock
, CMD_AUTO
, CMDT_LANDSCAPE_CONSTRUCTION
)
33 DEF_CMD_TRAIT(CMD_BUILD_RAIL_STATION
, CmdBuildRailStation
, CMD_AUTO
| CMD_NO_WATER
, CMDT_LANDSCAPE_CONSTRUCTION
)
34 DEF_CMD_TRAIT(CMD_REMOVE_FROM_RAIL_STATION
, CmdRemoveFromRailStation
, 0, CMDT_LANDSCAPE_CONSTRUCTION
)
35 DEF_CMD_TRAIT(CMD_BUILD_ROAD_STOP
, CmdBuildRoadStop
, CMD_AUTO
| CMD_NO_WATER
, CMDT_LANDSCAPE_CONSTRUCTION
)
36 DEF_CMD_TRAIT(CMD_REMOVE_ROAD_STOP
, CmdRemoveRoadStop
, 0, CMDT_LANDSCAPE_CONSTRUCTION
)
37 DEF_CMD_TRAIT(CMD_RENAME_STATION
, CmdRenameStation
, 0, CMDT_OTHER_MANAGEMENT
)
38 DEF_CMD_TRAIT(CMD_OPEN_CLOSE_AIRPORT
, CmdOpenCloseAirport
, 0, CMDT_ROUTE_MANAGEMENT
)
40 #endif /* STATION_CMD_H */