RoadVehicle Struct Reference

Buses, trucks and trams belong to this class. More...

#include <roadveh.h>

Inheritance diagram for RoadVehicle:
GroundVehicle< RoadVehicle, VEH_ROAD > SpecializedVehicle< RoadVehicle, Type > Vehicle Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tcache, Tzero >::PoolItem<&_vehicle_pool > BaseVehicle

Public Member Functions

 RoadVehicle ()
 We don't want GCC to zero our struct! It already is zeroed and has an index!
virtual ~RoadVehicle ()
 We want to 'destruct' the right class.
const char * GetTypeString () const
 Get a string 'representation' of the vehicle type.
void MarkDirty ()
 Marks the vehicles to be redrawn and updates cached variables.
void UpdateDeltaXY (Direction direction)
 Updates the x and y offsets and the size of the sprite used for this vehicle.
ExpensesType GetExpenseType (bool income) const
 Sets the expense type associated to this vehicle type.
bool IsPrimaryVehicle () const
 Whether this is the primary vehicle in the chain.
SpriteID GetImage (Direction direction) const
 Gets the sprite to show for the given direction.
int GetDisplaySpeed () const
 Gets the speed in km-ish/h that can be sent into SetDParam for string processing.
int GetDisplayMaxSpeed () const
 Gets the maximum speed in km-ish/h that can be sent into SetDParam for string processing.
Money GetRunningCost () const
 Gets the running cost of a vehicle.
int GetDisplayImageWidth (Point *offset=NULL) const
 Get the width of a road vehicle image in the GUI.
bool IsInDepot () const
 Check whether the vehicle is in the depot.
bool IsStoppedInDepot () const
 Check whether the vehicle is in the depot *and* stopped.
bool Tick ()
 Calls the tick handler of the vehicle.
void OnNewDay ()
 Calls the new day handler of the vehicle.
uint Crash (bool flooded=false)
 Common code executed for crashed ground vehicles.
Trackdir GetVehicleTrackdir () const
 Returns the Trackdir on which the vehicle is currently located.
TileIndex GetOrderStationLocation (StationID station)
 Determine the location for the station where the vehicle goes to next.
bool FindClosestDepot (TileIndex *location, DestinationID *destination, bool *reverse)
 Find the closest depot for this vehicle and tell us the location, DestinationID and whether we should reverse.
bool IsBus () const
 Check whether a roadvehicle is a bus.
int GetCurrentMaxSpeed () const
 Calculates the maximum speed of the vehicle under its current conditions.

Data Fields

byte state
byte frame
uint16 blocked_ctr
byte overtaking
byte overtaking_ctr
uint16 crashed_ctr
byte reverse_ctr
RoadType roadtype
RoadTypes compatible_roadtypes

Protected Member Functions

FORCEINLINE uint16 GetPower () const
 Allows to know the power value that this vehicle will use.
FORCEINLINE uint16 GetPoweredPartPower (const RoadVehicle *head) const
 Returns a value if this articulated part is powered.
FORCEINLINE uint16 GetWeight () const
 Allows to know the weight value that this vehicle will use.
FORCEINLINE byte GetTractiveEffort () const
 Allows to know the tractive effort value that this vehicle will use.
FORCEINLINE byte GetAirDragArea () const
 Gets the area used for calculating air drag.
FORCEINLINE byte GetAirDrag () const
 Gets the air drag coefficient of this vehicle.
FORCEINLINE AccelStatus GetAccelerationStatus () const
 Checks the current acceleration status of this vehicle.
FORCEINLINE uint16 GetCurrentSpeed () const
 Calculates the current speed of this vehicle.
FORCEINLINE uint32 GetRollingFriction () const
 Returns the rolling friction coefficient of this vehicle.
FORCEINLINE int GetAccelerationType () const
 Allows to know the acceleration type of a vehicle.
FORCEINLINE uint32 GetSlopeSteepness () const
 Returns the slope steepness used by this vehicle.
FORCEINLINE uint16 GetMaxTrackSpeed () const
 Gets the maximum speed allowed by the track for this vehicle.
FORCEINLINE bool TileMayHaveSlopedTrack () const
 Checks if the vehicle is at a tile that can be sloped.
FORCEINLINE bool HasToUseGetSlopeZ ()
 Road vehicles have to use GetSlopeZ() to compute their height if they are reversing because in that case, their direction is not parallel with the road.

Friends

struct GroundVehicle< RoadVehicle, VEH_ROAD >

Detailed Description

Buses, trucks and trams belong to this class.

Definition at line 82 of file roadveh.h.


Constructor & Destructor Documentation

virtual RoadVehicle::~RoadVehicle (  )  [inline, virtual]

We want to 'destruct' the right class.

Definition at line 97 of file roadveh.h.

References Vehicle::PreDestructor().


Member Function Documentation

