Add new native to get enum value based on item definition index.

This commit is contained in:
Ruben Gonzalez 2017-09-09 23:27:32 -04:00
parent a341a0e85c
commit 1f3b14367d
2 changed files with 28 additions and 0 deletions

View File

@ -862,6 +862,21 @@ static cell_t CS_UpdateClientModel(IPluginContext *pContext, const cell_t *param
return 1; return 1;
} }
static cell_t CS_ItemDefIndexToID(IPluginContext *pContext, const cell_t *params)
{
#if SOURCE_ENGINE == SE_CSGO
ItemIndexMap::Result res = g_mapDefIdxToClass.find((uint16_t)params[1]);
if (!res.found())
return pContext->ThrowNativeError("Invalid item definition passed.");
return res->value.m_iWeaponID;
#else
return pContext->ThrowNativeError("CS_ItemDefIndexToID is not supported on this game");
#endif
}
sp_nativeinfo_t g_CSNatives[] = sp_nativeinfo_t g_CSNatives[] =
{ {
{"CS_RespawnPlayer", CS_RespawnPlayer}, {"CS_RespawnPlayer", CS_RespawnPlayer},
@ -884,6 +899,7 @@ sp_nativeinfo_t g_CSNatives[] =
{"CS_SetClientAssists", CS_SetClientAssists}, {"CS_SetClientAssists", CS_SetClientAssists},
{"CS_UpdateClientModel", CS_UpdateClientModel}, {"CS_UpdateClientModel", CS_UpdateClientModel},
{"CS_IsValidWeaponID", CS_IsValidWeaponID}, {"CS_IsValidWeaponID", CS_IsValidWeaponID},
{"CS_ItemDefIndexToID", CS_ItemDefIndexToID },
{NULL, NULL} {NULL, NULL}
}; };

View File

@ -391,6 +391,17 @@ native bool CS_IsValidWeaponID(CSWeaponID id);
*/ */
native void CS_UpdateClientModel(int client); native void CS_UpdateClientModel(int client);
/**
* Returns a CSWeaponID equivalent based on the item definition index.
*
* @param ItemDefinitionIndex Definition index to get the CSWeaponID value for.
* @return Returns CSWeaponID value for the definition index.
*
* @error Invalid definition index.
* @note In most cases the id will be the item definition index.
*/
native CSWeaponID CS_ItemDefIndexToID(int ItemDefinitionIndex);
/** /**
* Do not edit below this line! * Do not edit below this line!
*/ */
@ -429,5 +440,6 @@ public void __ext_cstrike_SetNTVOptional()
MarkNativeAsOptional("CS_WeaponIDToAlias"); MarkNativeAsOptional("CS_WeaponIDToAlias");
MarkNativeAsOptional("CS_IsValidWeaponID"); MarkNativeAsOptional("CS_IsValidWeaponID");
MarkNativeAsOptional("CS_UpdateClientModel"); MarkNativeAsOptional("CS_UpdateClientModel");
MarkNativeAsOptional("CS_ItemDefIndexToID");
} }
#endif #endif