OpenTTD Source  20241121-master-g67a0fccfad
vehicle_cmd.h File Reference

Command definitions for vehicles. More...

#include "command_type.h"
#include "engine_type.h"
#include "vehicle_type.h"
#include "vehiclelist.h"
#include "vehiclelist_cmd.h"
#include "cargo_type.h"

Go to the source code of this file.

Functions

std::tuple< CommandCost, VehicleID, uint, uint16_t, CargoArrayCmdBuildVehicle (DoCommandFlag flags, TileIndex tile, EngineID eid, bool use_free_vehicles, CargoID cargo, ClientID client_id)
 Build a vehicle. More...
 
CommandCost CmdSellVehicle (DoCommandFlag flags, VehicleID v_id, bool sell_chain, bool backup_order, ClientID client_id)
 Sell a vehicle. More...
 
std::tuple< CommandCost, uint, uint16_t, CargoArrayCmdRefitVehicle (DoCommandFlag flags, VehicleID veh_id, CargoID new_cid, uint8_t new_subtype, bool auto_refit, bool only_this, uint8_t num_vehicles)
 Refits a vehicle to the specified cargo type. More...
 
CommandCost CmdSendVehicleToDepot (DoCommandFlag flags, VehicleID veh_id, DepotCommand depot_cmd, const VehicleListIdentifier &vli)
 Send a vehicle to the depot. More...
 
CommandCost CmdChangeServiceInt (DoCommandFlag flags, VehicleID veh_id, uint16_t serv_int, bool is_custom, bool is_percent)
 Change the service interval of a vehicle. More...
 
CommandCost CmdRenameVehicle (DoCommandFlag flags, VehicleID veh_id, const std::string &text)
 Give a custom name to your vehicle. More...
 
std::tuple< CommandCost, VehicleIDCmdCloneVehicle (DoCommandFlag flags, TileIndex tile, VehicleID veh_id, bool share_orders)
 Clone a vehicle. More...
 
CommandCost CmdStartStopVehicle (DoCommandFlag flags, VehicleID veh_id, bool evaluate_startstop_cb)
 Start/Stop a vehicle. More...
 
CommandCost CmdMassStartStopVehicle (DoCommandFlag flags, TileIndex tile, bool do_start, bool vehicle_list_window, const VehicleListIdentifier &vli)
 Starts or stops a lot of vehicles. More...
 
CommandCost CmdDepotSellAllVehicles (DoCommandFlag flags, TileIndex tile, VehicleType vehicle_type)
 Sells all vehicles in a depot. More...
 
