diff --git a/SilentPatch/Maths.h b/SilentPatch/Maths.h index c25c5ee..7f76c97 100644 --- a/SilentPatch/Maths.h +++ b/SilentPatch/Maths.h @@ -6,6 +6,15 @@ #include +// FIXME: Common.h might be a better place for this (but SA doesn't include it) +#ifdef _MSC_VER +#define NOBUFFERCHECKS __declspec(safebuffers) +#elif defined(__GNUC__) && !defined(__clang__) +#define NOBUFFERCHECKS __attribute__((optimize("-fno-stack-protector"))) +#else +#define NOBUFFERCHECKS __attribute__((no_stack_protector)) +#endif + constexpr double RAD_TO_DEG (180.0/M_PI); constexpr double DEG_TO_RAD (M_PI/180.0); @@ -570,4 +579,4 @@ public: return angle; } -}; \ No newline at end of file +}; diff --git a/SilentPatchIII/SilentPatchIII.cpp b/SilentPatchIII/SilentPatchIII.cpp index a92a53b..a883bd5 100644 --- a/SilentPatchIII/SilentPatchIII.cpp +++ b/SilentPatchIII/SilentPatchIII.cpp @@ -380,7 +380,7 @@ __declspec(naked) void RadarBoundsCheckEntityBlip() extern char** ppUserFilesDir = AddressByVersion(0x580C16, 0x580F66, 0x580E66); static LARGE_INTEGER FrameTime; -__declspec(safebuffers) int32_t GetTimeSinceLastFrame() +NOBUFFERCHECKS int32_t GetTimeSinceLastFrame() { LARGE_INTEGER curTime; QueryPerformanceCounter(&curTime); diff --git a/SilentPatchSA/SilentPatchSA.cpp b/SilentPatchSA/SilentPatchSA.cpp index 706ba92..1175233 100644 --- a/SilentPatchSA/SilentPatchSA.cpp +++ b/SilentPatchSA/SilentPatchSA.cpp @@ -950,7 +950,7 @@ char* GetMyDocumentsPathSA() } static LARGE_INTEGER FrameTime; -__declspec(safebuffers) int32_t GetTimeSinceLastFrame() +NOBUFFERCHECKS int32_t GetTimeSinceLastFrame() { LARGE_INTEGER curTime; QueryPerformanceCounter(&curTime); @@ -3960,7 +3960,7 @@ __declspec(naked) void DarkVehiclesFix4() } // 1.0 ONLY ENDS HERE -__declspec(safebuffers) static int _Timers_ftol_internal( double timer, double& remainder ) +NOBUFFERCHECKS static int _Timers_ftol_internal( double timer, double& remainder ) { double integral; remainder = modf( timer + remainder, &integral ); diff --git a/SilentPatchVC/SilentPatchVC.cpp b/SilentPatchVC/SilentPatchVC.cpp index ccdd678..8c2bac4 100644 --- a/SilentPatchVC/SilentPatchVC.cpp +++ b/SilentPatchVC/SilentPatchVC.cpp @@ -699,7 +699,7 @@ __declspec(naked) void CreateInstance_BikeFix() extern char** ppUserFilesDir = AddressByVersion(0x6022AA, 0x60228A, 0x601ECA); static LARGE_INTEGER FrameTime; -__declspec(safebuffers) int32_t GetTimeSinceLastFrame() +NOBUFFERCHECKS int32_t GetTimeSinceLastFrame() { LARGE_INTEGER curTime; QueryPerformanceCounter(&curTime);