Changeset - r567:bfe9ec959424
[Not reviewed]
master
0 2 0
Celestar - 19 years ago 2004-12-08 15:26:57
celestar@openttd.org
(svn r978) Fixed an endianess issue with the new Order system. Thanks to Bjarni, Oskar and Tron
2 files changed with 10 insertions and 5 deletions:
0 comments (0 inline, 0 general)
train_gui.c
Show inline comments
 
@@ -827,6 +827,7 @@ static void TrainViewWndProc(Window *w, 
 
			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 */
vehicle.h
Show inline comments
 
@@ -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 Ord
 

	
 
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;
 
}
 

	
0 comments (0 inline, 0 general)