OpenTTD Source 20241224-master-gf74b0cf984
|
Command definitions for rail. More...
Go to the source code of this file.
Functions | |
CommandCost | CmdBuildRailroadTrack (DoCommandFlag flags, TileIndex end_tile, TileIndex start_tile, RailType railtype, Track track, bool auto_remove_signals, bool fail_on_obstacle) |
Build rail on a stretch of track. | |
CommandCost | CmdRemoveRailroadTrack (DoCommandFlag flags, TileIndex end_tile, TileIndex start_tile, Track track) |
Build rail on a stretch of track. | |
CommandCost | CmdBuildSingleRail (DoCommandFlag flags, TileIndex tile, RailType railtype, Track track, bool auto_remove_signals) |
Build a single piece of rail. | |
CommandCost | CmdRemoveSingleRail (DoCommandFlag flags, TileIndex tile, Track track) |
Remove a single piece of track. | |
CommandCost | CmdBuildTrainDepot (DoCommandFlag flags, TileIndex tile, RailType railtype, DiagDirection dir) |
Build a train depot. | |
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, uint8_t signals_copy) |
Build signals, alternate between double/single, signal/semaphore, pre/exit/combo-signals, and what-else not. | |
CommandCost | CmdRemoveSingleSignal (DoCommandFlag flags, TileIndex tile, Track track) |
Remove signals. | |
CommandCost | CmdConvertRail (DoCommandFlag flags, TileIndex tile, TileIndex area_start, RailType totype, bool diagonal) |
Convert one rail type to the other. | |
CommandCost | CmdBuildSignalTrack (DoCommandFlag flags, TileIndex tile, TileIndex end_tile, Track track, SignalType sigtype, SignalVariant sigvar, bool mode, bool autofill, bool minimise_gaps, uint8_t signal_density) |
Build signals on a stretch of track. | |
CommandCost | CmdRemoveSignalTrack (DoCommandFlag flags, TileIndex tile, TileIndex end_tile, Track track, bool autofill) |
Remove signals on a stretch of track. | |
void | CcRailDepot (Commands cmd, const CommandCost &result, TileIndex tile, RailType rt, DiagDirection dir) |
Variables | |
CommandCallback | CcPlaySound_CONSTRUCTION_RAIL |
CommandCallback | CcStation |
CommandCallback | CcBuildRailTunnel |
Command definitions for rail.
Definition in file rail_cmd.h.
void CcRailDepot | ( | Commands | cmd, |
const CommandCost & | result, | ||
TileIndex | tile, | ||
RailType | rt, | ||
DiagDirection | dir | ||
) |
Definition at line 140 of file rail_gui.cpp.
CommandCost CmdBuildRailroadTrack | ( | DoCommandFlag | flags, |
TileIndex | end_tile, | ||
TileIndex | start_tile, | ||
RailType | railtype, | ||
Track | track, | ||
bool | auto_remove_signals, | ||
bool | fail_on_obstacle | ||
) |
Build rail on a stretch of track.
Stub for the unified rail builder/remover
flags | operation to perform |
end_tile | end tile of drag |
start_tile | start tile of drag |
railtype | railroad type normal/maglev (0 = normal, 1 = mono, 2 = maglev), only used for building |
track | track-orientation |
auto_remove_signals | false = build up to an obstacle, true = fail if an obstacle is found (used for AIs). |
fail_on_obstacle | false = error on signal in the way, true = auto remove signals when in the way |
Definition at line 932 of file rail_cmd.cpp.
References CmdRailTrackHelper().
CommandCost CmdBuildSignalTrack | ( | DoCommandFlag | flags, |
TileIndex | tile, | ||
TileIndex | end_tile, | ||
Track | track, | ||
SignalType | sigtype, | ||
SignalVariant | sigvar, | ||
bool | mode, | ||
bool | autofill, | ||
bool | minimise_gaps, | ||
uint8_t | signal_density | ||
) |
Build signals on a stretch of track.
Stub for the unified signal builder/remover
flags | operation to perform |
tile | start tile of drag |
end_tile | end tile of drag |
track | track-orientation |
sigtype | default signal type |
sigvar | signal variant to build |
mode | true = override signal/semaphore, or pre/exit/combo signal (CTRL-toggle) |
autofill | fill beyond selected stretch? |
minimise_gaps | false = keep fixed distance, true = minimise gaps between signals |
signal_density | user defined signals_density |
Definition at line 1449 of file rail_cmd.cpp.
References CmdSignalTrackHelper().
CommandCost CmdBuildSingleRail | ( | DoCommandFlag | flags, |
TileIndex | tile, | ||
RailType | railtype, | ||
Track | track, | ||
bool | auto_remove_signals | ||
) |
Build a single piece of rail.
flags | operation to perform |
tile | tile to build on |
railtype | railtype of being built piece (normal, mono, maglev) |
track | track-orientation |
auto_remove_signals | false = error on signal in the way, true = auto remove signals when in the way |
Definition at line 426 of file rail_cmd.cpp.
References _current_company, _settings_game, CommandCost::AddCost(), AddTrackToSignalBuffer(), AXIS_X, AXIS_Y, CheckForDockingTile(), CheckOwnership(), CheckRailSlope(), CheckTileOwnership(), CheckTrackCombination(), CMD_ERROR, GameSettings::construction, CountBits(), ConstructionSettings::crossing_with_competitor, DC_EXEC, DirtyCompanyInfrastructureWindows(), DRD_NONE, EnsureNoTrainOnTrack(), EnsureNoVehicleOnGround(), EXPENSES_CONSTRUCTION, CommandCost::Failed(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_company_pool >::Get(), GetCrossingRailBits(), GetCrossingRoadAxis(), GetDisallowedRoadDirections(), GetRailType(), GetRoadBits(), GetRoadOwner(), GetTileOwner(), GetTileSlope(), GetTileType(), GetTownIndex(), GetTrackBits(), HasBit(), HasExactlyOneBit(), HasPowerOnRail(), HasRoadWorks(), HasSignalOnTrack(), HasSignals(), HasTrack(), INVALID_ROADTYPE, IsCompatibleRail(), IsLevelCrossing(), IsNormalRoad(), IsPlainRail(), IsSlopeWithOneCornerRaised(), IsTileType(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_company_pool >::IsValidID(), LEVELCROSSING_TRACKBIT_FACTOR, MakeRoadCrossing(), MarkDirtyAdjacentLevelCrossingTiles(), MarkTileDirtyByTile(), MP_RAILWAY, MP_ROAD, MP_WATER, OWNER_DEITY, RAIL_GROUND_BARREN, RAIL_GROUND_WATER, RailBuildCost(), RailNoLevelCrossings(), ROAD_NONE, ROAD_X, ROAD_Y, RoadBuildCost(), RoadNoLevelCrossing(), SetTrackBits(), CommandCost::Succeeded(), TRACK_BEGIN, TRACK_BIT_NONE, TRACK_END, TRACK_X, TRACK_Y, TracksOverlap(), TrackToTrackBits(), UpdateLevelCrossing(), VALID_LEVEL_CROSSING_SLOPES, ValParamRailType(), and YapfNotifyTrackLayoutChange().
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, | ||
uint8_t | signals_copy | ||
) |
Build signals, alternate between double/single, signal/semaphore, pre/exit/combo-signals, and what-else not.
If the rail piece does not have any signals, signal cycling is ignored
flags | operation to perform |
tile | tile where to build the signals |
track | track-orientation |
sigtype | type of the signal |
sigvar | variant of signal type (normal/semaphore) |
ctrl_pressed | true = override signal/semaphore, or pre/exit/combo signal or toggle variant (CTRL-toggle) |
convert_signal | convert the present signal type and variant |
cycle_start | start cycle from this signal type |
cycle_stop | wrap around after this signal type |
num_dir_cycle | cycle the signal direction this many times |
skip_existing_signals | true = don't modify an existing signal but don't fail either, false = always set new signal type |
signals_copy | used for CmdBuildManySignals() to copy direction of first signal |
Definition at line 1052 of file rail_cmd.cpp.
References _current_company, _settings_game, AddTrackToSignalBuffer(), CheckTileOwnership(), CMD_ERROR, CountBits(), Vehicle::cur_speed, Vehicle::current_order, DC_EXEC, DirtyCompanyInfrastructureWindows(), EnsureNoVehicleOnGround(), EXPENSES_CONSTRUCTION, CommandCost::Failed(), PathfinderSettings::forbid_90_deg, FreeTrainTrackReservation(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_company_pool >::Get(), GetPresentSignals(), GetRailReservationTrackBits(), GetSignalStates(), GetTileOwner(), GetTrackBits(), GetTrainForReservation(), Train::GetVehicleTrackdir(), HasBit(), HasReservedTracks(), HasSignalOnTrack(), HasSignals(), HasTrack(), IsPlainRailTile(), IsSafeWaitingPosition(), Order::IsType(), KillFirstBit(), MarkTileDirtyByTile(), GameSettings::pf, SetHasSignals(), SetPresentSignals(), SetSignalStates(), SIG_ELECTRIC, SIG_SEMAPHORE, SignalOnTrack(), Vehicle::tile, TRACK_BIT_DEPOT, TracksOverlap(), TrackToTrackBits(), TryPathReserve(), Vehicle::vehstatus, VS_STOPPED, and YapfNotifyTrackLayoutChange().
CommandCost CmdBuildTrainDepot | ( | DoCommandFlag | flags, |
TileIndex | tile, | ||
RailType | railtype, | ||
DiagDirection | dir | ||
) |
Build a train depot.
flags | operation to perform |
tile | position of the train depot |
railtype | rail type |
dir | entrance direction |
Definition at line 963 of file rail_cmd.cpp.
References _current_company, _settings_game, CommandCost::AddCost(), AddSideToSignalBuffer(), Depot::build_date, ConstructionSettings::build_on_slopes, Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_depot_pool >::CanAllocateItem(), CanBuildDepotByTileh(), CheckTileOwnership(), CMD_ERROR, GameSettings::construction, TimerGameCalendar::date, DC_EXEC, DiagDirToDiagTrack(), DirtyCompanyInfrastructureWindows(), EnsureNoVehicleOnGround(), EXPENSES_CONSTRUCTION, CommandCost::Failed(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_company_pool >::Get(), GetRailDepotDirection(), GetRailType(), GetTileSlope(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem< Tpool >::index, INVALID_DIAGDIR, IsBridgeAbove(), IsRailDepotTile(), IsValidDiagDirection(), MakeDefaultName(), MakeRailDepot(), MarkTileDirtyByTile(), RailBuildCost(), SetRailDepotExitDirection(), SLOPE_FLAT, ValParamRailType(), and YapfNotifyTrackLayoutChange().
CommandCost CmdConvertRail | ( | DoCommandFlag | flags, |
TileIndex | tile, | ||
TileIndex | area_start, | ||
RailType | totype, | ||
bool | diagonal | ||
) |
Convert one rail type to the other.
You can convert normal rail to monorail/maglev easily or vice-versa.
flags | operation to perform |
tile | end tile of rail conversion drag |
area_start | start tile of drag |
totype | new railtype to convert to. |
diagonal | build diagonally or not. |
Definition at line 1553 of file rail_cmd.cpp.
References _settings_game, CommandCost::AddCost(), CCF_TRACK, CheckTileOwnership(), CMD_ERROR, CountBits(), TileIterator::Create(), DC_EXEC, DiagDirToDiagTrack(), DirtyCompanyInfrastructureWindows(), VehicleSettings::disable_elrails, EnsureNoTrainOnTrackBits(), EnsureNoVehicleOnGround(), EXPENSES_CONSTRUCTION, CommandCost::Failed(), FindVehicleOnPos(), FreeTrainTrackReservation(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_company_pool >::Get(), GetCrossingRailTrack(), GetOtherTunnelBridgeEnd(), GetRailDepotTrack(), GetRailStationTrack(), GetRailTileType(), GetRailType(), GetReservedTrackbits(), GetTileOwner(), GetTileType(), GetTrackBits(), GetTrainForReservation(), GetTunnelBridgeDirection(), GetTunnelBridgeLength(), GetTunnelBridgeTransportType(), HasPowerOnRail(), HasStationRail(), HasTunnelBridgeReservation(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem< Tpool >::index, Company::infrastructure, INVALID_TILE, INVALID_TRACK, InvalidateWindowData(), IsBridge(), IsCompatibleRail(), IsLevelCrossing(), IsLevelCrossingTile(), IsPlainRailTile(), IsRailStationTile(), IsStationTileBlocked(), LEVELCROSSING_TRACKBIT_FACTOR, CommandCost::MakeError(), MarkBridgeDirty(), MarkTileDirtyByTile(), MP_RAILWAY, MP_ROAD, MP_STATION, MP_TUNNELBRIDGE, CompanyInfrastructure::rail, RAIL_TILE_DEPOT, RailConvertCost(), RailNoLevelCrossings(), RAILTYPE_ELECTRIC, RAILTYPE_RAIL, RemoveFirstTrack(), SetRailType(), Map::Size(), TRACK_BIT_NONE, TracksOverlap(), TRANSPORT_RAIL, TryPathReserve(), TUNNELBRIDGE_TRACKBIT_FACTOR, TunnelBridgeIsFree(), UpdateTrainPowerProc(), ValParamRailType(), GameSettings::vehicle, WC_BUILD_VEHICLE, WC_VEHICLE_DEPOT, and YapfNotifyTrackLayoutChange().
CommandCost CmdRemoveRailroadTrack | ( | DoCommandFlag | flags, |
TileIndex | end_tile, | ||
TileIndex | start_tile, | ||
Track | track | ||
) |
Build rail on a stretch of track.
Stub for the unified rail builder/remover
flags | operation to perform |
end_tile | end tile of drag |
start_tile | start tile of drag |
track | track-orientation |
Definition at line 947 of file rail_cmd.cpp.
References CmdRailTrackHelper(), and INVALID_RAILTYPE.
CommandCost CmdRemoveSignalTrack | ( | DoCommandFlag | flags, |
TileIndex | tile, | ||
TileIndex | end_tile, | ||
Track | track, | ||
bool | autofill | ||
) |
Remove signals on a stretch of track.
Stub for the unified signal builder/remover
flags | operation to perform |
tile | start tile of drag |
end_tile | end tile of drag |
track | track-orientation |
autofill | fill beyond selected stretch? |
Definition at line 1527 of file rail_cmd.cpp.
References CmdSignalTrackHelper(), SIG_ELECTRIC, and SIGTYPE_BLOCK.
CommandCost CmdRemoveSingleRail | ( | DoCommandFlag | flags, |
TileIndex | tile, | ||
Track | track | ||
) |
Remove a single piece of track.
flags | operation to perform |
tile | tile to remove track from |
track | rail orientation |
Definition at line 615 of file rail_cmd.cpp.
References _current_company, CommandCost::AddCost(), AddTrackToSignalBuffer(), CheckTileOwnership(), CMD_ERROR, CountBits(), DC_BANKRUPT, DC_EXEC, DeleteNewGRFInspectWindow(), DirtyCompanyInfrastructureWindows(), EnsureNoTrainOnTrack(), EnsureNoVehicleOnGround(), EXPENSES_CONSTRUCTION, CommandCost::Failed(), FreeTrainTrackReservation(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_company_pool >::Get(), GetCrossingRailBits(), GetCrossingRoadAxis(), GetCrossingRoadBits(), GetRailReservationTrackBits(), GetRailType(), GetRoadOwner(), GetTileOwner(), GetTileSlope(), GetTileType(), GetTownIndex(), GetTrackBits(), GetTrainForReservation(), HasReservedTracks(), HasSignalOnTrack(), INVALID_OWNER, IsDockingTile(), IsLevelCrossing(), IsPlainRail(), IsSlopeWithOneCornerRaised(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_company_pool >::IsValidID(), LEVELCROSSING_TRACKBIT_FACTOR, MakeRoadNormal(), MakeShore(), MarkTileDirtyByTile(), MP_RAILWAY, MP_ROAD, OWNER_WATER, RAIL_GROUND_WATER, RailClearCost(), SetDockingTile(), SetTrackBits(), SetTrackReservation(), TRACK_BIT_X, TRACK_BIT_Y, TRACK_X, TRACK_Y, TracksOverlap(), TrackToTrackBits(), TryPathReserve(), UpdateAdjacentLevelCrossingTilesOnLevelCrossingRemoval(), and YapfNotifyTrackLayoutChange().
CommandCost CmdRemoveSingleSignal | ( | DoCommandFlag | flags, |
TileIndex | tile, | ||
Track | track | ||
) |
Remove signals.
flags | operation to perform |
tile | coordinates where signal is being deleted from |
track | track-orientation |
Definition at line 1461 of file rail_cmd.cpp.
References _current_company, AddTrackToSignalBuffer(), CheckTileOwnership(), CountBits(), DC_EXEC, DirtyCompanyInfrastructureWindows(), EXPENSES_CONSTRUCTION, CommandCost::Failed(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_company_pool >::Get(), GetPresentSignals(), GetReservedTrackbits(), GetTileOwner(), GetTrainForReservation(), HasReservedTracks(), HasSignalOnTrack(), HasSignalOnTrackdir(), HasTrack(), INVALID_TRACK, IsPlainRailTile(), MarkTileDirtyByTile(), OWNER_WATER, ReverseTrackdir(), SetHasSignals(), SetPresentSignals(), SetSignalStates(), SIG_ELECTRIC, SignalOnTrack(), TileAddByDiagDir(), TrackBitsToTrack(), TrackdirBitsToTrackBits(), TrackdirReachesTrackdirs(), TrackdirToExitdir(), TrackToTrackBits(), TrackToTrackdir(), TryPathReserve(), and YapfNotifyTrackLayoutChange().
CommandCallback CcBuildRailTunnel |
Definition at line 42 of file rail_cmd.h.
CommandCallback CcPlaySound_CONSTRUCTION_RAIL |
Definition at line 40 of file rail_cmd.h.
CommandCallback CcStation |
Definition at line 41 of file rail_cmd.h.