(svn r978) Fixed an endianess issue with the new Order system. Thanks to Bjarni, Oskar and Tron

This commit is contained in:
Celestar
2004-12-08 15:26:57 +00:00
parent 547a2d1f9f
commit 6fd3fc10e3
2 changed files with 10 additions and 5 deletions

View File

@@ -4,8 +4,13 @@
#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 station;
} Order;
@@ -16,11 +21,10 @@ static inline uint16 PackOrder(const Order *order)
static inline Order UnpackOrder(uint16 packed)
{
Order order = {
(packed & 0x000f),
(packed & 0x00f0) >> 4,
(packed & 0xff00) >> 8
};
Order order;
order.type = (packed & 0x000f);
order.flags = (packed & 0x00f0) >> 4,
order.station = (packed & 0xff00) >> 8;
return order;
}