From 4c5323dc6416ce451b921637bf34d6df05788cd2 Mon Sep 17 00:00:00 2001 From: Jordan Cristiano Date: Sun, 24 Apr 2016 21:22:26 -0400 Subject: [PATCH] Fixed accidentally removing DWordSwap on non vc++ --- .../sourcesdk/include/sourcesdk/valve_support.h | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/external/sourcesdk/include/sourcesdk/valve_support.h b/external/sourcesdk/include/sourcesdk/valve_support.h index ad3359b..8eceb1a 100644 --- a/external/sourcesdk/include/sourcesdk/valve_support.h +++ b/external/sourcesdk/include/sourcesdk/valve_support.h @@ -59,6 +59,17 @@ inline bool is_little_endian() #define NORMAL_DENOMINATOR ( (1<<(NORMAL_FRACTIONAL_BITS)) - 1 ) #define NORMAL_RESOLUTION (1.0/(NORMAL_DENOMINATOR)) +template +inline T DWordSwapC( T dw ) +{ + uint32 temp; + temp = *((uint32 *)&dw) >> 24; + temp |= ((*((uint32 *)&dw) & 0x00FF0000) >> 8); + temp |= ((*((uint32 *)&dw) & 0x0000FF00) << 8); + temp |= ((*((uint32 *)&dw) & 0x000000FF) << 24); + return *((T*)&temp); +} + #if defined( _MSC_VER ) && !defined( PLATFORM_WINDOWS_PC64 ) #define DWordSwap DWordSwapAsm #pragma warning(push) @@ -74,7 +85,7 @@ inline bool is_little_endian() } #pragma warning(pop) #else - #error write the 64 bit swaps + #define DWordSwap DWordSwapC #endif inline unsigned long LoadLittleDWord(const unsigned long *base, unsigned int dwordIndex)