uint RoadVehicle::Crash ( bool  flooded = false  )  [virtual]

Common code executed for crashed ground vehicles.

Parameters:
flooded was this vehicle flooded?
Returns:
number of victims

Reimplemented from GroundVehicle< RoadVehicle, VEH_ROAD >.

Definition at line 460 of file roadveh_cmd.cpp.

References GroundVehicle< T, Type >::Crash(), RoadStop::GetByTile(), GetRoadStopType(), GroundVehicle< RoadVehicle, VEH_ROAD >::IsFrontEngine(), IsInsideMM(), RoadStop::Leave(), RVSB_IN_DT_ROAD_STOP, state, and Vehicle::tile.

Referenced by DisasterTick_Ufo().

bool RoadVehicle::FindClosestDepot ( TileIndex location,
DestinationID *  destination,
bool *  reverse 
) [virtual]

Find the closest depot for this vehicle and tell us the location, DestinationID and whether we should reverse.

Parameters:
location where do we go to?
destination what hangar do we go to?
reverse should the vehicle be reversed?
Returns:
true if a depot could be found.

Reimplemented from Vehicle.

Definition at line 306 of file roadveh_cmd.cpp.

References FindDepotData::best_length, GetDepotIndex(), and FindDepotData::tile.

FORCEINLINE AccelStatus RoadVehicle::GetAccelerationStatus (  )  const [inline, protected]

Checks the current acceleration status of this vehicle.

Returns:
Acceleration status.

Definition at line 198 of file roadveh.h.

References AS_ACCEL, AS_BRAKE, Vehicle::vehstatus, and VS_STOPPED.

FORCEINLINE int RoadVehicle::GetAccelerationType (  )  const [inline, protected]

Allows to know the acceleration type of a vehicle.

Returns:
Zero, road vehicles always use a normal acceleration method.

Definition at line 230 of file roadveh.h.

FORCEINLINE byte RoadVehicle::GetAirDrag (  )  const [inline, protected]

Gets the air drag coefficient of this vehicle.

Returns:
Air drag value from the engine.

Definition at line 189 of file roadveh.h.

FORCEINLINE byte RoadVehicle::GetAirDragArea (  )  const [inline, protected]

Gets the area used for calculating air drag.

Returns:
Area of the engine in m^2.

Definition at line 180 of file roadveh.h.

FORCEINLINE int RoadVehicle::GetCurrentMaxSpeed (  )  const

Calculates the maximum speed of the vehicle under its current conditions.

Returns:
Maximum speed of the vehicle.

Definition at line 389 of file roadveh_cmd.cpp.

References _settings_game, VehicleCache::cached_max_speed, IsReversingRoadTrackdir(), VehicleSettings::roadveh_acceleration_model, RVSB_TRACKDIR_MASK, state, Vehicle::vcache, and GameSettings::vehicle.

Referenced by RoadVehAccelerate().

FORCEINLINE uint16 RoadVehicle::GetCurrentSpeed (  )  const [inline, protected]

Calculates the current speed of this vehicle.

Returns:
Current speed in km/h-ish.

Definition at line 207 of file roadveh.h.

References Vehicle::cur_speed.

Referenced by GetRollingFriction().

int RoadVehicle::GetDisplayImageWidth ( Point offset = NULL  )  const

Get the width of a road vehicle image in the GUI.

Parameters:
offset Additional offset for positioning the sprite; set to NULL if not needed
Returns:
Width in pixels

Definition at line 96 of file roadveh_cmd.cpp.

References GroundVehicleCache::cached_veh_length, and GroundVehicle< RoadVehicle, VEH_ROAD >::gcache.

int RoadVehicle::GetDisplayMaxSpeed (  )  const [inline, virtual]

Gets the maximum speed in km-ish/h that can be sent into SetDParam for string processing.

Returns:
the vehicle's maximum speed

Reimplemented from Vehicle.

Definition at line 108 of file roadveh.h.

References VehicleCache::cached_max_speed, and Vehicle::vcache.

Referenced by CYapfCostRoadT< Types >::PfCalcCost().

int RoadVehicle::GetDisplaySpeed (  )  const [inline, virtual]

Gets the speed in km-ish/h that can be sent into SetDParam for string processing.

Returns:
the vehicle's speed

Reimplemented from Vehicle.

Definition at line 107 of file roadveh.h.

References Vehicle::cur_speed.

ExpensesType RoadVehicle::GetExpenseType ( bool  income  )  const [inline, virtual]

Sets the expense type associated to this vehicle type.

Parameters:
income whether this is income or (running) expenses of the vehicle

Reimplemented from Vehicle.

Definition at line 104 of file roadveh.h.

References EXPENSES_ROADVEH_INC, and EXPENSES_ROADVEH_RUN.

SpriteID RoadVehicle::GetImage ( Direction  direction  )  const [virtual]

