mirror of
https://github.com/CookiePLMonster/SilentPatch.git
synced 2024-12-29 23:33:02 +05:00
SilentPatchIII/VC/SA: Add GCC/Clang-compatible safebuffers equivalent
And switch to a common define for this attribute (this fixes compile warnings on MinGW GCC)
This commit is contained in:
parent
2bd71990de
commit
9cbc846dbd
4 changed files with 14 additions and 5 deletions
|
@ -6,6 +6,15 @@
|
||||||
|
|
||||||
#include <rwcore.h>
|
#include <rwcore.h>
|
||||||
|
|
||||||
|
// 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 RAD_TO_DEG (180.0/M_PI);
|
||||||
constexpr double DEG_TO_RAD (M_PI/180.0);
|
constexpr double DEG_TO_RAD (M_PI/180.0);
|
||||||
|
|
||||||
|
@ -570,4 +579,4 @@ public:
|
||||||
return angle;
|
return angle;
|
||||||
}
|
}
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
|
@ -380,7 +380,7 @@ __declspec(naked) void RadarBoundsCheckEntityBlip()
|
||||||
extern char** ppUserFilesDir = AddressByVersion<char**>(0x580C16, 0x580F66, 0x580E66);
|
extern char** ppUserFilesDir = AddressByVersion<char**>(0x580C16, 0x580F66, 0x580E66);
|
||||||
|
|
||||||
static LARGE_INTEGER FrameTime;
|
static LARGE_INTEGER FrameTime;
|
||||||
__declspec(safebuffers) int32_t GetTimeSinceLastFrame()
|
NOBUFFERCHECKS int32_t GetTimeSinceLastFrame()
|
||||||
{
|
{
|
||||||
LARGE_INTEGER curTime;
|
LARGE_INTEGER curTime;
|
||||||
QueryPerformanceCounter(&curTime);
|
QueryPerformanceCounter(&curTime);
|
||||||
|
|
|
@ -950,7 +950,7 @@ char* GetMyDocumentsPathSA()
|
||||||
}
|
}
|
||||||
|
|
||||||
static LARGE_INTEGER FrameTime;
|
static LARGE_INTEGER FrameTime;
|
||||||
__declspec(safebuffers) int32_t GetTimeSinceLastFrame()
|
NOBUFFERCHECKS int32_t GetTimeSinceLastFrame()
|
||||||
{
|
{
|
||||||
LARGE_INTEGER curTime;
|
LARGE_INTEGER curTime;
|
||||||
QueryPerformanceCounter(&curTime);
|
QueryPerformanceCounter(&curTime);
|
||||||
|
@ -3960,7 +3960,7 @@ __declspec(naked) void DarkVehiclesFix4()
|
||||||
}
|
}
|
||||||
// 1.0 ONLY ENDS HERE
|
// 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;
|
double integral;
|
||||||
remainder = modf( timer + remainder, &integral );
|
remainder = modf( timer + remainder, &integral );
|
||||||
|
|
|
@ -699,7 +699,7 @@ __declspec(naked) void CreateInstance_BikeFix()
|
||||||
extern char** ppUserFilesDir = AddressByVersion<char**>(0x6022AA, 0x60228A, 0x601ECA);
|
extern char** ppUserFilesDir = AddressByVersion<char**>(0x6022AA, 0x60228A, 0x601ECA);
|
||||||
|
|
||||||
static LARGE_INTEGER FrameTime;
|
static LARGE_INTEGER FrameTime;
|
||||||
__declspec(safebuffers) int32_t GetTimeSinceLastFrame()
|
NOBUFFERCHECKS int32_t GetTimeSinceLastFrame()
|
||||||
{
|
{
|
||||||
LARGE_INTEGER curTime;
|
LARGE_INTEGER curTime;
|
||||||
QueryPerformanceCounter(&curTime);
|
QueryPerformanceCounter(&curTime);
|
||||||
|
|
Loading…
Reference in a new issue