diff --git a/train_gui.c b/train_gui.c index 7e3c89113e..edc8b74aa5 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 */ diff --git a/vehicle.h b/vehicle.h index 596882eeb5..178a776353 100644 --- a/vehicle.h +++ b/vehicle.h @@ -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; }