Gets the sprite to show for the given direction.

Parameters:
direction the direction the vehicle is facing
Returns:
the sprite for the given vehicle in the given direction

Reimplemented from Vehicle.

Definition at line 122 of file roadveh_cmd.cpp.

References Vehicle::cargo, Vehicle::cargo_cap, CargoList< Tinst >::Count(), and SpecializedVehicle< RoadVehicle, Type >::Get().

FORCEINLINE uint16 RoadVehicle::GetMaxTrackSpeed (  )  const [inline, protected]

Gets the maximum speed allowed by the track for this vehicle.

Returns:
Since roads don't limit road vehicle speed, it returns always zero.

Definition at line 248 of file roadveh.h.

TileIndex RoadVehicle::GetOrderStationLocation ( StationID  station  )  [virtual]

Determine the location for the station where the vehicle goes to next.

Things done for example are allocating slots in a road stop or exact location of the platform is determined for ships.

Parameters:
station the station to make the next location of the vehicle.
Returns:
the location (tile) to aim for.

Reimplemented from Vehicle.

Definition at line 511 of file roadveh_cmd.cpp.

References CanVehicleUseStation(), SpecializedVehicle< RoadVehicle, Type >::Get(), Vehicle::IncrementOrderIndex(), and BaseStation::xy.

Referenced by RemoveRoadStop().

FORCEINLINE uint16 RoadVehicle::GetPower (  )  const [inline, protected]

Allows to know the power value that this vehicle will use.

Returns:
Power value from the engine in HP, or zero if the vehicle is not powered.

Definition at line 130 of file roadveh.h.

References GroundVehicle< RoadVehicle, VEH_ROAD >::IsArticulatedPart(), and PROP_ROADVEH_POWER.

FORCEINLINE uint16 RoadVehicle::GetPoweredPartPower ( const RoadVehicle head  )  const [inline, protected]

Returns a value if this articulated part is powered.

Returns:
Zero, because road vehicles don't have powered parts.

Definition at line 144 of file roadveh.h.

FORCEINLINE uint32 RoadVehicle::GetRollingFriction (  )  const [inline, protected]

Returns the rolling friction coefficient of this vehicle.

Returns:
Rolling friction coefficient in [1e-4].

Definition at line 216 of file roadveh.h.

References GetCurrentSpeed(), and ROADTYPE_TRAM.

Money RoadVehicle::GetRunningCost (  )  const [virtual]

Gets the running cost of a vehicle.

Returns:
the vehicle's running cost

Reimplemented from Vehicle.

Definition at line 1514 of file roadveh_cmd.cpp.

References SpecializedVehicle< RoadVehicle, Type >::Get(), GetPrice(), Engine::grf_prop, GRFFilePropsBase< Tcnt >::grffile, and PROP_ROADVEH_RUNNING_COST_FACTOR.

Referenced by OnNewDay().

FORCEINLINE uint32 RoadVehicle::GetSlopeSteepness (  )  const [inline, protected]

Returns the slope steepness used by this vehicle.

Returns:
Slope steepness used by the vehicle.

Definition at line 239 of file roadveh.h.

References _settings_game, VehicleSettings::roadveh_slope_steepness, and GameSettings::vehicle.

FORCEINLINE byte RoadVehicle::GetTractiveEffort (  )  const [inline, protected]

Allows to know the tractive effort value that this vehicle will use.

Returns:
Tractive effort value from the engine.

Definition at line 170 of file roadveh.h.

References PROP_ROADVEH_TRACTIVE_EFFORT.

const char* RoadVehicle::GetTypeString (  )  const [inline, virtual]

Get a string 'representation' of the vehicle type.

Returns:
the string representation.

Reimplemented from Vehicle.

Definition at line 101 of file roadveh.h.

Trackdir RoadVehicle::GetVehicleTrackdir (  )  const [virtual]

Returns the Trackdir on which the vehicle is currently located.

Works for trains and ships. Currently works only sortof for road vehicles, since they have a fuzzy concept of being "on" a trackdir. Dunno really what it returns for a road vehicle that is halfway a tile, never really understood that part. For road vehicles that are at the beginning or end of the tile, should just return the diagonal trackdir on which they are driving. I _think_. For other vehicles types, or vehicles with no clear trackdir (such as those in depots), returns 0xFF.

Returns:
the trackdir of the vehicle

Reimplemented from Vehicle.

Definition at line 1602 of file roadveh_cmd.cpp.

References DiagDirToDiagTrackdir(), Vehicle::direction, DirToDiagDir(), GetRoadDepotDirection(), GetRoadStopDir(), INVALID_TRACKDIR, IsInDepot(), IsReversingRoadTrackdir(), IsStandardRoadStopTile(), RVSB_TRACKDIR_MASK, state, Vehicle::vehstatus, and VS_CRASHED.

