eb02cb9efa
working weapons buy menu and mr.ammo is now buyable. a few bugs squished, I hope. git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@1796 fc73d0e0-1445-4013-8a0c-d673dee63da5
1042 lines
No EOL
24 KiB
C++
1042 lines
No EOL
24 KiB
C++
float IID_NONE = 0;
|
|
|
|
#define IsMelee(iid) (iid == IID_NONE || (iid >= IID_WP_TOOLKIT && iid <= IID_WP_POWERAXE))
|
|
#define IsGrenade(iid) (iid >= IID_GREN_FRAG && iid <= IID_GREN_FLASH)
|
|
#define IsRanged(iid) (iid >= IID_WP_USP && iid <= IID_WP_PULSERIFLE)
|
|
|
|
//weapons with ammo, things with a toggle state
|
|
#define NotStackable(iid) (IsRanged(iid))
|
|
|
|
//the ammoless weapons
|
|
float IID_WP_TOOLKIT = 400;
|
|
float IID_WP_KNIFE = 401;
|
|
float IID_WP_AXE = 402;
|
|
float IID_WP_VIBROBLADE = 403;
|
|
float IID_WP_POWERAXE = 404;
|
|
|
|
//the ammoed weapons
|
|
float IID_WP_USP = 405;
|
|
float IID_WP_DEAGLE = 406;
|
|
float IID_WP_NEEDLER = 407;
|
|
float IID_WP_ALIENBLASTER = 408;
|
|
float IID_WP_PIPERIFLE = 409;
|
|
float IID_WP_WINCHESTER = 410;
|
|
float IID_WP_MOSSBERG = 411;
|
|
float IID_WP_JACKHAMMER = 412;
|
|
float IID_WP_MP9 = 413;
|
|
float IID_WP_MP7 = 414;
|
|
float IID_WP_RANGERMASTER = 415;
|
|
float IID_WP_AK112 = 416;
|
|
float IID_WP_AK74 = 417;
|
|
float IID_WP_DKS1 = 418;
|
|
float IID_WP_MOONLIGHT = 419;
|
|
float IID_WP_SA80 = 420;
|
|
float IID_WP_GAUSERIFLE = 421;
|
|
float IID_WP_PULSERIFLE = 422;
|
|
|
|
//and ammo for those guns
|
|
float IID_AM_USP = 505;
|
|
float IID_AM_DEAGLE = 506;
|
|
float IID_AM_NEEDLER = 507;
|
|
float IID_AM_ALIENBLASTER = 508;
|
|
float IID_AM_PIPERIFLE = 509;
|
|
float IID_AM_WINCHESTER = 510;
|
|
float IID_AM_MOSSBERG = 511;
|
|
float IID_AM_JACKHAMMER = 512;
|
|
float IID_AM_MP9 = 513;
|
|
float IID_AM_MP7 = 514;
|
|
float IID_AM_RANGERMASTER = 515;
|
|
float IID_AM_AK112 = 516;
|
|
float IID_AM_AK74 = 517;
|
|
float IID_AM_DKS1 = 518;
|
|
float IID_AM_MOONLIGHT = 519;
|
|
float IID_AM_SA80 = 520;
|
|
float IID_AM_GAUSERIFLE = 521;
|
|
float IID_AM_PULSERIFLE = 522;
|
|
|
|
//grenade items
|
|
float IID_GREN_FRAG = 101;
|
|
float IID_GREN_EMP = 102;
|
|
float IID_GREN_SMOKE = 103;
|
|
float IID_GREN_FLASH = 104;
|
|
|
|
//armour
|
|
#define IsArmor(iid) (iid >= IID_ARM_SHIRT && iid <= IID_ARM_LPOWER)
|
|
float IID_ARM_SHIRT = 201;
|
|
float IID_ARM_LEATHER = 202;
|
|
float IID_ARM_KEVLAR = 203;
|
|
float IID_ARM_METAL = 204;
|
|
float IID_ARM_COMBAT = 205;
|
|
float IID_ARM_BROTHERHOOD = 206;
|
|
float IID_ARM_FORCE = 207;
|
|
float IID_ARM_LPOWER = 208;
|
|
|
|
//stims
|
|
#define IsChem(iid) (iid >= IID_CHEM_STIMPACK && iid <= IID_CHEM_BESERK)
|
|
float IID_CHEM_STIMPACK = 301;
|
|
float IID_CHEM_MEDICALBAG = 302;
|
|
float IID_CHEM_SUPERSTIM = 303;
|
|
float IID_CHEM_ADRENALINE = 304;
|
|
float IID_CHEM_PSYCHO = 305;
|
|
float IID_CHEM_BESERK = 306;
|
|
|
|
float IID_BUILD_MRAMMO = 350;
|
|
float IID_BUILD_SHIELDGEN = 351;
|
|
float IID_BUILD_AUTODOC = 352;
|
|
float IID_BUILD_ROBOFANG = 353;
|
|
|
|
#define IsShootable(iid) (IsMelee(iid) || IsRanged(iid) || IsGrenade(iid))
|
|
|
|
float(float slotno, float iid) FitsInSlot;
|
|
|
|
//slot1 and slot2 are the two hand slots
|
|
//slot3 is the armour slot.
|
|
//the other slots are for misilaneous things.
|
|
|
|
.float islot1;
|
|
.float islot2;
|
|
.float islot3;
|
|
.float islot4;
|
|
.float islot5;
|
|
.float islot6;
|
|
.float islot7;
|
|
.float islot8;
|
|
.float islot9;
|
|
.float islot10;
|
|
.float islot11;
|
|
.float islot12;
|
|
.float islot13;
|
|
.float islot14;
|
|
.float islot15;
|
|
.float islot16;
|
|
#define MAXSLOTS 16
|
|
|
|
void(float sttype, float stnum, string fieldname) clientstat = #232;
|
|
void() SetupStats =
|
|
{
|
|
//2 is ev_float
|
|
//32 is the first stat we are allowed to use
|
|
clientstat(2, 32, "islot1");
|
|
clientstat(2, 33, "islot2");
|
|
clientstat(2, 34, "islot3");
|
|
clientstat(2, 35, "islot4");
|
|
clientstat(2, 36, "islot5");
|
|
clientstat(2, 37, "islot6");
|
|
clientstat(2, 38, "islot7");
|
|
clientstat(2, 39, "islot8");
|
|
clientstat(2, 40, "islot9");
|
|
clientstat(2, 41, "islot10");
|
|
clientstat(2, 42, "islot11");
|
|
clientstat(2, 43, "islot12");
|
|
clientstat(2, 44, "islot13");
|
|
clientstat(2, 45, "islot14");
|
|
clientstat(2, 46, "islot15");
|
|
clientstat(2, 47, "islot16");
|
|
};
|
|
|
|
|
|
#define ToIID(it) floor(it/512)
|
|
#define ToStatus(it) (it&511)
|
|
#define SlotVal(iid,st) ((iid*512) | (st&511))
|
|
|
|
|
|
float(entity e, float slotno) ItemInSlot =
|
|
{
|
|
if (slotno == 1)
|
|
return e.islot1;
|
|
if (slotno == 2)
|
|
return e.islot2;
|
|
if (slotno == 3)
|
|
return e.islot3;
|
|
if (slotno == 4)
|
|
return e.islot4;
|
|
if (slotno == 5)
|
|
return e.islot5;
|
|
if (slotno == 6)
|
|
return e.islot6;
|
|
if (slotno == 7)
|
|
return e.islot7;
|
|
if (slotno == 8)
|
|
return e.islot8;
|
|
if (slotno == 9)
|
|
return e.islot9;
|
|
if (slotno == 10)
|
|
return e.islot10;
|
|
if (slotno == 11)
|
|
return e.islot11;
|
|
if (slotno == 12)
|
|
return e.islot12;
|
|
if (slotno == 13)
|
|
return e.islot13;
|
|
if (slotno == 14)
|
|
return e.islot14;
|
|
if (slotno == 15)
|
|
return e.islot15;
|
|
if (slotno == 16)
|
|
return e.islot16;
|
|
|
|
return 0;
|
|
};
|
|
|
|
void(entity e, float slotno, float item) SetItemSlot =
|
|
{
|
|
if (slotno == 1)
|
|
e.islot1 = item;
|
|
else if (slotno == 2)
|
|
e.islot2 = item;
|
|
else if (slotno == 3)
|
|
e.islot3 = item;
|
|
else if (slotno == 4)
|
|
e.islot4 = item;
|
|
else if (slotno == 5)
|
|
e.islot5 = item;
|
|
else if (slotno == 6)
|
|
e.islot6 = item;
|
|
else if (slotno == 7)
|
|
e.islot7 = item;
|
|
else if (slotno == 8)
|
|
e.islot8 = item;
|
|
else if (slotno == 9)
|
|
e.islot9 = item;
|
|
else if (slotno == 10)
|
|
e.islot10 = item;
|
|
else if (slotno == 11)
|
|
e.islot11 = item;
|
|
else if (slotno == 12)
|
|
e.islot12 = item;
|
|
else if (slotno == 13)
|
|
e.islot13 = item;
|
|
else if (slotno == 14)
|
|
e.islot14 = item;
|
|
else if (slotno == 15)
|
|
e.islot15 = item;
|
|
else if (slotno == 16)
|
|
e.islot16 = item;
|
|
};
|
|
|
|
float(entity e, float iid) SlotOfItem =
|
|
{
|
|
if (ToIID(e.islot1) == iid)
|
|
return 1;
|
|
if (ToIID(e.islot2) == iid)
|
|
return 2;
|
|
if (ToIID(e.islot3) == iid)
|
|
return 3;
|
|
if (ToIID(e.islot4) == iid)
|
|
return 4;
|
|
if (ToIID(e.islot5) == iid)
|
|
return 5;
|
|
if (ToIID(e.islot6) == iid)
|
|
return 6;
|
|
if (ToIID(e.islot7) == iid)
|
|
return 7;
|
|
if (ToIID(e.islot8) == iid)
|
|
return 8;
|
|
if (ToIID(e.islot9) == iid)
|
|
return 9;
|
|
if (ToIID(e.islot10) == iid)
|
|
return 10;
|
|
if (ToIID(e.islot11) == iid)
|
|
return 11;
|
|
if (ToIID(e.islot12) == iid)
|
|
return 12;
|
|
if (ToIID(e.islot13) == iid)
|
|
return 13;
|
|
if (ToIID(e.islot14) == iid)
|
|
return 14;
|
|
if (ToIID(e.islot15) == iid)
|
|
return 15;
|
|
if (ToIID(e.islot16) == iid)
|
|
return 16;
|
|
|
|
return 0;
|
|
};
|
|
|
|
float(entity e, float iid) TotalQuantity =
|
|
{ //iid must be stackable.
|
|
local float ret;
|
|
if (ToIID(e.islot1) == iid)
|
|
ret += ToStatus(e.islot1);
|
|
if (ToIID(e.islot2) == iid)
|
|
ret += ToStatus(e.islot2);
|
|
if (ToIID(e.islot3) == iid)
|
|
ret += ToStatus(e.islot3);
|
|
if (ToIID(e.islot4) == iid)
|
|
ret += ToStatus(e.islot4);
|
|
if (ToIID(e.islot5) == iid)
|
|
ret += ToStatus(e.islot5);
|
|
if (ToIID(e.islot6) == iid)
|
|
ret += ToStatus(e.islot6);
|
|
if (ToIID(e.islot7) == iid)
|
|
ret += ToStatus(e.islot7);
|
|
if (ToIID(e.islot8) == iid)
|
|
ret += ToStatus(e.islot8);
|
|
if (ToIID(e.islot9) == iid)
|
|
ret += ToStatus(e.islot9);
|
|
if (ToIID(e.islot10) == iid)
|
|
ret += ToStatus(e.islot10);
|
|
if (ToIID(e.islot11) == iid)
|
|
ret += ToStatus(e.islot11);
|
|
if (ToIID(e.islot12) == iid)
|
|
ret += ToStatus(e.islot12);
|
|
if (ToIID(e.islot13) == iid)
|
|
ret += ToStatus(e.islot13);
|
|
if (ToIID(e.islot14) == iid)
|
|
ret += ToStatus(e.islot14);
|
|
if (ToIID(e.islot15) == iid)
|
|
ret += ToStatus(e.islot15);
|
|
if (ToIID(e.islot16) == iid)
|
|
ret += ToStatus(e.islot16);
|
|
|
|
return ret;
|
|
};
|
|
|
|
float(entity e) FindEmptySlot =
|
|
{
|
|
if (ToIID(e.islot3) == IID_NONE)
|
|
return 3;
|
|
if (ToIID(e.islot4) == IID_NONE)
|
|
return 4;
|
|
if (ToIID(e.islot5) == IID_NONE)
|
|
return 5;
|
|
if (ToIID(e.islot6) == IID_NONE)
|
|
return 6;
|
|
if (ToIID(e.islot7) == IID_NONE)
|
|
return 7;
|
|
if (ToIID(e.islot8) == IID_NONE)
|
|
return 8;
|
|
if (ToIID(e.islot9) == IID_NONE)
|
|
return 9;
|
|
if (ToIID(e.islot10) == IID_NONE)
|
|
return 10;
|
|
if (ToIID(e.islot11) == IID_NONE)
|
|
return 11;
|
|
if (ToIID(e.islot12) == IID_NONE)
|
|
return 12;
|
|
if (ToIID(e.islot13) == IID_NONE)
|
|
return 13;
|
|
if (ToIID(e.islot14) == IID_NONE)
|
|
return 14;
|
|
if (ToIID(e.islot15) == IID_NONE)
|
|
return 15;
|
|
if (ToIID(e.islot16) == IID_NONE)
|
|
return 16;
|
|
|
|
return 0;
|
|
};
|
|
|
|
float(entity e, float iid) FindSuitableEmptySlot =
|
|
{
|
|
if (ToIID(e.islot1) == IID_NONE)
|
|
if (FitsInSlot(1, iid))
|
|
return 1;
|
|
if (ToIID(e.islot2) == IID_NONE)
|
|
if (FitsInSlot(2, iid))
|
|
return 2;
|
|
if (ToIID(e.islot3) == IID_NONE)
|
|
if (FitsInSlot(3, iid))
|
|
return 3;
|
|
if (ToIID(e.islot4) == IID_NONE)
|
|
if (FitsInSlot(4, iid))
|
|
return 4;
|
|
if (ToIID(e.islot5) == IID_NONE)
|
|
if (FitsInSlot(5, iid))
|
|
return 5;
|
|
if (ToIID(e.islot6) == IID_NONE)
|
|
if (FitsInSlot(6, iid))
|
|
return 6;
|
|
if (ToIID(e.islot7) == IID_NONE)
|
|
if (FitsInSlot(7, iid))
|
|
return 7;
|
|
if (ToIID(e.islot8) == IID_NONE)
|
|
if (FitsInSlot(8, iid))
|
|
return 8;
|
|
if (ToIID(e.islot9) == IID_NONE)
|
|
if (FitsInSlot(9, iid))
|
|
return 9;
|
|
if (ToIID(e.islot10) == IID_NONE)
|
|
if (FitsInSlot(10, iid))
|
|
return 10;
|
|
if (ToIID(e.islot11) == IID_NONE)
|
|
if (FitsInSlot(11, iid))
|
|
return 11;
|
|
if (ToIID(e.islot12) == IID_NONE)
|
|
if (FitsInSlot(12, iid))
|
|
return 12;
|
|
if (ToIID(e.islot13) == IID_NONE)
|
|
if (FitsInSlot(13, iid))
|
|
return 13;
|
|
if (ToIID(e.islot14) == IID_NONE)
|
|
if (FitsInSlot(14, iid))
|
|
return 14;
|
|
if (ToIID(e.islot15) == IID_NONE)
|
|
if (FitsInSlot(15, iid))
|
|
return 15;
|
|
if (ToIID(e.islot16) == IID_NONE)
|
|
if (FitsInSlot(16, iid))
|
|
return 16;
|
|
|
|
return 0;
|
|
};
|
|
|
|
typedef .float slot_t;
|
|
slot_t(float slot) SlotField =
|
|
{
|
|
if (slot == 1)
|
|
return islot1;
|
|
if (slot == 2)
|
|
return islot2;
|
|
if (slot == 3)
|
|
return islot3;
|
|
if (slot == 4)
|
|
return islot4;
|
|
if (slot == 5)
|
|
return islot5;
|
|
if (slot == 6)
|
|
return islot6;
|
|
if (slot == 7)
|
|
return islot7;
|
|
if (slot == 8)
|
|
return islot8;
|
|
if (slot == 9)
|
|
return islot9;
|
|
if (slot == 10)
|
|
return islot10;
|
|
if (slot == 11)
|
|
return islot11;
|
|
if (slot == 12)
|
|
return islot12;
|
|
if (slot == 13)
|
|
return islot13;
|
|
if (slot == 14)
|
|
return islot14;
|
|
if (slot == 15)
|
|
return islot15;
|
|
if (slot == 16)
|
|
return islot16;
|
|
|
|
|
|
bprint(PRINT_MEDIUM, "ERROR: Invalid slot number (", ftos(slot), ")\n");
|
|
return islot1;
|
|
};
|
|
|
|
|
|
string(float iid) GetItemVModel =
|
|
{
|
|
if (iid == IID_NONE)
|
|
return "progs/v_fist.mdl";
|
|
if (iid == IID_WP_TOOLKIT)
|
|
return "progs/v_span.mdl";
|
|
if (iid == IID_WP_KNIFE)
|
|
return "progs/v_knife.mdl";
|
|
if (iid == IID_WP_AXE)
|
|
return "progs/v_axe.mdl";
|
|
if (iid == IID_WP_VIBROBLADE)
|
|
return "progs/v_knife.mdl";
|
|
if (iid == IID_WP_POWERAXE)
|
|
return "progs/v_axe.mdl";
|
|
if (iid == IID_WP_USP)
|
|
return "progs/v_1911.mdl";
|
|
|
|
if (iid == IID_WP_DEAGLE)
|
|
return "progs/v_deagle.mdl";
|
|
if (iid == IID_WP_NEEDLER)
|
|
return "progs/v_1911.mdl";
|
|
if (iid == IID_WP_ALIENBLASTER)
|
|
return "progs/v_alien.mdl";
|
|
if (iid == IID_WP_PIPERIFLE)
|
|
return "progs/v_piperifle.mdl";
|
|
if (iid == IID_WP_WINCHESTER)
|
|
return "progs/v_double.mdl";
|
|
if (iid == IID_WP_MOSSBERG)
|
|
return "progs/v_shotgun.mdl";
|
|
|
|
if (iid == IID_WP_JACKHAMMER)
|
|
return "progs/v_jackhammer.mdl";
|
|
if (iid == IID_WP_MP9)
|
|
return "progs/v_mp9.mdl";
|
|
if (iid == IID_WP_MP7)
|
|
return "progs/v_smg.mdl";
|
|
if (iid == IID_WP_RANGERMASTER)
|
|
return "progs/v_rangem.mdl";
|
|
if (iid == IID_WP_AK112)
|
|
return "progs/v_ak47.mdl";
|
|
if (iid == IID_WP_AK74)
|
|
return "progs/v_ak47.mdl";
|
|
if (iid == IID_WP_DKS1)
|
|
return "progs/v_srifle.mdl";
|
|
if (iid == IID_WP_MOONLIGHT)
|
|
return "progs/v_night.mdl";
|
|
|
|
if (iid == IID_GREN_FRAG)
|
|
return "progs/v_handgren.mdl";
|
|
if (iid == IID_GREN_EMP)
|
|
return "progs/v_handgren.mdl";
|
|
if (iid == IID_GREN_SMOKE)
|
|
return "progs/v_handgren.mdl";
|
|
if (iid == IID_GREN_FLASH)
|
|
return "progs/v_handgren.mdl";
|
|
|
|
bprint(PRINT_MEDIUM, ftos(iid), " without a vmodel!\n");
|
|
return "";
|
|
};
|
|
|
|
string(float iid) GetItemWModel =
|
|
{
|
|
if (iid == IID_WP_KNIFE)
|
|
return "progs/w_knife.mdl";
|
|
if (iid == IID_WP_AXE)
|
|
return "progs/w_knife.mdl";
|
|
if (iid == IID_WP_VIBROBLADE)
|
|
return "progs/w_axe.mdl";
|
|
if (iid == IID_WP_POWERAXE)
|
|
return "progs/w_axe.mdl";
|
|
|
|
if (iid == IID_WP_USP)
|
|
return "progs/w_1911.mdl";
|
|
if (iid == IID_WP_DEAGLE)
|
|
return "progs/w_deagle.mdl";
|
|
if (iid == IID_WP_NEEDLER)
|
|
return "progs/w_1911.mdl";
|
|
if (iid == IID_WP_ALIENBLASTER)
|
|
return "progs/w_alien.mdl";
|
|
if (iid == IID_WP_PIPERIFLE)
|
|
return "progs/w_pipe.mdl";
|
|
if (iid == IID_WP_WINCHESTER)
|
|
return "progs/w_shotgun.mdl";
|
|
if (iid == IID_WP_MOSSBERG)
|
|
return "progs/w_pipe.mdl";
|
|
if (iid == IID_WP_JACKHAMMER)
|
|
return "progs/w_jackhammer.mdl";
|
|
|
|
if (iid == IID_WP_MP9)
|
|
return "progs/w_mp9.mdl";
|
|
if (iid == IID_WP_MP7)
|
|
return "progs/w_mp7.mdl";
|
|
if (iid == IID_WP_RANGERMASTER)
|
|
return "progs/w_rangem.mdl";
|
|
if (iid == IID_WP_AK112)
|
|
return "progs/w_ak47.mdl";
|
|
if (iid == IID_WP_AK74)
|
|
return "progs/w_ak47.mdl";
|
|
if (iid == IID_WP_DKS1)
|
|
return "progs/w_srifle.mdl";
|
|
if (iid == IID_WP_MOONLIGHT)
|
|
return "progs/w_night.mdl";
|
|
if (iid == IID_WP_SA80)
|
|
return "progs/w_sa80.mdl";
|
|
|
|
if (iid == IID_WP_GAUSERIFLE)
|
|
return "progs/w_gauss.mdl";
|
|
if (iid == IID_WP_PULSERIFLE)
|
|
return "progs/w_carbine.mdl";
|
|
|
|
if (iid == IID_GREN_FRAG)
|
|
return "progs/grenade2.mdl";
|
|
if (iid == IID_GREN_EMP)
|
|
return "progs/grenade2.mdl";
|
|
if (iid == IID_GREN_SMOKE)
|
|
return "progs/grenade2.mdl";
|
|
if (iid == IID_GREN_FLASH)
|
|
return "progs/grenade2.mdl";
|
|
|
|
if (iid == IID_CHEM_STIMPACK)
|
|
return "maps/b_bh10.bsp";
|
|
if (iid == IID_CHEM_MEDICALBAG)
|
|
return "maps/b_bh25.bsp";
|
|
if (iid == IID_CHEM_SUPERSTIM)
|
|
return "maps/b_bh100.bsp";
|
|
|
|
//fixme
|
|
if (iid == IID_CHEM_ADRENALINE)
|
|
return "maps/b_bh10.bsp";
|
|
if (iid == IID_CHEM_PSYCHO)
|
|
return "maps/b_bh25.bsp";
|
|
if (iid == IID_CHEM_BESERK)
|
|
return "maps/b_bh100.bsp";
|
|
|
|
|
|
return "progs/s_light.spr"; //no model. :/
|
|
};
|
|
|
|
float(float iid) WeaponAmmoType =
|
|
{
|
|
if (iid == IID_WP_USP)
|
|
return IID_AM_USP;
|
|
if (iid == IID_WP_DEAGLE)
|
|
return IID_AM_DEAGLE;
|
|
if (iid == IID_WP_NEEDLER)
|
|
return IID_AM_NEEDLER;
|
|
if (iid == IID_WP_ALIENBLASTER)
|
|
return IID_AM_ALIENBLASTER;
|
|
if (iid == IID_WP_PIPERIFLE)
|
|
return IID_AM_PIPERIFLE;
|
|
if (iid == IID_WP_WINCHESTER)
|
|
return IID_AM_WINCHESTER;
|
|
if (iid == IID_WP_MOSSBERG)
|
|
return IID_AM_MOSSBERG;
|
|
if (iid == IID_WP_JACKHAMMER)
|
|
return IID_AM_JACKHAMMER;
|
|
if (iid == IID_WP_MP9)
|
|
return IID_AM_MP9;
|
|
if (iid == IID_WP_MP7)
|
|
return IID_AM_MP7;
|
|
if (iid == IID_WP_RANGERMASTER)
|
|
return IID_AM_RANGERMASTER;
|
|
if (iid == IID_WP_AK112)
|
|
return IID_AM_AK112;
|
|
if (iid == IID_WP_AK74)
|
|
return IID_AM_AK74;
|
|
if (iid == IID_WP_DKS1)
|
|
return IID_AM_DKS1;
|
|
if (iid == IID_WP_MOONLIGHT)
|
|
return IID_AM_MOONLIGHT;
|
|
if (iid == IID_WP_SA80)
|
|
return IID_AM_SA80;
|
|
if (iid == IID_WP_GAUSERIFLE)
|
|
return IID_AM_GAUSERIFLE;
|
|
if (iid == IID_WP_PULSERIFLE)
|
|
return IID_AM_PULSERIFLE;
|
|
|
|
return IID_NONE;
|
|
};
|
|
|
|
float(float iid) WeaponMagQuant =
|
|
{
|
|
if (iid == IID_WP_USP)
|
|
return 12;
|
|
if (iid == IID_WP_DEAGLE)
|
|
return 7;
|
|
if (iid == IID_WP_NEEDLER)
|
|
return 15;
|
|
if (iid == IID_WP_ALIENBLASTER)
|
|
return 6;
|
|
if (iid == IID_WP_PIPERIFLE)
|
|
return 1;
|
|
if (iid == IID_WP_WINCHESTER)
|
|
return 2;
|
|
if (iid == IID_WP_MOSSBERG)
|
|
return 6;
|
|
if (iid == IID_WP_JACKHAMMER)
|
|
return 10;
|
|
if (iid == IID_WP_MP9)
|
|
return 30;
|
|
if (iid == IID_WP_MP7)
|
|
return 30;
|
|
if (iid == IID_WP_RANGERMASTER)
|
|
return 10;
|
|
if (iid == IID_WP_AK112)
|
|
return 24;
|
|
if (iid == IID_WP_AK74)
|
|
return 30;
|
|
if (iid == IID_WP_DKS1)
|
|
return 8;
|
|
if (iid == IID_WP_MOONLIGHT)
|
|
return 30;
|
|
if (iid == IID_WP_SA80)
|
|
return 30;
|
|
if (iid == IID_WP_GAUSERIFLE)
|
|
return 10;
|
|
if (iid == IID_WP_PULSERIFLE)
|
|
return 40;
|
|
|
|
return 0;
|
|
};
|
|
|
|
float(float iid) GetItemWeight =
|
|
{
|
|
if (iid == IID_NONE)
|
|
return 0;
|
|
if (iid == IID_WP_KNIFE)
|
|
return 1;
|
|
if (iid == IID_WP_AXE)
|
|
return 2;
|
|
if (iid == IID_WP_VIBROBLADE)
|
|
return 8;
|
|
if (iid == IID_WP_POWERAXE)
|
|
return 6;
|
|
if (iid == IID_WP_USP)
|
|
return 1;
|
|
if (iid == IID_WP_DEAGLE)
|
|
return 2;
|
|
if (iid == IID_WP_NEEDLER)
|
|
return 2;
|
|
if (iid == IID_WP_ALIENBLASTER)
|
|
return 2;
|
|
if (iid == IID_WP_PIPERIFLE)
|
|
return 3;
|
|
if (iid == IID_WP_WINCHESTER)
|
|
return 4;
|
|
if (iid == IID_WP_MOSSBERG)
|
|
return 5;
|
|
if (iid == IID_WP_JACKHAMMER)
|
|
return 6;
|
|
if (iid == IID_WP_MP9)
|
|
return 3;
|
|
if (iid == IID_WP_MP7)
|
|
return 3;
|
|
if (iid == IID_WP_RANGERMASTER)
|
|
return 5;
|
|
if (iid == IID_WP_AK112)
|
|
return 5;
|
|
if (iid == IID_WP_AK74)
|
|
return 5;
|
|
if (iid == IID_WP_DKS1)
|
|
return 7;
|
|
if (iid == IID_WP_MOONLIGHT)
|
|
return 5;
|
|
if (iid == IID_WP_SA80)
|
|
return 5;
|
|
if (iid == IID_WP_GAUSERIFLE)
|
|
return 9;
|
|
if (iid == IID_WP_PULSERIFLE)
|
|
return 10;
|
|
|
|
|
|
if (iid == IID_ARM_SHIRT)
|
|
return 3;
|
|
if (iid == IID_ARM_LEATHER)
|
|
return 5;
|
|
if (iid == IID_ARM_KEVLAR)
|
|
return 9;
|
|
if (iid == IID_ARM_METAL)
|
|
return 15;
|
|
if (iid == IID_ARM_COMBAT)
|
|
return 12;
|
|
if (iid == IID_ARM_BROTHERHOOD)
|
|
return 17;
|
|
if (iid == IID_ARM_FORCE)
|
|
return 6;
|
|
if (iid == IID_ARM_LPOWER)
|
|
return 20;
|
|
|
|
if (iid == IID_BUILD_MRAMMO)
|
|
return 2;
|
|
if (iid == IID_BUILD_SHIELDGEN)
|
|
return 4;
|
|
if (iid == IID_BUILD_AUTODOC)
|
|
return 3;
|
|
if (iid == IID_BUILD_ROBOFANG)
|
|
return 2;
|
|
|
|
|
|
// bprint(PRINT_MEDIUM, ftos(iid), " without a weight!\n");
|
|
return 0;
|
|
};
|
|
|
|
float(float item) GetItemsWeight =
|
|
{
|
|
local float iid;
|
|
iid = ToIID(item);
|
|
if (NotStackable(iid))
|
|
return GetItemWeight(iid);
|
|
else
|
|
return GetItemWeight(iid) * ToStatus(item);
|
|
};
|
|
|
|
|
|
string(float iid) GetItemName =
|
|
{
|
|
if (iid == IID_NONE)
|
|
return "nothing";
|
|
|
|
|
|
if (iid == IID_WP_TOOLKIT)
|
|
return "toolkit";
|
|
if (iid == IID_WP_KNIFE)
|
|
return "knife";
|
|
if (iid == IID_WP_AXE)
|
|
return "axe";
|
|
if (iid == IID_WP_VIBROBLADE)
|
|
return "ripper";
|
|
if (iid == IID_WP_POWERAXE)
|
|
return "poweraxe";
|
|
if (iid == IID_WP_USP)
|
|
return "1911";
|
|
if (iid == IID_WP_DEAGLE)
|
|
return "desert eagle";
|
|
if (iid == IID_WP_NEEDLER)
|
|
return "needler";
|
|
if (iid == IID_WP_ALIENBLASTER)
|
|
return "alien blaster";
|
|
if (iid == IID_WP_PIPERIFLE)
|
|
return "pipe rifle";
|
|
if (iid == IID_WP_WINCHESTER)
|
|
return "winchester";
|
|
if (iid == IID_WP_MOSSBERG)
|
|
return "mossberg";
|
|
if (iid == IID_WP_JACKHAMMER)
|
|
return "jackhammer";
|
|
if (iid == IID_WP_MP9)
|
|
return "mp9";
|
|
if (iid == IID_WP_MP7)
|
|
return "grease gun";
|
|
if (iid == IID_WP_RANGERMASTER)
|
|
return "rangemaster";
|
|
if (iid == IID_WP_AK112)
|
|
return "ak-112";
|
|
if (iid == IID_WP_AK74)
|
|
return "ak-74";
|
|
if (iid == IID_WP_DKS1)
|
|
return "dks-1";
|
|
if (iid == IID_WP_MOONLIGHT)
|
|
return "moonlight";
|
|
if (iid == IID_WP_SA80)
|
|
return "sa-80";
|
|
if (iid == IID_WP_GAUSERIFLE)
|
|
return "gauss rifle";
|
|
if (iid == IID_WP_PULSERIFLE)
|
|
return "laser carbine";
|
|
|
|
|
|
if (iid == IID_AM_USP)
|
|
return "ammo for 1911";
|
|
if (iid == IID_AM_DEAGLE)
|
|
return "ammo for desert eagle";
|
|
if (iid == IID_AM_NEEDLER)
|
|
return "ammo for needler";
|
|
if (iid == IID_AM_ALIENBLASTER)
|
|
return "ammo for alien blaster";
|
|
if (iid == IID_AM_PIPERIFLE)
|
|
return "ammo for pipe rifle";
|
|
if (iid == IID_AM_WINCHESTER)
|
|
return "ammo for winchester";
|
|
if (iid == IID_AM_MOSSBERG)
|
|
return "ammo for mossberg";
|
|
if (iid == IID_AM_JACKHAMMER)
|
|
return "ammo for jackhammer";
|
|
if (iid == IID_AM_MP9)
|
|
return "ammo for mp9";
|
|
if (iid == IID_AM_MP7)
|
|
return "ammo for grease gun";
|
|
if (iid == IID_AM_RANGERMASTER)
|
|
return "ammo for rangemaster";
|
|
if (iid == IID_AM_AK112)
|
|
return "ammo for ak-112";
|
|
if (iid == IID_AM_AK74)
|
|
return "ammo for ak-74";
|
|
if (iid == IID_AM_DKS1)
|
|
return "ammo for dks-1";
|
|
if (iid == IID_AM_MOONLIGHT)
|
|
return "ammo for moonlight";
|
|
if (iid == IID_AM_SA80)
|
|
return "ammo for sa-80";
|
|
if (iid == IID_AM_GAUSERIFLE)
|
|
return "ammo for gauss rifle";
|
|
if (iid == IID_AM_PULSERIFLE)
|
|
return "ammo for laser carbine";
|
|
|
|
|
|
if (iid == IID_GREN_FRAG)
|
|
return "frag grenade";
|
|
if (iid == IID_GREN_EMP)
|
|
return "emp grenade";
|
|
if (iid == IID_GREN_SMOKE)
|
|
return "smoke grenade";
|
|
if (iid == IID_GREN_FLASH)
|
|
return "flashbang";
|
|
|
|
|
|
if (iid == IID_ARM_SHIRT)
|
|
return "bulletproof shirt";
|
|
if (iid == IID_ARM_LEATHER)
|
|
return "leather armor";
|
|
if (iid == IID_ARM_KEVLAR)
|
|
return "kevlar armor";
|
|
if (iid == IID_ARM_METAL)
|
|
return "metal armor";
|
|
if (iid == IID_ARM_COMBAT)
|
|
return "combat armor";
|
|
if (iid == IID_ARM_BROTHERHOOD)
|
|
return "brotherhood armor";
|
|
if (iid == IID_ARM_FORCE)
|
|
return "force armor";
|
|
if (iid == IID_ARM_LPOWER)
|
|
return "light power armor";
|
|
|
|
|
|
if (iid == IID_CHEM_STIMPACK)
|
|
return "stimpack";
|
|
if (iid == IID_CHEM_MEDICALBAG)
|
|
return "medical bag";
|
|
if (iid == IID_CHEM_SUPERSTIM)
|
|
return "superstim";
|
|
if (iid == IID_CHEM_ADRENALINE)
|
|
return "adrenaline";
|
|
if (iid == IID_CHEM_PSYCHO)
|
|
return "psycho";
|
|
if (iid == IID_CHEM_BESERK)
|
|
return "beserk";
|
|
|
|
|
|
if (iid == IID_BUILD_MRAMMO)
|
|
return "mr. ammo";
|
|
if (iid == IID_BUILD_SHIELDGEN)
|
|
return "shield-gen";
|
|
if (iid == IID_BUILD_AUTODOC)
|
|
return "auto-doc";
|
|
if (iid == IID_BUILD_ROBOFANG)
|
|
return "robofang";
|
|
|
|
bprint(PRINT_MEDIUM, ftos(iid), " without a name!\n");
|
|
return strcat("unknown", ftos(iid));
|
|
};
|
|
|
|
|
|
float(string itname) ItemIDOfName =
|
|
{
|
|
if (itname == "nothing")
|
|
return IID_NONE;
|
|
if (itname == "toolkit")
|
|
return IID_WP_TOOLKIT;
|
|
if (itname == "knife")
|
|
return IID_WP_KNIFE;
|
|
if (itname == "axe")
|
|
return IID_WP_AXE;
|
|
if (itname == "ripper")
|
|
return IID_WP_VIBROBLADE;
|
|
if (itname == "poweraxe")
|
|
return IID_WP_POWERAXE;
|
|
if (itname == "1911")
|
|
return IID_WP_USP;
|
|
if (itname == "desert eagle")
|
|
return IID_WP_DEAGLE;
|
|
if (itname == "needler")
|
|
return IID_WP_NEEDLER;
|
|
if (itname == "alien blaster")
|
|
return IID_WP_ALIENBLASTER;
|
|
if (itname == "pipe rifle")
|
|
return IID_WP_PIPERIFLE;
|
|
if (itname == "winchester")
|
|
return IID_WP_WINCHESTER;
|
|
if (itname == "mossberg")
|
|
return IID_WP_MOSSBERG;
|
|
if (itname == "jackhammer")
|
|
return IID_WP_JACKHAMMER;
|
|
if (itname == "mp9")
|
|
return IID_WP_MP9;
|
|
if (itname == "grease gun")
|
|
return IID_WP_MP7;
|
|
if (itname == "rangemaster")
|
|
return IID_WP_RANGERMASTER;
|
|
if (itname == "ak-112")
|
|
return IID_WP_AK112;
|
|
if (itname == "ak-74")
|
|
return IID_WP_AK74;
|
|
if (itname == "dks-1")
|
|
return IID_WP_DKS1;
|
|
if (itname == "moonlight")
|
|
return IID_WP_MOONLIGHT;
|
|
if (itname == "sa-80")
|
|
return IID_WP_SA80;
|
|
if (itname == "gauss rifle")
|
|
return IID_WP_GAUSERIFLE;
|
|
if (itname == "laser carbine")
|
|
return IID_WP_PULSERIFLE;
|
|
if (itname == "ammo for 1911")
|
|
return IID_AM_USP;
|
|
if (itname == "ammo for desert eagle")
|
|
return IID_AM_DEAGLE;
|
|
if (itname == "ammo for needler")
|
|
return IID_AM_NEEDLER;
|
|
if (itname == "ammo for alienblaster")
|
|
return IID_AM_ALIENBLASTER;
|
|
if (itname == "ammo for piperifle")
|
|
return IID_AM_PIPERIFLE;
|
|
if (itname == "ammo for winchester")
|
|
return IID_AM_WINCHESTER;
|
|
if (itname == "ammo for mossberg")
|
|
return IID_AM_MOSSBERG;
|
|
if (itname == "ammo for jackhammer")
|
|
return IID_AM_JACKHAMMER;
|
|
if (itname == "ammo for mp9")
|
|
return IID_AM_MP9;
|
|
if (itname == "ammo for grease gun")
|
|
return IID_AM_MP7;
|
|
if (itname == "ammo for rangemaster")
|
|
return IID_AM_RANGERMASTER;
|
|
if (itname == "ammo for ak-112")
|
|
return IID_AM_AK112;
|
|
if (itname == "ammo for ak-74")
|
|
return IID_AM_AK74;
|
|
if (itname == "ammo for dks-1")
|
|
return IID_AM_DKS1;
|
|
if (itname == "ammo for moonlight")
|
|
return IID_AM_MOONLIGHT;
|
|
if (itname == "ammo for sa-80")
|
|
return IID_AM_SA80;
|
|
if (itname == "ammo for gauss rifle")
|
|
return IID_AM_GAUSERIFLE;
|
|
if (itname == "ammo for laser carbine")
|
|
return IID_AM_PULSERIFLE;
|
|
if (itname == "frag grenade")
|
|
return IID_GREN_FRAG;
|
|
if (itname == "emp grenade")
|
|
return IID_GREN_EMP;
|
|
if (itname == "smoke grenade")
|
|
return IID_GREN_SMOKE;
|
|
if (itname == "flashbang")
|
|
return IID_GREN_FLASH;
|
|
if (itname == "bulletproof shirt")
|
|
return IID_ARM_SHIRT;
|
|
if (itname == "leather armor")
|
|
return IID_ARM_LEATHER;
|
|
if (itname == "kevlar armor")
|
|
return IID_ARM_KEVLAR;
|
|
if (itname == "metal armor")
|
|
return IID_ARM_METAL;
|
|
if (itname == "combat armor")
|
|
return IID_ARM_COMBAT;
|
|
if (itname == "brotherhood armor")
|
|
return IID_ARM_BROTHERHOOD;
|
|
if (itname == "force armor")
|
|
return IID_ARM_FORCE;
|
|
if (itname == "light power armor")
|
|
return IID_ARM_LPOWER;
|
|
if (itname == "stimpacks")
|
|
return IID_CHEM_STIMPACK;
|
|
if (itname == "stimpack")
|
|
return IID_CHEM_STIMPACK;
|
|
if (itname == "medical bag")
|
|
return IID_CHEM_MEDICALBAG;
|
|
if (itname == "bandages")
|
|
return IID_CHEM_MEDICALBAG;
|
|
if (itname == "superstims")
|
|
return IID_CHEM_SUPERSTIM;
|
|
if (itname == "adrenaline")
|
|
return IID_CHEM_ADRENALINE;
|
|
if (itname == "psycho")
|
|
return IID_CHEM_PSYCHO;
|
|
if (itname == "beserk")
|
|
return IID_CHEM_BESERK;
|
|
if (itname == "mr.ammo")
|
|
return IID_BUILD_MRAMMO;
|
|
if (itname == "mrammo")
|
|
return IID_BUILD_MRAMMO;
|
|
if (itname == "shield-gen")
|
|
return IID_BUILD_SHIELDGEN;
|
|
if (itname == "shieldgen")
|
|
return IID_BUILD_SHIELDGEN;
|
|
if (itname == "auto-doc")
|
|
return IID_BUILD_AUTODOC;
|
|
if (itname == "autodoc")
|
|
return IID_BUILD_AUTODOC;
|
|
if (itname == "robofang")
|
|
return IID_BUILD_ROBOFANG;
|
|
if (itname == "doggie")
|
|
return IID_BUILD_ROBOFANG;
|
|
return 0;
|
|
};
|
|
|
|
|
|
|
|
float(float slotno, float iid) FitsInSlot =
|
|
{
|
|
if (!iid) //nothing can be put in every slot.
|
|
return true;
|
|
if (slotno == 1 || slotno == 2)
|
|
return IsShootable(iid);
|
|
if (slotno == 3)
|
|
return IsArmor(iid);
|
|
return true;
|
|
}; |