diff --git a/product.version b/product.version index 589268e..6261a05 100644 --- a/product.version +++ b/product.version @@ -1 +1 @@ -1.3.0 \ No newline at end of file +1.3.1 \ No newline at end of file diff --git a/src/extension.cpp b/src/extension.cpp index 3011160..1270232 100644 --- a/src/extension.cpp +++ b/src/extension.cpp @@ -39,13 +39,8 @@ IForward *g_pPassFwd = NULL; int gSetCollisionSolverHookId, gShouldCollideHookId; -#if defined(__linux__) && defined(__i386__) -CDetour* PassServerEntityFilterFuncDetour; -__attribute__((regparm(2))) bool (*PassServerEntityFilterFunc_Actual)(const IHandleEntity*, const IHandleEntity*); -__attribute__((regparm(2))) bool PassServerEntityFilterFunc(const IHandleEntity* pTouch, const IHandleEntity* pPass) -#else -DETOUR_DECL_STATIC2( PassServerEntityFilterFunc, bool, const IHandleEntity *, pTouch, const IHandleEntity *, pPass ) -#endif + +DETOUR_CUSTOM_STATIC2( PassServerEntityFilterFunc, bool, const IHandleEntity *, pTouch, const IHandleEntity *, pPass ) { if ( g_pPassFwd->GetFunctionCount() == 0 ) return DETOUR_STATIC_CALL( PassServerEntityFilterFunc )( pTouch, pPass ); diff --git a/src/extension.h b/src/extension.h index ff8e568..ce3faf6 100644 --- a/src/extension.h +++ b/src/extension.h @@ -107,5 +107,21 @@ inline const CBaseEntity *UTIL_EntityFromEntityHandle( const IHandleEntity *pCon return pUnk->GetBaseEntity(); } +#define DETOUR_DECL_STATIC2_REGPARM(name, ret, p1type, p1name, p2type, p2name) \ +ret (*name##_Actual)(p1type, p2type) __attribute__((regparm(2))) = NULL; \ +ret name(p1type p1name, p2type p2name) __attribute__((regparm(2))) + +#define DETOUR_DECL_STATIC2_FASTCALL(name, ret, p1type, p1name, p2type, p2name) \ +ret (__fastcall *name##_Actual)(p1type, p2type) = NULL; \ +ret __fastcall name(p1type p1name, p2type p2name) + + +#if SOURCE_ENGINE == SE_TF2 && defined(PLATFORM_LINUX) && defined(__i386__) + #define DETOUR_CUSTOM_STATIC2 DETOUR_DECL_STATIC2_REGPARM +#elif SOURCE_ENGINE == SE_CSGO && defined(PLATFORM_WINDOWS) + #define DETOUR_CUSTOM_STATIC2 DETOUR_DECL_STATIC2_FASTCALL +#else + #define DETOUR_CUSTOM_STATIC2 DETOUR_DECL_STATIC2 +#endif #endif // _INCLUDE_COLLISIONHOOK_EXTENSION_H_ diff --git a/src/version.h b/src/version.h index eebe419..09523cb 100644 --- a/src/version.h +++ b/src/version.h @@ -18,9 +18,9 @@ #define SM_BUILD_TAG "-manual" #define SM_BUILD_UNIQUEID "[MANUAL BUILD]" -#define SM_VERSION "1.3.0" +#define SM_VERSION "1.3.1" #define SM_FULL_VERSION SM_VERSION SM_BUILD_TAG -#define SM_FILE_VERSION 1,3,0,0 +#define SM_FILE_VERSION 1,3,1,0 #endif