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/>.
8 /** @file order_cmd.h Command definitions related to orders. */
13 #include "command_type.h"
14 #include "order_base.h"
15 #include "misc/endian_buffer.hpp"
17 CommandCost
CmdModifyOrder(DoCommandFlag flags
, VehicleID veh
, VehicleOrderID sel_ord
, ModifyOrderFlags mof
, uint16_t data
);
18 CommandCost
CmdSkipToOrder(DoCommandFlag flags
, VehicleID veh_id
, VehicleOrderID sel_ord
);
19 CommandCost
CmdDeleteOrder(DoCommandFlag flags
, VehicleID veh_id
, VehicleOrderID sel_ord
);
20 CommandCost
CmdInsertOrder(DoCommandFlag flags
, VehicleID veh
, VehicleOrderID sel_ord
, const Order
&new_order
);
21 CommandCost
CmdOrderRefit(DoCommandFlag flags
, VehicleID veh
, VehicleOrderID order_number
, CargoID cargo
);
22 CommandCost
CmdCloneOrder(DoCommandFlag flags
, CloneOptions action
, VehicleID veh_dst
, VehicleID veh_src
);
23 CommandCost
CmdMoveOrder(DoCommandFlag flags
, VehicleID veh
, VehicleOrderID moving_order
, VehicleOrderID target_order
);
24 CommandCost
CmdClearOrderBackup(DoCommandFlag flags
, TileIndex tile
, ClientID user_id
);
26 DEF_CMD_TRAIT(CMD_MODIFY_ORDER
, CmdModifyOrder
, CMD_LOCATION
, CMDT_ROUTE_MANAGEMENT
)
27 DEF_CMD_TRAIT(CMD_SKIP_TO_ORDER
, CmdSkipToOrder
, CMD_LOCATION
, CMDT_ROUTE_MANAGEMENT
)
28 DEF_CMD_TRAIT(CMD_DELETE_ORDER
, CmdDeleteOrder
, CMD_LOCATION
, CMDT_ROUTE_MANAGEMENT
)
29 DEF_CMD_TRAIT(CMD_INSERT_ORDER
, CmdInsertOrder
, CMD_LOCATION
, CMDT_ROUTE_MANAGEMENT
)
30 DEF_CMD_TRAIT(CMD_ORDER_REFIT
, CmdOrderRefit
, CMD_LOCATION
, CMDT_ROUTE_MANAGEMENT
)
31 DEF_CMD_TRAIT(CMD_CLONE_ORDER
, CmdCloneOrder
, CMD_LOCATION
, CMDT_ROUTE_MANAGEMENT
)
32 DEF_CMD_TRAIT(CMD_MOVE_ORDER
, CmdMoveOrder
, CMD_LOCATION
, CMDT_ROUTE_MANAGEMENT
)
33 DEF_CMD_TRAIT(CMD_CLEAR_ORDER_BACKUP
, CmdClearOrderBackup
, CMD_CLIENT_ID
, CMDT_SERVER_SETTING
)
35 template <typename Tcont
, typename Titer
>
36 inline EndianBufferWriter
<Tcont
, Titer
> &operator <<(EndianBufferWriter
<Tcont
, Titer
> &buffer
, const Order
&order
)
38 return buffer
<< order
.type
<< order
.flags
<< order
.dest
<< order
.refit_cargo
<< order
.wait_time
<< order
.travel_time
<< order
.max_speed
;
41 inline EndianBufferReader
&operator >>(EndianBufferReader
&buffer
, Order
&order
)
43 return buffer
>> order
.type
>> order
.flags
>> order
.dest
>> order
.refit_cargo
>> order
.wait_time
>> order
.travel_time
>> order
.max_speed
;
46 #endif /* ORDER_CMD_H */