Add virtual address to remaining natives

This commit is contained in:
Benoist 2025-11-07 15:05:16 +00:00
parent 29aa1ff3ca
commit 021ed61998
2 changed files with 15 additions and 19 deletions

View File

@ -155,11 +155,10 @@ static cell_t smn_GameConfGetAddress(IPluginContext *pCtx, const cell_t *params)
if (!gc->GetAddress(key, &val))
return 0;
#ifdef KE_ARCH_X86
return (cell_t)val;
#else
return pseudoAddr.ToPseudoAddress(val);
#endif
if (pCtx->GetRuntime()->FindPubvarByName("__Virtual_Address__", nullptr) == SP_ERROR_NONE) {
return pseudoAddr.ToPseudoAddress(val);
}
return reinterpret_cast<uintptr_t>(val);
}
static cell_t smn_GameConfGetMemSig(IPluginContext *pCtx, const cell_t *params)
@ -187,11 +186,10 @@ static cell_t smn_GameConfGetMemSig(IPluginContext *pCtx, const cell_t *params)
return 0;
}
#ifdef KE_ARCH_X86
return (cell_t)val;
#else
return pseudoAddr.ToPseudoAddress(val);
#endif
if (pCtx->GetRuntime()->FindPubvarByName("__Virtual_Address__", nullptr) == SP_ERROR_NONE) {
return pseudoAddr.ToPseudoAddress(val);
}
return reinterpret_cast<uintptr_t>(val);
}
static GameConfigsNatives s_GameConfigsNatives;

View File

@ -834,11 +834,10 @@ static cell_t SetEntDataEnt2(IPluginContext *pContext, const cell_t *params)
static cell_t StoreEntityToHandleAddress(IPluginContext *pContext, const cell_t *params)
{
#ifdef KE_ARCH_X86
void *addr = reinterpret_cast<void*>(params[1]);
#else
void *addr = g_SourceMod.FromPseudoAddress(params[1]);
#endif
if (pContext->GetRuntime()->FindPubvarByName("__Virtual_Address__", nullptr) == SP_ERROR_NONE) {
addr = g_SourceMod.FromPseudoAddress(params[1]);
}
if (addr == NULL)
{
@ -2771,11 +2770,10 @@ static cell_t GetEntityAddress(IPluginContext *pContext, const cell_t *params)
return pContext->ThrowNativeError("Entity %d (%d) is invalid", g_HL2.ReferenceToIndex(params[1]), params[1]);
}
#ifdef KE_ARCH_X86
return reinterpret_cast<cell_t>(pEntity);
#else
return g_SourceMod.ToPseudoAddress(pEntity);
#endif
if (pContext->GetRuntime()->FindPubvarByName("__Virtual_Address__", nullptr) == SP_ERROR_NONE) {
return g_SourceMod.ToPseudoAddress(pEntity);
}
return reinterpret_cast<uintptr_t>(pEntity);
}
REGISTER_NATIVES(entityNatives)