Fix EHANDLE natives.

This commit is contained in:
Dr!fter 2014-08-19 17:37:04 -04:00
parent afb450d66a
commit 709e3cd03b

View File

@ -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;
} }