Fix EHANDLE natives.
This commit is contained in:
parent
afb450d66a
commit
709e3cd03b
28
natives.cpp
28
natives.cpp
@ -649,14 +649,14 @@ cell_t Native_GetParamObjectPtrVar(IPluginContext *pContext, const cell_t *param
|
|||||||
return *(bool *)(addr + params[3]) ? 1 : 0;
|
return *(bool *)(addr + params[3]) ? 1 : 0;
|
||||||
case ObjectValueType_Ehandle:
|
case ObjectValueType_Ehandle:
|
||||||
{
|
{
|
||||||
edict_t *pEnt = gamehelpers->GetHandleEntity(*(CBaseHandle *)(addr + params[3]));
|
edict_t *pEdict = gamehelpers->GetHandleEntity(*(CBaseHandle *)(addr + params[3]));
|
||||||
|
|
||||||
if(!pEnt)
|
if(!pEdict)
|
||||||
{
|
{
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
return gamehelpers->IndexOfEdict(pEnt);
|
return gamehelpers->IndexOfEdict(pEdict);
|
||||||
}
|
}
|
||||||
case ObjectValueType_Float:
|
case ObjectValueType_Float:
|
||||||
return sp_ftoc(*(float *)(addr + params[3]));
|
return sp_ftoc(*(float *)(addr + params[3]));
|
||||||
@ -674,14 +674,14 @@ cell_t Native_GetParamObjectPtrVar(IPluginContext *pContext, const cell_t *param
|
|||||||
}
|
}
|
||||||
case ObjectValueType_EhandlePtr://Im pretty sure this is never gonna happen
|
case ObjectValueType_EhandlePtr://Im pretty sure this is never gonna happen
|
||||||
{
|
{
|
||||||
edict_t *pEnt = gamehelpers->GetHandleEntity(**(CBaseHandle **)(addr + params[3]));
|
edict_t *pEdict = gamehelpers->GetHandleEntity(**(CBaseHandle **)(addr + params[3]));
|
||||||
|
|
||||||
if(!pEnt)
|
if(!pEdict)
|
||||||
{
|
{
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
return gamehelpers->IndexOfEdict(pEnt);
|
return gamehelpers->IndexOfEdict(pEdict);
|
||||||
}
|
}
|
||||||
case ObjectValueType_FloatPtr:
|
case ObjectValueType_FloatPtr:
|
||||||
{
|
{
|
||||||
@ -727,13 +727,13 @@ cell_t Native_SetParamObjectPtrVar(IPluginContext *pContext, const cell_t *param
|
|||||||
break;
|
break;
|
||||||
case ObjectValueType_Ehandle:
|
case ObjectValueType_Ehandle:
|
||||||
{
|
{
|
||||||
edict_t *pEnt = gamehelpers->EdictOfIndex(params[5]);
|
edict_t *pEdict = gamehelpers->EdictOfIndex(params[5]);
|
||||||
|
|
||||||
if(pEnt->IsFree())
|
if(!pEdict || pEdict->IsFree())
|
||||||
{
|
{
|
||||||
return pContext->ThrowNativeError("Invalid entity passed");
|
return pContext->ThrowNativeError("Invalid edict passed");
|
||||||
}
|
}
|
||||||
gamehelpers->SetHandleEntity(*(CBaseHandle *)(addr + params[3]), pEnt);
|
gamehelpers->SetHandleEntity(*(CBaseHandle *)(addr + params[3]), pEdict);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -766,13 +766,13 @@ cell_t Native_SetParamObjectPtrVar(IPluginContext *pContext, const cell_t *param
|
|||||||
}
|
}
|
||||||
case ObjectValueType_EhandlePtr:
|
case ObjectValueType_EhandlePtr:
|
||||||
{
|
{
|
||||||
edict_t *pEnt = gamehelpers->EdictOfIndex(params[5]);
|
edict_t *pEdict = gamehelpers->EdictOfIndex(params[5]);
|
||||||
|
|
||||||
if(pEnt->IsFree())
|
if(!pEdict || pEdict->IsFree())
|
||||||
{
|
{
|
||||||
return pContext->ThrowNativeError("Invalid entity passed");
|
return pContext->ThrowNativeError("Invalid edict passed");
|
||||||
}
|
}
|
||||||
gamehelpers->SetHandleEntity(**(CBaseHandle **)(addr + params[3]), pEnt);
|
gamehelpers->SetHandleEntity(**(CBaseHandle **)(addr + params[3]), pEdict);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user