|
OpenTTD Source 20260206-master-g4d4e37dbf1
|
Implementation of rail specific functions. More...
#include "stdafx.h"#include "station_map.h"#include "tunnelbridge_map.h"#include "timer/timer_game_calendar.h"#include "company_func.h"#include "company_base.h"#include "engine_base.h"#include "table/track_data.h"#include "safeguards.h"Go to the source code of this file.
Functions | |
| RailType | GetTileRailType (Tile tile) |
| Return the rail type of tile, or INVALID_RAILTYPE if this is no rail tile. | |
| bool | HasRailTypeAvail (const CompanyID company, const RailType railtype) |
| Finds out if a company has a certain buildable railtype available. | |
| bool | HasAnyRailTypesAvail (const CompanyID company) |
| Test if any buildable railtype is available for a company. | |
| bool | ValParamRailType (const RailType rail) |
| Validate functions for rail building. | |
| RailTypes | AddDateIntroducedRailTypes (RailTypes current, TimerGameCalendar::Date date) |
| Add the rail types that are to be introduced at the given date. | |
| RailTypes | GetCompanyRailTypes (CompanyID company, bool introduces) |
| Get the rail types the given company can build. | |
| RailTypes | GetRailTypes (bool introduces) |
| Get list of rail types, regardless of company availability. | |
| RailType | GetRailTypeByLabel (RailTypeLabel label, bool allow_alternate_labels) |
| Get the rail type for a given label. | |
Implementation of rail specific functions.
Definition in file rail.cpp.
Add the rail types that are to be introduced at the given date.
| current | The currently available railtypes. |
| date | The date for the introduction comparisons. |
Definition at line 102 of file rail.cpp.
References AddDateIntroducedRailTypes(), BaseBitSet< Timpl, Tvalue_type, Tstorage, Tmask >::All(), GetRailTypeInfo(), RailTypeInfo::introduces_railtypes, RailTypeInfo::introduction_date, RailTypeInfo::introduction_required_railtypes, IsInsideMM(), RailTypeInfo::label, TimerGameConst< struct Calendar >::MAX_DATE, RAILTYPE_BEGIN, RAILTYPE_END, and BaseBitSet< Timpl, Tvalue_type, Tstorage, Tmask >::Set().
Referenced by AddDateIntroducedRailTypes(), GetCompanyRailTypes(), GetRailTypes(), and NewVehicleAvailable().
| RailTypes GetCompanyRailTypes | ( | CompanyID | company, |
| bool | introduces ) |
Get the rail types the given company can build.
| company | the company to get the rail types for. |
| introduces | If true, include rail types introduced by other rail types |
Definition at line 135 of file rail.cpp.
References _settings_game, AddDateIntroducedRailTypes(), BaseBitSet< Timpl, Tvalue_type, Tstorage, Tmask >::Any(), EngineInfo::climates, TimerGameCalendar::date, TimerGameConst< struct Calendar >::DAYS_IN_YEAR, GetAllIntroducesRailTypes(), Engine::IterateType(), RailVehicleInfo::railtypes, RAILVEH_WAGON, BaseBitSet< Timpl, Tvalue_type, Tstorage, Tmask >::Set(), BaseBitSet< Timpl, Tvalue_type, Tstorage, Tmask >::Test(), and VEH_TRAIN.
Referenced by AfterLoadGame(), DisableEngineForCompany(), DoStartupNewCompany(), EnableEngineForCompany(), GetRailTypeDropDownList(), and StartupEngines().
| RailType GetRailTypeByLabel | ( | RailTypeLabel | label, |
| bool | allow_alternate_labels ) |
Get the rail type for a given label.
| label | the railtype label. |
| allow_alternate_labels | Search in the alternate label lists as well. |
Definition at line 195 of file rail.cpp.
References RailTypeInfo::alternate_labels, FlatSet< Tkey, Tcompare >::contains(), INVALID_RAILTYPE, RailTypeInfo::label, and RAILTYPE_END.
Referenced by AfterLoadGRFs(), ConvertRailTypes(), GetRailTypeTranslation(), and RailTypeChangeInfo().
| RailTypes GetRailTypes | ( | bool | introduces | ) |
Get list of rail types, regardless of company availability.
| introduces | If true, include rail types introduced by other rail types |
Definition at line 166 of file rail.cpp.
References _settings_game, AddDateIntroducedRailTypes(), BaseBitSet< Timpl, Tvalue_type, Tstorage, Tmask >::Any(), EngineInfo::climates, GetAllIntroducesRailTypes(), Engine::IterateType(), TimerGameConst< struct Calendar >::MAX_DATE, RailVehicleInfo::railtypes, RAILVEH_WAGON, BaseBitSet< Timpl, Tvalue_type, Tstorage, Tmask >::Set(), BaseBitSet< Timpl, Tvalue_type, Tstorage, Tmask >::Test(), and VEH_TRAIN.
Referenced by GetRailTypeDropDownList().
Return the rail type of tile, or INVALID_RAILTYPE if this is no rail tile.
Definition at line 37 of file rail.cpp.
References GetRailType(), GetTileType(), GetTunnelBridgeTransportType(), HasStationRail(), INVALID_RAILTYPE, IsLevelCrossing(), Railway, Road, Station, TRANSPORT_RAIL, and TunnelBridge.
Referenced by CFollowTrackT< TRANSPORT_WATER, Ship, true >::CanEnterNewTile(), CheckNextTrainTile(), ExtendTrainReservation(), CFollowTrackT< TRANSPORT_WATER, Ship, true >::Follow(), GetTrackTypes(), GetTrainForReservation(), IsSafeWaitingPosition(), IsWaitingPositionFree(), MaskWireBits(), Vehicle::ShowVisualEffect(), TrainCheckIfLineEnds(), TrainController(), and TryPathReserve().
| bool HasAnyRailTypesAvail | ( | const CompanyID | company | ) |
Test if any buildable railtype is available for a company.
| company | the company in question |
Definition at line 78 of file rail.cpp.
References BaseBitSet< Timpl, Tvalue_type, Tstorage, Tmask >::Any(), and BaseBitSet< Timpl, Tvalue_type, Tstorage, Tmask >::Reset().
Referenced by CanBuildVehicleInfrastructure().
| bool HasRailTypeAvail | ( | const CompanyID | company, |
| const RailType | railtype ) |
Finds out if a company has a certain buildable railtype available.
| company | the company in question |
| railtype | requested RailType |
Definition at line 68 of file rail.cpp.
Referenced by BuildRailToolbarWindow::ChangeRailTypeOnHotkey(), and ValParamRailType().
| bool ValParamRailType | ( | const RailType | rail | ) |
Validate functions for rail building.
| rail | the railtype to check. |
Definition at line 90 of file rail.cpp.
References _current_company, HasRailTypeAvail(), and RAILTYPE_END.
Referenced by CmdBuildBridge(), CmdBuildRailStation(), CmdBuildSingleRail(), CmdBuildTrainDepot(), CmdBuildTunnel(), CmdConvertRail(), CmdRailTrackHelper(), BuildRailToolbarWindow::OnInvalidateData(), and ShowBuildRailToolbar().