OpenTTD Source 20241224-master-gf74b0cf984
roadveh.h File Reference

Road vehicle states. More...

#include "ground_vehicle.hpp"
#include "engine_base.h"
#include "cargotype.h"
#include "track_func.h"
#include "road.h"
#include "road_map.h"
#include "newgrf_engine.h"

Go to the source code of this file.

Data Structures

struct  RoadVehPathElement
 Element of the RoadVehPathCache. More...
 
struct  RoadVehicle
 Buses, trucks and trams belong to this class. More...
 

Typedefs

using RoadVehPathCache = std::vector< RoadVehPathElement >
 

Enumerations

enum  RoadVehicleStates {
  RVSB_IN_DEPOT = 0xFE , RVSB_WORMHOLE = 0xFF , RVS_USING_SECOND_BAY = 1 , RVS_ENTERED_STOP = 2 ,
  RVS_DRIVE_SIDE = 4 , RVS_IN_ROAD_STOP = 5 , RVS_IN_DT_ROAD_STOP = 6 , RVSB_IN_ROAD_STOP = 1 << RVS_IN_ROAD_STOP ,
  RVSB_IN_ROAD_STOP_END = RVSB_IN_ROAD_STOP + TRACKDIR_END , RVSB_IN_DT_ROAD_STOP = 1 << RVS_IN_DT_ROAD_STOP , RVSB_IN_DT_ROAD_STOP_END = RVSB_IN_DT_ROAD_STOP + TRACKDIR_END , RVSB_DRIVE_SIDE = 1 << RVS_DRIVE_SIDE ,
  RVSB_TRACKDIR_MASK = 0x0F , RVSB_ROAD_STOP_TRACKDIR_MASK = 0x09
}
 Road vehicle states. More...
 

Functions

void RoadVehUpdateCache (RoadVehicle *v, bool same_length=false)
 Update the cache of a road vehicle.
 
void GetRoadVehSpriteSize (EngineID engine, uint &width, uint &height, int &xoffs, int &yoffs, EngineImageType image_type)
 Get the size of the sprite of a road vehicle sprite heading west (used for lists).
 

Variables

static const uint RDE_NEXT_TILE = 0x80
 State information about the Road Vehicle controller.
 
static const uint RDE_TURNED = 0x40
 We just finished turning.
 
static const uint RVC_DEFAULT_START_FRAME = 0
 
static const uint RVC_TURN_AROUND_START_FRAME = 1
 
static const uint RVC_DEPOT_START_FRAME = 6
 
static const uint RVC_START_FRAME_AFTER_LONG_TRAM = 21
 
static const uint RVC_TURN_AROUND_START_FRAME_SHORT_TRAM = 16
 
static const uint RVC_DRIVE_THROUGH_STOP_FRAME = 11
 
static const uint RVC_DEPOT_STOP_FRAME = 11
 
static const uint8_t RV_OVERTAKE_TIMEOUT = 35
 The number of ticks a vehicle has for overtaking.
 

Detailed Description

Road vehicle states.

Definition in file roadveh.h.

Typedef Documentation

◆ RoadVehPathCache

using RoadVehPathCache = std::vector<RoadVehPathElement>

Definition at line 93 of file roadveh.h.

Enumeration Type Documentation

◆ RoadVehicleStates

Road vehicle states.

Enumerator
RVSB_IN_DEPOT 

The vehicle is in a depot.

RVSB_WORMHOLE 

The vehicle is in a tunnel and/or bridge.

RVS_USING_SECOND_BAY 

Only used while in a road stop.

RVS_ENTERED_STOP 

Only set when a vehicle has entered the stop.

RVS_DRIVE_SIDE 

Only used when retrieving move data.

RVS_IN_ROAD_STOP 

The vehicle is in a road stop.

RVS_IN_DT_ROAD_STOP 

The vehicle is in a drive-through road stop.

RVSB_IN_ROAD_STOP 

The vehicle is in a road stop.

RVSB_IN_DT_ROAD_STOP 

The vehicle is in a drive-through road stop.

RVSB_DRIVE_SIDE 

The vehicle is at the opposite side of the road.

RVSB_TRACKDIR_MASK 

The mask used to extract track dirs.

RVSB_ROAD_STOP_TRACKDIR_MASK 

Only bits 0 and 3 are used to encode the trackdir for road stops.

Definition at line 24 of file roadveh.h.

Function Documentation

◆ GetRoadVehSpriteSize()

void GetRoadVehSpriteSize ( EngineID  engine,
uint &  width,
uint &  height,
int &  xoffs,
int &  yoffs,
EngineImageType  image_type 
)

Get the size of the sprite of a road vehicle sprite heading west (used for lists).

Parameters
engineThe engine to get the sprite from.
[out]widthThe width of the sprite.
[out]heightThe height of the sprite.
[out]xoffsNumber of pixels to shift the sprite to the right.
[out]yoffsNumber of pixels to shift the sprite downwards.
image_typeContext the sprite is used in.

Definition at line 171 of file roadveh_cmd.cpp.

References VehicleSpriteSeq::GetBounds(), Rect::Height(), UnScaleGUI(), and Rect::Width().

Referenced by EnginePreviewWindow::UpdateWidgetSize().

◆ RoadVehUpdateCache()

void RoadVehUpdateCache ( RoadVehicle v,
bool  same_length 
)

Variable Documentation

◆ RDE_NEXT_TILE

const uint RDE_NEXT_TILE = 0x80
static

State information about the Road Vehicle controller.

We should enter the next tile

Definition at line 61 of file roadveh.h.

◆ RDE_TURNED

const uint RDE_TURNED = 0x40
static

We just finished turning.

Definition at line 62 of file roadveh.h.

◆ RV_OVERTAKE_TIMEOUT

const uint8_t RV_OVERTAKE_TIMEOUT = 35
static

The number of ticks a vehicle has for overtaking.

Definition at line 79 of file roadveh.h.

◆ RVC_DEFAULT_START_FRAME

const uint RVC_DEFAULT_START_FRAME = 0
static

Definition at line 69 of file roadveh.h.

◆ RVC_DEPOT_START_FRAME

const uint RVC_DEPOT_START_FRAME = 6
static

Definition at line 71 of file roadveh.h.

◆ RVC_DEPOT_STOP_FRAME

const uint RVC_DEPOT_STOP_FRAME = 11
static

Definition at line 76 of file roadveh.h.

◆ RVC_DRIVE_THROUGH_STOP_FRAME

const uint RVC_DRIVE_THROUGH_STOP_FRAME = 11
static

Definition at line 75 of file roadveh.h.

◆ RVC_START_FRAME_AFTER_LONG_TRAM

const uint RVC_START_FRAME_AFTER_LONG_TRAM = 21
static

Definition at line 72 of file roadveh.h.

◆ RVC_TURN_AROUND_START_FRAME

const uint RVC_TURN_AROUND_START_FRAME = 1
static

Definition at line 70 of file roadveh.h.

◆ RVC_TURN_AROUND_START_FRAME_SHORT_TRAM

const uint RVC_TURN_AROUND_START_FRAME_SHORT_TRAM = 16
static

Definition at line 73 of file roadveh.h.