macros.h
changeset 222 b88456001397
parent 193 0a7025304867
child 236 da0ae9d977e0
equal deleted inserted replaced
221:124a804562a5 222:b88456001397
   201 static INLINE void swap_tile(TileIndex *a, TileIndex *b) { TileIndex t = *a; *a = *b; *b = t; }
   201 static INLINE void swap_tile(TileIndex *a, TileIndex *b) { TileIndex t = *a; *a = *b; *b = t; }
   202 
   202 
   203 
   203 
   204 
   204 
   205 #if defined(TTD_LITTLE_ENDIAN)
   205 #if defined(TTD_LITTLE_ENDIAN)
   206 #	define READ_LE_UINT16(b) (*(uint16*)(b))
   206 #	define READ_LE_UINT16(b) (*(const uint16*)(b))
   207 #	define ADD_WORD(x) (x)&0xFF, ((x) >> 8)&0xFF
   207 #	define ADD_WORD(x) (x)&0xFF, ((x) >> 8)&0xFF
   208 #	define ADD_DWORD(x) (x)&0xFF, ((x) >> 8)&0xFF, ((x) >> 16)&0xFF, ((x) >> 24)&0xFF
   208 #	define ADD_DWORD(x) (x)&0xFF, ((x) >> 8)&0xFF, ((x) >> 16)&0xFF, ((x) >> 24)&0xFF
   209 #elif defined(TTD_BIG_ENDIAN)
   209 #elif defined(TTD_BIG_ENDIAN)
   210 	static INLINE uint16 READ_LE_UINT16(const void *b) {
   210 	static INLINE uint16 READ_LE_UINT16(const void *b) {
   211 		return ((byte*)b)[0] + (((byte*)b)[1] << 8);
   211 		return ((const byte*)b)[0] + (((const byte*)b)[1] << 8);
   212 	}
   212 	}
   213 #	define ADD_WORD(x) ((x) >> 8)&0xFF, (x)&0xFF
   213 #	define ADD_WORD(x) ((x) >> 8)&0xFF, (x)&0xFF
   214 #	define ADD_DWORD(x) ((x) >> 24)&0xFF, ((x) >> 16)&0xFF, ((x) >> 8)&0xFF,  (x)&0xFF
   214 #	define ADD_DWORD(x) ((x) >> 24)&0xFF, ((x) >> 16)&0xFF, ((x) >> 8)&0xFF,  (x)&0xFF
   215 #endif
   215 #endif
   216 
   216 
   217 static INLINE void WRITE_LE_UINT16(const void *b, uint16 x) {
   217 static INLINE void WRITE_LE_UINT16(void *b, uint16 x) {
   218 	((byte*)b)[0] = (byte)x;
   218 	((byte*)b)[0] = (byte)x;
   219 	((byte*)b)[1] = (byte)(x >> 8);
   219 	((byte*)b)[1] = (byte)(x >> 8);
   220 }
   220 }
   221 
   221 
   222 #define MAX_DETOUR 6
   222 #define MAX_DETOUR 6