|
OpenTTD Source
14.0-beta3
|
#include "stdafx.h"#include "viewport_func.h"#include "command_func.h"#include "depot_base.h"#include "pathfinder/yapf/yapf_cache.h"#include "newgrf_debug.h"#include "newgrf_railtype.h"#include "train.h"#include "autoslope.h"#include "water.h"#include "tunnelbridge_map.h"#include "vehicle_func.h"#include "sound_func.h"#include "tunnelbridge.h"#include "elrail_func.h"#include "town.h"#include "pbs.h"#include "company_base.h"#include "core/backup_type.hpp"#include "core/container_func.hpp"#include "timer/timer_game_calendar.h"#include "strings_func.h"#include "company_gui.h"#include "object_map.h"#include "rail_cmd.h"#include "landscape_cmd.h"#include "table/strings.h"#include "table/railtypes.h"#include "table/track_land.h"#include "safeguards.h"Go to the source code of this file.
Data Structures | |
| struct | FenceOffset |
| Offsets for drawing fences. More... | |
Typedefs | |
| typedef std::vector< Train * > | TrainList |
| Helper type for lists/vectors of trains. | |
Enumerations | |
| enum | SignalOffsets { SIGNAL_TO_SOUTHWEST, SIGNAL_TO_NORTHEAST, SIGNAL_TO_SOUTHEAST, SIGNAL_TO_NORTHWEST, SIGNAL_TO_EAST, SIGNAL_TO_WEST, SIGNAL_TO_SOUTH, SIGNAL_TO_NORTH } |
| Enum holding the signal offset in the sprite sheet according to the side it is representing. | |
Functions | |
| void | ResetRailTypes () |
| Reset all rail type information to its default values. | |
| void | ResolveRailTypeGUISprites (RailTypeInfo *rti) |
| static bool | CompareRailTypes (const RailType &first, const RailType &second) |
| Compare railtypes based on their sorting order. More... | |
| void | InitRailTypes () |
| Resolve sprites of custom rail types. | |
| RailType | AllocateRailType (RailTypeLabel label) |
| Allocate a new rail type label. | |
| static CommandCost | EnsureNoTrainOnTrack (TileIndex tile, Track track) |
| Tests if a vehicle interacts with the specified track. More... | |
| static CommandCost | CheckTrackCombination (TileIndex tile, TrackBits to_build) |
| Check that the new track bits may be built. More... | |
| Foundation | GetRailFoundation (Slope tileh, TrackBits bits) |
| Checks if a track combination is valid on a specific slope and returns the needed foundation. More... | |
| static CommandCost | CheckRailSlope (Slope tileh, TrackBits rail_bits, TrackBits existing, TileIndex tile) |
| Tests if a track can be build on a tile. More... | |
| static bool | ValParamTrackOrientation (Track track) |
| CommandCost | CmdBuildSingleRail (DoCommandFlag flags, TileIndex tile, RailType railtype, Track track, bool auto_remove_signals) |
| Build a single piece of rail. More... | |
| CommandCost | CmdRemoveSingleRail (DoCommandFlag flags, TileIndex tile, Track track) |
| Remove a single piece of track. More... | |
| bool | FloodHalftile (TileIndex t) |
| Called from water_cmd if a non-flat rail-tile gets flooded and should be converted to shore. More... | |
| static CommandCost | ValidateAutoDrag (Trackdir *trackdir, TileIndex start, TileIndex end) |
| static CommandCost | CmdRailTrackHelper (DoCommandFlag flags, TileIndex tile, TileIndex end_tile, RailType railtype, Track track, bool remove, bool auto_remove_signals, bool fail_on_obstacle) |
| Build or remove a stretch of railroad tracks. More... | |
| 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. More... | |
| CommandCost | CmdRemoveRailroadTrack (DoCommandFlag flags, TileIndex end_tile, TileIndex start_tile, Track track) |
| Build rail on a stretch of track. More... | |
| CommandCost | CmdBuildTrainDepot (DoCommandFlag flags, TileIndex tile, RailType railtype, DiagDirection dir) |
| Build a train depot. More... | |
| 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) |
| Build signals, alternate between double/single, signal/semaphore, pre/exit/combo-signals, and what-else not. More... | |
| static bool | AdvanceSignalAutoFill (TileIndex &tile, Trackdir &trackdir, bool remove) |
| static CommandCost | CmdSignalTrackHelper (DoCommandFlag flags, TileIndex tile, TileIndex end_tile, Track track, SignalType sigtype, SignalVariant sigvar, bool mode, bool remove, bool autofill, bool minimise_gaps, int signal_density) |
| Build many signals by dragging; AutoSignals. More... | |
| 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) |
| Build signals on a stretch of track. More... | |
| CommandCost | CmdRemoveSingleSignal (DoCommandFlag flags, TileIndex tile, Track track) |
| Remove signals. More... | |
| CommandCost | CmdRemoveSignalTrack (DoCommandFlag flags, TileIndex tile, TileIndex end_tile, Track track, bool autofill) |
| Remove signals on a stretch of track. More... | |
| static Vehicle * | UpdateTrainPowerProc (Vehicle *v, void *data) |
| Update power of train under which is the railtype being converted. | |
| CommandCost | CmdConvertRail (DoCommandFlag flags, TileIndex tile, TileIndex area_start, RailType totype, bool diagonal) |
| Convert one rail type to the other. More... | |
| static CommandCost | RemoveTrainDepot (TileIndex tile, DoCommandFlag flags) |
| static CommandCost | ClearTile_Track (TileIndex tile, DoCommandFlag flags) |
| static uint | GetSaveSlopeZ (uint x, uint y, Track track) |
| Get surface height in point (x,y) On tiles with halftile foundations move (x,y) to a safe point wrt. More... | |
| static void | DrawSingleSignal (TileIndex tile, const RailTypeInfo *rti, Track track, SignalState condition, SignalOffsets image, uint pos) |
| static void | DrawTrackFence (const TileInfo *ti, SpriteID base_image, uint num_sprites, RailFenceOffset rfo) |
| Draw a track fence. More... | |
| static void | DrawTrackFence_NW (const TileInfo *ti, SpriteID base_image, uint num_sprites) |
| Draw fence at NW border matching the tile slope. | |
| static void | DrawTrackFence_SE (const TileInfo *ti, SpriteID base_image, uint num_sprites) |
| Draw fence at SE border matching the tile slope. | |
| static void | DrawTrackFence_NE (const TileInfo *ti, SpriteID base_image, uint num_sprites) |
| Draw fence at NE border matching the tile slope. | |
| static void | DrawTrackFence_SW (const TileInfo *ti, SpriteID base_image, uint num_sprites) |
| Draw fence at SW border matching the tile slope. | |
| static void | DrawTrackDetails (const TileInfo *ti, const RailTypeInfo *rti) |
| Draw track fences. More... | |
| static void | DrawTrackSprite (SpriteID sprite, PaletteID pal, const TileInfo *ti, Slope s) |
| static void | DrawTrackBitsOverlay (TileInfo *ti, TrackBits track, const RailTypeInfo *rti) |
| static void | DrawTrackBits (TileInfo *ti, TrackBits track) |
| Draw ground sprite and track bits. More... | |
| static void | DrawSignals (TileIndex tile, TrackBits rails, const RailTypeInfo *rti) |
| static void | DrawTile_Track (TileInfo *ti) |
| void | DrawTrainDepotSprite (int x, int y, int dir, RailType railtype) |
| static int | GetSlopePixelZ_Track (TileIndex tile, uint x, uint y, bool) |
| static Foundation | GetFoundation_Track (TileIndex tile, Slope tileh) |
| static void | TileLoop_Track (TileIndex tile) |
| static TrackStatus | GetTileTrackStatus_Track (TileIndex tile, TransportType mode, uint, DiagDirection side) |
| static bool | ClickTile_Track (TileIndex tile) |
| static void | GetTileDesc_Track (TileIndex tile, TileDesc *td) |
| static void | ChangeTileOwner_Track (TileIndex tile, Owner old_owner, Owner new_owner) |
| int | TicksToLeaveDepot (const Train *v) |
| Compute number of ticks when next wagon will leave a depot. More... | |
| static VehicleEnterTileStatus | VehicleEnter_Track (Vehicle *u, TileIndex tile, int x, int y) |
| Tile callback routine when vehicle enters tile. More... | |
| static CommandCost | TestAutoslopeOnRailTile (TileIndex tile, uint flags, int z_old, Slope tileh_old, int z_new, Slope tileh_new, TrackBits rail_bits) |
| Tests if autoslope is allowed. More... | |
| static Vehicle * | EnsureNoShipProc (Vehicle *v, void *) |
| Test-procedure for HasVehicleOnPos to check for a ship. | |
| static CommandCost | TerraformTile_Track (TileIndex tile, DoCommandFlag flags, int z_new, Slope tileh_new) |
Variables | |
| RailTypeInfo | _railtypes [RAILTYPE_END] |
| std::vector< RailType > | _sorted_railtypes |
| RailTypes | _railtypes_hidden_mask |
| static const byte | _track_sloped_sprites [14] |
| static const TrackBits | _valid_tracks_without_foundation [15] |
| Valid TrackBits on a specific (non-steep)-slope without foundation. More... | |
| static const TrackBits | _valid_tracks_on_leveled_foundation [15] |
| Valid TrackBits on a specific (non-steep)-slope with leveled foundation. More... | |
| static const TileIndexDiffC | _trackdelta [] |
| static uint32_t | _drawtile_track_palette |
| static FenceOffset | _fence_offsets [] |
| Offsets for drawing fences. More... | |
| static const int | INF = 1000 |
| static const SubSprite | _halftile_sub_sprite [4] |
| static const byte | _fractcoords_behind [4] = { 0x8F, 0x8, 0x80, 0xF8 } |
| static const byte | _fractcoords_enter [4] = { 0x8A, 0x48, 0x84, 0xA8 } |
| static const int8_t | _deltacoord_leaveoffset [8] |
| const TileTypeProcs | _tile_type_rail_procs |
Handling of rail tiles.
Definition in file rail_cmd.cpp.
|
static |
Tests if a track can be build on a tile.
| tileh | Tile slope. |
| rail_bits | Tracks to build. |
| existing | Tracks already built. |
| tile | Tile (used for water test) |
Definition at line 392 of file rail_cmd.cpp.
References _settings_game, _valid_tracks_on_leveled_foundation, ConstructionSettings::build_on_slopes, GameSettings::construction, EXPENSES_CONSTRUCTION, FLOOD_NONE, FOUNDATION_INVALID, FOUNDATION_NONE, GetFloodingBehaviour(), GetRailFoundation(), IsSteepSlope(), and return_cmd_error.
Referenced by TestAutoslopeOnRailTile().
|
static |
Check that the new track bits may be built.
| tile | Tile to build on. |
| to_build | New track bits. |
Definition at line 241 of file rail_cmd.cpp.
References GetTrackBits(), IsPlainRail(), and return_cmd_error.
| 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 942 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, | ||
| byte | 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? (currently always true but keep the command parameter so network-compatible patch packs can restore this functionality). |
| minimise_gaps | false = keep fixed distance, true = minimise gaps between signals |
| signal_density | user defined signals_density |
Definition at line 1459 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 EXPENSES_CONSTRUCTION, and ValParamRailType().
| 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 | ||
| ) |
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 1062 of file rail_cmd.cpp.
| 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 973 of file rail_cmd.cpp.
References _settings_game, CommandCost::AddCost(), ConstructionSettings::build_on_slopes, CanBuildDepotByTileh(), CMD_ERROR, GameSettings::construction, EXPENSES_CONSTRUCTION, GetTileSlope(), IsValidDiagDirection(), return_cmd_error, SLOPE_FLAT, and ValParamRailType().
| 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 1563 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().
|
static |
Build or remove a stretch of railroad tracks.
| flags | operation to perform |
| tile | start tile of drag |
| end_tile | end tile of drag |
| railtype | railroad type normal/maglev (0 = normal, 1 = mono, 2 = maglev), only used for building |
| track | track-orientation |
| remove | remove tracks? |
| auto_remove_signals | false = error on signal in the way, true = auto remove signals when in the way, only used for building |
| fail_on_obstacle | false = build starting from and up to an obstacle, true = fail if an obstacle is found (used for AIs) |
Definition at line 876 of file rail_cmd.cpp.
References EXPENSES_CONSTRUCTION, and ValParamRailType().
Referenced by CmdBuildRailroadTrack(), and CmdRemoveRailroadTrack().
| 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 957 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? (currently always true but keep the command parameter so network-compatible patch packs can restore this functionality). |
Definition at line 1537 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 EXPENSES_CONSTRUCTION.
| 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 1471 of file rail_cmd.cpp.
|
static |
Build many signals by dragging; AutoSignals.
| 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) |
| remove | remove signals? |
| 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 1268 of file rail_cmd.cpp.
References EXPENSES_CONSTRUCTION, and Map::Size().
Referenced by CmdBuildSignalTrack(), and CmdRemoveSignalTrack().
Compare railtypes based on their sorting order.
| first | The railtype to compare to. |
| second | The railtype to compare. |
Definition at line 122 of file rail_cmd.cpp.
References GetRailTypeInfo(), and RailTypeInfo::sorting_order.
Draw ground sprite and track bits.
| ti | TileInfo |
| track | TrackBits to draw |
Definition at line 2247 of file rail_cmd.cpp.
References GetRailType(), GetRailTypeInfo(), and TileInfo::tile.
|
static |
Draw track fences.
| ti | Tile drawing information. |
| rti | Rail type information. |
Definition at line 2020 of file rail_cmd.cpp.
References GetCustomRailSprite(), IsHalftileSlope(), RTSG_FENCES, TCX_NORMAL, TCX_UPPER_HALFTILE, TileInfo::tile, and TileInfo::tileh.
|
static |
Draw a track fence.
| ti | Tile drawing information. |
| base_image | First fence sprite. |
| num_sprites | Number of fence sprites. |
| rfo | Fence to draw. |
Definition at line 1961 of file rail_cmd.cpp.
References _fence_offsets, and TileInfo::z.
Referenced by DrawTrackFence_NE(), DrawTrackFence_NW(), DrawTrackFence_SE(), and DrawTrackFence_SW().
|
static |
Tests if a vehicle interacts with the specified track.
All track bits interact except parallel TRACK_BIT_HORZ or TRACK_BIT_VERT.
| tile | The tile. |
| track | The track. |
Definition at line 229 of file rail_cmd.cpp.
References EnsureNoTrainOnTrackBits(), and TrackToTrackBits().
| bool FloodHalftile | ( | TileIndex | t | ) |
Called from water_cmd if a non-flat rail-tile gets flooded and should be converted to shore.
The function floods the lower halftile, if the tile has a halftile foundation.
| t | The tile to flood. |
Definition at line 762 of file rail_cmd.cpp.
References IsPlainRailTile().
| Foundation GetRailFoundation | ( | Slope | tileh, |
| TrackBits | bits | ||
| ) |
Checks if a track combination is valid on a specific slope and returns the needed foundation.
| tileh | Tile slope. |
| bits | Trackbits. |
Definition at line 312 of file rail_cmd.cpp.
References _valid_tracks_on_leveled_foundation, _valid_tracks_without_foundation, CornerToTrackBits(), FOUNDATION_INCLINED_X, FOUNDATION_INCLINED_Y, FOUNDATION_INVALID, FOUNDATION_NONE, FOUNDATION_STEEP_BOTH, FOUNDATION_STEEP_LOWER, GetHighestSlopeCorner(), HalftileFoundation(), IsSteepSlope(), TRACK_BIT_LEFT, TRACK_BIT_NONE, TRACK_BIT_X, TRACK_BIT_Y, and TracksOverlap().
Referenced by CheckRailSlope(), and TestAutoslopeOnRailTile().
|
static |
Get surface height in point (x,y) On tiles with halftile foundations move (x,y) to a safe point wrt.
track
Definition at line 1869 of file rail_cmd.cpp.
|
static |
Tests if autoslope is allowed.
| tile | The tile. |
| flags | Terraform command flags. |
| z_old | Old TileZ. |
| tileh_old | Old TileSlope. |
| z_new | New TileZ. |
| tileh_new | New TileSlope. |
| rail_bits | Trackbits. |
Definition at line 3006 of file rail_cmd.cpp.
References _settings_game, ApplyFoundationToSlope(), AutoslopeEnabled(), ConstructionSettings::build_on_slopes, CheckRailSlope(), GameSettings::construction, GetRailFoundation(), return_cmd_error, TRACK_BIT_LEFT, and TRACK_BIT_NONE.
| int TicksToLeaveDepot | ( | const Train * | v | ) |
Compute number of ticks when next wagon will leave a depot.
Negative means next wagon should have left depot n ticks before.
| v | vehicle outside (leaving) the depot |
Definition at line 2928 of file rail_cmd.cpp.
References Train::CalcNextVehicleOffset(), DIAGDIR_NE, GetRailDepotDirection(), Vehicle::tile, and Vehicle::x_pos.
Referenced by AdvanceWagonsAfterSwap(), and CheckTrainsLengths().
|
static |
Tile callback routine when vehicle enters tile.
Definition at line 2946 of file rail_cmd.cpp.
|
static |
Definition at line 2916 of file rail_cmd.cpp.
|
static |
Offsets for drawing fences.
Definition at line 1935 of file rail_cmd.cpp.
Referenced by DrawTrackFence().
|
static |
Definition at line 2070 of file rail_cmd.cpp.
| const TileTypeProcs _tile_type_rail_procs |
Definition at line 48 of file landscape.cpp.
|
static |
Definition at line 182 of file rail_cmd.cpp.
|
static |
Definition at line 807 of file rail_cmd.cpp.
|
static |
Valid TrackBits on a specific (non-steep)-slope with leveled foundation.
Definition at line 284 of file rail_cmd.cpp.
Referenced by CheckRailSlope(), and GetRailFoundation().
|
static |
Valid TrackBits on a specific (non-steep)-slope without foundation.
Definition at line 262 of file rail_cmd.cpp.
Referenced by GetRailFoundation().