OpenTTD Source 20241224-master-gf74b0cf984
order_cmd.h
Go to the documentation of this file.
1/*
2 * This file is part of OpenTTD.
3 * OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
4 * OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
5 * See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
6 */
7
10#ifndef ORDER_CMD_H
11#define ORDER_CMD_H
12
13#include "command_type.h"
14#include "order_base.h"
16
20CommandCost CmdInsertOrder(DoCommandFlag flags, VehicleID veh, VehicleOrderID sel_ord, const Order &new_order);
23CommandCost CmdMoveOrder(DoCommandFlag flags, VehicleID veh, VehicleOrderID moving_order, VehicleOrderID target_order);
25
34
35template <typename Tcont, typename Titer>
36inline EndianBufferWriter<Tcont, Titer> &operator <<(EndianBufferWriter<Tcont, Titer> &buffer, const Order &order)
37{
38 return buffer << order.type << order.flags << order.dest << order.refit_cargo << order.wait_time << order.travel_time << order.max_speed;
39}
40
41inline EndianBufferReader &operator >>(EndianBufferReader &buffer, Order &order)
42{
43 return buffer >> order.type >> order.flags >> order.dest >> order.refit_cargo >> order.wait_time >> order.travel_time >> order.max_speed;
44}
45
46#endif /* ORDER_CMD_H */
uint8_t CargoID
Cargo slots to indicate a cargo type within a game.
Definition cargo_type.h:22
Common return value for all commands.
Endian-aware buffer adapter that always reads values in little endian order.
Endian-aware buffer adapter that always writes values in little endian order.
Types related to commands.
@ CMDT_ROUTE_MANAGEMENT
Modifications to route management (orders, groups, etc).
@ CMDT_SERVER_SETTING
Pausing/removing companies/server settings.
DoCommandFlag
List of flags for a command.
@ CMD_MODIFY_ORDER
modify an order (like set full-load)
@ CMD_MOVE_ORDER
move an order
@ CMD_CLONE_ORDER
clone (and share) an order
@ CMD_SKIP_TO_ORDER
skip an order to the next of specific one
@ CMD_DELETE_ORDER
delete an order
@ CMD_ORDER_REFIT
change the refit information of an order (for "goto depot" )
@ CMD_CLEAR_ORDER_BACKUP
clear the order backup of a given user/tile
@ CMD_INSERT_ORDER
insert a new order
@ CMD_LOCATION
the command has implicit location argument.
@ CMD_CLIENT_ID
set p2 with the ClientID of the sending client.
Endian-aware buffer.
ClientID
'Unique' identifier to be given to clients
Base class for orders.
CommandCost CmdMoveOrder(DoCommandFlag flags, VehicleID veh, VehicleOrderID moving_order, VehicleOrderID target_order)
Move an order inside the orderlist.
CommandCost CmdOrderRefit(DoCommandFlag flags, VehicleID veh, VehicleOrderID order_number, CargoID cargo)
Add/remove refit orders from an order.
CommandCost CmdCloneOrder(DoCommandFlag flags, CloneOptions action, VehicleID veh_dst, VehicleID veh_src)
Clone/share/copy an order-list of another vehicle.
CommandCost CmdInsertOrder(DoCommandFlag flags, VehicleID veh, VehicleOrderID sel_ord, const Order &new_order)
Add an order to the orderlist of a vehicle.
CommandCost CmdModifyOrder(DoCommandFlag flags, VehicleID veh, VehicleOrderID sel_ord, ModifyOrderFlags mof, uint16_t data)
Modify an order in the orderlist of a vehicle.
CommandCost CmdDeleteOrder(DoCommandFlag flags, VehicleID veh_id, VehicleOrderID sel_ord)
Delete an order from the orderlist of a vehicle.
CommandCost CmdSkipToOrder(DoCommandFlag flags, VehicleID veh_id, VehicleOrderID sel_ord)
Goto order of order-list.
CommandCost CmdClearOrderBackup(DoCommandFlag flags, TileIndex tile, ClientID user_id)
Clear an OrderBackup.
ModifyOrderFlags
Enumeration for the data to set in CmdModifyOrder.
Definition order_type.h:144
uint8_t VehicleOrderID
The index of an order within its current vehicle (not pool related)
Definition order_type.h:15
CloneOptions
Clone actions.
Definition order_type.h:179
uint16_t max_speed
How fast the vehicle may go on the way to the destination.
Definition order_base.h:56
uint8_t type
The type of order + non-stop flags.
Definition order_base.h:48
uint16_t wait_time
How long in ticks to wait at the destination.
Definition order_base.h:54
uint8_t flags
Load/unload types, depot order/action types.
Definition order_base.h:49
DestinationID dest
The destination of the order.
Definition order_base.h:50
CargoID refit_cargo
Refit CargoID.
Definition order_base.h:52
uint16_t travel_time
How long in ticks the journey to this destination should take.
Definition order_base.h:55
uint32_t VehicleID
The type all our vehicle IDs have.