diff --git a/source/Misc/Constants.cpp b/source/Misc/Constants.cpp index a3962c2b..8633b524 100644 --- a/source/Misc/Constants.cpp +++ b/source/Misc/Constants.cpp @@ -331,7 +331,7 @@ static const EnumElement g_ServerOptionEnum[] = { {_SC("WallGlitch"), vcmpServerOptionWallGlitch}, {_SC("DisableBackfaceCulling"), vcmpServerOptionDisableBackfaceCulling}, {_SC("DisableHeliBladeDamage"), vcmpServerOptionDisableHeliBladeDamage}, - {_SC("DisableCrouch "), vcmpServerOptionDisableCrouch}, + {_SC("DisableCrouch"), vcmpServerOptionDisableCrouch}, {_SC("Max"), vcmpServerOptionDisableCrouch} }; @@ -360,16 +360,16 @@ static const EnumElement g_VehicleOptionEnum[] = { {_SC("RadioLocked"), vcmpVehicleOptionRadioLocked}, {_SC("Ghost"), vcmpVehicleOptionGhost}, {_SC("Siren"), vcmpVehicleOptionSiren}, - {_SC("SingleUse "), vcmpVehicleOptionSingleUse}, - {_SC("EngineDisabled "), vcmpVehicleOptionEngineDisabled}, - {_SC("BootOpen "), vcmpVehicleOptionBootOpen}, + {_SC("SingleUse"), vcmpVehicleOptionSingleUse}, + {_SC("EngineDisabled"), vcmpVehicleOptionEngineDisabled}, + {_SC("BootOpen"), vcmpVehicleOptionBootOpen}, {_SC("Max"), vcmpVehicleOptionSiren} }; // ------------------------------------------------------------------------------------------------ static const EnumElement g_PickupOptionEnum[] = { {_SC("Unknown"), SQMOD_UNKNOWN}, - {_SC("SingleUse "), vcmpPickupOptionSingleUse}, + {_SC("SingleUse"), vcmpPickupOptionSingleUse}, {_SC("Max"), vcmpPickupOptionSingleUse} }; diff --git a/source/Misc/Register.cpp b/source/Misc/Register.cpp index e22581c7..4a4ee4f7 100644 --- a/source/Misc/Register.cpp +++ b/source/Misc/Register.cpp @@ -142,6 +142,7 @@ void Register_Misc(HSQUIRRELVM vm) .FmtFunc(_SC("SetAutomobileName"), &SetAutomobileName) .FmtFunc(_SC("GetAutomobileID"), &GetAutomobileID) .Func(_SC("IsAutomobileValid"), &IsAutomobileValid) + .Func(_SC("GetWeaponSlot"), &GetWeaponSlot) .Func(_SC("GetWeaponName"), &GetWeaponName) .FmtFunc(_SC("SetWeaponName"), &SetWeaponName) .Func(_SC("GetCustomWeaponNamePoolSize"), &GetCustomWeaponNamePoolSize) diff --git a/source/Misc/Weapon.cpp b/source/Misc/Weapon.cpp index 0674e6ad..6631e85c 100644 --- a/source/Misc/Weapon.cpp +++ b/source/Misc/Weapon.cpp @@ -58,6 +58,57 @@ static inline bool IsCustomWeapon(Uint32 id) return (id > 70); } +// ------------------------------------------------------------------------------------------------ +Uint32 GetWeaponSlot(Uint32 id) +{ + switch(id) { + case 0: + case 1: + return 0; + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + return 1; + case 12: + case 13: + case 14: + case 15: + return 2; + case 17: + case 18: + return 3; + case 19: + case 20: + case 21: + return 4; + case 22: + case 23: + case 24: + case 25: + return 5; + case 26: + case 27: + return 6; + case 28: + case 29: + return 8; + case 30: + case 31: + case 32: + case 33: + return 7; + default: + return 255; + } +} + // ------------------------------------------------------------------------------------------------ CCStr GetWeaponName(Uint32 id) { diff --git a/source/Misc/Weapon.hpp b/source/Misc/Weapon.hpp index 4bb292fa..450414a8 100644 --- a/source/Misc/Weapon.hpp +++ b/source/Misc/Weapon.hpp @@ -7,6 +7,11 @@ // ------------------------------------------------------------------------------------------------ namespace SqMod { +/* ------------------------------------------------------------------------------------------------ + * Retrieve the slot associated with a weapon identifier. +*/ +Uint32 GetWeaponSlot(Uint32 id); + /* ------------------------------------------------------------------------------------------------ * Retrieve the name associated with a weapon identifier. */