12 #include "../stdafx.h"
13 #include "../order_backup.h"
14 #include "../settings_type.h"
15 #include "../network/network.h"
19 #include "../safeguards.h"
27 uint8 old_flags = this->
flags;
40 case OT_GOTO_DEPOT:
case OT_GOTO_STATION:
case OT_LOADING:
break;
44 if (this->
GetType() != OT_GOTO_DEPOT) {
46 if ((old_flags & 2) != 0) {
48 }
else if ((old_flags & 4) == 0) {
58 if ((old_flags & 1) != 0) {
60 }
else if ((old_flags & 2) != 0) {
83 return Order(
GB(packed, 8, 8) << 16 |
GB(packed, 4, 4) << 8 |
GB(packed, 0, 4));
106 static const SaveLoad _order_desc[] = {
126 static void Save_ORDR()
130 FOR_ALL_ORDERS(order) {
131 SlSetArrayIndex(order->
index);
132 SlObject(order, GetOrderDescription());
136 static void Load_ORDR()
146 len /=
sizeof(uint16);
147 uint16 *orders = MallocT<uint16>(len + 1);
149 SlArray(orders, len, SLE_UINT16);
151 for (
size_t i = 0; i < len; ++i) {
158 len /=
sizeof(uint32);
159 uint32 *orders = MallocT<uint32>(len + 1);
161 SlArray(orders, len, SLE_UINT32);
163 for (
size_t i = 0; i < len; ++i) {
164 new (i)
Order(orders[i]);
174 if (o->
IsType(OT_NOTHING)) {
181 if (prev != NULL) prev->
next = o;
188 SlObject(order, GetOrderDescription());
197 static void Ptrs_ORDR()
211 static const SaveLoad _orderlist_desc[] = {
216 return _orderlist_desc;
219 static void Save_ORDL()
223 FOR_ALL_ORDER_LISTS(list) {
224 SlSetArrayIndex(list->
index);
225 SlObject(list, GetOrderListDescription());
229 static void Load_ORDL()
236 SlObject(list, GetOrderListDescription());
241 static void Ptrs_ORDL()
245 FOR_ALL_ORDER_LISTS(list) {
246 SlObject(list, GetOrderListDescription());
252 static const SaveLoad _order_backup_desc[] = {
272 return _order_backup_desc;
275 static void Save_BKOR()
284 SlSetArrayIndex(ob->
index);
285 SlObject(ob, GetOrderBackupDescription());
296 SlObject(ob, GetOrderBackupDescription());
300 static void Ptrs_BKOR()
304 SlObject(ob, GetOrderBackupDescription());
309 {
'BKOR', Save_BKOR, Load_BKOR, Ptrs_BKOR, NULL, CH_ARRAY},
310 {
'ORDR', Save_ORDR, Load_ORDR, Ptrs_ORDR, NULL, CH_ARRAY},
311 {
'ORDL', Save_ORDL, Load_ORDL, Ptrs_ORDL, NULL, CH_ARRAY |
CH_LAST},