Fix passing variant_t parameters + fix codegen stack on Win64 (#2117)

* Fix 64-bit JIT not allocating stack space for params on stack
Fix wrong cond check for passing objects by value

* Fix wrong FireOutput detour proto on win64
This commit is contained in:
Kit o' Rifty
2024-05-05 21:17:59 +00:00
committed by GitHub
parent 5cb2d68fd7
commit f08f1ef0d6
3 changed files with 11 additions and 3 deletions
+1 -1
View File
@@ -73,7 +73,7 @@ bool EntityOutputManager::IsEnabled()
return enabled;
}
#ifdef PLATFORM_WINDOWS
#if defined PLATFORM_WINDOWS && defined PLATFORM_X86
DETOUR_DECL_MEMBER8(FireOutput, void, int, what, int, the, int, hell, int, msvc, void *, variant_t, CBaseEntity *, pActivator, CBaseEntity *, pCaller, float, fDelay)
{
bool fireOutput = g_OutputManager.FireEventDetour((void *)this, pActivator, pCaller, fDelay);
+1 -1
View File
@@ -311,7 +311,7 @@ static cell_t FireEntityOutput(IPluginContext *pContext, const cell_t *params)
{
return pContext->ThrowNativeError("\"FireEntityOutput\" not supported by this mod");
}
#ifdef PLATFORM_WINDOWS
#if defined PLATFORM_WINDOWS && defined PLATFORM_X86
int iMaxParam = 8;
//Instead of being one param, MSVC broke variant_t param into 5 params..
PassInfo pass[8];