OpenTTD Source 20250503-master-gf4f05dea33
|
NewGRF definitions and structures for road stops. More...
#include "newgrf_animation_type.h"
#include "newgrf_spritegroup.h"
#include "newgrf_badge_type.h"
#include "newgrf_callbacks.h"
#include "newgrf_class.h"
#include "newgrf_commons.h"
#include "newgrf_town.h"
#include "road.h"
Go to the source code of this file.
Data Structures | |
struct | RoadStopScopeResolver |
Scope resolver for road stops. More... | |
struct | RoadStopResolverObject |
Road stop resolver. More... | |
struct | RoadStopSpec |
Road stop specification. More... | |
Typedefs | |
using | RoadStopDrawModes = EnumBitSet< RoadStopDrawMode, uint8_t > |
using | RoadStopSpecFlags = EnumBitSet< RoadStopSpecFlag, uint8_t > |
using | RoadStopClass = NewGRFClass< RoadStopSpec, RoadStopClassID, ROADSTOP_CLASS_MAX > |
Enumerations | |
enum | RoadStopClassID : uint16_t { ROADSTOP_CLASS_BEGIN = 0 , ROADSTOP_CLASS_DFLT = 0 , ROADSTOP_CLASS_WAYP , ROADSTOP_CLASS_MAX = UINT16_MAX } |
enum | RoadStopAvailabilityType : uint8_t { ROADSTOPTYPE_PASSENGER , ROADSTOPTYPE_FREIGHT , ROADSTOPTYPE_ALL , ROADSTOPTYPE_END } |
Various different options for availability, restricting the roadstop to be only for busses or for trucks. More... | |
enum class | RoadStopDrawMode : uint8_t { Road = 0 , Overlay = 1 , WaypGround = 2 } |
Different draw modes to disallow rendering of some parts of the stop or road. More... | |
enum class | RoadStopSpecFlag : uint8_t { Cb141RandomBits = 0 , NoCatenary = 2 , DriveThroughOnly = 3 , NoAutoRoadConnection = 4 , RoadOnly = 5 , TramOnly = 6 , DrawModeRegister = 8 } |
enum | RoadStopView : uint8_t { RSV_BAY_NE = 0 , RSV_BAY_SE = 1 , RSV_BAY_SW = 2 , RSV_BAY_NW = 3 , RSV_DRIVE_THROUGH_X = 4 , RSV_DRIVE_THROUGH_Y = 5 } |
Functions | |
const TileLayoutSpriteGroup * | GetRoadStopLayout (TileInfo *ti, const RoadStopSpec *spec, BaseStation *st, StationType type, int view) |
void | DrawRoadStopTile (int x, int y, RoadType roadtype, const RoadStopSpec *spec, StationType type, int view) |
Draw representation of a road stop tile for GUI purposes. | |
uint16_t | GetRoadStopCallback (CallbackID callback, uint32_t param1, uint32_t param2, const RoadStopSpec *roadstopspec, BaseStation *st, TileIndex tile, RoadType roadtype, StationType type, uint8_t view) |
void | AnimateRoadStopTile (TileIndex tile) |
uint8_t | GetRoadStopTileAnimationSpeed (TileIndex tile) |
void | TriggerRoadStopAnimation (BaseStation *st, TileIndex tile, StationAnimationTrigger trigger, CargoType cargo_type=INVALID_CARGO) |
void | TriggerRoadStopRandomisation (BaseStation *st, TileIndex tile, StationRandomTrigger trigger, CargoType cargo_type=INVALID_CARGO) |
Trigger road stop randomisation. | |
bool | GetIfNewStopsByType (RoadStopType rs, RoadType roadtype) |
Checks if there's any new stations by a specific RoadStopType. | |
bool | GetIfClassHasNewStopsByType (const RoadStopClass *roadstopclass, RoadStopType rs, RoadType roadtype) |
Checks if the given RoadStopClass has any specs assigned to it, compatible with the given RoadStopType. | |
bool | GetIfStopIsForType (const RoadStopSpec *roadstopspec, RoadStopType rs, RoadType roadtype) |
Checks if the given RoadStopSpec is compatible with the given RoadStopType. | |
const RoadStopSpec * | GetRoadStopSpec (TileIndex t) |
int | AllocateSpecToRoadStop (const RoadStopSpec *statspec, BaseStation *st, bool exec) |
void | DeallocateSpecFromRoadStop (BaseStation *st, uint8_t specindex) |
void | RoadStopUpdateCachedTriggers (BaseStation *st) |
Update the cached animation trigger bitmask for a station. | |
bool | IsWaypointClass (const RoadStopClass &cls) |
Test if a RoadStopClass is the waypoint class. | |
Variables | |
static const int | NUM_ROADSTOPS_PER_GRF = UINT16_MAX - 1 |
The maximum amount of roadstops a single GRF is allowed to add. | |
static const uint32_t | ROADSTOP_CLASS_LABEL_DEFAULT = 'DFLT' |
static const uint32_t | ROADSTOP_CLASS_LABEL_WAYPOINT = 'WAYP' |
NewGRF definitions and structures for road stops.
Definition in file newgrf_roadstop.h.
Definition at line 164 of file newgrf_roadstop.h.
using RoadStopDrawModes = EnumBitSet<RoadStopDrawMode, uint8_t> |
Definition at line 61 of file newgrf_roadstop.h.
using RoadStopSpecFlags = EnumBitSet<RoadStopSpecFlag, uint8_t> |
Definition at line 72 of file newgrf_roadstop.h.
enum RoadStopAvailabilityType : uint8_t |
Various different options for availability, restricting the roadstop to be only for busses or for trucks.
Enumerator | |
---|---|
ROADSTOPTYPE_PASSENGER | This RoadStop is for passenger (bus) stops. |
ROADSTOPTYPE_FREIGHT | This RoadStop is for freight (truck) stops. |
ROADSTOPTYPE_ALL | This RoadStop is for both types of station road stops. |
Definition at line 44 of file newgrf_roadstop.h.
enum RoadStopClassID : uint16_t |
Enumerator | |
---|---|
ROADSTOP_CLASS_BEGIN | The lowest valid value. |
ROADSTOP_CLASS_DFLT | Default road stop class. |
ROADSTOP_CLASS_WAYP | Waypoint class. |
ROADSTOP_CLASS_MAX | Maximum number of classes. |
Definition at line 32 of file newgrf_roadstop.h.
|
strong |
Different draw modes to disallow rendering of some parts of the stop or road.
Enumerator | |
---|---|
Road | Bay stops: Draw the road itself. |
Overlay | Drive-through stops: Draw the road overlay, e.g. pavement. |
WaypGround | Waypoints: Draw the sprite layout ground tile (on top of the road) |
Definition at line 56 of file newgrf_roadstop.h.
|
strong |
Definition at line 63 of file newgrf_roadstop.h.
enum RoadStopView : uint8_t |
Definition at line 74 of file newgrf_roadstop.h.
int AllocateSpecToRoadStop | ( | const RoadStopSpec * | statspec, |
BaseStation * | st, | ||
bool | exec | ||
) |
Definition at line 561 of file newgrf_roadstop.cpp.
void AnimateRoadStopTile | ( | TileIndex | tile | ) |
Definition at line 372 of file newgrf_roadstop.cpp.
void DeallocateSpecFromRoadStop | ( | BaseStation * | st, |
uint8_t | specindex | ||
) |
Definition at line 594 of file newgrf_roadstop.cpp.
void DrawRoadStopTile | ( | int | x, |
int | y, | ||
RoadType | roadtype, | ||
const RoadStopSpec * | spec, | ||
StationType | type, | ||
int | view | ||
) |
Draw representation of a road stop tile for GUI purposes.
x | position x of image. |
y | position y of image. |
image | an int offset for the sprite. |
roadtype | the RoadType of the underlying road. |
spec | the RoadStop's spec. |
Definition at line 287 of file newgrf_roadstop.cpp.
References _local_company, DrawCommonTileSeqInGUI(), DrawModeRegister, DrawSprite(), GB(), GetCompanyPalette(), GetCustomRoadSprite(), GetRegister(), GetRoadTypeInfo(), DrawTileSprites::ground, GroundSpritePaletteTransform(), INVALID_ROADTYPE, INVALID_TILE, Overlay, PalSpriteID::pal, Road, ROTSG_GROUND, ROTSG_OVERLAY, ROTSG_ROADSTOP, PalSpriteID::sprite, SPRITE_WIDTH, BaseBitSet< Timpl, Tvalue_type, Tstorage, Tmask >::Test(), and WaypGround.
bool GetIfClassHasNewStopsByType | ( | const RoadStopClass * | roadstopclass, |
RoadStopType | rs, | ||
RoadType | roadtype | ||
) |
Checks if the given RoadStopClass has any specs assigned to it, compatible with the given RoadStopType.
roadstopclass | the RoadStopClass to check. |
rs | the RoadStopType to check. |
roadtype | the RoadType to check. |
Definition at line 512 of file newgrf_roadstop.cpp.
References NewGRFClass< Tspec, Tindex, Tmax >::Specs().
bool GetIfNewStopsByType | ( | RoadStopType | rs, |
RoadType | roadtype | ||
) |
Checks if there's any new stations by a specific RoadStopType.
rs | the RoadStopType to check. |
roadtype | the RoadType to check. |
Definition at line 493 of file newgrf_roadstop.cpp.
References NewGRFClass< Tspec, Tindex, Tmax >::Classes(), IsWaypointClass(), and ROADSTOP_CLASS_DFLT.
bool GetIfStopIsForType | ( | const RoadStopSpec * | roadstopspec, |
RoadStopType | rs, | ||
RoadType | roadtype | ||
) |
Checks if the given RoadStopSpec is compatible with the given RoadStopType.
roadstopspec | the RoadStopSpec to check. |
rs | the RoadStopType to check. |
roadtype | the RoadType to check. |
Definition at line 527 of file newgrf_roadstop.cpp.
References Bus, RoadOnly, ROADSTOPTYPE_ALL, ROADSTOPTYPE_FREIGHT, ROADSTOPTYPE_PASSENGER, BaseBitSet< Timpl, Tvalue_type, Tstorage, Tmask >::Test(), TramOnly, and Truck.
uint16_t GetRoadStopCallback | ( | CallbackID | callback, |
uint32_t | param1, | ||
uint32_t | param2, | ||
const RoadStopSpec * | roadstopspec, | ||
BaseStation * | st, | ||
TileIndex | tile, | ||
RoadType | roadtype, | ||
StationType | type, | ||
uint8_t | view | ||
) |
Definition at line 272 of file newgrf_roadstop.cpp.
const TileLayoutSpriteGroup * GetRoadStopLayout | ( | TileInfo * | ti, |
const RoadStopSpec * | spec, | ||
BaseStation * | st, | ||
StationType | type, | ||
int | view | ||
) |
Definition at line 346 of file newgrf_roadstop.cpp.
const RoadStopSpec * GetRoadStopSpec | ( | TileIndex | t | ) |
Definition at line 552 of file newgrf_roadstop.cpp.
|
inline |
Test if a RoadStopClass is the waypoint class.
cls | RoadStopClass to test. |
Definition at line 190 of file newgrf_roadstop.h.
References GB(), and NewGRFClass< Tspec, Tindex, Tmax >::global_id.
Referenced by CmdBuildRailStation(), CmdBuildRailWaypoint(), CmdBuildRoadStop(), CmdBuildRoadWaypoint(), StationPickerCallbacks::GetClassName(), WaypointPickerCallbacks::GetClassName(), RoadWaypointPickerCallbacks::GetClassName(), GetIfNewStopsByType(), StationPickerCallbacks::HasClassChoice(), WaypointPickerCallbacks::HasClassChoice(), RoadWaypointPickerCallbacks::HasClassChoice(), StationPickerCallbacks::IsActive(), WaypointPickerCallbacks::IsActive(), RoadStopPickerCallbacks< roadstoptype >::IsActive(), and RoadWaypointPickerCallbacks::IsActive().
void RoadStopUpdateCachedTriggers | ( | BaseStation * | st | ) |
Update the cached animation trigger bitmask for a station.
st | Station to update. |
Definition at line 635 of file newgrf_roadstop.cpp.
References BaseStation::cached_roadstop_anim_triggers, BaseStation::cached_roadstop_cargo_triggers, and BaseBitSet< Timpl, Tvalue_type, Tstorage, Tmask >::Set().
void TriggerRoadStopAnimation | ( | BaseStation * | st, |
TileIndex | tile, | ||
StationAnimationTrigger | trigger, | ||
CargoType | cargo_type = INVALID_CARGO |
||
) |
Definition at line 380 of file newgrf_roadstop.cpp.
void TriggerRoadStopRandomisation | ( | BaseStation * | st, |
TileIndex | tile, | ||
StationRandomTrigger | trigger, | ||
CargoType | cargo_type | ||
) |
Trigger road stop randomisation.
st | the station being triggered |
tile | the exact tile of the station that should be triggered |
trigger | trigger type |
cargo_type | cargo type causing the trigger |
Definition at line 417 of file newgrf_roadstop.cpp.
References BaseStation::cached_roadstop_cargo_triggers, RoadStopSpec::cargo_triggers, CargoTaken, BaseStation::custom_roadstop_tile_data, SpecializedStation< Station, false >::From(), GetEmptyMask(), GetStationGfx(), GetStationType(), HasBit(), INVALID_ROADTYPE, IsValidCargoType(), MarkTileDirtyByTile(), NewCargo, Random, BaseStation::random_bits, BaseBitSet< Timpl, Tvalue_type, Tstorage, Tmask >::Reset(), BaseBitSet< Timpl, Tvalue_type, Tstorage, Tmask >::Set(), and BaseStation::waiting_random_triggers.
|
static |
The maximum amount of roadstops a single GRF is allowed to add.
Definition at line 27 of file newgrf_roadstop.h.
|
static |
Definition at line 29 of file newgrf_roadstop.h.
|
static |
Definition at line 30 of file newgrf_roadstop.h.