Files
@ r9583:b6e25a00b908
Branch filter:
Location: cpp/openttd-patchpack/source/src/core/endian_func.hpp - annotation
r9583:b6e25a00b908
1.2 KiB
text/x-c++hdr
(svn r13621) -Fix: building roadbits in the wrong direction on bridges or building roadbits from underneath the bridge to the bridgehead is impossible, so don't silently ignore that error when building over houses and industries is not ignored.
r8113:7815c26d7612 r8113:7815c26d7612 r9111:983de9c5a848 r8113:7815c26d7612 r8113:7815c26d7612 r8113:7815c26d7612 r8113:7815c26d7612 r9543:54a9c0376831 r8132:f5cfeb0d46c0 r8132:f5cfeb0d46c0 r8132:f5cfeb0d46c0 r9543:54a9c0376831 r8133:beb8760dad9b r8132:f5cfeb0d46c0 r8132:f5cfeb0d46c0 r8133:beb8760dad9b r8133:beb8760dad9b r8133:beb8760dad9b r8133:beb8760dad9b r8133:beb8760dad9b r8133:beb8760dad9b r8132:f5cfeb0d46c0 r8132:f5cfeb0d46c0 r8133:beb8760dad9b r8133:beb8760dad9b r8133:beb8760dad9b r8133:beb8760dad9b r8132:f5cfeb0d46c0 r8133:beb8760dad9b r8133:beb8760dad9b r8133:beb8760dad9b r8133:beb8760dad9b r8132:f5cfeb0d46c0 r9543:54a9c0376831 r8132:f5cfeb0d46c0 r9575:665324c39b56 r8113:7815c26d7612 r8113:7815c26d7612 r8113:7815c26d7612 r8113:7815c26d7612 r9575:665324c39b56 r8113:7815c26d7612 r9543:54a9c0376831 r8113:7815c26d7612 r8113:7815c26d7612 r8113:7815c26d7612 r9543:54a9c0376831 r8113:7815c26d7612 r8113:7815c26d7612 r8132:f5cfeb0d46c0 | /* $Id$ */
/** @file endian_func.hpp Function to handling different endian machines. */
#ifndef ENDIAN_FUNC_H
#define ENDIAN_FUNC_H
#include "endian_type.hpp"
#include "bitmath_func.hpp"
/* Setup alignment and conversion macros */
#if TTD_ENDIAN == TTD_BIG_ENDIAN
#define FROM_BE16(x) (x)
#define FROM_BE32(x) (x)
#define TO_BE16(x) (x)
#define TO_BE32(x) (x)
#define TO_BE32X(x) (x)
#define FROM_LE16(x) BSWAP16(x)
#define FROM_LE32(x) BSWAP32(x)
#define TO_LE16(x) BSWAP16(x)
#define TO_LE32(x) BSWAP32(x)
#define TO_LE32X(x) BSWAP32(x)
#else
#define FROM_BE16(x) BSWAP16(x)
#define FROM_BE32(x) BSWAP32(x)
#define TO_BE16(x) BSWAP16(x)
#define TO_BE32(x) BSWAP32(x)
#define TO_BE32X(x) BSWAP32(x)
#define FROM_LE16(x) (x)
#define FROM_LE32(x) (x)
#define TO_LE16(x) (x)
#define TO_LE32(x) (x)
#define TO_LE32X(x) (x)
#endif /* TTD_ENDIAN == TTD_BIG_ENDIAN */
static FORCEINLINE uint16 ReadLE16Aligned(const void *x)
{
return FROM_LE16(*(const uint16*)x);
}
static FORCEINLINE uint16 ReadLE16Unaligned(const void *x)
{
#if OTTD_ALIGNMENT == 1
return ((const byte*)x)[0] | ((const byte*)x)[1] << 8;
#else
return FROM_LE16(*(const uint16*)x);
#endif /* OTTD_ALIGNMENT == 1 */
}
#endif /* ENDIAN_FUNC_HPP */
|