summaryrefslogtreecommitdiff
path: root/vehicle.h
diff options
context:
space:
mode:
authortruelight <truelight@openttd.org>2005-01-08 12:47:26 +0000
committertruelight <truelight@openttd.org>2005-01-08 12:47:26 +0000
commit95a879fb7dfe96b918bc540b8a41f5d91a5ab9fe (patch)
treeeb8091f14551600fb73a27878ecd5163e0e72187 /vehicle.h
parent323ab5ee72d8457b9ed8efd2de4d05354ea068a4 (diff)
downloadopenttd-95a879fb7dfe96b918bc540b8a41f5d91a5ab9fe.tar.xz
(svn r1429) Change: bumped savegame to revision 5.
- Now orders are bigger - Now _map2 is official 16 bits
Diffstat (limited to 'vehicle.h')
-rw-r--r--vehicle.h30
1 files changed, 17 insertions, 13 deletions
diff --git a/vehicle.h b/vehicle.h
index b5d564368..3564aed39 100644
--- a/vehicle.h
+++ b/vehicle.h
@@ -4,27 +4,31 @@
#include "vehicle_gui.h"
typedef struct Order {
-#ifdef TTD_LITTLE_ENDIAN /* XXX hack to avoid savegame revision bump */
- uint8 type:4;
- uint8 flags:4;
-#else
- uint8 flags:4;
- uint8 type:4;
-#endif
+ uint8 type;
+ uint8 flags;
uint16 station;
} Order;
-static inline uint16 PackOrder(const Order *order)
+static inline uint32 PackOrder(const Order *order)
{
- return order->station << 8 | order->flags << 4 | order->type;
+ return order->station << 16 | order->flags << 8 | order->type;
}
-static inline Order UnpackOrder(uint16 packed)
+static inline Order UnpackOrder(uint32 packed)
{
Order order;
- order.type = (packed & 0x000f);
- order.flags = (packed & 0x00f0) >> 4,
- order.station = (packed & 0xff00) >> 8;
+ order.type = (packed & 0x000000FF);
+ order.flags = (packed & 0x0000FF00) >> 8;
+ order.station = (packed & 0xFFFF0000) >> 16;
+ return order;
+}
+
+static inline Order UnpackVersion4Order(uint16 packed)
+{
+ Order order;
+ order.type = (packed & 0x000F);
+ order.flags = (packed & 0x00F0) >> 4;
+ order.station = (packed & 0xFF00) >> 8;
return order;
}