OpenTTD Source  13.2.1
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"
15 #include "misc/endian_buffer.hpp"
16 
20 CommandCost CmdInsertOrder(DoCommandFlag flags, VehicleID veh, VehicleOrderID sel_ord, const Order &new_order);
23 CommandCost CmdMoveOrder(DoCommandFlag flags, VehicleID veh, VehicleOrderID moving_order, VehicleOrderID target_order);
25 
34 
35 template <typename Tcont, typename Titer>
36 inline 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 
41 inline 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 */
CMD_MODIFY_ORDER
@ CMD_MODIFY_ORDER
modify an order (like set full-load)
Definition: command_type.h:227
CMD_CLEAR_ORDER_BACKUP
@ CMD_CLEAR_ORDER_BACKUP
clear the order backup of a given user/tile
Definition: command_type.h:226
VehicleOrderID
byte VehicleOrderID
The index of an order within its current vehicle (not pool related)
Definition: order_type.h:15
CloneOptions
CloneOptions
Clone actions.
Definition: order_type.h:180
CmdDeleteOrder
CommandCost CmdDeleteOrder(DoCommandFlag flags, VehicleID veh_id, VehicleOrderID sel_ord)
Delete an order from the orderlist of a vehicle.
Definition: order_cmd.cpp:1010
ModifyOrderFlags
ModifyOrderFlags
Enumeration for the data to set in CmdModifyOrder.
Definition: order_type.h:143
CmdCloneOrder
CommandCost CmdCloneOrder(DoCommandFlag flags, CloneOptions action, VehicleID veh_dst, VehicleID veh_src)
Clone/share/copy an order-list of another vehicle.
Definition: order_cmd.cpp:1501
CmdSkipToOrder
CommandCost CmdSkipToOrder(DoCommandFlag flags, VehicleID veh_id, VehicleOrderID sel_ord)
Goto order of order-list.
Definition: order_cmd.cpp:1110
CmdMoveOrder
CommandCost CmdMoveOrder(DoCommandFlag flags, VehicleID veh, VehicleOrderID moving_order, VehicleOrderID target_order)
Move an order inside the orderlist.
Definition: order_cmd.cpp:1145
CmdInsertOrder
CommandCost CmdInsertOrder(DoCommandFlag flags, VehicleID veh, VehicleOrderID sel_ord, const Order &new_order)
Add an order to the orderlist of a vehicle.
Definition: order_cmd.cpp:738
CMD_LOCATION
@ CMD_LOCATION
the command has implicit location argument.
Definition: command_type.h:389
CMD_DELETE_ORDER
@ CMD_DELETE_ORDER
delete an order
Definition: command_type.h:229
order_base.h
Order::wait_time
uint16 wait_time
How long in ticks to wait at the destination.
Definition: order_base.h:54
TileIndex
The index/ID of a Tile.
Definition: tile_type.h:85
CMD_SKIP_TO_ORDER
@ CMD_SKIP_TO_ORDER
skip an order to the next of specific one
Definition: command_type.h:228
CmdClearOrderBackup
CommandCost CmdClearOrderBackup(DoCommandFlag flags, TileIndex tile, ClientID user_id)
Clear an OrderBackup.
Definition: order_backup.cpp:154
DoCommandFlag
DoCommandFlag
List of flags for a command.
Definition: command_type.h:355
endian_buffer.hpp
CommandCost
Common return value for all commands.
Definition: command_type.h:24
EndianBufferReader
Endian-aware buffer adapter that always reads values in little endian order.
Definition: endian_buffer.hpp:120
ClientID
ClientID
'Unique' identifier to be given to clients
Definition: network_type.h:47
CMDT_ROUTE_MANAGEMENT
@ CMDT_ROUTE_MANAGEMENT
Modifications to route management (orders, groups, etc).
Definition: command_type.h:399
CMD_CLONE_ORDER
@ CMD_CLONE_ORDER
clone (and share) an order
Definition: command_type.h:275
CMD_CLIENT_ID
@ CMD_CLIENT_ID
set p2 with the ClientID of the sending client.
Definition: command_type.h:385
CMD_INSERT_ORDER
@ CMD_INSERT_ORDER
insert a new order
Definition: command_type.h:230
Order::max_speed
uint16 max_speed
How fast the vehicle may go on the way to the destination.
Definition: order_base.h:56
CMD_MOVE_ORDER
@ CMD_MOVE_ORDER
move an order
Definition: command_type.h:332
command_type.h
Order::refit_cargo
CargoID refit_cargo
Refit CargoID.
Definition: order_base.h:52
CmdOrderRefit
CommandCost CmdOrderRefit(DoCommandFlag flags, VehicleID veh, VehicleOrderID order_number, CargoID cargo)
Add/remove refit orders from an order.
Definition: order_cmd.cpp:1642
CMDT_SERVER_SETTING
@ CMDT_SERVER_SETTING
Pausing/removing companies/server settings.
Definition: command_type.h:402
CMD_ORDER_REFIT
@ CMD_ORDER_REFIT
change the refit information of an order (for "goto depot" )
Definition: command_type.h:274
VehicleID
uint32 VehicleID
The type all our vehicle IDs have.
Definition: vehicle_type.h:16
CargoID
byte CargoID
Cargo slots to indicate a cargo type within a game.
Definition: cargo_type.h:20
EndianBufferWriter
Endian-aware buffer adapter that always writes values in little endian order.
Definition: endian_buffer.hpp:28
CmdModifyOrder
CommandCost CmdModifyOrder(DoCommandFlag flags, VehicleID veh, VehicleOrderID sel_ord, ModifyOrderFlags mof, uint16 data)
Modify an order in the orderlist of a vehicle.
Definition: order_cmd.cpp:1240
Order::travel_time
uint16 travel_time
How long in ticks the journey to this destination should take.
Definition: order_base.h:55
Order::flags
uint8 flags
Load/unload types, depot order/action types.
Definition: order_base.h:49
Order
Definition: order_base.h:36
Order::type
uint8 type
The type of order + non-stop flags.
Definition: order_base.h:48
Order::dest
DestinationID dest
The destination of the order.
Definition: order_base.h:50