From f2ef526271e7bf26817841b49866566b4848a347 Mon Sep 17 00:00:00 2001 From: Javekson <132286351+Javekson@users.noreply.github.com> Date: Thu, 1 Feb 2024 09:24:05 +0400 Subject: [PATCH] feat: add WI_SLOT for rg_get_weapon_info (#292) --- .../scripting/include/reapi_gamedll_const.inc | 10 +++++++++- reapi/src/natives/natives_misc.cpp | 14 ++++++++++++++ reapi/src/natives/natives_misc.h | 1 + 3 files changed, 24 insertions(+), 1 deletion(-) diff --git a/reapi/extra/amxmodx/scripting/include/reapi_gamedll_const.inc b/reapi/extra/amxmodx/scripting/include/reapi_gamedll_const.inc index 0b303097..2970c5d5 100644 --- a/reapi/extra/amxmodx/scripting/include/reapi_gamedll_const.inc +++ b/reapi/extra/amxmodx/scripting/include/reapi_gamedll_const.inc @@ -134,7 +134,15 @@ enum WpnInfo * Get params: rg_get_weapon_info(const weapon_id, WI_NAME, const output[], maxlenght); * Set params: - */ - WI_NAME + WI_NAME, + + /* + * Description: - + * Return type: enum InventorySlotType + * Get params: rg_get_weapon_info(const weapon_id, WI_SLOT); + * Set params: rg_set_weapon_info(const weapon_id, WI_SLOT, const value); + */ + WI_SLOT, }; /** diff --git a/reapi/src/natives/natives_misc.cpp b/reapi/src/natives/natives_misc.cpp index 6d4c5a5c..5a01e14e 100644 --- a/reapi/src/natives/natives_misc.cpp +++ b/reapi/src/natives/natives_misc.cpp @@ -840,7 +840,15 @@ cell AMX_NATIVE_CALL rg_get_weapon_info(AMX *amx, cell *params) setAmxString(dest, info->entityName, length); return 1; } + case WI_SLOT: + { + auto pInfo = g_ReGameApi->GetWeaponSlot(weaponId); + if (pInfo) { + return pInfo->slot; + } + return NONE_SLOT; + } default: AMXX_LogError(amx, AMX_ERR_NATIVE, "%s: unknown type statement %i, params count %i", __FUNCTION__, info_type, PARAMS_COUNT); return -1; @@ -896,6 +904,12 @@ cell AMX_NATIVE_CALL rg_set_weapon_info(AMX *amx, cell *params) case WI_NAME: AMXX_LogError(amx, AMX_ERR_NATIVE, "%s: this change will have no effect, type statement %i", __FUNCTION__, info_type); return 0; + case WI_SLOT: + { + auto pInfo = g_ReGameApi->GetWeaponSlot(weaponId); + pInfo->slot = static_cast(*value); + break; + } default: AMXX_LogError(amx, AMX_ERR_NATIVE, "%s: unknown type statement %i, params count %i", __FUNCTION__, info_type, PARAMS_COUNT); return 0; diff --git a/reapi/src/natives/natives_misc.h b/reapi/src/natives/natives_misc.h index 70ca2131..1ad58361 100644 --- a/reapi/src/natives/natives_misc.h +++ b/reapi/src/natives/natives_misc.h @@ -18,6 +18,7 @@ enum WpnInfo WI_AMMO_TYPE, WI_AMMO_NAME, WI_NAME, + WI_SLOT, }; void RegisterNatives_Misc();