diff options
author | Celestar <celestar@openttd.org> | 2004-12-08 15:26:57 +0000 |
---|---|---|
committer | Celestar <celestar@openttd.org> | 2004-12-08 15:26:57 +0000 |
commit | 6fd3fc10e347695b28c8b3d1e0074b5456cd8100 (patch) | |
tree | 98602eb5f4d3563f2c7af9080465d5bd94904fe8 | |
parent | 547a2d1f9ff267bec683eae211a4b1070afd27f4 (diff) | |
download | openttd-6fd3fc10e347695b28c8b3d1e0074b5456cd8100.tar.xz |
(svn r978) Fixed an endianess issue with the new Order system. Thanks to Bjarni, Oskar and Tron
-rw-r--r-- | train_gui.c | 1 | ||||
-rw-r--r-- | vehicle.h | 14 |
2 files changed, 10 insertions, 5 deletions
diff --git a/train_gui.c b/train_gui.c index 7e3c89113..edc8b74aa 100644 --- a/train_gui.c +++ b/train_gui.c @@ -827,6 +827,7 @@ static void TrainViewWndProc(Window *w, WindowEvent *e) DoCommandP(v->tile, v->index, 0, NULL, CMD_START_STOP_TRAIN | CMD_MSG(STR_883B_CAN_T_STOP_START_TRAIN)); break; case 5: /* center main view */ + DEBUG(misc, 0) ("Train: %d, Velocity: %d, Current Order: %i:%d:%x:%x", v->index, v->cur_speed, v->cur_order_index, v->current_order.station, v->current_order.flags, v->current_order.type); ScrollMainWindowTo(v->x_pos, v->y_pos); break; case 6: /* goto depot */ @@ -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; } |