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 rail_cmd.h Command definitions for rail. */
13 #include "command_type.h"
14 #include "track_type.h"
15 #include "rail_type.h"
16 #include "signal_type.h"
18 CommandCost
CmdBuildRailroadTrack(DoCommandFlag flags
, TileIndex end_tile
, TileIndex start_tile
, RailType railtype
, Track track
, bool auto_remove_signals
, bool fail_on_obstacle
);
19 CommandCost
CmdRemoveRailroadTrack(DoCommandFlag flags
, TileIndex end_tile
, TileIndex start_tile
, Track track
);
20 CommandCost
CmdBuildSingleRail(DoCommandFlag flags
, TileIndex tile
, RailType railtype
, Track track
, bool auto_remove_signals
);
21 CommandCost
CmdRemoveSingleRail(DoCommandFlag flags
, TileIndex tile
, Track track
);
22 CommandCost
CmdBuildTrainDepot(DoCommandFlag flags
, TileIndex tile
, RailType railtype
, DiagDirection dir
);
23 CommandCost
CmdBuildSingleSignal(DoCommandFlag flags
, TileIndex tile
, Track track
, SignalType sigtype
, SignalVariant sigvar
, bool convert_signal
, bool skip_existing_signals
, bool ctrl_pressed
, SignalType cycle_start
, SignalType cycle_stop
, uint8_t num_dir_cycle
, byte signals_copy
);
24 CommandCost
CmdRemoveSingleSignal(DoCommandFlag flags
, TileIndex tile
, Track track
);
25 CommandCost
CmdConvertRail(DoCommandFlag flags
, TileIndex tile
, TileIndex area_start
, RailType totype
, bool diagonal
);
26 CommandCost
CmdBuildSignalTrack(DoCommandFlag flags
, TileIndex tile
, TileIndex end_tile
, Track track
, SignalType sigtype
, SignalVariant sigvar
, bool mode
, bool autofill
, bool minimise_gaps
, byte signal_density
);
27 CommandCost
CmdRemoveSignalTrack(DoCommandFlag flags
, TileIndex tile
, TileIndex end_tile
, Track track
, bool autofill
);
29 DEF_CMD_TRAIT(CMD_BUILD_RAILROAD_TRACK
, CmdBuildRailroadTrack
, CMD_AUTO
| CMD_NO_WATER
, CMDT_LANDSCAPE_CONSTRUCTION
)
30 DEF_CMD_TRAIT(CMD_REMOVE_RAILROAD_TRACK
, CmdRemoveRailroadTrack
, CMD_AUTO
, CMDT_LANDSCAPE_CONSTRUCTION
)
31 DEF_CMD_TRAIT(CMD_BUILD_SINGLE_RAIL
, CmdBuildSingleRail
, CMD_AUTO
| CMD_NO_WATER
, CMDT_LANDSCAPE_CONSTRUCTION
)
32 DEF_CMD_TRAIT(CMD_REMOVE_SINGLE_RAIL
, CmdRemoveSingleRail
, CMD_AUTO
, CMDT_LANDSCAPE_CONSTRUCTION
)
33 DEF_CMD_TRAIT(CMD_BUILD_TRAIN_DEPOT
, CmdBuildTrainDepot
, CMD_AUTO
| CMD_NO_WATER
, CMDT_LANDSCAPE_CONSTRUCTION
)
34 DEF_CMD_TRAIT(CMD_BUILD_SINGLE_SIGNAL
, CmdBuildSingleSignal
, CMD_AUTO
, CMDT_LANDSCAPE_CONSTRUCTION
)
35 DEF_CMD_TRAIT(CMD_REMOVE_SINGLE_SIGNAL
, CmdRemoveSingleSignal
, CMD_AUTO
, CMDT_LANDSCAPE_CONSTRUCTION
)
36 DEF_CMD_TRAIT(CMD_CONVERT_RAIL
, CmdConvertRail
, 0, CMDT_LANDSCAPE_CONSTRUCTION
)
37 DEF_CMD_TRAIT(CMD_BUILD_SIGNAL_TRACK
, CmdBuildSignalTrack
, CMD_AUTO
, CMDT_LANDSCAPE_CONSTRUCTION
)
38 DEF_CMD_TRAIT(CMD_REMOVE_SIGNAL_TRACK
, CmdRemoveSignalTrack
, CMD_AUTO
, CMDT_LANDSCAPE_CONSTRUCTION
)
40 CommandCallback CcPlaySound_CONSTRUCTION_RAIL
;
41 CommandCallback CcStation
;
42 CommandCallback CcBuildRailTunnel
;
43 void CcRailDepot(Commands cmd
, const CommandCost
&result
, TileIndex tile
, RailType rt
, DiagDirection dir
);
45 #endif /* RAIL_CMD_H */