mirror of
https://github.com/OpenTTD/OpenTTD.git
synced 2025-01-22 07:06:01 +00:00
(svn r978) Fixed an endianess issue with the new Order system. Thanks to Bjarni, Oskar and Tron
This commit is contained in:
parent
547a2d1f9f
commit
6fd3fc10e3
@ -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 */
|
||||
|
14
vehicle.h
14
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;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user