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;
|
||||
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 gamehelpers->IndexOfEdict(pEnt);
|
||||
return gamehelpers->IndexOfEdict(pEdict);
|
||||
}
|
||||
case ObjectValueType_Float:
|
||||
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
|
||||
{
|
||||
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 gamehelpers->IndexOfEdict(pEnt);
|
||||
return gamehelpers->IndexOfEdict(pEdict);
|
||||
}
|
||||
case ObjectValueType_FloatPtr:
|
||||
{
|
||||
@ -727,13 +727,13 @@ cell_t Native_SetParamObjectPtrVar(IPluginContext *pContext, const cell_t *param
|
||||
break;
|
||||
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;
|
||||
}
|
||||
@ -766,13 +766,13 @@ cell_t Native_SetParamObjectPtrVar(IPluginContext *pContext, const cell_t *param
|
||||
}
|
||||
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;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user