Eliminate need for FindEntityByClassname gamedata on sdk2013 and soon css/dods/hl2dm (already on tf2).
This commit is contained in:
parent
749701014d
commit
f0dd129344
@ -714,7 +714,7 @@ static cell_t GetClientEyeAngles(IPluginContext *pContext, const cell_t *params)
|
|||||||
return got_angles ? 1 : 0;
|
return got_angles ? 1 : 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if SOURCE_ENGINE >= SE_ORANGEBOX && SOURCE_ENGINE != SE_TF2
|
#if SOURCE_ENGINE >= SE_ORANGEBOX
|
||||||
static cell_t NativeFindEntityByClassname(IPluginContext *pContext, const cell_t *params)
|
static cell_t NativeFindEntityByClassname(IPluginContext *pContext, const cell_t *params)
|
||||||
{
|
{
|
||||||
char *searchname;
|
char *searchname;
|
||||||
@ -793,25 +793,35 @@ static cell_t NativeFindEntityByClassname(IPluginContext *pContext, const cell_t
|
|||||||
|
|
||||||
static cell_t FindEntityByClassname(IPluginContext *pContext, const cell_t *params)
|
static cell_t FindEntityByClassname(IPluginContext *pContext, const cell_t *params)
|
||||||
{
|
{
|
||||||
#if SOURCE_ENGINE == SE_TF2
|
#if SOURCE_ENGINE == SE_TF2 \
|
||||||
CBaseEntity *pStartEnt = NULL;
|
|| SOURCE_ENGINE == SE_DODS \
|
||||||
if (params[1] != -1)
|
|| SOURCE_ENGINE == SE_HL2DM \
|
||||||
|
|| SOURCE_ENGINE == SE_CSS \
|
||||||
|
|| SOURCE_ENGINE == SE_SDK2013
|
||||||
|
|
||||||
|
static bool bHasServerTools3 = !!g_SMAPI->GetServerFactory(false)("VSERVERTOOLS003", nullptr);
|
||||||
|
if (bHasServerTools3)
|
||||||
{
|
{
|
||||||
pStartEnt = gamehelpers->ReferenceToEntity(params[1]);
|
CBaseEntity *pStartEnt = NULL;
|
||||||
if (!pStartEnt)
|
if (params[1] != -1)
|
||||||
{
|
{
|
||||||
return pContext->ThrowNativeError("Entity %d (%d) is invalid",
|
pStartEnt = gamehelpers->ReferenceToEntity(params[1]);
|
||||||
gamehelpers->ReferenceToIndex(params[1]),
|
if (!pStartEnt)
|
||||||
params[1]);
|
{
|
||||||
|
return pContext->ThrowNativeError("Entity %d (%d) is invalid",
|
||||||
|
gamehelpers->ReferenceToIndex(params[1]),
|
||||||
|
params[1]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
char *searchname;
|
||||||
|
pContext->LocalToString(params[2], &searchname);
|
||||||
|
|
||||||
|
CBaseEntity *pEntity = servertools->FindEntityByClassname(pStartEnt, searchname);
|
||||||
|
return gamehelpers->EntityToBCompatRef(pEntity);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
char *searchname;
|
|
||||||
pContext->LocalToString(params[2], &searchname);
|
|
||||||
|
|
||||||
CBaseEntity *pEntity = servertools->FindEntityByClassname(pStartEnt, searchname);
|
|
||||||
return gamehelpers->EntityToBCompatRef(pEntity);
|
|
||||||
#else
|
|
||||||
static ValveCall *pCall = NULL;
|
static ValveCall *pCall = NULL;
|
||||||
static bool bProbablyNoFEBC = false;
|
static bool bProbablyNoFEBC = false;
|
||||||
|
|
||||||
@ -869,7 +879,6 @@ static cell_t FindEntityByClassname(IPluginContext *pContext, const cell_t *para
|
|||||||
FINISH_CALL_SIMPLE(&pEntity);
|
FINISH_CALL_SIMPLE(&pEntity);
|
||||||
|
|
||||||
return gamehelpers->EntityToBCompatRef(pEntity);
|
return gamehelpers->EntityToBCompatRef(pEntity);
|
||||||
#endif // == TF2
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#if SOURCE_ENGINE >= SE_ORANGEBOX
|
#if SOURCE_ENGINE >= SE_ORANGEBOX
|
||||||
|
Loading…
Reference in New Issue
Block a user