CommandCost CmdDepotMassAutoReplace (DoCommandFlag flags, TileIndex tile, VehicleType vehicle_type)
 Autoreplace all vehicles in the depot. More...
 
 DEF_CMD_TRAIT (CMD_CLONE_VEHICLE, CmdCloneVehicle, CMD_NO_TEST, CMDT_VEHICLE_CONSTRUCTION) void CcBuildPrimaryVehicle(Commands cmd
 
void CcStartStopVehicle (Commands cmd, const CommandCost &result, VehicleID veh_id, bool)
 This is the Callback method after attempting to start/stop a vehicle. More...
 
template<typename Tcont , typename Titer >
EndianBufferWriter< Tcont, Titer > & operator<< (EndianBufferWriter< Tcont, Titer > &buffer, const CargoArray &cargo_array)
 
EndianBufferReaderoperator>> (EndianBufferReader &buffer, CargoArray &cargo_array)
 

Variables

const CommandCostresult
 
const CommandCost VehicleID new_veh_id
 
const CommandCost VehicleID uint
 
const CommandCost VehicleID uint16_t
 
const CommandCost VehicleID CargoArray
 

Detailed Description

Command definitions for vehicles.

Definition in file vehicle_cmd.h.

Function Documentation

◆ CcStartStopVehicle()

void CcStartStopVehicle ( Commands  cmd,
const CommandCost result,
VehicleID  veh_id,
bool   
)

This is the Callback method after attempting to start/stop a vehicle.

Parameters
resultthe result of the start/stop command
veh_idVehicle ID.

Definition at line 2986 of file vehicle_gui.cpp.

◆ CmdBuildVehicle()

std::tuple<CommandCost, VehicleID, uint, uint16_t, CargoArray> CmdBuildVehicle ( DoCommandFlag  flags,
TileIndex  tile,
EngineID  eid,
bool  use_free_vehicles,
CargoID  cargo,
ClientID  client_id 
)

Build a vehicle.

Parameters
flagsfor command
tiletile of depot where the vehicle is built
eidvehicle type being built.
use_free_vehiclesuse free vehicles when building the vehicle.
cargorefit cargo type.
client_idUser
Returns
the cost of this operation + the new vehicle ID + the refitted capacity + the refitted mail capacity (aircraft) or an error

Definition at line 87 of file vehicle_cmd.cpp.

References _current_company, AIR_CTOL, CMD_ERROR, CountArticulatedParts(), EXPENSES_NEW_VEHICLES, Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_engine_pool >::Get(), Engine::GetCost(), Engine::GetDefaultCargoType(), GetDepotVehicleType(), INVALID_VEHICLE, IsDepotTile(), IsEngineBuildable(), IsTileOwner(), IsValidCargoID(), NUM_CARGO, RAILVEH_MULTIHEAD, AircraftVehicleInfo::subtype, VEH_AIRCRAFT, VEH_ROAD, VEH_SHIP, and VEH_TRAIN.

◆ CmdChangeServiceInt()

CommandCost CmdChangeServiceInt ( DoCommandFlag  flags,
VehicleID  veh_id,
uint16_t  serv_int,
bool  is_custom,
bool  is_percent 
)

Change the service interval of a vehicle.

Parameters
flagstype of operation
veh_idvehicle ID that is being service-interval-changed
serv_intnew service interval
is_customservice interval is custom flag
is_percentservice interval is percentage flag
Returns
the cost of this operation or an error

Definition at line 1107 of file vehicle_cmd.cpp.

◆ CmdCloneVehicle()

std::tuple<CommandCost, VehicleID> CmdCloneVehicle ( DoCommandFlag  flags,
TileIndex  tile,
VehicleID  veh_id,
bool  share_orders 
)

Clone a vehicle.

If it is a train, it will clone all the cars too

Parameters
flagstype of operation
tiletile of the depot where the cloned vehicle is build
veh_idthe original vehicle's index
share_ordersshared orders, else copied orders
Returns
the cost of this operation + the new vehicle ID or an error

Definition at line 826 of file vehicle_cmd.cpp.

References Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_vehicle_pool >::CanAllocateItem(), CheckOwnership(), CMD_ERROR, DC_EXEC, EXPENSES_NEW_VEHICLES, CommandCost::Failed(), SpecializedVehicle< T, Type >::From(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_vehicle_pool >::GetIfValid(), INVALID_VEHICLE, Vehicle::IsFrontEngine(), Vehicle::IsPrimaryVehicle(), Vehicle::Next(), Vehicle::owner, BaseVehicle::type, and VEH_TRAIN.

◆ CmdDepotMassAutoReplace()

CommandCost CmdDepotMassAutoReplace ( DoCommandFlag  flags,
TileIndex  tile,
VehicleType  vehicle_type 
)

Autoreplace all vehicles in the depot.

Parameters
flagstype of operation
tileTile of the depot where the vehicles are
vehicle_typeType of vehicle
Returns
the cost of this operation or an error

Definition at line 726 of file vehicle_cmd.cpp.

References _current_company, CommandCost::AddCost(), BuildDepotVehicleList(), CMD_ERROR, EXPENSES_NEW_VEHICLES, IsCompanyBuildableVehicleType(), IsDepotTile(), IsTileOwner(), and CommandCost::Succeeded().

◆ CmdDepotSellAllVehicles()

CommandCost CmdDepotSellAllVehicles ( DoCommandFlag  flags,
TileIndex  tile,
VehicleType  vehicle_type 
)

Sells all vehicles in a depot.

Parameters
flagstype of operation
tileTile of the depot where the depot is
vehicle_typeVehicle type
Returns
the cost of this operation or an error

Definition at line 692 of file vehicle_cmd.cpp.

References _current_company, CommandCost::AddCost(), BuildDepotVehicleList(), CMD_ERROR, EXPENSES_NEW_VEHICLES, INVALID_CLIENT_ID, IsCompanyBuildableVehicleType(), IsDepotTile(), IsTileOwner(), and CommandCost::Succeeded().

◆ CmdMassStartStopVehicle()

CommandCost CmdMassStartStopVehicle ( DoCommandFlag  flags,
TileIndex  tile,
bool  do_start,
bool  vehicle_list_window,
const VehicleListIdentifier vli 
)

Starts or stops a lot of vehicles.

Parameters
flagstype of operation
tileTile of the depot where the vehicles are started/stopped (only used for depots)
do_startset = start vehicles, unset = stop vehicles
vehicle_list_windowif set, then it's a vehicle list window, not a depot and Tile is ignored in this case
vliVehicleListIdentifier
Returns
the cost of this operation or an error

Definition at line 658 of file vehicle_cmd.cpp.

References _current_company, BuildDepotVehicleList(), CMD_ERROR, do_start, GenerateVehicleSortList(), IsCompanyBuildableVehicleType(), IsDepotTile(), IsTileOwner(), VS_STOPPED, and VehicleListIdentifier::vtype.

◆ CmdRefitVehicle()

std::tuple<CommandCost, uint, uint16_t, CargoArray> CmdRefitVehicle ( DoCommandFlag  flags,
VehicleID  veh_id,
CargoID  new_cid,
uint8_t  new_subtype,
bool  auto_refit,
bool  only_this,
uint8_t  num_vehicles 
)

Refits a vehicle to the specified cargo type.

Parameters
flagstype of operation
veh_idvehicle ID to refit
new_cidNew cargo type to refit to.
new_subtypeNew cargo subtype to refit to. 0xFF means to try keeping the same subtype according to GetBestFittingSubType().
auto_refitAutomatic refitting.
only_thisRefit only this vehicle. Used only for cloning vehicles.
num_vehiclesNumber of vehicles to refit (not counting articulated parts). Zero means all vehicles. Only used if "refit only this vehicle" is false.
Returns
the cost of this operation or an error

Definition at line 490 of file vehicle_cmd.cpp.

References CheckOwnership(), CMD_ERROR, Vehicle::current_order, DC_QUERY_COST, CommandCost::Failed(), Vehicle::First(), SpecializedVehicle< T, Type >::From(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_vehicle_pool >::GetIfValid(), IsCompanyBuildableVehicleType(), Order::IsType(), Vehicle::owner, BaseVehicle::type, VEH_AIRCRAFT, VEH_SHIP, and VEH_TRAIN.

◆ CmdRenameVehicle()

CommandCost CmdRenameVehicle ( DoCommandFlag  flags,
VehicleID  veh_id,
const std::string &  text 
)

◆ CmdSellVehicle()

CommandCost CmdSellVehicle ( DoCommandFlag  flags,
VehicleID  v_id,
bool  sell_chain,
bool  backup_order,
ClientID  client_id 
)

◆ CmdSendVehicleToDepot()

CommandCost CmdSendVehicleToDepot ( DoCommandFlag  flags,
VehicleID  veh_id,
DepotCommand  depot_cmd,
const VehicleListIdentifier vli 
)

Send a vehicle to the depot.

Parameters
flagsfor command type
veh_idvehicle ID to send to the depot
depot_cmdDEPOT_ flags (see vehicle_type.h)
vliVehicleListIdentifier.
Returns
the cost of this operation or an error

Definition at line 1047 of file vehicle_cmd.cpp.

References CMD_ERROR, Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_vehicle_pool >::GetIfValid(), HasFlag(), Vehicle::IsPrimaryVehicle(), MassSend, SendAllVehiclesToDepot(), Vehicle::SendToDepot(), and Service.

◆ CmdStartStopVehicle()

CommandCost CmdStartStopVehicle ( DoCommandFlag  flags,
VehicleID  veh_id,
bool  evaluate_startstop_cb 
)

Start/Stop a vehicle.

Parameters
flagstype of operation
veh_idvehicle to start/stop, don't forget to change CcStartStopVehicle if you modify this!
evaluate_startstop_cbShall the start/stop newgrf callback be evaluated (only valid with DC_AUTOREPLACE for network safety)
Returns
the cost of this operation or an error

Definition at line 572 of file vehicle_cmd.cpp.

References CheckOwnership(), CMD_ERROR, DC_AUTOREPLACE, CommandCost::Failed(), Aircraft::flags, SpecializedVehicle< Aircraft, VEH_AIRCRAFT >::From(), SpecializedVehicle< T, Type >::From(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_vehicle_pool >::GetIfValid(), HasBit(), Vehicle::IsPrimaryVehicle(), Vehicle::owner, return_cmd_error, STARTTAKEOFF, Aircraft::state, TERM7, BaseVehicle::type, VAF_HELI_DIRECT_DESCENT, VEH_AIRCRAFT, VEH_ROAD, VEH_SHIP, VEH_TRAIN, Vehicle::vehstatus, VS_CRASHED, and VS_STOPPED.