OpenTTD Source
20241121-master-g67a0fccfad
|
Road specific functions. More...
#include "road_type.h"
#include "gfx_type.h"
#include "core/bitmath_func.hpp"
#include "strings_type.h"
#include "timer/timer_game_calendar.h"
#include "core/enum_type.hpp"
#include "newgrf.h"
#include "economy_func.h"
Go to the source code of this file.
Data Structures | |
class | RoadTypeInfo |
Typedefs | |
typedef std::vector< RoadTypeLabel > | RoadTypeLabelList |
List of road type labels. | |
Enumerations | |
enum | RoadTramType : bool { RTT_ROAD , RTT_TRAM } |
enum | RoadTramTypes : uint8_t { RTTB_ROAD = 1 << RTT_ROAD , RTTB_TRAM = 1 << RTT_TRAM } |
enum | RoadTypeFlag { ROTF_CATENARY = 0 , ROTF_NO_LEVEL_CROSSING , ROTF_NO_HOUSES , ROTF_HIDDEN , ROTF_TOWN_BUILD } |
Roadtype flag bit numbers. More... | |
enum | RoadTypeFlags : uint8_t { ROTFB_NONE = 0 , ROTFB_CATENARY = 1 << ROTF_CATENARY , ROTFB_NO_LEVEL_CROSSING = 1 << ROTF_NO_LEVEL_CROSSING , ROTFB_NO_HOUSES = 1 << ROTF_NO_HOUSES , ROTFB_HIDDEN = 1 << ROTF_HIDDEN , ROTFB_TOWN_BUILD = 1 << ROTF_TOWN_BUILD } |
Roadtype flags. More... | |
enum | RoadTypeSpriteGroup { ROTSG_CURSORS , ROTSG_OVERLAY , ROTSG_GROUND , ROTSG_TUNNEL , ROTSG_CATENARY_FRONT , ROTSG_CATENARY_BACK , ROTSG_BRIDGE , ROTSG_reserved2 , ROTSG_DEPOT , ROTSG_reserved3 , ROTSG_ROADSTOP , ROTSG_ONEWAY , ROTSG_END } |
Sprite groups for a roadtype. More... | |
Functions | |
bool | RoadTypeIsRoad (RoadType roadtype) |
bool | RoadTypeIsTram (RoadType roadtype) |
RoadTramType | GetRoadTramType (RoadType roadtype) |
RoadTramType | OtherRoadTramType (RoadTramType rtt) |
const RoadTypeInfo * | GetRoadTypeInfo (RoadType roadtype) |
Returns a pointer to the Roadtype information for a given roadtype. More... | |
bool | HasPowerOnRoad (RoadType enginetype, RoadType tiletype) |
Checks if an engine of the given RoadType got power on a tile with a given RoadType. More... | |
Money | RoadBuildCost (RoadType roadtype) |
Returns the cost of building the specified roadtype. More... | |
Money | RoadClearCost (RoadType roadtype) |
Returns the cost of clearing the specified roadtype. More... | |
Money | RoadConvertCost (RoadType from, RoadType to) |
Calculates the cost of road conversion. More... | |
bool | RoadNoLevelCrossing (RoadType roadtype) |
Test if road disallows level crossings. More... | |
RoadType | GetRoadTypeByLabel (RoadTypeLabel label, bool allow_alternate_labels=true) |
Get the road type for a given label. More... | |
void | ResetRoadTypes () |
Reset all road type information to its default values. | |
void | InitRoadTypes () |
Resolve sprites of custom road types. | |
RoadType | AllocateRoadType (RoadTypeLabel label, RoadTramType rtt) |
Allocate a new road type label. | |
bool | HasAnyRoadTypesAvail (CompanyID company, RoadTramType rtt) |
Test if any buildable RoadType is available for a company. More... | |
Variables | |
static const RoadTramType | _roadtramtypes [] = { RTT_ROAD, RTT_TRAM } |
RoadTypes | _roadtypes_type |
Bitmap of road/tram types. More... | |
std::vector< RoadType > | _sorted_roadtypes |
RoadTypes | _roadtypes_hidden_mask |
Road specific functions.
Definition in file road.h.
enum RoadTypeFlag |
Roadtype flag bit numbers.
Starts with RO instead of R because R is used for rails
enum RoadTypeFlags : uint8_t |
Roadtype flags.
Starts with RO instead of R because R is used for rails
enum RoadTypeSpriteGroup |
Sprite groups for a roadtype.
Enumerator | |
---|---|
ROTSG_CURSORS | Optional: Cursor and toolbar icon images. |
ROTSG_OVERLAY | Optional: Images for overlaying track. |
ROTSG_GROUND | Required: Main group of ground images. |
ROTSG_TUNNEL | Optional: Ground images for tunnels. |
ROTSG_CATENARY_FRONT | Optional: Catenary front. |
ROTSG_CATENARY_BACK | Optional: Catenary back. |
ROTSG_BRIDGE | Required: Bridge surface images. |
ROTSG_reserved2 | Placeholder, if we need specific level crossing sprites. |
ROTSG_DEPOT | Optional: Depot images. |
ROTSG_reserved3 | Placeholder, if we add road fences (for highways). |
ROTSG_ROADSTOP | Required: Bay stop surface. |
ROTSG_ONEWAY | Optional: One-way indicator images. |
RoadType GetRoadTypeByLabel | ( | RoadTypeLabel | label, |
bool | allow_alternate_labels | ||
) |
Get the road type for a given label.
label | the roadtype label. |
allow_alternate_labels | Search in the alternate label lists as well. |
Definition at line 254 of file road.cpp.
References RoadTypeInfo::alternate_labels, GetRoadTypeInfo(), INVALID_ROADTYPE, RoadTypeInfo::label, ROADTYPE_BEGIN, and ROADTYPE_END.
Referenced by RoadTypeResolverObject::GetFeature().
|
inline |
Returns a pointer to the Roadtype information for a given roadtype.
roadtype | the road type which the information is requested for |
Definition at line 227 of file road.h.
Referenced by AddDateIntroducedRoadTypes(), AfterLoadVehiclesPhase2(), CheckAutoreplaceValidity(), CmdBuildRoadVehicle(), GetCompanyRoadTypes(), GetRoadTypeByLabel(), GetRoadTypes(), HasPowerOnRoad(), HasRoadCatenary(), IsEngineBuildable(), NewVehicleAvailable(), BuildRoadToolbarWindow::OnInit(), RoadNoLevelCrossing(), and ROTTChunkHandler::Save().
bool HasAnyRoadTypesAvail | ( | CompanyID | company, |
RoadTramType | rtt | ||
) |
Test if any buildable RoadType is available for a company.
company | the company in question |
Definition at line 143 of file road.cpp.
References Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_company_pool >::Get().
Referenced by CanBuildVehicleInfrastructure().
Checks if an engine of the given RoadType got power on a tile with a given RoadType.
This would normally just be an equality check, but for electrified roads (which also support non-electric vehicles).
enginetype | The RoadType of the engine we are considering. |
tiletype | The RoadType of the tile we are considering. |
Definition at line 242 of file road.h.
References GetRoadTypeInfo(), and HasBit().
Returns the cost of building the specified roadtype.
roadtype | The roadtype being built. |
Definition at line 252 of file road.h.
References ROADTYPE_END.
Referenced by RoadConvertCost().
Returns the cost of clearing the specified roadtype.
roadtype | The roadtype being removed. |
Definition at line 263 of file road.h.
References ROADTYPE_END.
Referenced by RoadConvertCost().
Calculates the cost of road conversion.
from | The roadtype we are converting from |
to | The roadtype we are converting to |
Definition at line 281 of file road.h.
References RoadBuildCost(), and RoadClearCost().
|
inline |
Test if road disallows level crossings.
roadtype | The roadtype we are testing |
Definition at line 295 of file road.h.
References GetRoadTypeInfo(), HasBit(), ROADTYPE_END, and ROTF_NO_LEVEL_CROSSING.
|
extern |
Bitmap of road/tram types.
Bit if set if a roadtype is tram.
Definition at line 62 of file road_cmd.cpp.
Referenced by ScenarioEditorToolbarWindow::OnPaint().