Referenced by NPFRoadVehicleFindNearestDepot(), CYapfFollowRoadT< Types >::SetOriginFromVehiclePos(), and YapfRoadVehicleFindNearestDepot().

FORCEINLINE uint16 RoadVehicle::GetWeight (  )  const [inline, protected]

Allows to know the weight value that this vehicle will use.

Returns:
Weight value from the engine in tonnes.

Definition at line 153 of file roadveh.h.

References Vehicle::cargo, Vehicle::cargo_type, CargoList< Tinst >::Count(), SpecializedVehicle< RoadVehicle, Type >::Get(), GroundVehicle< RoadVehicle, VEH_ROAD >::IsArticulatedPart(), and PROP_ROADVEH_WEIGHT.

FORCEINLINE bool RoadVehicle::HasToUseGetSlopeZ (  )  [inline, protected]

Road vehicles have to use GetSlopeZ() to compute their height if they are reversing because in that case, their direction is not parallel with the road.

It is safe to return true even if it is not reversing.

Returns:
are we (possibly) reversing?

Definition at line 272 of file roadveh.h.

References Vehicle::direction, SpecializedVehicle< RoadVehicle, Type >::First(), IsReversingRoadTrackdir(), SpecializedVehicle< T, Type >::Next(), RVSB_TRACKDIR_MASK, and state.

bool RoadVehicle::IsBus (  )  const

Check whether a roadvehicle is a bus.

Returns:
true if bus

Definition at line 85 of file roadveh_cmd.cpp.

References Vehicle::cargo_type, CC_PASSENGERS, IsCargoInClass(), and GroundVehicle< RoadVehicle, VEH_ROAD >::IsFrontEngine().

Referenced by CmdCloneOrder(), NetworkPopulateCompanyStats(), RoadFindPathToDest(), and RoadVehArrivesAt().

bool RoadVehicle::IsInDepot (  )  const [inline, virtual]

Check whether the vehicle is in the depot.

Returns:
true if and only if the vehicle is in the depot.

Reimplemented from Vehicle.

Definition at line 111 of file roadveh.h.

References RVSB_IN_DEPOT, and state.

Referenced by CmdTurnRoadVeh(), and GetVehicleTrackdir().

bool RoadVehicle::IsStoppedInDepot (  )  const [virtual]

Check whether the vehicle is in the depot *and* stopped.

Returns:
true if and only if the vehicle is in the depot and stopped.

Reimplemented from Vehicle.

Definition at line 281 of file roadveh_cmd.cpp.

References GroundVehicle< RoadVehicle, VEH_ROAD >::IsFrontEngine(), IsRoadDepotTile(), SpecializedVehicle< T, Type >::Next(), RVSB_IN_DEPOT, state, Vehicle::tile, Vehicle::vehstatus, and VS_STOPPED.

void RoadVehicle::MarkDirty (  )  [virtual]

Marks the vehicles to be redrawn and updates cached variables.

This method marks the area of the vehicle on the screen as dirty. It can be use to repaint the vehicle.

Reimplemented from Vehicle.

Definition at line 354 of file roadveh_cmd.cpp.

References GroundVehicle< RoadVehicle, VEH_ROAD >::CargoChanged(), SpecializedVehicle< T, Type >::Next(), and SpecializedVehicle< T, Type >::UpdateViewport().

bool RoadVehicle::Tick (  )  [virtual]

Calls the tick handler of the vehicle.

Returns:
is this vehicle still valid?

Reimplemented from Vehicle.

Definition at line 1525 of file roadveh_cmd.cpp.

References GroundVehicle< RoadVehicle, VEH_ROAD >::IsFrontEngine(), Vehicle::running_ticks, Vehicle::vehstatus, and VS_STOPPED.

FORCEINLINE bool RoadVehicle::TileMayHaveSlopedTrack (  )  const [inline, protected]

Checks if the vehicle is at a tile that can be sloped.

Returns:
True if the tile can be sloped.

Definition at line 257 of file roadveh.h.

References GetTileTrackStatus(), Vehicle::tile, TRACK_BIT_X, TRACK_BIT_Y, TrackStatusToTrackBits(), and TRANSPORT_ROAD.

void RoadVehicle::UpdateDeltaXY ( Direction  direction  )  [virtual]

Updates the x and y offsets and the size of the sprite used for this vehicle.

Parameters:
direction the direction the vehicle is facing

Reimplemented from Vehicle.

Definition at line 362 of file roadveh_cmd.cpp.

References GB(), Vehicle::x_extent, Vehicle::x_offs, Vehicle::y_extent, Vehicle::y_offs, and Vehicle::z_extent.


Field Documentation


The documentation for this struct was generated from the following files:

Generated on Sun Jan 23 01:50:22 2011 for OpenTTD by  doxygen 1.6.1