#include #include "game/chr/chraicommands.h" #include "game/game_000000.h" #include "game/game_0601b0.h" #include "game/data/inventory.h" #include "stagesetup.h" #include "types.h" struct inventory_menupos invmenupos_00010fd0 = { 0, 0, 0, 1, 6, }; struct inventory_menupos invmenupos_00010fe4 = { 0, 3, 1.4, 1, 6, }; struct inventory_menupos invmenupos_00010ff8 = { 0, 9, 2, 1, 6, }; struct inventory_menupos invmenupos_0001100c = { 0, 14, 2, 1, 6, }; struct inventory_menupos invmenupos_00011020 = { 0, 18, 2, 1, 6, }; struct inventory_menupos invmenupos_00011034 = { 0, 22, 3, 1, 6, }; struct inventory_menupos invmenupos_00011048 = { 0, 25, 15, 5, 6, }; struct inventory_menupos invmenupos_0001105c = { 0, 35, 1, 1, 6, }; struct inventory_menupos invmenupos_00011070 = { 0, 0, 0, 0.2, 2.3509887016446E-38, }; struct inventory_menupos invmenupos_00011084 = { 0.2, 0.2, 0.2, 0.2, 2.3509887016446E-38, }; struct inventory_menupos invmenupos_00011098 = { 0.6, 0.6, 0.6, 0.2, 2.3509887016446E-38, }; struct inventory_menupos invmenupos_000110ac = { 0.6, 0.6, 2.6, 0.2, 2.3509887016446E-38, }; struct inventory_typee inve_000110c0 = { 0, 3, 8, 15, 0.9721, 0.9767, 0x10000000, 0x00000002, }; struct inventory_typee inve_000110e0 = { 0, 3, 8, 15, 0.9721, 0.9767, 0x10000000, 0x00000006, }; struct inventory_typee inve_00011100 = { 0, 3, 8, 15, 0.9721, 0.9767, 0x07000000, 0x00000002, }; struct inventory_typee inve_00011120 = { 30, 3, 8, 15, 0.9721, 0.9767, 0x15000000, 0x00000002, }; struct inventory_typee inve_00011140 = { 30, 3, 8, 15, 0.9721, 0.9767, 0x15000000, 0x00000006, }; struct weaponfunc_shootsingle invfunc_00011160 = { INVENTORYFUNCTYPE_SHOOT_SINGLE, L_GUN(85), // name 0x00, // unk06 0, // unk07 &invmenupos_0001100c, // menupos NULL, // fire animation 0x00000000, // flags &invmenupos_00011098, 0x00000000, 0x3f800000, 0x40c00000, 6, 18, 2, 8, 0x40a00000, 0x40000000, 0x00000000, 0x40800000, 0x04008039, 0x01000000, }; struct inventory_ammo invammo_default = { AMMOTYPE_RIFLE, CASING_RIFLE, 30, // clip size NULL, // reload animation 0, // style }; struct weapon invitem_hammer = { 0, // lo model 0, // hi model NULL, // equip animation NULL, // unequip animation NULL, // pritosec animation NULL, // sectopri animation NULL, // pri function NULL, // sec function &invammo_default, // pri ammo NULL, // sec ammo &inve_000110c0, // eptr 1, // sway 12.5, // left/right -17, // up/down -27.5, // front/back 1, // unk38 NULL, // fptr NULL, // gptr L_GUN(0), // short name L_GUN(0), // name L_GUN(0), // manufacturer L_GUN(0), // description 0x00001258, // flags }; struct weapon invitem_nothing = { 0, // lo model 0, // hi model NULL, // equip animation NULL, // unequip animation NULL, // pritosec animation NULL, // sectopri animation NULL, // pri function NULL, // sec function NULL, // pri ammo NULL, // sec ammo &inve_000110c0, // eptr 1, // sway 12.5, // left/right -17, // up/down -27.5, // front/back 1, // unk38 NULL, // fptr NULL, // gptr L_GUN(0), // short name L_GUN(0), // name L_GUN(0), // manufacturer L_GUN(0), // description 0x00001000, // flags }; u32 invanim_punch_type3[] = { gunscript_playanimation(0x03e9, 0, 10000) gunscript_waittime(7, 2) gunscript_end }; u32 invanim_punch_type1[] = { gunscript_playanimation(0x03ea, 0, 10000) gunscript_waittime(8, 2) gunscript_end }; u32 invanim_punch_type2[] = { gunscript_playanimation(0x041f, 0, 10000) gunscript_waittime(7, 2) gunscript_end }; u32 invanim_punch_type4[] = { gunscript_playanimation(0x0425, 0, 10000) gunscript_waittime(8, 2) gunscript_waittime(18, 3) gunscript_end }; u32 invanim_punch[] = { gunscript_random(20, invanim_punch_type1) gunscript_random(40, invanim_punch_type2) gunscript_random(60, invanim_punch_type3) gunscript_include(0, invanim_punch_type4) gunscript_end }; struct weaponfunc_close invfunc_unarmed_punch = { INVENTORYFUNCTYPE_CLOSE, L_GUN(100), // name 0x00, // unk06 -1, // unk07 &invmenupos_00010fd0, // menupos invanim_punch, // fire animation 0x0041a200, // flags 0x3f000000, 0x42700000, 0x00000069, 0x00000069, 0x00000069, 0x40f00000, 0xc20c0000, 0x40f00000, 0xc20c0000, 0xbf800000, 0xbf800000, 0x40000000, 0x40000000, 0x00000000, }; struct weaponfunc_close invfunc_unarmed_disarm = { INVENTORYFUNCTYPE_CLOSE, L_GUN(101), // name 0x00, // unk06 -1, // unk07 &invmenupos_00010fd0, // menupos invanim_punch, // fire animation 0x0041a600, // flags 0x3e99999a, 0x42700000, 0x00000069, 0x00000069, 0x00000069, 0x40f00000, 0xc20c0000, 0x40f00000, 0xc20c0000, 0xbf800000, 0xbf800000, 0x40000000, 0x40000000, 0x00000000, }; struct weapon invitem_unarmed = { FILE_GCOMBATHANDSLOD, // lo model FILE_GCOMBATHANDSLOD, // hi model NULL, // equip animation NULL, // unequip animation NULL, // pritosec animation NULL, // sectopri animation {&invfunc_unarmed_punch, &invfunc_unarmed_disarm}, // functions NULL, // pri ammo NULL, // sec ammo &inve_00011100, // eptr 1, // sway 7.5, // left/right -41, // up/down -16, // front/back 1, // unk38 NULL, // fptr NULL, // gptr L_GUN(6), // short name L_GUN(6), // name L_GUN(0), // manufacturer L_GUN(155), // description 0x08042258, // flags }; s8 invg_000113cc[] = {90, 0, 42, 0, 43, 0, 44, 0, 45, 0, 46, 0, 47, 0, -1}; s8 invg_000113dc[] = {90, 0, 42, 0, 43, 0, 45, 0, 47, 0, -1}; s8 invg_000113e8[] = {90, 0, 42, 0, 43, 0, 44, 0, 46, 0, -1}; struct inventory_typef invf_000113f4[] = { { 0x0100, 0x0000, 0x0100, 0x002a, 0x0000 }, { 0x0100, 0x0000, 0x0100, 0x002b, 0x0000 }, { 0x0100, 0x0000, 0x0100, 0x002c, 0x0000 }, { 0x0100, 0x0000, 0x0100, 0x002d, 0x0000 }, { 0x0100, 0x0000, 0x0100, 0x002e, 0x0000 }, { 0x0100, 0x0000, 0x0100, 0x002f, 0x0000 }, { 0x0100, 0x0000, 0x0100, 0x0035, 0x0000 }, { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, }; struct inventory_typef invf_00011444[] = { { 0x0100, 0x0000, 0x0100, 0x002a, 0x0000 }, { 0x0100, 0x0000, 0x0100, 0x002b, 0x0000 }, { 0x0100, 0x0000, 0x0100, 0x002d, 0x0000 }, { 0x0100, 0x0000, 0x0100, 0x002e, 0x0000 }, { 0x0100, 0x0000, 0x0100, 0x002f, 0x0000 }, { 0x0100, 0x0000, 0x0100, 0x0035, 0x0000 }, { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, }; struct inventory_typef invf_0001148c[] = { { 0x0100, 0x0000, 0x0100, 0x002a, 0x0000 }, { 0x0100, 0x0000, 0x0100, 0x002b, 0x0000 }, { 0x0100, 0x0000, 0x0100, 0x002c, 0x0000 }, { 0x0100, 0x0000, 0x0100, 0x002e, 0x0000 }, { 0x0100, 0x0000, 0x0100, 0x002f, 0x0000 }, { 0x0100, 0x0000, 0x0100, 0x0035, 0x0000 }, { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, }; u32 invanim_falcon2_reload_0[] = { gunscript_playanimation(0x00ed, 0, 10000) gunscript_showpart(1, 53) gunscript_showpart(1, 43) gunscript_showpart(1, 42) gunscript_playsound(10, 0x01d8) gunscript_hidepart(19, 42) gunscript_waittime(24, 1) gunscript_playsound(24, 0x80f6) gunscript_hidepart(24, 43) gunscript_playsound(53, 0x01db) gunscript_waittime(53, 3) gunscript_end }; u32 invanim_falcon2scope_reload_0[] = { gunscript_playanimation(0x0417, 0, 10000) gunscript_showpart(1, 53) gunscript_showpart(1, 43) gunscript_showpart(1, 42) gunscript_playsound(10, 0x01d8) gunscript_hidepart(19, 42) gunscript_waittime(24, 1) gunscript_playsound(24, 0x80f6) gunscript_hidepart(24, 43) gunscript_playsound(53, 0x01db) gunscript_waittime(53, 3) gunscript_end }; u32 invanim_falcon2_reload_1[] = { gunscript_playanimation(0x03f1, 0, 10000) gunscript_hidepart(1, 43) gunscript_showpart(1, 42) gunscript_playsound(6, 0x01d8) gunscript_waittime(50, 1) gunscript_playsound(50, 0x80f6) gunscript_playsound(71, 0x01db) gunscript_end }; u32 invanim_falcon2_reload[] = { gunscript_include(1, invanim_falcon2_reload_1) gunscript_include(0, invanim_falcon2_reload_0) gunscript_end }; u32 invanim_falcon2scope_reload[] = { gunscript_include(1, invanim_falcon2_reload_1) gunscript_include(0, invanim_falcon2scope_reload_0) gunscript_end }; u32 invanim_falcon2_pistolwhip[] = { gunscript_playanimation(0x03f2, 0, 10000) gunscript_waittime(23, 2) gunscript_end }; u32 invanim_falcon2_equip[] = { gunscript_playanimation(0x00ea, 0, 10000) gunscript_end }; u32 invanim_falcon2_unequip[] = { gunscript_playanimation(0x00eb, 0, 10000) gunscript_end }; u32 invanim_falcon2_shoot[] = { gunscript_playanimation(0x00ec, 0, 10000) gunscript_waittime(9, 5) gunscript_end }; struct weaponfunc_shootsingle invfunc_falcon2_singleshot = { INVENTORYFUNCTYPE_SHOOT_SINGLE, L_GUN(85), // name 0x00, // unk06 0, // unk07 &invmenupos_0001100c, // menupos invanim_falcon2_shoot, // fire animation 0x00000000, // flags &invmenupos_00011098, 0x10000000, 0x3f800000, 0x3f800000, 3, 5, 2, 0, 0x41200000, 0x41700000, 0x426fffff, 0x00000000, 0x0000804d, 0x01000000, }; struct weaponfunc_shootsingle invfunc_falcon2silenced_singleshot = { INVENTORYFUNCTYPE_SHOOT_SINGLE, L_GUN(85), // name 0x00, // unk06 0, // unk07 &invmenupos_00010fe4, // menupos invanim_falcon2_shoot, // fire animation 0x00002000, // flags &invmenupos_00011098, 0x10000000, 0x3f800000, 0x3f800000, 3, 5, 2, 0, 0x41200000, 0x41700000, 0x426fffff, 0x00000000, 0x00008054, 0x01000000, }; struct weaponfunc_close invfunc_falcon2_pistolwhip = { INVENTORYFUNCTYPE_CLOSE, L_GUN(94), // name 0x00, // unk06 -1, // unk07 &invmenupos_00010fd0, // menupos invanim_falcon2_pistolwhip, // fire animation 0x0041a200, // flags 0x3f666666, 0x42700000, 0x00000069, 0x00000069, 0x00000069, 0xc1800000, 0x3f4ccccd, 0x41bc0000, 0xc202cccd, 0xbf800000, 0xbf800000, 0x40000000, 0x40000000, 0x00000000, }; struct inventory_ammo invammo_falcon2 = { AMMOTYPE_PISTOL, CASING_STANDARD, 8, // clip size invanim_falcon2_reload, // reload animation 0, // style }; struct inventory_ammo invammo_falcon2scope = { AMMOTYPE_PISTOL, CASING_STANDARD, 8, // clip size invanim_falcon2scope_reload, // reload animation 0, // style }; struct weapon invitem_falcon2 = { FILE_GFALCON2, // lo model FILE_GFALCON2LOD, // hi model invanim_falcon2_equip, // equip animation invanim_falcon2_unequip, // unequip animation NULL, // pritosec animation NULL, // sectopri animation { &invfunc_falcon2_singleshot, &invfunc_falcon2_pistolwhip }, // functions &invammo_falcon2, // pri ammo NULL, // sec ammo &inve_000110c0, // eptr 2, // sway 9, // left/right -15.7, // up/down -23.8, // front/back 1, // unk38 invf_000113f4, // fptr invg_000113cc, // gptr L_GUN(7), // short name L_GUN(7), // name L_GUN(150), // manufacturer L_GUN(156), // description 0x000ab67c, // flags }; struct weapon invitem_falcon2scope = { FILE_GFALCON2, // lo model FILE_GFALCON2LOD, // hi model invanim_falcon2_equip, // equip animation invanim_falcon2_unequip, // unequip animation NULL, // pritosec animation NULL, // sectopri animation { &invfunc_falcon2_singleshot, &invfunc_falcon2_pistolwhip }, // functions &invammo_falcon2scope, // pri ammo NULL, // sec ammo &inve_00011120, // eptr 1, // sway 9, // left/right -15.7, // up/down -23.8, // front/back 1, // unk38 invf_00011444, // fptr invg_000113dc, // gptr L_GUN(77), // short name L_GUN(9), // name L_GUN(150), // manufacturer L_GUN(158), // description 0x0002b67c, // flags }; struct weapon invitem_falcon2silencer = { FILE_GFALCON2, // lo model FILE_GFALCON2LOD, // hi model invanim_falcon2_equip, // equip animation invanim_falcon2_unequip, // unequip animation NULL, // pritosec animation NULL, // sectopri animation { &invfunc_falcon2silenced_singleshot, &invfunc_falcon2_pistolwhip }, // functions &invammo_falcon2, // pri ammo NULL, // sec ammo &inve_000110c0, // eptr 1, // sway 9, // left/right -15.7, // up/down -23.8, // front/back 1, // unk38 invf_0001148c, // fptr invg_000113e8, // gptr L_GUN(78), // short name L_GUN(8), // name L_GUN(150), // manufacturer L_GUN(157), // description 0x000ab67c, // flags }; s8 invg_00011838[] = {90, 0, 41, 0, 42, 0, -1}; struct inventory_typef invf_00011840[] = { { 0x0100, 0x0000, 0x0100, 0x0035, 0x0000 }, { 0x0100, 0x0000, 0x0100, 0x002a, 0x0000 }, { 0x0100, 0x0000, 0x0100, 0x0029, 0x0000 }, { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, }; u32 invanim_magsec_reload_0[] = { gunscript_playanimation(0x0409, 0, 10000) gunscript_showpart(1, 53) gunscript_showpart(1, 41) gunscript_setsoundspeed(3, 1300) gunscript_playsound(3, 0x01d8) gunscript_showpart(10, 42) gunscript_hidepart(14, 41) gunscript_hidepart(22, 42) gunscript_showpart(22, 41) gunscript_setsoundspeed(27, 1300) gunscript_playsound(27, 0x80f6) gunscript_waittime(30, 1) gunscript_waittime(56, 3) gunscript_setsoundspeed(58, 1300) gunscript_playsound(58, 0x01db) gunscript_end }; u32 invanim_magsec_reload_1[] = { gunscript_playanimation(0x040a, 0, 10000) gunscript_showpart(1, 41) gunscript_setsoundspeed(5, 1300) gunscript_playsound(5, 0x01d8) gunscript_hidepart(25, 41) gunscript_setsoundspeed(47, 1300) gunscript_playsound(47, 0x80f6) gunscript_waittime(49, 1) gunscript_setsoundspeed(69, 1300) gunscript_playsound(69, 0x01db) gunscript_end }; u32 invanim_magsec_reload[] = { gunscript_include(1, invanim_magsec_reload_1) gunscript_include(0, invanim_magsec_reload_0) gunscript_end }; u32 invanim_magsec_equiporshoot[] = { gunscript_playanimation(0x040b, 0, 10000) gunscript_waittime(12, 5) gunscript_end }; struct inventory_typee inve_00011970 = { 25, 3, 8, 15, 0.9721, 0.9767, 0x11000000, 0x00000002, }; struct weaponfunc_shootsingle invfunc_magsec_singleshot = { INVENTORYFUNCTYPE_SHOOT_SINGLE, L_GUN(85), // name 0x00, // unk06 0, // unk07 &invmenupos_0001100c, // menupos invanim_magsec_equiporshoot, // fire animation 0x00000000, // flags &invmenupos_00011098, 0x10000000, 0x3f8ccccd, 0x40c00000, 4, 8, 3, 0, 0x40a00000, 0x41200000, 0x426fffff, 0x41200000, 0x0000804c, 0x01000000, }; struct weaponfunc_shootsingle invfunc_magsec_burst = { INVENTORYFUNCTYPE_SHOOT_SINGLE, L_GUN(128), // name 0x00, // unk06 0, // unk07 &invmenupos_0001100c, // menupos invanim_magsec_equiporshoot, // fire animation 0x00000002, // flags &invmenupos_00011098, 0x10000000, 0x3f8ccccd, 0x41200000, 9, 14, 0, 0, 0x41000000, 0x41400000, 0x426fffff, 0x41200000, 0x0000804c, 0x01000000, }; struct inventory_ammo invammo_magsec = { AMMOTYPE_PISTOL, CASING_STANDARD, 9, // clip size invanim_magsec_reload, // reload animation 0, // style }; struct weapon invitem_magsec = { FILE_GLEEGUN1, // lo model FILE_GMAGSECLOD, // hi model invanim_magsec_equiporshoot, // equip animation NULL, // unequip animation NULL, // pritosec animation NULL, // sectopri animation { &invfunc_magsec_singleshot, &invfunc_magsec_burst }, // functions &invammo_magsec, // pri ammo NULL, // sec ammo &inve_00011970, // eptr 2, // sway 10.5, // left/right -17.2, // up/down -26.5, // front/back 1, // unk38 invf_00011840, // fptr invg_00011838, // gptr L_GUN(10), // short name L_GUN(10), // name L_GUN(151), // manufacturer L_GUN(159), // description 0x000a767c, // flags }; s8 invg_00011a74[] = {90, 0, 40, 0, 41, 0, 42, 0, 43, 0, 44, 0, 45, 0, -1}; struct inventory_typef invf_00011a84[] = { { 0x0100, 0x0000, 0x0100, 0x0028, 0x0000 }, { 0x0100, 0x0000, 0x0100, 0x0029, 0x0000 }, { 0x0100, 0x0000, 0x0100, 0x002a, 0x0000 }, { 0x0100, 0x0000, 0x0100, 0x002b, 0x0000 }, { 0x0100, 0x0000, 0x0100, 0x002c, 0x0000 }, { 0x0100, 0x0000, 0x0100, 0x002d, 0x0000 }, { 0x0100, 0x0000, 0x0100, 0x0035, 0x0000 }, { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, }; u32 invanim_dy357_equiporshoot[] = { gunscript_playanimation(0x0406, 0, 10000) gunscript_waittime(12, 5) gunscript_waittime(12, 2) gunscript_end }; u32 invanim_dy357_reload_0[] = { gunscript_playanimation(0x0408, 0, 10000) gunscript_playsound(50, 0x05cf) gunscript_setsoundspeed(80, 1830) gunscript_playsound(80, 0x01d8) gunscript_popoutsackofpills(0x0050) gunscript_popoutsackofpills(0x0051) gunscript_popoutsackofpills(0x0052) gunscript_popoutsackofpills(0x0053) gunscript_popoutsackofpills(0x0054) gunscript_popoutsackofpills(0x0055) gunscript_showpart(92, 53) gunscript_showpart(92, 40) gunscript_showpart(92, 41) gunscript_showpart(92, 42) gunscript_showpart(92, 43) gunscript_showpart(92, 44) gunscript_showpart(92, 45) gunscript_setsoundspeed(114, 1210) gunscript_playsound(114, 0x01d8) gunscript_hidepart(121, 40) gunscript_hidepart(121, 41) gunscript_hidepart(121, 42) gunscript_hidepart(121, 43) gunscript_hidepart(121, 44) gunscript_hidepart(121, 45) gunscript_waittime(123, 1) gunscript_playsound(147, 0x05cd) gunscript_end }; u32 invanim_dy357_reload_1[] = { gunscript_playanimation(0x0420, 0, 10000) gunscript_playsound(50, 0x05cf) gunscript_setsoundspeed(80, 1830) gunscript_playsound(80, 0x01d8) gunscript_popoutsackofpills(0x0050) gunscript_popoutsackofpills(0x0051) gunscript_popoutsackofpills(0x0052) gunscript_popoutsackofpills(0x0053) gunscript_popoutsackofpills(0x0054) gunscript_popoutsackofpills(0x0055) gunscript_setsoundspeed(114, 1210) gunscript_playsound(114, 0x01d8) gunscript_waittime(123, 1) gunscript_playsound(147, 0x05cd) gunscript_end }; u32 invanim_dy357_reload[] = { gunscript_include(1, invanim_dy357_reload_1) gunscript_include(0, invanim_dy357_reload_0) gunscript_end }; u32 invanim_dy357_pistolwhip[] = { gunscript_playanimation(0x0407, 0, 10000) gunscript_waittime(23, 2) gunscript_end }; struct weaponfunc_shootsingle invfunc_dy357_singleshot = { INVENTORYFUNCTYPE_SHOOT_SINGLE, L_GUN(85), // name 0x00, // unk06 0, // unk07 &invmenupos_00011020, // menupos invanim_dy357_equiporshoot, // fire animation 0x00000000, // flags &invmenupos_00011098, 0x14000000, 0x40000000, 0x00000000, 8, 16, 0, -1, 0x41400000, 0x420c0000, 0x00000000, 0x40c00000, 0x00008066, 0x05000000, }; struct weaponfunc_shootsingle invfunc_dy357lx_singleshot = { INVENTORYFUNCTYPE_SHOOT_SINGLE, L_GUN(85), // name 0x00, // unk06 0, // unk07 &invmenupos_00011020, // menupos invanim_dy357_equiporshoot, // fire animation 0x00000000, // flags &invmenupos_00011098, 0x1e000000, 0x43480000, 0x00000000, 8, 24, 0, -1, 0x41400000, 0x420c0000, 0x00000000, 0x40c00000, 0x00008066, 0x05000000, }; struct weaponfunc_close invfunc_dy357_pistolwhip = { INVENTORYFUNCTYPE_CLOSE, L_GUN(94), // name 0x00, // unk06 -1, // unk07 &invmenupos_00010fd0, // menupos invanim_dy357_pistolwhip, // fire animation 0x0041a200, // flags 0x3f666666, 0x42700000, 0x00000069, 0x00000069, 0x00000069, 0x41980000, 0xc195999a, 0x41980000, 0xc195999a, 0xbf800000, 0xbf800000, 0x40000000, 0x40000000, 0x00000000, }; struct inventory_ammo invammo_dy357 = { AMMOTYPE_MAGNUM, CASING_STANDARD, 6, // clip size invanim_dy357_reload, // reload animation 0, // style }; struct weapon invitem_dy357 = { FILE_GDY357, // lo model FILE_GDY357LOD, // hi model invanim_dy357_equiporshoot, // equip animation NULL, // unequip animation NULL, // pritosec animation NULL, // sectopri animation { &invfunc_dy357_singleshot, &invfunc_dy357_pistolwhip }, // functions &invammo_dy357, // pri ammo NULL, // sec ammo &inve_000110c0, // eptr 2, // sway 9.5, // left/right -18.2, // up/down -25.5, // front/back 1, // unk38 invf_00011a84, // fptr invg_00011a74, // gptr L_GUN(84), // short name L_GUN(12), // name L_GUN(149), // manufacturer L_GUN(161), // description 0x0002f67c, // flags }; struct weapon invitem_dy357lx = { FILE_GDY357TRENT, // lo model FILE_GDY357TRENTLOD, // hi model invanim_dy357_equiporshoot, // equip animation NULL, // unequip animation NULL, // pritosec animation NULL, // sectopri animation { &invfunc_dy357lx_singleshot, &invfunc_dy357_pistolwhip }, // functions &invammo_dy357, // pri ammo NULL, // sec ammo &inve_000110c0, // eptr 2, // sway 9.5, // left/right -18.2, // up/down -25.5, // front/back 1, // unk38 invf_00011a84, // fptr invg_00011a74, // gptr L_GUN(13), // short name L_GUN(13), // name L_GUN(149), // manufacturer L_GUN(162), // description 0x0002f67c, // flags }; s8 invg_00011dfc[] = {40, 0, -1}; struct inventory_typef invf_00011e00[] = { { 0x0100, 0x0000, 0x0100, 0x0028, 0x0000 }, { 0x0100, 0x0000, 0x0100, 0x0035, 0x0000 }, { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, }; u32 invanim_equiporreload_0[] = { gunscript_playanimation(0x0415, 0, 10000) gunscript_showpart(1, 53) gunscript_showpart(1, 40) gunscript_setsoundspeed(44, 1510) gunscript_playsound(44, 0x0433) gunscript_hidepart(50, 40) gunscript_end }; u32 invanim_phoenix_equiporreload_1[] = { gunscript_playanimation(0x0423, 0, 10000) gunscript_showpart(1, 53) gunscript_showpart(1, 40) gunscript_setsoundspeed(44, 1510) gunscript_playsound(44, 0x0433) gunscript_hidepart(50, 40) gunscript_end }; u32 invanim_phoenix_equiporreload[] = { gunscript_include(1, invanim_phoenix_equiporreload_1) gunscript_include(0, invanim_equiporreload_0) gunscript_end }; u32 invanim_phoenix_shoot[] = { gunscript_playanimation(0x043e, 0, 10000) gunscript_waittime(9, 5) gunscript_end }; struct weaponfunc_shootsingle invfunc_phoenix_singleshot = { INVENTORYFUNCTYPE_SHOOT_SINGLE, L_GUN(85), // name 0x00, // unk06 0, // unk07 &invmenupos_0001100c, // menupos invanim_phoenix_shoot, // fire animation 0x00000000, // flags &invmenupos_00011098, 0x10000000, 0x3f8ccccd, 0x40400000, 3, 5, 2, 0, 0x41200000, 0x41700000, 0x426fffff, 0x00000000, 0x00008071, 0x01000000, }; struct weaponfunc_shootsingle invfunc_phoenix_explosiveshells = { INVENTORYFUNCTYPE_SHOOT_SINGLE, L_GUN(95), // name 0x00, // unk06 0, // unk07 &invmenupos_0001100c, // menupos invanim_phoenix_shoot, // fire animation 0x00004000, // flags &invmenupos_00011098, 0x10000000, 0x3f99999a, 0x40a00000, 13, 15, 25, 0, 0x41700000, 0x41c80000, 0x426fffff, 0x00000000, 0x00008072, 0x01000000, }; struct inventory_ammo invammo_phoenix = { AMMOTYPE_PISTOL, CASING_NONE, 8, // clip size invanim_phoenix_equiporreload, // reload animation 0, // style }; struct weapon invitem_phoenix = { FILE_GMAIANPISTOL, // lo model FILE_GMAYANPISTOLLOD, // hi model invanim_phoenix_equiporreload, // equip animation NULL, // unequip animation NULL, // pritosec animation NULL, // sectopri animation { &invfunc_phoenix_singleshot, &invfunc_phoenix_explosiveshells }, // functions &invammo_phoenix, // pri ammo NULL, // sec ammo &inve_000110c0, // eptr 1, // sway 9.5, // left/right -16.2, // up/down -23, // front/back 1, // unk38 invf_00011e00, // fptr invg_00011dfc, // gptr L_GUN(14), // short name L_GUN(14), // name L_GUN(153), // manufacturer L_GUN(163), // description 0x000af67c, // flags }; s8 invg_00011fa4[] = {43, 0, 90, 0, -1}; struct inventory_typef invf_00011fac[] = { { 0x0100, 0x0000, 0x0100, 0x0035, 0x0000 }, { 0x0100, 0x0000, 0x0100, 0x002b, 0x0000 }, { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, }; u32 invanim_mauler_equiporshoot[] = { gunscript_playanimation(0x03f3, 0, 10000) gunscript_waittime(9, 5) gunscript_end }; u32 invanim_mauler_reload_0[] = { gunscript_playanimation(0x03f4, 0, 10000) gunscript_showpart(0, 53) gunscript_setsoundspeed(4, 1200) gunscript_playsound(4, 0x0053) gunscript_showpart(4, 43) gunscript_hidepart(18, 42) gunscript_setsoundspeed(20, 2500) gunscript_playsound(20, 0x8012) gunscript_waittime(25, 1) gunscript_showpart(25, 42) gunscript_hidepart(25, 43) gunscript_setsoundspeed(27, 2000) gunscript_playsound(27, 0x05c5) gunscript_setsoundspeed(61, 1000) gunscript_playsound(61, 0x01db) gunscript_waittime(61, 3) gunscript_end }; u32 invanim_mauler_reload_1[] = { gunscript_playanimation(0x03f5, 0, 10000) gunscript_setsoundspeed(14, 1200) gunscript_playsound(14, 0x0053) gunscript_setsoundspeed(40, 2500) gunscript_playsound(40, 0x8012) gunscript_setsoundspeed(47, 2000) gunscript_playsound(47, 0x05c5) gunscript_waittime(47, 1) gunscript_setsoundspeed(68, 1000) gunscript_playsound(68, 0x01db) gunscript_end }; u32 invanim_mauler_reload[] = { gunscript_include(1, invanim_mauler_reload_1) gunscript_include(0, invanim_mauler_reload_0) gunscript_end }; u32 invanim_unused_8007c0bc[] = { gunscript_playanimation(0x03f6, 0, 10000) gunscript_end }; struct weaponfunc_shootsingle invfunc_mauler_singleshot = { INVENTORYFUNCTYPE_SHOOT_SINGLE, L_GUN(85), // name 0x00, // unk06 0, // unk07 &invmenupos_00011020, // menupos invanim_mauler_equiporshoot, // fire animation 0x00000000, // flags &invmenupos_00011098, 0x00000000, 0x3f99999a, 0x40c00000, 3, 9, 32, 28, 0x00000000, 0x00000000, 0x426fffff, 0x40800000, 0x0000805b, 0x01000000, }; struct weaponfunc_shootsingle invfunc_mauler_chargeshot = { INVENTORYFUNCTYPE_SHOOT_SINGLE, L_GUN(129), // name 0x00, // unk06 0, // unk07 &invmenupos_00011020, // menupos invanim_mauler_equiporshoot, // fire animation 0x00000000, // flags &invmenupos_00011098, 0x00000000, 0x3f99999a, 0x40c00000, 3, 9, 32, 28, 0x00000000, 0x00000000, 0x426fffff, 0x40800000, 0x0000805b, 0x01000000, }; struct inventory_ammo invammo_mauler = { AMMOTYPE_PISTOL, CASING_NONE, 20, // clip size invanim_mauler_reload, // reload animation 0, // style }; struct weapon invitem_mauler = { FILE_GSKPISTOL, // lo model FILE_GSKPISTOLLOD, // hi model invanim_mauler_equiporshoot, // equip animation NULL, // unequip animation NULL, // pritosec animation NULL, // sectopri animation { &invfunc_mauler_singleshot, &invfunc_mauler_chargeshot }, // functions &invammo_mauler, // pri ammo NULL, // sec ammo &inve_000110c0, // eptr 1, // sway 11.5, // left/right -17.5, // up/down -20, // front/back 1, // unk38 invf_00011fac, // fptr invg_00011fa4, // gptr L_GUN(11), // short name L_GUN(11), // name L_GUN(152), // manufacturer L_GUN(160), // description 0x00027678, // flags }; s8 invg_000121d0[] = {90, 0, 43, 0, -1}; struct inventory_typef invf_000121d8[] = { { 0x0100, 0x0000, 0x0100, 0x0035, 0x0000 }, { 0x0100, 0x0000, 0x0100, 0x002b, 0x0000 }, { 0x0100, 0x0000, 0x0100, 0x0047, 0x0000 }, { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, }; u32 invanim_cmp150_reload_0[] = { gunscript_playanimation(0x0115, 0, 10000) gunscript_hidepart(23, 42) gunscript_showpart(33, 53) gunscript_showpart(33, 43) gunscript_setsoundspeed(9, 950) gunscript_playsound(9, 0x01d8) gunscript_setsoundspeed(44, 950) gunscript_playsound(44, 0x80f6) gunscript_hidepart(45, 43) gunscript_showpart(45, 42) gunscript_waittime(45, 1) gunscript_playsound(86, 0x0431) gunscript_end }; u32 invanim_cmp150_reload_1[] = { gunscript_playanimation(0x0422, 0, 10000) gunscript_hidepart(23, 42) gunscript_showpart(33, 53) gunscript_showpart(33, 43) gunscript_setsoundspeed(20, 950) gunscript_playsound(20, 0x01d8) gunscript_setsoundspeed(61, 950) gunscript_playsound(61, 0x80f6) gunscript_hidepart(61, 43) gunscript_showpart(61, 42) gunscript_waittime(61, 1) gunscript_playsound(76, 0x0431) gunscript_end }; u32 invanim_cmp150_reload[] = { gunscript_include(1, invanim_cmp150_reload_1) gunscript_include(0, invanim_cmp150_reload_0) gunscript_end }; u32 invanim_cmp150_equiporshoot[] = { gunscript_playanimation(0x0116, 0, 10000) gunscript_waittime(14, 5) gunscript_waitforzreleased(14) gunscript_end }; struct inventory_typee inve_00012308 = { 0, 3, 8, 15, 0.9721, 0.9767, 0x40000000, 0x00000006, }; struct weaponfunc_shootauto invfunc_cmp150_rapidfire = { INVENTORYFUNCTYPE_SHOOT_AUTOMATIC, L_GUN(86), // name 0x00, // unk06 0, // unk07 &invmenupos_00011020, // menupos invanim_cmp150_equiporshoot, // fire animation 0x00000000, // flags &invmenupos_00011098, 0x00000000, 0x3f800000, 0x41100000, 6, 18, 0, 6, 0x40800000, 0x40400000, 0x00000000, 0x00000000, 0x03008040, 0x01000000, 900, 900, NULL, NULL, 0x00000000, }; struct weaponfunc_shootauto invfunc_cmp150_followlockon = { INVENTORYFUNCTYPE_SHOOT_AUTOMATIC, L_GUN(102), // name 0x00, // unk06 0, // unk07 &invmenupos_00011020, // menupos invanim_cmp150_equiporshoot, // fire animation 0x00000000, // flags &invmenupos_00011098, 0x00000000, 0x3f800000, 0x41100000, 6, 18, 0, 6, 0x40800000, 0x40400000, 0x00000000, 0x00000000, 0x03008040, 0x01000000, 900, 900, NULL, NULL, 0x00000000, }; struct inventory_ammo invammo_cmp150 = { AMMOTYPE_SMG, CASING_STANDARD, 32, // clip size invanim_cmp150_reload, // reload animation 0, // style }; struct weapon invitem_cmp150 = { FILE_GCMP150, // lo model FILE_GCMP150LOD, // hi model invanim_cmp150_equiporshoot, // equip animation NULL, // unequip animation NULL, // pritosec animation NULL, // sectopri animation { &invfunc_cmp150_rapidfire, &invfunc_cmp150_followlockon }, // functions &invammo_cmp150, // pri ammo NULL, // sec ammo &inve_00012308, // eptr 3, // sway 13, // left/right -17.7, // up/down -27.5, // front/back 1, // unk38 invf_000121d8, // fptr invg_000121d0, // gptr L_GUN(15), // short name L_GUN(15), // name L_GUN(149), // manufacturer L_GUN(164), // description 0x4402f678, // flags }; s8 invg_00012434[] = {90, 0, 40, 0, -1}; struct inventory_typef invf_0001243c[] = { { 0x0100, 0x0000, 0x0100, 0x0035, 0x0000 }, { 0x0100, 0x0000, 0x0100, 0x0028, 0x0000 }, { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, }; u32 invanim_cyclone_equiporreload_0[] = { gunscript_playanimation(0x040e, 0, 10000) gunscript_showpart(1, 53) gunscript_showpart(1, 40) gunscript_playsound(60, 0x05d3) gunscript_end }; u32 invanim_cyclone_equiporreload_1[] = { gunscript_playanimation(0x0421, 0, 10000) gunscript_playsound(60, 0x05d3) gunscript_end }; u32 invanim_cyclone_equiporreload[] = { gunscript_include(1, invanim_cyclone_equiporreload_1) gunscript_include(0, invanim_cyclone_equiporreload_0) gunscript_end }; u32 invanim_cyclone_shoot[] = { gunscript_playanimation(0x043d, 0, 10000) gunscript_waittime(5, 5) gunscript_waitforzreleased(5) gunscript_end }; struct weaponfunc_shootauto invfunc_cyclone_rapidfire = { INVENTORYFUNCTYPE_SHOOT_AUTOMATIC, L_GUN(86), // name 0x00, // unk06 0, // unk07 &invmenupos_00011034, // menupos invanim_cyclone_shoot, // fire animation 0x00000000, // flags &invmenupos_00011098, 0x00000000, 0x3f4ccccd, 0x40c00000, 6, 18, 2, 8, 0x40a00000, 0x40000000, 0x00000000, 0x40800000, 0x0400805f, 0x01000000, 900, 900, NULL, NULL, 0x00000000, }; struct weaponfunc_shootauto invfunc_cyclone_magazinedischarge = { INVENTORYFUNCTYPE_SHOOT_AUTOMATIC, L_GUN(97), // name 0x00, // unk06 0, // unk07 &invmenupos_00011034, // menupos invanim_cyclone_shoot, // fire animation 0x00000020, // flags &invmenupos_00011098, 0x00000000, 0x3fb33333, 0x41c80000, 6, 18, 2, 8, 0x40a00000, 0x40000000, 0x00000000, 0x40800000, 0x04008075, 0x01000000, 2000, 2000, NULL, NULL, 0x00000000, }; struct inventory_ammo invammo_cyclone = { AMMOTYPE_SMG, CASING_NONE, 50, // clip size invanim_cyclone_equiporreload, // reload animation 0, // style }; struct weapon invitem_cyclone = { FILE_GCYCLONE, // lo model FILE_GCYCLONELOD, // hi model invanim_cyclone_equiporreload, // equip animation NULL, // unequip animation NULL, // pritosec animation NULL, // sectopri animation { &invfunc_cyclone_rapidfire, &invfunc_cyclone_magazinedischarge }, // functions &invammo_cyclone, // pri ammo NULL, // sec ammo &inve_000110e0, // eptr 1, // sway 21.5, // left/right -26.5, // up/down -35, // front/back 1, // unk38 invf_0001243c, // fptr invg_00012434, // gptr L_GUN(20), // short name L_GUN(20), // name L_GUN(151), // manufacturer L_GUN(169), // description 0x00027678, // flags }; u32 invanim_rcp120_reload[] = { gunscript_playanimation(0x041a, 0, 10000) gunscript_setsoundspeed(18, 1100) gunscript_playsound(18, 0x0053) gunscript_showpart(25, 40) gunscript_showpart(50, 41) gunscript_playsound(74, 0x05c5) gunscript_hidepart(75, 41) gunscript_showpart(75, 40) gunscript_playsound(112, 0x0431) gunscript_end }; u32 invanim_rcp120_equiporshoot[] = { gunscript_playanimation(0x0424, 0, 10000) gunscript_waittime(10, 5) gunscript_waitforzreleased(10) gunscript_end }; s8 invg_00012650[] = {90, 0, 41, 0, -1}; struct inventory_typef invf_00012658[] = { { 0x0100, 0x0000, 0x0100, 0x0029, 0x0000 }, { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, }; struct weaponfunc_shootauto invfunc_rcp120_rapidfire = { INVENTORYFUNCTYPE_SHOOT_AUTOMATIC, L_GUN(86), // name 0x00, // unk06 0, // unk07 &invmenupos_0001100c, // menupos invanim_rcp120_equiporshoot, // fire animation 0x00000000, // flags &invmenupos_00011098, 0x00000000, 0x3f99999a, 0x40c00000, 6, 18, 0, 6, 0x40800000, 0x40400000, 0x00000000, 0x00000000, 0x0400806d, 0x01000000, 1100, 1100, NULL, NULL, 0x00000000, }; struct weaponfunc_special invfunc_rcp120_cloak = { INVENTORYFUNCTYPE_SPECIAL, L_GUN(116), // name 0x00, // unk06 0, // unk07 &invmenupos_00010fd0, // menupos NULL, // fire animation 0x00102000, // flags SPECIALFUNC_RCP120_CLOAK, 0x0000001e, 0x00000000, }; struct inventory_ammo invammo_rcp120 = { AMMOTYPE_SMG, CASING_STANDARD, 120, // clip size invanim_rcp120_reload, // reload animation 0, // style }; struct weapon invitem_rcp120 = { FILE_GRCP120, // lo model FILE_GRCP120LOD, // hi model invanim_rcp120_equiporshoot, // equip animation NULL, // unequip animation NULL, // pritosec animation NULL, // sectopri animation { &invfunc_rcp120_rapidfire, &invfunc_rcp120_cloak }, // functions &invammo_rcp120, // pri ammo NULL, // sec ammo &inve_000110e0, // eptr 3, // sway 13, // left/right -18.2, // up/down -27.5, // front/back 1, // unk38 invf_00012658, // fptr invg_00012650, // gptr L_GUN(22), // short name L_GUN(22), // name L_GUN(151), // manufacturer L_GUN(170), // description 0x0062e670, // flags }; u32 invanim_callisto_equiporreload[] = { gunscript_playanimation(0x0418, 0, 10000) gunscript_showpart(30, 40) gunscript_setsoundspeed(58, 933) gunscript_playsound(58, 0x0433) gunscript_hidepart(79, 40) gunscript_end }; u32 invanim_callisto_shoot[] = { gunscript_playanimation(0x043c, 0, 10000) gunscript_waittime(8, 5) gunscript_waitforzreleased(8) gunscript_end }; s8 invg_00012794[] = {40, 0, -1}; struct inventory_typef invf_00012798[] = { { 0x0100, 0x0000, 0x0100, 0x0028, 0x0000 }, { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, }; struct weaponfunc_shootauto invfunc_callisto_rapidfire = { INVENTORYFUNCTYPE_SHOOT_AUTOMATIC, L_GUN(86), // name 0x00, // unk06 0, // unk07 &invmenupos_0001100c, // menupos invanim_callisto_shoot, // fire animation 0x00000000, // flags &invmenupos_00011098, 0x00000000, 0x3f99999a, 0x41100000, 6, 18, 0, 6, 0x40800000, 0x40400000, 0x00000000, 0x00000000, 0x03008063, 0x01000000, 900, 900, NULL, NULL, 0x00000000, }; struct weaponfunc_shootauto invfunc_callisto_highimpactshells = { INVENTORYFUNCTYPE_SHOOT_AUTOMATIC, L_GUN(115), // name 0x00, // unk06 0, // unk07 &invmenupos_0001100c, // menupos invanim_callisto_shoot, // fire animation 0x00000000, // flags &invmenupos_00011098, 0x00000000, 0x4019999a, 0x41100000, 6, 18, 0, 6, 0x40800000, 0x40400000, 0x00000000, 0x00000000, 0x03008064, 0x05000000, 300, 300, NULL, NULL, 0x00000000, }; struct inventory_ammo invammo_callisto = { AMMOTYPE_SMG, CASING_NONE, 32, // clip size invanim_callisto_equiporreload, // reload animation 0, // style }; struct weapon invitem_callisto = { FILE_GMAIANSMG, // lo model FILE_GMAYANSMGLOD, // hi model invanim_callisto_equiporreload, // equip animation NULL, // unequip animation NULL, // pritosec animation NULL, // sectopri animation { &invfunc_callisto_rapidfire, &invfunc_callisto_highimpactshells }, // functions &invammo_callisto, // pri ammo NULL, // sec ammo &inve_000110e0, // eptr 3, // sway 17.5, // left/right -22.7, // up/down -25, // front/back 1, // unk38 invf_00012798, // fptr invg_00012794, // gptr L_GUN(23), // short name L_GUN(23), // name L_GUN(153), // manufacturer L_GUN(171), // description 0x0002e670, // flags }; struct inventory_typef invf_000128b8[] = { { 0x0100, 0x0000, 0x0100, 0x0028, 0x0000 }, { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, }; s8 invg_000128cc[] = {40, 0, 90, 0, -1}; u32 invanim_dragon_equiporshoot[] = { gunscript_playanimation(0x03f9, 0, 10000) gunscript_end }; u32 invanim_dragon_reload[] = { gunscript_playanimation(0x03fa, 0, 10000) gunscript_playsound(8, 0x0053) gunscript_hidepart(17, 42) gunscript_showpart(17, 40) gunscript_waittime(41, 1) gunscript_playsound(41, 0x05c5) gunscript_showpart(41, 42) gunscript_hidepart(41, 40) gunscript_end }; struct weaponfunc_shootauto invfunc_dragon_rapidfire = { INVENTORYFUNCTYPE_SHOOT_AUTOMATIC, L_GUN(86), // name 0x00, // unk06 0, // unk07 &invmenupos_00011034, // menupos invanim_dragon_equiporshoot, // fire animation 0x00000000, // flags &invmenupos_00011098, 0x00000000, 0x3f8ccccd, 0x40c00000, 6, 18, 2, 8, 0x40a00000, 0x40000000, 0x00000000, 0x40800000, 0x04008049, 0x01000000, 700, 700, NULL, NULL, 0x00000000, }; struct weaponfunc_throw invfunc_dragon_selfdestruct = { INVENTORYFUNCTYPE_THROW, L_GUN(118), // name 0x00, // unk06 -1, // unk07 &invmenupos_00010fd0, // menupos NULL, // fire animation 0x00042040, // flags 0x000000ff, 0x00f00000, 0x0000003c, 0x00000000, }; struct inventory_ammo invammo_dragon = { AMMOTYPE_RIFLE, CASING_RIFLE, 30, // clip size invanim_dragon_reload, // reload animation 0, // style }; struct weapon invitem_dragon = { FILE_GDYDRAGON, // lo model FILE_GDYDRAGONLOD, // hi model invanim_dragon_equiporshoot, // equip animation NULL, // unequip animation NULL, // pritosec animation NULL, // sectopri animation { &invfunc_dragon_rapidfire, &invfunc_dragon_selfdestruct }, // functions &invammo_dragon, // pri ammo NULL, // sec ammo &inve_00011140, // eptr 1, // sway 15, // left/right -29.5, // up/down -27, // front/back 1, // unk38 invf_000128b8, // fptr invg_000128cc, // gptr L_GUN(17), // short name L_GUN(17), // name L_GUN(149), // manufacturer L_GUN(166), // description 0x04026650, // flags }; struct inventory_typef invf_00012a08[] = { { 0x0100, 0x0000, 0x0100, 0x0028, 0x0000 }, { 0x0100, 0x0000, 0x0100, 0x0029, 0x0000 }, { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, }; s8 invg_00012a28[] = {40, 0, 41, 0, 90, 0, -1}; u32 invanim_superdragon_reload[] = { gunscript_playanimation(0x03fb, 0, 10000) gunscript_playsound(8, 0x0053) gunscript_hidepart(16, 42) gunscript_showpart(16, 40) gunscript_playsound(41, 0x05c5) gunscript_waittime(43, 1) gunscript_showpart(43, 42) gunscript_hidepart(43, 40) gunscript_end }; u32 invanim_superdragon_grenadereload[] = { gunscript_playanimation(0x03fc, 0, 10000) gunscript_setsoundspeed(6, 700) gunscript_playsound(6, 0x0053) gunscript_showpart(30, 41) gunscript_hidepart(30, 43) gunscript_hidepart(64, 41) gunscript_showpart(64, 43) gunscript_waittime(64, 1) gunscript_setsoundspeed(66, 850) gunscript_playsound(66, 0x05c5) gunscript_end }; u32 invanim_superdragon_equiporshoot[] = { gunscript_playanimation(0x03fe, 0, 10000) gunscript_end }; u32 invanim_superdragon_shootgrenade[] = { gunscript_playanimation(0x03ff, 0, 10000) gunscript_end }; u32 invanim_superdragon_pritosec[] = { gunscript_playanimation(0x03fd, 0, 10000) gunscript_end }; u32 invanim_superdragon_sectopri[] = { gunscript_playanimation(0x03fd, 65535, 55536) gunscript_end }; struct weaponfunc_shootauto invfunc_superdragon_rapidfire = { INVENTORYFUNCTYPE_SHOOT_AUTOMATIC, L_GUN(86), // name 0x00, // unk06 0, // unk07 &invmenupos_00011034, // menupos invanim_superdragon_equiporshoot, // fire animation 0x00000000, // flags &invmenupos_00011098, 0x00000000, 0x3f99999a, 0x40c00000, 6, 18, 2, 8, 0x40a00000, 0x40000000, 0x00000000, 0x40800000, 0x04008049, 0x01000000, 700, 700, NULL, NULL, 0x00000000, }; struct weaponfunc_shootprojectile invfunc_superdragon_grenadelauncher = { INVENTORYFUNCTYPE_SHOOT_PROJECTILE, L_GUN(98), // name 0x00, // unk06 1, // unk07 &invmenupos_00011048, // menupos invanim_superdragon_shootgrenade, // fire animation 0x30000040, // flags 0x00000000, 0x00000000, 0x3f99999a, 0x40c00000, 5, 15, -1, 0, 0x40400000, 0x40000000, 0x00000000, 0x40800000, 0x04008073, 0x01000000, 0x00000123, 0x00000000, 0x3f800000, 0x00000000, 0x3da3d70a, 0x0000001e, 0x000004b0, 0x3dcccccd, 0x80530000, }; struct inventory_ammo invammo_superdragon = { AMMOTYPE_RIFLE, CASING_RIFLE, 30, // clip size invanim_superdragon_reload, // reload animation 0, // style }; struct inventory_ammo invammo_superdragon_grenades = { AMMOTYPE_DEVASTATOR, CASING_NONE, 6, // clip size invanim_superdragon_grenadereload, // reload animation 0, // style }; struct weapon invitem_superdragon = { FILE_GDYSUPERDRAGON, // lo model FILE_GDYSUPERDRAGONLOD, // hi model invanim_superdragon_equiporshoot, // equip animation NULL, // unequip animation invanim_superdragon_pritosec, // pritosec animation invanim_superdragon_sectopri, // sectopri animation { &invfunc_superdragon_rapidfire, &invfunc_superdragon_grenadelauncher }, // functions &invammo_superdragon, // pri ammo &invammo_superdragon_grenades, // sec ammo &inve_00011140, // eptr 1, // sway 15, // left/right -29.5, // up/down -27, // front/back 1, // unk38 invf_00012a08, // fptr invg_00012a28, // gptr L_GUN(18), // short name L_GUN(18), // name L_GUN(149), // manufacturer L_GUN(167), // description 0x00026650, // flags }; struct inventory_typef invf_00012c40[] = { { 0x0100, 0x0000, 0x0100, 0x002a, 0x0000 }, { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, }; s8 invg_00012c54[] = {42, 0, 90, 0, -1}; u32 invanim_ar34_equiporreload[] = { gunscript_playanimation(0x0419, 0, 10000) gunscript_setsoundspeed(16, 900) gunscript_playsound(16, 0x0053) gunscript_hidepart(21, 41) gunscript_showpart(50, 42) gunscript_setsoundspeed(67, 1400) gunscript_playsound(67, 0x8025) gunscript_hidepart(72, 42) gunscript_showpart(72, 41) gunscript_waittime(72, 1) gunscript_setsoundspeed(95, 900) gunscript_playsound(95, 0x05c5) gunscript_end }; struct inventory_typee inve_00012cc4 = { 20, 3, 8, 15, 0.9721, 0.9767, 0x15000000, 0x00000006, }; struct weaponfunc_shootauto invfunc_ar34_burstfire = { INVENTORYFUNCTYPE_SHOOT_AUTOMATIC, L_GUN(87), // name 0x00, // unk06 0, // unk07 &invmenupos_00011034, // menupos NULL, // fire animation 0x00000002, // flags &invmenupos_00011098, 0x00000000, 0x3fb33333, 0x41000000, 6, 18, 2, 8, 0x40a00000, 0x40000000, 0x00000000, 0x40800000, 0x05008059, 0x01000000, 750, 750, NULL, NULL, 0x00000000, }; struct weaponfunc_shootauto invfunc_ar34_usescope = { INVENTORYFUNCTYPE_SHOOT_AUTOMATIC, L_GUN(103), // name 0x00, // unk06 0, // unk07 &invmenupos_00011034, // menupos NULL, // fire animation 0x00000002, // flags &invmenupos_00011098, 0x00000000, 0x3fb33333, 0x41000000, 6, 18, 2, 8, 0x40a00000, 0x40000000, 0x00000000, 0x40800000, 0x05008059, 0x01000000, 750, 750, NULL, NULL, 0x00000000, }; struct inventory_ammo invammo_ar34 = { AMMOTYPE_RIFLE, CASING_RIFLE, 30, // clip size invanim_ar34_equiporreload, // reload animation 0, // style }; struct weapon invitem_ar34 = { FILE_GAR34, // lo model FILE_GAR34LOD, // hi model invanim_ar34_equiporreload, // equip animation NULL, // unequip animation NULL, // pritosec animation NULL, // sectopri animation { &invfunc_ar34_burstfire, &invfunc_ar34_usescope }, // functions &invammo_ar34, // pri ammo NULL, // sec ammo &inve_00012cc4, // eptr 1, // sway 11.5, // left/right -25.7, // up/down -30.5, // front/back 1, // unk38 invf_00012c40, // fptr invg_00012c54, // gptr L_GUN(16), // short name L_GUN(16), // name L_GUN(0), // manufacturer L_GUN(165), // description 0x04626650, // flags }; struct inventory_typef invf_00012df0[] = { { 0x0100, 0x0000, 0x0100, 0x002a, 0x0000 }, { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, }; s8 invg_00012e04[] = {42, 0, 90, 0, -1}; u32 invanim_k7avenger_reload[] = { gunscript_playanimation(0x00e9, 0, 10000) gunscript_setsoundspeed(15, 1200) gunscript_playsound(15, 0x0053) gunscript_hidepart(22, 41) gunscript_showpart(48, 42) gunscript_waittime(68, 1) gunscript_hidepart(69, 42) gunscript_showpart(69, 41) gunscript_setsoundspeed(69, 1400) gunscript_playsound(69, 0x8025) gunscript_playsound(91, 0x05c5) gunscript_end }; u32 invanim_k7avenger_equip[] = { gunscript_playanimation(0x00e6, 0, 10000) gunscript_end }; u32 invanim_k7avenger_unequip[] = { gunscript_playanimation(0x00e7, 0, 10000) gunscript_end }; u32 invanim_unused_8007ce6c[] = { gunscript_playanimation(0x00e8, 0, 10000) gunscript_end }; struct inventory_typee inve_00012e9c = { 20, 3, 8, 15, 0.9721, 0.9767, 0x15000000, 0x00000006, }; struct weaponfunc_shootauto invfunc_k7avenger_burstfire = { INVENTORYFUNCTYPE_SHOOT_AUTOMATIC, L_GUN(87), // name 0x00, // unk06 0, // unk07 &invmenupos_00011034, // menupos NULL, // fire animation 0x00000002, // flags &invmenupos_00011098, 0x00000000, 0x3fc00000, 0x40c00000, 6, 18, 2, 8, 0x40a00000, 0x40000000, 0x00000000, 0x40800000, 0x0400805a, 0x01000000, 950, 950, NULL, NULL, 0x00000000, }; struct weaponfunc_shootauto invfunc_k7avenger_threatdetector = { INVENTORYFUNCTYPE_SHOOT_AUTOMATIC, L_GUN(119), // name 0x00, // unk06 0, // unk07 &invmenupos_00011034, // menupos NULL, // fire animation 0x00082002, // flags &invmenupos_00011098, 0x00000000, 0x3fc00000, 0x40c00000, 6, 18, 2, 8, 0x40a00000, 0x40000000, 0x00000000, 0x40800000, 0x0400805a, 0x01000000, 950, 950, NULL, NULL, 0x00000000, }; struct inventory_ammo invammo_k7avenger = { AMMOTYPE_RIFLE, CASING_RIFLE, 25, // clip size invanim_k7avenger_reload, // reload animation 0, // style }; struct weapon invitem_k7avenger = { FILE_GK7AVENGER, // lo model FILE_GAVENGERLOD, // hi model invanim_k7avenger_equip, // equip animation invanim_k7avenger_unequip, // unequip animation NULL, // pritosec animation NULL, // sectopri animation { &invfunc_k7avenger_burstfire, &invfunc_k7avenger_threatdetector }, // functions &invammo_k7avenger, // pri ammo NULL, // sec ammo &inve_00012e9c, // eptr 1, // sway 6.5, // left/right -24, // up/down -27, // front/back 1, // unk38 invf_00012df0, // fptr invg_00012e04, // gptr L_GUN(19), // short name L_GUN(19), // name L_GUN(149), // manufacturer L_GUN(168), // description 0x00022650, // flags }; struct inventory_typef invf_00012fc8[] = { { 0x0100, 0x0000, 0x0100, 0x002a, 0x0000 }, { 0x0100, 0x0000, 0x0100, 0x0029, 0x0000 }, { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, }; s8 invg_00012fe8[] = {90, 0, 41, 0, 42, 0, -1}; u32 invanim_laptopgun_reload[] = { gunscript_playanimation(0x00e4, 0, 10000) gunscript_setsoundspeed(4, 1630) gunscript_playsound(4, 0x04fb) gunscript_setsoundspeed(15, 1436) gunscript_playsound(15, 0x04fa) gunscript_playsound(25, 0x04f7) gunscript_showpart(40, 41) gunscript_playsound(42, 0x0053) gunscript_showpart(48, 42) gunscript_hidepart(55, 41) gunscript_hidepart(63, 42) gunscript_showpart(63, 41) gunscript_playsound(63, 0x04f8) gunscript_hidepart(85, 41) gunscript_waittime(85, 1) gunscript_playsound(85, 0x05c5) gunscript_playsound(91, 0x04f9) gunscript_end }; u32 invanim_laptopgun_shoot[] = { gunscript_playanimation(0x00e5, 0, 10000) gunscript_waittime(10, 5) gunscript_waitforzreleased(10) gunscript_end }; u32 invanim_laptopgun_equip[] = { gunscript_playanimation(0x00e2, 0, 10000) gunscript_setsoundspeed(15, 720) gunscript_playsound(15, 0x04f7) gunscript_playsound(35, 0x04f7) gunscript_playsound(58, 0x04f8) gunscript_end }; u32 invanim_laptopgun_unequip[] = { gunscript_playanimation(0x00e3, 0, 10000) gunscript_playsound(1, 0x04f7) gunscript_setsoundspeed(25, 720) gunscript_playsound(25, 0x04f7) gunscript_playsound(50, 0x04f8) gunscript_end }; struct weaponfunc_shootauto invfunc_laptopgun_burstfire = { INVENTORYFUNCTYPE_SHOOT_AUTOMATIC, L_GUN(87), // name 0x00, // unk06 0, // unk07 &invmenupos_00011020, // menupos invanim_laptopgun_shoot, // fire animation 0x00000002, // flags &invmenupos_00011098, 0x00000000, 0x3f933333, 0x40c00000, 6, 18, 2, 8, 0x40a00000, 0x40000000, 0x00000000, 0x40800000, 0x04008044, 0x01000000, 1000, 1000, NULL, NULL, 0x00000000, }; struct weaponfunc_throw invfunc_laptopgun_deploy = { INVENTORYFUNCTYPE_THROW, L_GUN(117), // name 0x00, // unk06 -1, // unk07 &invmenupos_00010fd0, // menupos NULL, // fire animation 0x00842140, // flags 0x00000157, 0x00f00000, 0x0000003c, 0x00000000, }; struct inventory_ammo invammo_laptopgun = { AMMOTYPE_SMG, CASING_NONE, 50, // clip size invanim_laptopgun_reload, // reload animation 0, // style }; struct weapon invitem_laptopgun = { FILE_GPCGUN, // lo model FILE_GPCGUNLOD, // hi model invanim_laptopgun_equip, // equip animation invanim_laptopgun_unequip, // unequip animation NULL, // pritosec animation NULL, // sectopri animation { &invfunc_laptopgun_burstfire, &invfunc_laptopgun_deploy }, // functions &invammo_laptopgun, // pri ammo NULL, // sec ammo &inve_00011140, // eptr 1.2, // sway 16, // left/right -17.7, // up/down -14.5, // front/back 1, // unk38 invf_00012fc8, // fptr invg_00012fe8, // gptr L_GUN(24), // short name L_GUN(24), // name L_GUN(150), // manufacturer L_GUN(172), // description 0x0402a650, // flags }; struct inventory_typef invf_000131dc[] = { { 0x0100, 0x0000, 0x0100, 0x002b, 0x0000 }, { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, }; s8 invg_000131f0[] = {43, 0, 90, 0, -1}; u32 invanim_shotgun_reload[] = { gunscript_playanimation(0x03ed, 0, 10000) gunscript_showpart(1, 43) gunscript_playsound(67, 0x01d8) gunscript_waittime(74, 1) gunscript_hidepart(75, 43) gunscript_repeatuntilfull(0x0054, 0x0000, 0x0032) gunscript_playsound(103, 0x04fb) gunscript_end }; u32 invanim_shotgun_equiporsingleshot[] = { gunscript_playanimation(0x03ee, 0, 10000) gunscript_waittime(9, 2) gunscript_playsound(34, 0x04fb) gunscript_end }; u32 invanim_shotgun_doubleshot[] = { gunscript_playanimation(0x042c, 0, 10000) gunscript_waittime(9, 2) gunscript_playsound(54, 0x04fb) gunscript_end }; struct weaponfunc_shootsingle invfunc_shotgun_single = { INVENTORYFUNCTYPE_SHOOT_SINGLE, L_GUN(89), // name 0x00, // unk06 0, // unk07 &invmenupos_00011048, // menupos invanim_shotgun_equiporsingleshot, // fire animation 0x00000000, // flags &invmenupos_00011098, 0x00000000, 0x3f19999a, 0x41f00000, 20, 28, 0, 0, 0x00000000, 0x00000000, 0x00000000, 0x40800000, 0x00008055, 0x01000000, }; struct weaponfunc_shootsingle invfunc_shotgun_double = { INVENTORYFUNCTYPE_SHOOT_SINGLE, L_GUN(105), // name 0x00, // unk06 0, // unk07 &invmenupos_00011048, // menupos invanim_shotgun_doubleshot, // fire animation 0x00001000, // flags &invmenupos_00011098, 0x00000000, 0x3f19999a, 0x41800000, 20, 28, 0, 0, 0x00000000, 0x00000000, 0x00000000, 0x40800000, 0x00008055, 0x01000000, }; struct inventory_ammo invammo_shotgun = { AMMOTYPE_SHOTGUN, CASING_SHOTGUN, 9, // clip size invanim_shotgun_reload, // reload animation 67108864, // style }; struct weapon invitem_shotgun = { FILE_GSHOTGUN, // lo model FILE_GSHOTGUNLOD, // hi model invanim_shotgun_equiporsingleshot, // equip animation NULL, // unequip animation NULL, // pritosec animation NULL, // sectopri animation { &invfunc_shotgun_single, &invfunc_shotgun_double }, // functions &invammo_shotgun, // pri ammo NULL, // sec ammo &inve_000110c0, // eptr 1, // sway 12, // left/right -16.7, // up/down -21, // front/back 1, // unk38 invf_000131dc, // fptr invg_000131f0, // gptr L_GUN(25), // short name L_GUN(25), // name L_GUN(149), // manufacturer L_GUN(173), // description 0x00026650, // flags }; f32 var8006d33c[] = {0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0}; f32 var8006d36c[] = {1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0}; s8 invg_000133bc[] = {90, 0, 91, 0, 92, 0, 43, 0, -1}; struct inventory_typef invf_000133c8[] = { { 0x0100, 0x0000, 0x0100, 0x002b, 0x0000 }, { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, }; u32 invanim_reaper_shoot[] = { gunscript_playanimation(0x0400, 0, 10000) gunscript_waittime(12, 5) gunscript_end }; u32 invanim_reaper_reload[] = { gunscript_playanimation(0x0401, 0, 10000) gunscript_playsound(49, 0x05c7) gunscript_hidepart(70, 42) gunscript_showpart(90, 43) gunscript_playsound(124, 0x05c6) gunscript_showpart(134, 42) gunscript_hidepart(134, 43) gunscript_waittime(134, 1) gunscript_end }; u32 invanim_reaper_equip[] = { gunscript_playanimation(0x0427, 0, 10000) gunscript_end }; u32 invanim_reaper_unequip[] = { gunscript_playanimation(0x0428, 0, 10000) gunscript_end }; struct weaponfunc_shootauto invfunc_reaper_shoot = { INVENTORYFUNCTYPE_SHOOT_AUTOMATIC, L_GUN(88), // name 0x00, // unk06 0, // unk07 &invmenupos_0001105c, // menupos invanim_reaper_shoot, // fire animation 0x00000002, // flags &invmenupos_000110ac, 0x00000000, 0x3f99999a, 0x42600000, 3, 9, 32, 28, 0x00000000, 0x00000000, 0x00000000, 0x40800000, 0x0200803f, 0x01000000, 60, 1800, var8006d33c, var8006d36c, 0x58580000, }; struct weaponfunc_close invfunc_reaper_grind = { INVENTORYFUNCTYPE_CLOSE, L_GUN(106), // name 0x00, // unk06 -1, // unk07 &invmenupos_0001100c, // menupos NULL, // fire animation 0x00002000, // flags 0x3d4ccccd, 0x42a00000, 0x00000069, 0x00000069, 0x00000069, 0xbf000000, 0xc1a9999a, 0xbf000000, 0xc1a9999a, 0xbf800000, 0xbf800000, 0x40000000, 0x40000000, 0x00000000, }; struct inventory_ammo invammo_reaper = { AMMOTYPE_REAPER, CASING_REAPER, 200, // clip size invanim_reaper_reload, // reload animation 0, // style }; struct weapon invitem_reaper = { FILE_GSKMINIGUN, // lo model FILE_GSKMINIGUNLOD, // hi model invanim_reaper_equip, // equip animation invanim_reaper_unequip, // unequip animation NULL, // pritosec animation NULL, // sectopri animation { &invfunc_reaper_shoot, &invfunc_reaper_grind }, // functions &invammo_reaper, // pri ammo NULL, // sec ammo &inve_000110c0, // eptr 1, // sway 4, // left/right -21.2, // up/down -30.5, // front/back 1, // unk38 invf_000133c8, // fptr invg_000133bc, // gptr L_GUN(26), // short name L_GUN(26), // name L_GUN(152), // manufacturer L_GUN(174), // description 0x00022650, // flags }; s8 invg_00013560[] = {40, 0, -1}; struct inventory_typef invf_00013564[] = { { 0x0100, 0x0000, 0x0100, 0x0028, 0x0000 }, { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, }; u32 invanim_rocketlauncher_reload[] = { gunscript_playanimation(0x03ef, 0, 10000) gunscript_setsoundspeed(16, 900) gunscript_playsound(16, 0x04f9) gunscript_playsound(40, 0x0053) gunscript_showpart(24, 40) gunscript_waittime(76, 1) gunscript_hidepart(76, 40) gunscript_playsound(77, 0x05d1) gunscript_setsoundspeed(106, 1000) gunscript_playsound(106, 0x04f9) gunscript_playsound(123, 0x0053) gunscript_playsound(135, 0x04fa) gunscript_end }; u32 invanim_rockerlauncher_equiporshoot[] = { gunscript_playanimation(0x03f0, 0, 10000) gunscript_end }; struct inventory_typee inve_000135f0 = { 0, 3, 8, 15, 0.9721, 0.9767, 0x30000000, 0x00000002, }; struct weaponfunc_shootprojectile invfunc_rockerlauncher_shoot = { INVENTORYFUNCTYPE_SHOOT_PROJECTILE, L_GUN(91), // name 0x00, // unk06 0, // unk07 &invmenupos_00011048, // menupos invanim_rockerlauncher_equiporshoot, // fire animation 0x08000040, // flags 0x00000000, 0x00000000, 0x3f800000, 0x40c00000, 3, 12, 15, 0, 0x40400000, 0x40000000, 0x00000000, 0x40800000, 0x04008053, 0x01000000, 0x0000011f, 0x00000000, 0x40066666, 0x0000003c, 0x00000000, 0x00000000, 0xffffffff, 0x3d4ccccd, 0x80530000, }; struct weaponfunc_shootprojectile invfunc_rocketlauncher_homing = { INVENTORYFUNCTYPE_SHOOT_PROJECTILE, L_GUN(92), // name 0x00, // unk06 0, // unk07 &invmenupos_00011048, // menupos invanim_rockerlauncher_equiporshoot, // fire animation 0x48000040, // flags 0x00000000, 0x00000000, 0x3f800000, 0x40c00000, 3, 12, 15, 0, 0x40400000, 0x40000000, 0x00000000, 0x40800000, 0x04008053, 0x01000000, 0x0000011f, 0x00000000, 0x40066666, 0x00000000, 0x00000000, 0x00000005, 0xffffffff, 0x3d4ccccd, 0x80530000, }; struct inventory_ammo invammo_rocketlauncher = { AMMOTYPE_ROCKET, CASING_NONE, 1, // clip size invanim_rocketlauncher_reload, // reload animation 0, // style }; struct weapon invitem_rocketlauncher = { FILE_GDYROCKET, // lo model FILE_GROCKETLOD, // hi model invanim_rockerlauncher_equiporshoot, // equip animation NULL, // unequip animation NULL, // pritosec animation NULL, // sectopri animation { &invfunc_rockerlauncher_shoot, &invfunc_rocketlauncher_homing }, // functions &invammo_rocketlauncher, // pri ammo NULL, // sec ammo &inve_000135f0, // eptr 1, // sway 24.5, // left/right -25.2, // up/down -30, // front/back 1, // unk38 invf_00013564, // fptr invg_00013560, // gptr L_GUN(80), // short name L_GUN(27), // name L_GUN(149), // manufacturer L_GUN(175), // description 0x40026270, // flags }; u32 invanim_slayer_equiporshoot[] = { gunscript_playanimation(0x042a, 0, 10000) gunscript_end }; u32 invanim_slayer_reload[] = { gunscript_playanimation(0x0429, 0, 10000) gunscript_setsoundspeed(52, 800) gunscript_playsound(52, 0x0053) gunscript_playsound(79, 0x808c) gunscript_setsoundspeed(126, 900) gunscript_playsound(126, 0x04fb) gunscript_end }; struct weaponfunc_shootprojectile invfunc_slayer_shoot = { INVENTORYFUNCTYPE_SHOOT_PROJECTILE, L_GUN(91), // name 0x00, // unk06 0, // unk07 &invmenupos_00011048, // menupos invanim_slayer_equiporshoot, // fire animation 0x08000040, // flags 0x00000000, 0x00000000, 0x3f800000, 0x40c00000, 3, 12, 15, 0, 0x40400000, 0x40000000, 0x00000000, 0x40800000, 0x04008067, 0x01000000, 0x00000120, 0x00000000, 0x40833333, 0x0000000a, 0x00000000, 0x00000000, 0xffffffff, 0x3d4ccccd, 0x80530000, }; struct weaponfunc_shootprojectile invfunc_slayer_flybywire = { INVENTORYFUNCTYPE_SHOOT_PROJECTILE, L_GUN(93), // name 0x00, // unk06 0, // unk07 &invmenupos_00011048, // menupos NULL, // fire animation 0x28000840, // flags 0x00000000, 0x00000000, 0x3f800000, 0x40c00000, 3, 12, 15, 0, 0x40400000, 0x40000000, 0x00000000, 0x40800000, 0x04008067, 0x01000000, 0x00000120, 0x00000000, 0x40833333, 0x0000000a, 0x00000000, 0x00000000, 0xffffffff, 0x3d4ccccd, 0x80680000, }; struct inventory_ammo invammo_slayer = { AMMOTYPE_ROCKET, CASING_NONE, 1, // clip size invanim_slayer_reload, // reload animation 0, // style }; struct weapon invitem_slayer = { FILE_GSKROCKET, // lo model FILE_GSKROCKETLOD, // hi model invanim_slayer_equiporshoot, // equip animation NULL, // unequip animation NULL, // pritosec animation NULL, // sectopri animation { &invfunc_slayer_shoot, &invfunc_slayer_flybywire }, // functions &invammo_slayer, // pri ammo NULL, // sec ammo &inve_000110c0, // eptr 1, // sway 22.5, // left/right -32, // up/down -40.5, // front/back 1, // unk38 NULL, // fptr NULL, // gptr L_GUN(29), // short name L_GUN(29), // name L_GUN(152), // manufacturer L_GUN(177), // description 0x02026270, // flags }; struct inventory_typef invf_unused_8006d890[] = { { 0x0100, 0x0000, 0x0100, 0x0029, 0x0000 }, { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, }; u32 invanim_devastator_equiporshoot[] = { gunscript_playanimation(0x03f7, 0, 10000) gunscript_end }; u32 invanim_devastator_reload[] = { gunscript_playanimation(0x03f8, 0, 10000) gunscript_setsoundspeed(15, 600) gunscript_playsound(15, 0x0053) gunscript_hidepart(22, 42) gunscript_showpart(36, 41) gunscript_setsoundspeed(47, 700) gunscript_playsound(47, 0x05c5) gunscript_hidepart(47, 41) gunscript_showpart(47, 42) gunscript_waittime(47, 1) gunscript_playsound(66, 0x05cc) gunscript_end }; struct weaponfunc_shootprojectile invfunc_devastator_shoot = { INVENTORYFUNCTYPE_SHOOT_PROJECTILE, L_GUN(98), // name 0x00, // unk06 0, // unk07 &invmenupos_00011048, // menupos invanim_devastator_equiporshoot, // fire animation 0x30000040, // flags 0x00000000, 0x00000000, 0x3f800000, 0x40c00000, 5, 58, -1, 0, 0x40a00000, 0x41000000, 0x00000000, 0x40800000, 0x04008073, 0x01000000, 0x00000122, 0x00000000, 0x3f800000, 0x00000000, 0x3da3d70a, 0x00000028, 0x000004b0, 0x3e99999a, 0x80530000, }; struct weaponfunc_shootprojectile invfunc_devastator_wallhugger = { INVENTORYFUNCTYPE_SHOOT_PROJECTILE, L_GUN(99), // name 0x00, // unk06 0, // unk07 &invmenupos_00011048, // menupos invanim_devastator_equiporshoot, // fire animation 0x30000140, // flags 0x00000000, 0x00000000, 0x3f800000, 0x40c00000, 5, 58, -1, 0, 0x40a00000, 0x41000000, 0x00000000, 0x40800000, 0x04008073, 0x01000000, 0x00000122, 0x00000000, 0x3f800000, 0x00000000, 0x3da3d70a, 0x00000028, 0x00000168, 0x3e99999a, 0x80530000, }; struct inventory_ammo invammo_devastator = { AMMOTYPE_DEVASTATOR, CASING_NONE, 8, // clip size invanim_devastator_reload, // reload animation 134217728, // style }; s8 invg_00013a10[] = {41, 0, -1}; struct weapon invitem_devastator = { FILE_GDYDEVASTATOR, // lo model FILE_GDEVASTATORLOD, // hi model invanim_devastator_equiporshoot, // equip animation NULL, // unequip animation NULL, // pritosec animation NULL, // sectopri animation { &invfunc_devastator_shoot, &invfunc_devastator_wallhugger }, // functions &invammo_devastator, // pri ammo NULL, // sec ammo &inve_000110c0, // eptr 1, // sway 19.5, // left/right -25.5, // up/down -29, // front/back 1, // unk38 NULL, // fptr invg_00013a10, // gptr L_GUN(28), // short name L_GUN(28), // name L_GUN(149), // manufacturer L_GUN(176), // description 0x00026270, // flags }; struct weaponfunc invfunc_mine_threatdetector = { INVENTORYFUNCTYPE_NONE, L_GUN(119), // name 0x00, // unk06 -1, // unk07 &invmenupos_00010fd0, // menupos NULL, // fire animation 0x00080000, // flags }; u32 inanim_mine_equiporreload[] = { gunscript_playanimation(0x0430, 0, 10000) gunscript_end }; u32 invanim_mine_unequip[] = { gunscript_playanimation(0x0431, 0, 10000) gunscript_end }; u32 invanim_mine_throw[] = { gunscript_playanimation(0x0435, 0, 10000) gunscript_waitforzreleased(10) gunscript_waittime(13, 2) gunscript_end }; struct weaponfunc_throw invfunc_timedmine_throw = { INVENTORYFUNCTYPE_THROW, L_GUN(120), // name 0x00, // unk06 0, // unk07 &invmenupos_00010fd0, // menupos invanim_mine_throw, // fire animation 0x00802040, // flags 0x00000113, 0x00f00000, 0x00000000, 0x00000000, }; struct inventory_ammo invammo_timedmine = { AMMOTYPE_TIMED_MINE, CASING_NONE, 1, // clip size inanim_mine_equiporreload, // reload animation 33554432, // style }; struct weapon invitem_timedmine = { FILE_GTIMEDMINE, // lo model FILE_GTIMEDMINE, // hi model inanim_mine_equiporreload, // equip animation invanim_mine_unequip, // unequip animation NULL, // pritosec animation NULL, // sectopri animation { &invfunc_timedmine_throw, &invfunc_mine_threatdetector }, // functions &invammo_timedmine, // pri ammo NULL, // sec ammo &inve_000110c0, // eptr 1, // sway 8, // left/right -15, // up/down -23, // front/back 1, // unk38 NULL, // fptr NULL, // gptr L_GUN(38), // short name L_GUN(38), // name L_GUN(0), // manufacturer L_GUN(185), // description 0x00022259, // flags }; struct inventory_typef invf_00013b40[] = { { 0x0500, 0x0000, 0x0300, 0x0035, 0x0000 }, { 0x0500, 0x0000, 0x0300, 0x0029, 0x0000 }, { 0x0600, 0x0000, 0x0300, 0x0036, 0x0000 }, { 0x0600, 0x0000, 0x0300, 0x0028, 0x0000 }, { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, }; u32 invanim_remotemine_equiporreload[] = { gunscript_playanimation(0x0432, 0, 10000) gunscript_end }; u32 invanim_remotemine_unequip[] = { gunscript_playanimation(0x0433, 0, 10000) gunscript_end }; u32 invanim_remotemine_throw[] = { gunscript_playanimation(0x0436, 0, 10000) gunscript_waitforzreleased(10) gunscript_waittime(11, 2) gunscript_end }; struct weaponfunc_throw invfunc_remotemine_throw = { INVENTORYFUNCTYPE_THROW, L_GUN(122), // name 0x00, // unk06 0, // unk07 &invmenupos_00010fd0, // menupos invanim_remotemine_throw, // fire animation 0x00802040, // flags 0x00000115, 0x00f00000, 0x00000000, 0x00000000, }; struct weaponfunc_special invfunc_remotemine_detonate = { INVENTORYFUNCTYPE_SPECIAL, L_GUN(123), // name 0x00, // unk06 -1, // unk07 &invmenupos_00010fd0, // menupos NULL, // fire animation 0x00102000, // flags SPECIALFUNC_REMOTEMINE_DETONATE, 0x0000001e, 0x00000000, }; struct inventory_ammo invammo_remotemine = { AMMOTYPE_REMOTE_MINE, CASING_NONE, 1, // clip size invanim_remotemine_equiporreload, // reload animation 33554432, // style }; s8 invg_00013c0c[] = {41, 0, -1}; struct weapon invitem_remotemine = { FILE_GREMOTEMINE, // lo model FILE_GREMOTEMINE, // hi model invanim_remotemine_equiporreload, // equip animation invanim_remotemine_unequip, // unequip animation NULL, // pritosec animation NULL, // sectopri animation { &invfunc_remotemine_throw, &invfunc_remotemine_detonate }, // functions &invammo_remotemine, // pri ammo NULL, // sec ammo &inve_000110c0, // eptr 1, // sway 4, // left/right -15, // up/down -23, // front/back 1, // unk38 invf_00013b40, // fptr invg_00013c0c, // gptr L_GUN(40), // short name L_GUN(40), // name L_GUN(0), // manufacturer L_GUN(187), // description 0x00022259, // flags }; struct weaponfunc_throw invfunc_proxymine_throw = { INVENTORYFUNCTYPE_THROW, L_GUN(121), // name 0x00, // unk06 0, // unk07 &invmenupos_00010fd0, // menupos invanim_mine_throw, // fire animation 0x00802040, // flags 0x00000114, 0x00f00000, 0x00000000, 0x00000000, }; struct inventory_ammo invammo_proximitymine = { AMMOTYPE_PROXY_MINE, CASING_NONE, 1, // clip size inanim_mine_equiporreload, // reload animation 33554432, // style }; struct weapon invitem_proximitymine = { FILE_GPROXIMITYMINE, // lo model FILE_GPROXIMITYMINE, // hi model inanim_mine_equiporreload, // equip animation invanim_mine_unequip, // unequip animation NULL, // pritosec animation NULL, // sectopri animation { &invfunc_proxymine_throw, &invfunc_mine_threatdetector }, // functions &invammo_proximitymine, // pri ammo NULL, // sec ammo &inve_000110c0, // eptr 1, // sway 8, // left/right -15, // up/down -23, // front/back 1, // unk38 NULL, // fptr NULL, // gptr L_GUN(81), // short name L_GUN(39), // name L_GUN(0), // manufacturer L_GUN(186), // description 0x00022259, // flags }; u32 invanim_ecmmine_equiporreload[] = { gunscript_playanimation(0x0437, 0, 10000) gunscript_end }; u32 invanim_ecmmine_unequip[] = { gunscript_playanimation(0x0438, 0, 10000) gunscript_end }; u32 invanim_ecmmine_throw[] = { gunscript_playanimation(0x0438, 0, 10000) gunscript_waittime(23, 2) gunscript_end }; struct weaponfunc_throw invfunc_ecmmine_throw = { INVENTORYFUNCTYPE_THROW, L_GUN(140), // name 0x00, // unk06 0, // unk07 &invmenupos_00010fd0, // menupos invanim_ecmmine_throw, // fire animation 0x00802040, // flags 0x00000116, 0x00f00000, 0x0000003c, 0x00000000, }; struct inventory_ammo invammo_ecmmine = { AMMOTYPE_ECM_MINE, CASING_NONE, 1, // clip size invanim_ecmmine_equiporreload, // reload animation 33554432, // style }; struct weapon invitem_ecmmine = { FILE_GECMMINE, // lo model FILE_GECMMINE, // hi model invanim_ecmmine_equiporreload, // equip animation invanim_ecmmine_unequip, // unequip animation NULL, // pritosec animation NULL, // sectopri animation { &invfunc_ecmmine_throw, NULL }, // functions &invammo_ecmmine, // pri ammo NULL, // sec ammo &inve_000110c0, // eptr 1, // sway 14, // left/right -25, // up/down -31.5, // front/back 1, // unk38 NULL, // fptr NULL, // gptr L_GUN(41), // short name L_GUN(41), // name L_GUN(0), // manufacturer L_GUN(188), // description 0x08622059, // flags }; // Some unfinished Reaper-like gun. The name is "Timed Mine". The primary // function is detonate (and it works). It can't shoot. struct weapon invitem_unused_8007dd88 = { FILE_GSKMINIGUN, // lo model FILE_GSKMINIGUNLOD, // hi model NULL, // equip animation NULL, // unequip animation NULL, // pritosec animation NULL, // sectopri animation { &invfunc_remotemine_detonate, NULL }, // functions NULL, // pri ammo NULL, // sec ammo &inve_000110c0, // eptr 1, // sway 0, // left/right -39.5, // up/down -55.5, // front/back 1, // unk38 NULL, // fptr NULL, // gptr L_GUN(38), // short name L_GUN(38), // name L_GUN(0), // manufacturer L_GUN(0), // description 0x08000048, // flags }; struct inventory_typef invf_00013df8[] = { { 0x0100, 0x0000, 0x0100, 0x0035, 0x0000 }, { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, }; u32 invanim_grenade_throw[] = { gunscript_playanimation(0x0426, 0, 10000) gunscript_popoutsackofpills(0x0006) gunscript_playsound(6, 0x05c1) gunscript_waitforzreleased(43) gunscript_waittime(49, 2) gunscript_end }; u32 invanim_grenade_equiporreload[] = { gunscript_playanimation(0x042b, 0, 10000) gunscript_end }; struct weaponfunc_throw invfunc_grenade_throw = { INVENTORYFUNCTYPE_THROW, L_GUN(124), // name 0x00, // unk06 0, // unk07 &invmenupos_00010fd0, // menupos invanim_grenade_throw, // fire animation 0x00002040, // flags 0x00000112, 0x00f00000, 0x0000003c, 0x00000000, }; struct weaponfunc_throw invfunc_grenade_pinball = { INVENTORYFUNCTYPE_THROW, L_GUN(125), // name 0x00, // unk06 0, // unk07 &invmenupos_00010fd0, // menupos invanim_grenade_throw, // fire animation 0x00002040, // flags 0x00000112, 0x005a0000, 0x0000003c, 0x00000000, }; struct inventory_ammo invammo_grenade = { AMMOTYPE_GRENADE, CASING_NONE, 1, // clip size invanim_grenade_equiporreload, // reload animation 167772160, // style }; struct weapon invitem_grenade = { FILE_GGRENADE, // lo model FILE_GGRENADELOD, // hi model invanim_grenade_equiporreload, // equip animation NULL, // unequip animation NULL, // pritosec animation NULL, // sectopri animation { &invfunc_grenade_throw, &invfunc_grenade_pinball }, // functions &invammo_grenade, // pri ammo NULL, // sec ammo &inve_000110c0, // eptr 1, // sway 17, // left/right -19.7, // up/down -21, // front/back 1, // unk38 invf_00013df8, // fptr NULL, // gptr L_GUN(36), // short name L_GUN(36), // name L_GUN(0), // manufacturer L_GUN(183), // description 0x0002a67d, // flags }; struct weaponfunc_throw invfunc_nbomb_throw = { INVENTORYFUNCTYPE_THROW, L_GUN(134), // name 0x00, // unk06 0, // unk07 &invmenupos_00010fd0, // menupos invanim_grenade_throw, // fire animation 0x00002640, // flags 0x00000110, 0x00f00000, 0x0000003c, 0x00000000, }; struct weaponfunc_throw invfunc_nbomb_proxy = { INVENTORYFUNCTYPE_THROW, L_GUN(127), // name 0x00, // unk06 0, // unk07 &invmenupos_00010fd0, // menupos invanim_grenade_throw, // fire animation 0x00002640, // flags 0x00000110, 0x00f00000, 0x0000003c, 0x00000000, }; struct inventory_ammo invammo_nbomb = { AMMOTYPE_NBOMB, CASING_NONE, 1, // clip size invanim_grenade_equiporreload, // reload animation 167772160, // style }; struct weapon invitem_nbomb = { FILE_GNBOMB, // lo model FILE_GNBOMBLOD, // hi model invanim_grenade_equiporreload, // equip animation NULL, // unequip animation NULL, // pritosec animation NULL, // sectopri animation { &invfunc_nbomb_throw, &invfunc_nbomb_proxy }, // functions &invammo_nbomb, // pri ammo NULL, // sec ammo &inve_000110c0, // eptr 1, // sway 17, // left/right -19.7, // up/down -21, // front/back 1, // unk38 invf_00013df8, // fptr NULL, // gptr L_GUN(37), // short name L_GUN(37), // name L_GUN(0), // manufacturer L_GUN(184), // description 0x0062a67d, // flags }; struct inventory_typef invf_00013fa4[] = { { 0x0100, 0x0000, 0x0100, 0x0028, 0x0000 }, { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, }; u32 invanim_farsight_reload[] = { gunscript_playanimation(0x03eb, 0, 10000) gunscript_showpart(1, 40) gunscript_playsound(72, 0x0433) gunscript_waittime(76, 1) gunscript_hidepart(82, 40) gunscript_end }; u32 invanim_farsight_equiporshoot[] = { gunscript_playanimation(0x03ec, 0, 10000) gunscript_end }; struct inventory_typee inve_00013ff8 = { 0, 3, 8, 15, 0.9721, 0.9767, 0x16000000, 0x00000005, }; struct weaponfunc_shootsingle invfunc_farsight_shoot = { INVENTORYFUNCTYPE_SHOOT_SINGLE, L_GUN(90), // name 0x00, // unk06 0, // unk07 &invmenupos_00011034, // menupos invanim_farsight_equiporshoot, // fire animation 0x00000000, // flags &invmenupos_00011098, 0x00000000, 0x42c80000, 0x00000000, 70, 40, 0, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0400813e, 0x05000000, }; struct weaponfunc_shootsingle invfunc_farsight_targetlocator = { INVENTORYFUNCTYPE_SHOOT_SINGLE, L_GUN(111), // name 0x00, // unk06 0, // unk07 &invmenupos_00011034, // menupos invanim_farsight_equiporshoot, // fire animation 0x00000000, // flags &invmenupos_00011098, 0x00000000, 0x42c80000, 0x00000000, 70, 40, 0, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0400813e, 0x05000000, }; struct inventory_ammo invammo_farsight = { AMMOTYPE_FARSIGHT, CASING_NONE, 8, // clip size invanim_farsight_reload, // reload animation 0, // style }; s8 invg_000140ac[] = {40, 0, -1}; struct weapon invitem_farsight = { FILE_GZ2020, // lo model FILE_GZ2020LOD, // hi model invanim_farsight_equiporshoot, // equip animation NULL, // unequip animation NULL, // pritosec animation NULL, // sectopri animation { &invfunc_farsight_shoot, &invfunc_farsight_targetlocator }, // functions &invammo_farsight, // pri ammo NULL, // sec ammo &inve_00013ff8, // eptr 6, // sway 21.5, // left/right -25.2, // up/down -32.5, // front/back 1, // unk38 invf_00013fa4, // fptr invg_000140ac, // gptr L_GUN(79), // short name L_GUN(31), // name L_GUN(0), // manufacturer L_GUN(178), // description 0x00026650, // flags }; struct inventory_typef invf_00014100[] = { { 0x0100, 0x0000, 0x0100, 0x0035, 0x0000 }, { 0x0100, 0x0000, 0x0100, 0x0029, 0x0000 }, { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, }; u32 invanim_crossbow_reload[] = { gunscript_playanimation(0x00d4, 0, 10000) gunscript_hidepart(1, 40) gunscript_showpart(1, 41) gunscript_showpart(1, 53) gunscript_hidepart(19, 40) gunscript_showpart(19, 41) gunscript_playsound(45, 0x04fc) gunscript_waittime(50, 1) gunscript_hidepart(50, 41) gunscript_showpart(50, 40) gunscript_repeatuntilfull(0x0044, 0x0000, 0x0013) gunscript_end }; u32 invanim_crossbow_shoot[] = { gunscript_playanimation(0x00c2, 0, 10000) gunscript_hidepart(20, 40) gunscript_playsound(37, 0x04f8) gunscript_end }; u32 invanim_crossbow_unequip[] = { gunscript_playanimation(0x00d3, 0, 10000) gunscript_hidepart(1, 40) gunscript_playsound(37, 0x04f8) gunscript_end }; u32 invanim_crosbow_equip[] = { gunscript_playanimation(0x00c1, 0, 10000) gunscript_playsound(32, 0x04fc) gunscript_playsound(75, 0x04f8) gunscript_end }; struct weaponfunc_shootprojectile invfunc_crossbow_lethal = { INVENTORYFUNCTYPE_SHOOT_PROJECTILE, L_GUN(112), // name 0x00, // unk06 0, // unk07 &invmenupos_00010fe4, // menupos invanim_crossbow_shoot, // fire animation 0x00802000, // flags 0x00000000, 0x00000000, 0x42c80000, 0x40c00000, 3, 12, 15, 0, 0x40400000, 0x40000000, 0x00000000, 0x40800000, 0x04008056, 0x01000000, 0x00000121, 0x00000000, 0x40066666, 0x00000000, 0x00000000, 0x0000003c, 0xffffffff, 0x3d4ccccd, 0xffff0000, }; struct weaponfunc_shootprojectile invfunc_crossbow_shoot = { INVENTORYFUNCTYPE_SHOOT_PROJECTILE, L_GUN(107), // name 0x00, // unk06 0, // unk07 &invmenupos_00010fe4, // menupos invanim_crossbow_shoot, // fire animation 0x00802200, // flags 0x00000000, 0x00000000, 0x3f800000, 0x40c00000, 3, 12, 15, 0, 0x40400000, 0x40000000, 0x00000000, 0x40800000, 0x04008056, 0x01000000, 0x00000121, 0x00000000, 0x40066666, 0x00000000, 0x00000000, 0x0000003c, 0xffffffff, 0x3d4ccccd, 0xffff0000, }; struct inventory_ammo invammo_crossbow = { AMMOTYPE_CROSSBOW, CASING_NONE, 5, // clip size invanim_crossbow_reload, // reload animation 67108864, // style }; s8 invg_000142bc[] = {40, 0, 41, 0, 42, 0, -1}; struct weapon invitem_crossbow = { FILE_GCROSSBOW, // lo model FILE_GCROSSBOWLOD, // hi model invanim_crosbow_equip, // equip animation invanim_crossbow_unequip, // unequip animation NULL, // pritosec animation NULL, // sectopri animation { &invfunc_crossbow_shoot, &invfunc_crossbow_lethal }, // functions &invammo_crossbow, // pri ammo NULL, // sec ammo &inve_000110c0, // eptr 1, // sway 11, // left/right -15, // up/down -21, // front/back 1, // unk38 invf_00014100, // fptr invg_000142bc, // gptr L_GUN(33), // short name L_GUN(33), // name L_GUN(0), // manufacturer L_GUN(180), // description 0x00022658, // flags }; struct inventory_typef invf_00014314[] = { { 0x0100, 0x0000, 0x0100, 0x0028, 0x0000 }, { 0x0100, 0x0000, 0x0100, 0x0035, 0x0000 }, { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, }; u32 invanim_tranquilizer_lethalinject[] = { gunscript_playanimation(0x0411, 0, 10000) gunscript_waittime(18, 2) gunscript_end }; u32 invanim_tranquilizer_equiporshoot[] = { gunscript_playanimation(0x042d, 0, 10000) gunscript_waittime(7, 5) gunscript_end }; u32 invanim_tranquilizer_reload[] = { gunscript_playanimation(0x0410, 0, 10000) gunscript_showpart(1, 53) gunscript_showpart(1, 40) gunscript_showpart(1, 42) gunscript_hidepart(1, 41) gunscript_popoutsackofpills(0x0001) gunscript_setsoundspeed(3, 3500) gunscript_playsound(3, 0x8016) gunscript_waittime(39, 1) gunscript_hidepart(39, 42) gunscript_showpart(39, 41) gunscript_setsoundspeed(39, 3500) gunscript_playsound(39, 0x8083) gunscript_setsoundspeed(63, 2070) gunscript_playsound(63, 0x04f5) gunscript_setsoundspeed(72, 3000) gunscript_playsound(72, 0x00ba) gunscript_end }; struct weaponfunc_shootsingle invfunc_tranquilizer_shoot = { INVENTORYFUNCTYPE_SHOOT_SINGLE, L_GUN(107), // name 0x00, // unk06 0, // unk07 &invmenupos_00010fe4, // menupos invanim_tranquilizer_equiporshoot, // fire animation 0x00000200, // flags &invmenupos_00011098, 0x10000000, 0x3e800000, 0x40400000, 3, 5, 5, 0, 0x3f800000, 0x00000000, 0x426fffff, 0x00000000, 0x00008057, 0x01000000, }; struct weaponfunc_close invfunc_tranquilizer_lethal = { INVENTORYFUNCTYPE_CLOSE, L_GUN(108), // name 0x00, // unk06 0, // unk07 &invmenupos_00010fe4, // menupos invanim_tranquilizer_lethalinject, // fire animation 0x00002000, // flags 0x42c80000, 0x42700000, 0x00000069, 0x00000069, 0x00000069, 0x41200000, 0xc181999a, 0x41200000, 0xc181999a, 0xbf800000, 0xbf800000, 0x40000000, 0x40000000, 0x00000000, }; struct inventory_ammo invammo_tranquilizer = { AMMOTYPE_SEDATIVE, CASING_NONE, 8, // clip size invanim_tranquilizer_reload, // reload animation 0, // style }; s8 invg_00014494[] = {40, 0, 41, 0, 42, 0, -1}; struct weapon invitem_tranquilizer = { FILE_GDRUGGUN, // lo model FILE_GDRUGGUNLOD, // hi model invanim_tranquilizer_equiporshoot, // equip animation NULL, // unequip animation NULL, // pritosec animation NULL, // sectopri animation { &invfunc_tranquilizer_shoot, &invfunc_tranquilizer_lethal }, // functions &invammo_tranquilizer, // pri ammo NULL, // sec ammo &inve_000110c0, // eptr 1, // sway 10, // left/right -15.2, // up/down -24, // front/back 1, // unk38 invf_00014314, // fptr invg_00014494, // gptr L_GUN(34), // short name L_GUN(34), // name L_GUN(0), // manufacturer L_GUN(181), // description 0x0002e65c, // flags }; struct inventory_ammo invammo_psychosisgun = { AMMOTYPE_PSYCHOSIS, CASING_NONE, 8, // clip size invanim_tranquilizer_reload, // reload animation 0, // style }; struct weaponfunc_shootsingle invfunc_psychosisgun_shoot = { INVENTORYFUNCTYPE_SHOOT_SINGLE, L_GUN(131), // name 0x00, // unk06 0, // unk07 &invmenupos_00010fe4, // menupos invanim_tranquilizer_equiporshoot, // fire animation 0x00200200, // flags &invmenupos_00011098, 0x10000000, 0x3f000000, 0x40400000, 3, 5, 5, 0, 0x3f800000, 0x00000000, 0x426fffff, 0x00000000, 0x00008057, 0x01000000, }; struct weapon invitem_psychosisgun = { FILE_GDRUGGUN, // lo model FILE_GDRUGGUNLOD, // hi model invanim_tranquilizer_equiporshoot, // equip animation NULL, // unequip animation NULL, // pritosec animation NULL, // sectopri animation { &invfunc_psychosisgun_shoot, NULL }, // functions &invammo_psychosisgun, // pri ammo NULL, // sec ammo &inve_000110c0, // eptr 1, // sway 10, // left/right -16.2, // up/down -28.5, // front/back 1, // unk38 invf_00014314, // fptr invg_00014494, // gptr L_GUN(82), // short name L_GUN(49), // name L_GUN(0), // manufacturer L_GUN(210), // description 0x0002e65c, // flags }; struct inventory_typef invf_00014590[] = { { 0x0100, 0x0000, 0x0100, 0x0029, 0x0000 }, { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, }; u32 invanim_sniperrifle_equip[] = { gunscript_playanimation(0x040c, 0, 10000) gunscript_end }; u32 invanim_sniperrifle_reload[] = { gunscript_playanimation(0x040f, 0, 10000) gunscript_setsoundspeed(22, 850) gunscript_playsound(22, 0x01d8) gunscript_showpart(42, 41) gunscript_hidepart(42, 40) gunscript_setsoundspeed(72, 850) gunscript_playsound(72, 0x80f6) gunscript_hidepart(72, 41) gunscript_showpart(72, 40) gunscript_waittime(72, 1) gunscript_end }; struct inventory_typee inve_0001460c = { 0, 3, 8, 15, 0.9721, 0.9767, 0x15000000, 0x00000005, }; struct weaponfunc_shootsingle invfunc_sniperrifle_singleshot = { INVENTORYFUNCTYPE_SHOOT_SINGLE, L_GUN(85), // name 0x00, // unk06 0, // unk07 &invmenupos_00010ff8, // menupos NULL, // fire animation 0x00002000, // flags &invmenupos_00011098, 0x10000000, 0x3f99999a, 0x00000000, 6, 10, 0, 0, 0x41000000, 0x00000000, 0x00000000, 0x00000000, 0x04008058, 0x01000000, }; struct weaponfunc_special invfunc_sniperrifle_crouch = { INVENTORYFUNCTYPE_SPECIAL, L_GUN(130), // name 0x00, // unk06 -1, // unk07 &invmenupos_00010fd0, // menupos NULL, // fire animation 0x00102000, // flags SPECIALFUNC_SNIPERRIFLE_CROUCH, 0x0000001e, 0x00000000, }; struct inventory_ammo invammo_sniperrifle = { AMMOTYPE_RIFLE, CASING_RIFLE, 8, // clip size invanim_sniperrifle_reload, // reload animation 0, // style }; s8 invg_000146a0[] = {41, 0, -1}; struct weapon invitem_sniperrifle = { FILE_GSNIPERRIFLE, // lo model FILE_GSNIPERLOD, // hi model invanim_sniperrifle_equip, // equip animation NULL, // unequip animation NULL, // pritosec animation NULL, // sectopri animation { &invfunc_sniperrifle_singleshot, &invfunc_sniperrifle_crouch }, // functions &invammo_sniperrifle, // pri ammo NULL, // sec ammo &inve_0001460c, // eptr 6, // sway 21, // left/right -27.2, // up/down -31.5, // front/back 1, // unk38 invf_00014590, // fptr invg_000146a0, // gptr L_GUN(32), // short name L_GUN(32), // name L_GUN(0), // manufacturer L_GUN(179), // description 0x00026650, // flags }; u32 invanim_laser_equip[] = { gunscript_playanimation(0x042e, 0, 10000) gunscript_end }; u32 invanim_laser_unequip[] = { gunscript_playanimation(0x042f, 0, 10000) gunscript_end }; struct weaponfunc_shootsingle invfunc_laser_pulse = { INVENTORYFUNCTYPE_SHOOT_SINGLE, L_GUN(132), // name 0x00, // unk06 -1, // unk07 &invmenupos_0001100c, // menupos NULL, // fire animation 0x00000000, // flags &invmenupos_00011098, 0x00000000, 0x3f800000, 0x00000000, 6, 18, 24, -1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x03008043, 0x01000000, }; struct weaponfunc_shootauto invfunc_laser_stream = { INVENTORYFUNCTYPE_SHOOT_AUTOMATIC, L_GUN(133), // name 0x00, // unk06 -1, // unk07 &invmenupos_00010fd0, // menupos NULL, // fire animation 0x00000000, // flags &invmenupos_00011084, 0x00000000, 0x3dcccccd, 0x00000000, 6, 18, 0, 6, 0x40800000, 0x40400000, 0x00000000, 0x00000000, 0x03000000, 0x01000000, 3600, 3600, NULL, NULL, 0x00000000, }; struct weapon invitem_laser = { FILE_GLASER, // lo model FILE_GLASERLOD, // hi model invanim_laser_equip, // equip animation invanim_laser_unequip, // unequip animation NULL, // pritosec animation NULL, // sectopri animation { &invfunc_laser_pulse, &invfunc_laser_stream }, // functions NULL, // pri ammo NULL, // sec ammo &inve_000110c0, // eptr 3, // sway -12, // left/right -12.7, // up/down -21.5, // front/back 1, // unk38 NULL, // fptr NULL, // gptr L_GUN(47), // short name L_GUN(47), // name L_GUN(150), // manufacturer L_GUN(189), // description 0x0412a678, // flags }; s8 invg_000147f8[] = {90, 0, -1}; struct inventory_typef invf_000147fc[] = { { 0x0100, 0x0000, 0x0100, 0x0035, 0x0000 }, { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, }; u32 invanim_pp9i_equiporshoot[] = { gunscript_playanimation(0x0440, 0, 10000) gunscript_waittime(10, 5) gunscript_end }; struct weaponfunc_shootsingle invfunc_pp9i_shoot = { INVENTORYFUNCTYPE_SHOOT_SINGLE, L_GUN(85), // name 0x00, // unk06 0, // unk07 &invmenupos_0001100c, // menupos invanim_pp9i_equiporshoot, // fire animation 0x00000000, // flags &invmenupos_00011098, 0x10000000, 0x3f800000, 0x3f800000, 4, 8, 3, 0, 0x40400000, 0x41200000, 0x41efffff, 0x00000000, 0x00008069, 0x01000000, }; struct inventory_ammo invammo_pp9i = { AMMOTYPE_PISTOL, CASING_STANDARD, 7, // clip size NULL, // reload animation 0, // style }; struct weapon invitem_pp9i = { FILE_GWPPK, // lo model FILE_GWPPK, // hi model invanim_pp9i_equiporshoot, // equip animation NULL, // unequip animation NULL, // pritosec animation NULL, // sectopri animation { &invfunc_pp9i_shoot, NULL }, // functions &invammo_pp9i, // pri ammo NULL, // sec ammo &inve_000110c0, // eptr 1, // sway 10, // left/right -14.8, // up/down -19, // front/back 1, // unk38 invf_000147fc, // fptr invg_000147f8, // gptr L_GUN(50), // short name L_GUN(50), // name L_GUN(0), // manufacturer L_GUN(0), // description 0x000af67c, // flags }; u32 invanim_cc13_equiporshoot[] = { gunscript_playanimation(0x043f, 0, 10000) gunscript_waittime(10, 5) gunscript_end }; struct weaponfunc_shootsingle invfunc_cc13_shoot = { INVENTORYFUNCTYPE_SHOOT_SINGLE, L_GUN(85), // name 0x00, // unk06 0, // unk07 &invmenupos_0001100c, // menupos invanim_cc13_equiporshoot, // fire animation 0x00000000, // flags &invmenupos_00011098, 0x10000000, 0x3f800000, 0x40c00000, 4, 8, 3, 0, 0x40a00000, 0x41200000, 0x426fffff, 0x00000000, 0x0000806a, 0x01000000, }; struct inventory_ammo invammo_cc13 = { AMMOTYPE_PISTOL, CASING_STANDARD, 8, // clip size NULL, // reload animation 0, // style }; struct weapon invitem_cc13 = { FILE_GTT33, // lo model FILE_GTT33, // hi model invanim_cc13_equiporshoot, // equip animation NULL, // unequip animation NULL, // pritosec animation NULL, // sectopri animation { &invfunc_cc13_shoot, NULL }, // functions &invammo_cc13, // pri ammo NULL, // sec ammo &inve_000110c0, // eptr 1, // sway 10, // left/right -17, // up/down -26.5, // front/back 1, // unk38 invf_000147fc, // fptr invg_000147f8, // gptr L_GUN(51), // short name L_GUN(51), // name L_GUN(0), // manufacturer L_GUN(0), // description 0x000af67c, // flags }; struct weaponfunc_shootauto invfunc_kl01313_shoot = { INVENTORYFUNCTYPE_SHOOT_AUTOMATIC, L_GUN(86), // name 0x00, // unk06 0, // unk07 &invmenupos_0001100c, // menupos NULL, // fire animation 0x00000000, // flags &invmenupos_00011098, 0x00000000, 0x3f19999a, 0x41700000, 0, 0, 0, 6, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0b00806b, 0x01000000, 450, 450, NULL, NULL, 0x00000000, }; struct inventory_ammo invammo_kl01313 = { AMMOTYPE_SMG, CASING_STANDARD, 20, // clip size NULL, // reload animation 0, // style }; struct weapon invitem_kl01313 = { FILE_GSKORPION, // lo model FILE_GSKORPION, // hi model NULL, // equip animation NULL, // unequip animation NULL, // pritosec animation NULL, // sectopri animation { &invfunc_kl01313_shoot, NULL }, // functions &invammo_kl01313, // pri ammo NULL, // sec ammo &inve_000110c0, // eptr 1, // sway 8.5, // left/right -13, // up/down -29.5, // front/back 1, // unk38 NULL, // fptr invg_000147f8, // gptr L_GUN(52), // short name L_GUN(52), // name L_GUN(0), // manufacturer L_GUN(0), // description 0x0000967c, // flags }; struct weaponfunc_shootauto invfunc_kf7special_shoot = { INVENTORYFUNCTYPE_SHOOT_AUTOMATIC, L_GUN(87), // name 0x00, // unk06 0, // unk07 &invmenupos_0001100c, // menupos NULL, // fire animation 0x00000002, // flags &invmenupos_00011098, 0x00000000, 0x3f800000, 0x41200000, 4, 12, 0, 6, 0x40900000, 0x40000000, 0x00000000, 0x40400000, 0x0400806c, 0x01000000, 450, 450, NULL, NULL, 0x00000000, }; struct inventory_ammo invammo_kf7special = { AMMOTYPE_RIFLE, CASING_RIFLE, 30, // clip size NULL, // reload animation 0, // style }; struct weapon invitem_kf7special = { FILE_GAK47, // lo model FILE_GAK47, // hi model NULL, // equip animation NULL, // unequip animation NULL, // pritosec animation NULL, // sectopri animation { &invfunc_kf7special_shoot, NULL }, // functions &invammo_kf7special, // pri ammo NULL, // sec ammo &inve_00011140, // eptr 2, // sway 13, // left/right -21, // up/down -13.5, // front/back 1, // unk38 NULL, // fptr invg_000147f8, // gptr L_GUN(53), // short name L_GUN(53), // name L_GUN(0), // manufacturer L_GUN(0), // description 0x0000967c, // flags }; struct weaponfunc_shootauto invfunc_zzt9mm_shoot = { INVENTORYFUNCTYPE_SHOOT_AUTOMATIC, L_GUN(86), // name 0x00, // unk06 0, // unk07 &invmenupos_0001100c, // menupos NULL, // fire animation 0x00000000, // flags &invmenupos_00011098, 0x00000000, 0x3f800000, 0x41100000, 6, 18, 0, 6, 0x40800000, 0x40400000, 0x00000000, 0x00000000, 0x0400806d, 0x01000000, 600, 600, NULL, NULL, 0x00000000, }; struct inventory_ammo invammo_zzt9mm = { AMMOTYPE_SMG, CASING_STANDARD, 32, // clip size NULL, // reload animation 0, // style }; struct weapon invitem_zzt9mm = { FILE_GUZI, // lo model FILE_GUZI, // hi model NULL, // equip animation NULL, // unequip animation NULL, // pritosec animation NULL, // sectopri animation { &invfunc_zzt9mm_shoot, NULL }, // functions &invammo_zzt9mm, // pri ammo NULL, // sec ammo &inve_000110e0, // eptr 0.5, // sway 11, // left/right -24.5, // up/down -37, // front/back 1, // unk38 NULL, // fptr invg_000147f8, // gptr L_GUN(54), // short name L_GUN(54), // name L_GUN(0), // manufacturer L_GUN(0), // description 0x0000967c, // flags }; struct weaponfunc_shootauto invfunc_dmc_shoot = { INVENTORYFUNCTYPE_SHOOT_AUTOMATIC, L_GUN(86), // name 0x00, // unk06 0, // unk07 &invmenupos_0001100c, // menupos NULL, // fire animation 0x00000000, // flags &invmenupos_00011098, 0x00000000, 0x3f800000, 0x40e00000, 6, 18, 0, 6, 0x40800000, 0x40400000, 0x00000000, 0x00000000, 0x0400806e, 0x01000000, 450, 450, NULL, NULL, 0x00000000, }; struct inventory_ammo invammo_dmc = { AMMOTYPE_SMG, CASING_STANDARD, 30, // clip size NULL, // reload animation 0, // style }; struct weapon invitem_dmc = { FILE_GMP5K, // lo model FILE_GMP5K, // hi model NULL, // equip animation NULL, // unequip animation NULL, // pritosec animation NULL, // sectopri animation { &invfunc_dmc_shoot, NULL }, // functions &invammo_dmc, // pri ammo NULL, // sec ammo &inve_000110e0, // eptr 1, // sway 16.5, // left/right -22.9, // up/down -35, // front/back 1, // unk38 NULL, // fptr invg_000147f8, // gptr L_GUN(55), // short name L_GUN(55), // name L_GUN(0), // manufacturer L_GUN(0), // description 0x0000967c, // flags }; struct weaponfunc_shootauto invfunc_ar53_shoot = { INVENTORYFUNCTYPE_SHOOT_AUTOMATIC, L_GUN(87), // name 0x00, // unk06 0, // unk07 &invmenupos_0001100c, // menupos NULL, // fire animation 0x00000002, // flags &invmenupos_00011098, 0x00000000, 0x3fb33333, 0x40c00000, 6, 18, 2, 8, 0x40a00000, 0x40000000, 0x00000000, 0x40800000, 0x0500806f, 0x01000000, 550, 550, NULL, NULL, 0x00000000, }; struct inventory_ammo invammo_ar53 = { AMMOTYPE_RIFLE, CASING_RIFLE, 30, // clip size NULL, // reload animation 0, // style }; struct weapon invitem_ar53 = { FILE_GM16, // lo model FILE_GM16, // hi model NULL, // equip animation NULL, // unequip animation NULL, // pritosec animation NULL, // sectopri animation { &invfunc_ar53_shoot, NULL }, // functions &invammo_ar53, // pri ammo NULL, // sec ammo &inve_00011140, // eptr 6, // sway 11, // left/right -19.2, // up/down -21.5, // front/back 1, // unk38 NULL, // fptr invg_000147f8, // gptr L_GUN(56), // short name L_GUN(56), // name L_GUN(0), // manufacturer L_GUN(0), // description 0x0060967c, // flags }; struct weaponfunc_shootauto invfunc_rcp45_shoot = { INVENTORYFUNCTYPE_SHOOT_AUTOMATIC, L_GUN(86), // name 0x00, // unk06 0, // unk07 &invmenupos_0001100c, // menupos NULL, // fire animation 0x00000000, // flags &invmenupos_00011098, 0x00000000, 0x3fe66666, 0x40c00000, 4, 8, 0, 3, 0x40600000, 0x40000000, 0x00000000, 0x40800000, 0x02008070, 0x01000000, 600, 600, NULL, NULL, 0x00000000, }; struct inventory_ammo invammo_rcp45 = { AMMOTYPE_SMG, CASING_STANDARD, 80, // clip size NULL, // reload animation 0, // style }; struct weapon invitem_rcp45 = { FILE_GFNP90, // lo model FILE_GFNP90, // hi model NULL, // equip animation NULL, // unequip animation NULL, // pritosec animation NULL, // sectopri animation { &invfunc_rcp45_shoot, NULL }, // functions &invammo_rcp45, // pri ammo NULL, // sec ammo &inve_000110e0, // eptr 4, // sway 11, // left/right -22.3, // up/down -29, // front/back 1, // unk38 NULL, // fptr invg_000147f8, // gptr L_GUN(57), // short name L_GUN(57), // name L_GUN(0), // manufacturer L_GUN(0), // description 0x0060967c, // flags }; struct weaponfunc invfunc_briefcase_use = { INVENTORYFUNCTYPE_NONE, L_GUN(0), // name 0x00, // unk06 0, // unk07 &invmenupos_00010fd0, // menupos NULL, // fire animation 0x00000000, // flags }; struct inventory_typef invf_unused_8006edcc[] = { { 0x0000, 0x001e, 0x0000, 0x0002, 0x0001 }, { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, }; struct weapon invitem_briefcase2 = { FILE_GFALCON2LOD, // lo model FILE_GFALCON2LOD, // hi model NULL, // equip animation NULL, // unequip animation NULL, // pritosec animation NULL, // sectopri animation { &invfunc_briefcase_use, &invfunc_briefcase_use }, // functions NULL, // pri ammo NULL, // sec ammo &inve_000110c0, // eptr 1, // sway 12.5, // left/right -17, // up/down -27.5, // front/back 1, // unk38 NULL, // fptr NULL, // gptr L_GUN(71), // short name L_GUN(71), // name L_GUN(0), // manufacturer L_GUN(0), // description 0x01940808, // flags }; struct weaponfunc_shootauto invfunc_59_rapidfire = { INVENTORYFUNCTYPE_SHOOT_AUTOMATIC, L_GUN(86), // name 0x00, // unk06 0, // unk07 &invmenupos_0001100c, // menupos NULL, // fire animation 0x00000000, // flags &invmenupos_00011098, 0x00000000, 0x3f800000, 0x40c00000, 6, 18, 2, 8, 0x40a00000, 0x40000000, 0x00000000, 0x40800000, 0x04008059, 0x02000000, 900, 900, NULL, NULL, 0x00000000, }; struct inventory_ammo invammo_59 = { AMMOTYPE_SMG, CASING_RIFLE, 27, // clip size NULL, // reload animation 0, // style }; struct weapon invitem_59 = { 0, // lo model 0, // hi model NULL, // equip animation NULL, // unequip animation NULL, // pritosec animation NULL, // sectopri animation { &invfunc_59_rapidfire, NULL }, // functions &invammo_59, // pri ammo NULL, // sec ammo &inve_000110c0, // eptr 1, // sway 16.5, // left/right -19.5, // up/down -24, // front/back 1, // unk38 NULL, // fptr NULL, // gptr L_GUN(0), // short name L_GUN(0), // name L_GUN(0), // manufacturer L_GUN(0), // description 0x00001250, // flags }; struct weaponfunc_shootauto invfunc_5a_rapidfire = { INVENTORYFUNCTYPE_SHOOT_AUTOMATIC, L_GUN(86), // name 0x00, // unk06 0, // unk07 &invmenupos_0001100c, // menupos NULL, // fire animation 0x00000000, // flags &invmenupos_00011098, 0x00000000, 0x3f800000, 0x40c00000, 6, 18, 2, 8, 0x40a00000, 0x40000000, 0x00000000, 0x40800000, 0x0400803f, 0x01000000, 900, 900, NULL, NULL, 0x00000000, }; struct inventory_ammo invammo_5a = { AMMOTYPE_SMG, CASING_RIFLE, 27, // clip size NULL, // reload animation 0, // style }; struct weapon invitem_5a = { 0, // lo model 0, // hi model NULL, // equip animation NULL, // unequip animation NULL, // pritosec animation NULL, // sectopri animation { &invfunc_5a_rapidfire, NULL }, // functions &invammo_5a, // pri ammo NULL, // sec ammo &inve_000110c0, // eptr 1, // sway 16.5, // left/right -19.5, // up/down -24, // front/back 1, // unk38 NULL, // fptr NULL, // gptr L_GUN(0), // short name L_GUN(0), // name L_GUN(0), // manufacturer L_GUN(0), // description 0x00001250, // flags }; struct inventory_typef invf_00014fc0[] = { { 0x0100, 0x0000, 0x0100, 0x0035, 0x0000 }, { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, }; u32 invanim_combatknife_equip[] = { gunscript_playanimation(0x0403, 0, 10000) gunscript_waittime(24, 2) gunscript_end }; u32 invanim_combatknife_slash2[] = { gunscript_playanimation(0x0404, 0, 10000) gunscript_waittime(24, 2) gunscript_end }; u32 invanim_combatknife_slash[] = { gunscript_random(50, invanim_combatknife_slash2) gunscript_include(0, invanim_combatknife_equip) gunscript_end }; u32 invanim_combatknife_pritosec[] = { gunscript_playanimation(0x0405, 0, 10000) gunscript_playsound(30, 0x80a7) gunscript_playsound(40, 0x80a6) gunscript_end }; u32 invanim_combatknife_sectopri[] = { gunscript_playanimation(0x0405, 65535, 55536) gunscript_playsound(10, 0x80a8) gunscript_playsound(20, 0x80a6) gunscript_end }; u32 invanim_combatknife_throw[] = { gunscript_playanimation(0x041b, 0, 10000) gunscript_waitforzreleased(12) gunscript_waittime(16, 2) gunscript_end }; u32 invanim_unused_8007f05c[] = { gunscript_playanimation(0x041c, 0, 10000) gunscript_waittime(22, 1) gunscript_end }; u32 invanim_combatknife_reload[] = { gunscript_include(2, invanim_combatknife_sectopri) gunscript_include(0, invanim_combatknife_pritosec) gunscript_end }; struct weaponfunc_close invfunc_combatknife_slash = { INVENTORYFUNCTYPE_CLOSE, L_GUN(109), // name 0x00, // unk06 0, // unk07 &invmenupos_00010fd0, // menupos invanim_combatknife_slash, // fire animation 0x00002000, // flags 0x40000000, 0x428c0000, 0x00000069, 0x00000069, 0x00000069, 0x41300000, 0xc1cc0000, 0x41300000, 0xc1cc0000, 0xbf800000, 0xbf800000, 0x40000000, 0x40000000, 0x00000000, }; struct weaponfunc_throw invfunc_combatknife_throw = { INVENTORYFUNCTYPE_THROW, L_GUN(110), // name 0x00, // unk06 0, // unk07 &invmenupos_00010fd0, // menupos invanim_combatknife_throw, // fire animation 0x00802000, // flags 0x0000010f, 0x00f00000, 0x0000003c, 0x3f800000, }; struct inventory_ammo invammo_combatknife = { AMMOTYPE_KNIFE, CASING_NONE, 1, // clip size invanim_combatknife_reload, // reload animation 167772160, // style }; struct weapon invitem_combatknife = { FILE_GKNIFE, // lo model FILE_GKNIFELOD, // hi model invanim_combatknife_equip, // equip animation NULL, // unequip animation invanim_combatknife_pritosec, // pritosec animation invanim_combatknife_sectopri, // sectopri animation { &invfunc_combatknife_slash, &invfunc_combatknife_throw }, // functions &invammo_combatknife, // pri ammo NULL, // sec ammo &inve_000110c0, // eptr 1, // sway 18.5, // left/right -26.5, // up/down -28, // front/back 1, // unk38 invf_00014fc0, // fptr NULL, // gptr L_GUN(83), // short name L_GUN(35), // name L_GUN(0), // manufacturer L_GUN(182), // description 0x0402f679, // flags }; struct weaponfunc_throw invfunc_bug_throw = { INVENTORYFUNCTYPE_THROW, L_GUN(0), // name 0x00, // unk06 0, // unk07 &invmenupos_00010fd0, // menupos NULL, // fire animation 0x00802040, // flags 0x00000012, 0x00f00000, 0x0000003c, 0x00000000, }; struct weaponfunc_throw invfunc_targetamplifier_throw = { INVENTORYFUNCTYPE_THROW, L_GUN(0), // name 0x00, // unk06 0, // unk07 &invmenupos_00010fd0, // menupos NULL, // fire animation 0x00802040, // flags 0x000001b1, 0x00f00000, 0x0000003c, 0x00000000, }; struct inventory_ammo invammo_bug = { AMMOTYPE_BUG, CASING_NONE, 1, // clip size NULL, // reload animation 33554432, // style }; struct weapon invitem_commsrider = { FILE_PCHRBUG, // lo model FILE_PCHRBUG, // hi model NULL, // equip animation NULL, // unequip animation NULL, // pritosec animation NULL, // sectopri animation { &invfunc_bug_throw, NULL }, // functions &invammo_bug, // pri ammo NULL, // sec ammo &inve_000110c0, // eptr 1, // sway 0, // left/right -39.5, // up/down -55.5, // front/back 1, // unk38 NULL, // fptr NULL, // gptr L_GUN(222), // short name L_GUN(222), // name L_GUN(0), // manufacturer L_GUN(204), // description 0x08000018, // flags }; struct weapon invitem_tracerbug = { FILE_PCHRBUG, // lo model FILE_PCHRBUG, // hi model NULL, // equip animation NULL, // unequip animation NULL, // pritosec animation NULL, // sectopri animation { &invfunc_bug_throw, NULL }, // functions &invammo_bug, // pri ammo NULL, // sec ammo &inve_000110c0, // eptr 1, // sway 0, // left/right -39.5, // up/down -55.5, // front/back 1, // unk38 NULL, // fptr NULL, // gptr L_GUN(223), // short name L_GUN(223), // name L_GUN(0), // manufacturer L_GUN(205), // description 0x08000018, // flags }; struct weapon invitem_targetamplifier = { FILE_PTARGETAMP, // lo model FILE_PTARGETAMP, // hi model NULL, // equip animation NULL, // unequip animation NULL, // pritosec animation NULL, // sectopri animation { &invfunc_targetamplifier_throw, NULL }, // functions &invammo_bug, // pri ammo NULL, // sec ammo &inve_000110c0, // eptr 1, // sway 0, // left/right -39.5, // up/down -55.5, // front/back 1, // unk38 NULL, // fptr NULL, // gptr L_GUN(235), // short name L_GUN(224), // name L_GUN(0), // manufacturer L_GUN(206), // description 0x08000018, // flags }; struct weaponfunc_visual invfunc_nightvision_primary = { INVENTORYFUNCTYPE_VISUAL, L_GUN(135), // name 0x00, // unk06 0, // unk07 &invmenupos_00010fd0, // menupos NULL, // fire animation 0x00002000, // flags 0x00000001, }; struct weapon invitem_nightvision = { FILE_PCHRNIGHTSIGHT, // lo model FILE_PCHRNIGHTSIGHT, // hi model NULL, // equip animation NULL, // unequip animation NULL, // pritosec animation NULL, // sectopri animation { &invfunc_nightvision_primary, NULL }, // functions NULL, // pri ammo NULL, // sec ammo &inve_000110c0, // eptr 1, // sway 0, // left/right -39.5, // up/down -55.5, // front/back 1, // unk38 NULL, // fptr NULL, // gptr L_GUN(59), // short name L_GUN(59), // name L_GUN(0), // manufacturer L_GUN(191), // description 0x08001098, // flags }; struct weaponfunc invfunc_horizonscanner_primary = { INVENTORYFUNCTYPE_NONE, L_GUN(139), // name 0x00, // unk06 -1, // unk07 &invmenupos_00010fd0, // menupos NULL, // fire animation 0x00000000, // flags }; struct inventory_typee inve_00015348 = { 0, 3, 8, 15, 0.9721, 0.9767, 0x05000000, 0x00000005, }; struct weapon invitem_horizonscanner = { FILE_PBINOCULARS, // lo model FILE_PBINOCULARS, // hi model NULL, // equip animation NULL, // unequip animation NULL, // pritosec animation NULL, // sectopri animation { &invfunc_horizonscanner_primary, NULL }, // functions NULL, // pri ammo NULL, // sec ammo &inve_00015348, // eptr 1, // sway 0, // left/right -39.5, // up/down -55.5, // front/back 1, // unk38 NULL, // fptr NULL, // gptr L_GUN(234), // short name L_GUN(76), // name L_GUN(0), // manufacturer L_GUN(196), // description 0x08600058, // flags }; struct weaponfunc_visual invfunc_cloak_primary = { INVENTORYFUNCTYPE_VISUAL, L_GUN(116), // name 0x00, // unk06 0, // unk07 &invmenupos_00010fd0, // menupos NULL, // fire animation 0x00002000, // flags 0x00000040, }; struct inventory_ammo invammo_cloakingdevice = { AMMOTYPE_CLOAK, CASING_NONE, 10, // clip size NULL, // reload animation 16777216, // style }; struct weapon invitem_cloakingdevice = { FILE_PCHRCLOAKER, // lo model FILE_PCHRCLOAKER, // hi model NULL, // equip animation NULL, // unequip animation NULL, // pritosec animation NULL, // sectopri animation { &invfunc_cloak_primary, NULL }, // functions &invammo_cloakingdevice, // pri ammo NULL, // sec ammo &inve_000110c0, // eptr 1, // sway 0, // left/right -39.5, // up/down -55.5, // front/back 1, // unk38 NULL, // fptr NULL, // gptr L_GUN(73), // short name L_GUN(73), // name L_GUN(0), // manufacturer L_GUN(195), // description 0x04000018, // flags }; struct weaponfunc_special invfunc_combatboost_boost = { INVENTORYFUNCTYPE_SPECIAL, L_GUN(113), // name 0x00, // unk06 0, // unk07 &invmenupos_00010fd0, // menupos NULL, // fire animation 0x00002000, // flags SPECIALFUNC_COMBATBOOST_BOOST, 0x0000001e, 0x05c90000, }; struct weaponfunc_special invfunc_combatboost_revert = { INVENTORYFUNCTYPE_SPECIAL, L_GUN(114), // name 0x00, // unk06 0, // unk07 &invmenupos_00010fd0, // menupos NULL, // fire animation 0x00002000, // flags SPECIALFUNC_COMBATBOOST_REVERT, 0x0000001e, 0x05c90000, }; struct inventory_ammo invammo_combatboost = { AMMOTYPE_BOOST, CASING_NONE, 4, // clip size NULL, // reload animation 16777216, // style }; struct weapon invitem_combatboost = { FILE_PCHRSPEEDPILL, // lo model FILE_PCHRSPEEDPILL, // hi model NULL, // equip animation NULL, // unequip animation NULL, // pritosec animation NULL, // sectopri animation { &invfunc_combatboost_boost, &invfunc_combatboost_revert }, // functions &invammo_combatboost, // pri ammo NULL, // sec ammo &inve_000110c0, // eptr 1, // sway 0, // left/right -39.5, // up/down -55.5, // front/back 1, // unk38 NULL, // fptr NULL, // gptr L_GUN(232), // short name L_GUN(74), // name L_GUN(0), // manufacturer L_GUN(190), // description 0x34000018, // flags }; struct weaponfunc_visual invfunc_suicidepill_primary = { INVENTORYFUNCTYPE_VISUAL, L_GUN(0), // name 0x00, // unk06 0, // unk07 &invmenupos_00010fd0, // menupos NULL, // fire animation 0x00002000, // flags 0x00000020, }; struct weapon invitem_suicidepill = { 0, // lo model 0, // hi model NULL, // equip animation NULL, // unequip animation NULL, // pritosec animation NULL, // sectopri animation { &invfunc_suicidepill_primary, NULL }, // functions NULL, // pri ammo NULL, // sec ammo &inve_000110c0, // eptr 1, // sway 0, // left/right -39.5, // up/down -55.5, // front/back 1, // unk38 NULL, // fptr NULL, // gptr L_GUN(72), // short name L_GUN(72), // name L_GUN(0), // manufacturer L_GUN(0), // description 0x08000010, // flags }; struct weaponfunc_visual invfunc_irscanner_primary = { INVENTORYFUNCTYPE_VISUAL, L_GUN(138), // name 0x00, // unk06 0, // unk07 &invmenupos_00010fd0, // menupos NULL, // fire animation 0x00002000, // flags 0x00000008, }; struct weapon invitem_irscanner = { FILE_GIRSCANNER, // lo model FILE_GIRSCANNER, // hi model NULL, // equip animation NULL, // unequip animation NULL, // pritosec animation NULL, // sectopri animation { &invfunc_irscanner_primary, NULL }, // functions NULL, // pri ammo NULL, // sec ammo &inve_000110c0, // eptr 1, // sway 0, // left/right -39.5, // up/down -55.5, // front/back 1, // unk38 NULL, // fptr NULL, // gptr L_GUN(69), // short name L_GUN(69), // name L_GUN(0), // manufacturer L_GUN(194), // description 0x08001058, // flags }; struct weaponfunc invfunc_disguise_primary = { INVENTORYFUNCTYPE_NONE, L_GUN(143), // name 0x00, // unk06 -1, // unk07 &invmenupos_00010fd0, // menupos NULL, // fire animation 0x00000000, // flags }; struct weapon invitem_disguise40 = { 0, // lo model 0, // hi model NULL, // equip animation NULL, // unequip animation NULL, // pritosec animation NULL, // sectopri animation { &invfunc_disguise_primary, NULL }, // functions NULL, // pri ammo NULL, // sec ammo &inve_000110c0, // eptr 1, // sway 0, // left/right -39.5, // up/down -55.5, // front/back 1, // unk38 NULL, // fptr NULL, // gptr L_GUN(43), // short name L_GUN(43), // name L_GUN(0), // manufacturer L_GUN(211), // description 0x88000018, // flags }; struct weapon invitem_disguise41 = { 0, // lo model 0, // hi model NULL, // equip animation NULL, // unequip animation NULL, // pritosec animation NULL, // sectopri animation { &invfunc_disguise_primary, NULL }, // functions NULL, // pri ammo NULL, // sec ammo &inve_000110c0, // eptr 1, // sway 0, // left/right -39.5, // up/down -55.5, // front/back 1, // unk38 NULL, // fptr NULL, // gptr L_GUN(43), // short name L_GUN(43), // name L_GUN(0), // manufacturer L_GUN(211), // description 0x88000018, // flags }; struct weaponfunc_visual invfunc_camspy_deploy = { INVENTORYFUNCTYPE_VISUAL, L_GUN(136), // name 0x00, // unk06 0, // unk07 &invmenupos_00010fd0, // menupos NULL, // fire animation 0x00002000, // flags 0x00000004, }; struct weapon invitem_camspy = { FILE_CEYESPY, // lo model FILE_CEYESPY, // hi model NULL, // equip animation NULL, // unequip animation NULL, // pritosec animation NULL, // sectopri animation { &invfunc_camspy_deploy, NULL }, // functions NULL, // pri ammo NULL, // sec ammo &inve_000110c0, // eptr 1, // sway 0, // left/right -39.5, // up/down -55.5, // front/back 1, // unk38 NULL, // fptr NULL, // gptr L_GUN(60), // short name L_GUN(60), // name L_GUN(0), // manufacturer L_GUN(192), // description 0x08001018, // flags }; struct weaponfunc_visual invfunc_rtracker_primary = { INVENTORYFUNCTYPE_VISUAL, L_GUN(142), // name 0x00, // unk06 0, // unk07 &invmenupos_00010fd0, // menupos NULL, // fire animation 0x00002000, // flags 0x00000010, }; struct weapon invitem_rtracker = { FILE_PRUSSDAR, // lo model FILE_PRUSSDAR, // hi model NULL, // equip animation NULL, // unequip animation NULL, // pritosec animation NULL, // sectopri animation { &invfunc_rtracker_primary, NULL }, // functions NULL, // pri ammo NULL, // sec ammo &inve_000110c0, // eptr 1, // sway 0, // left/right -39.5, // up/down -55.5, // front/back 1, // unk38 NULL, // fptr NULL, // gptr L_GUN(70), // short name L_GUN(70), // name L_GUN(0), // manufacturer L_GUN(198), // description 0x08001018, // flags }; struct weaponfunc_visual invfunc_xray_primary = { INVENTORYFUNCTYPE_VISUAL, L_GUN(137), // name 0x00, // unk06 0, // unk07 &invmenupos_00010fd0, // menupos NULL, // fire animation 0x00002000, // flags 0x00000002, }; struct weapon invitem_xrayscanner = { FILE_PXRAYSPECS, // lo model FILE_PXRAYSPECS, // hi model NULL, // equip animation NULL, // unequip animation NULL, // pritosec animation NULL, // sectopri animation { &invfunc_xray_primary, NULL }, // functions NULL, // pri ammo NULL, // sec ammo &inve_000110c0, // eptr 1, // sway 0, // left/right -39.5, // up/down -55.5, // front/back 1, // unk38 NULL, // fptr NULL, // gptr L_GUN(233), // short name L_GUN(65), // name L_GUN(0), // manufacturer L_GUN(193), // description 0x08600058, // flags }; u32 invanim_datauplink_equip[] = { gunscript_playanimation(0x0439, 0, 10000) gunscript_end }; u32 invanim_datauplink_unequip[] = { gunscript_playanimation(0x043a, 0, 10000) gunscript_end }; u32 invanim_unused_8007f794[] = { gunscript_playanimation(0x043b, 0, 10000) gunscript_end }; struct weaponfunc_special invfunc_datauplink_primary = { INVENTORYFUNCTYPE_SPECIAL, L_GUN(141), // name 0x00, // unk06 -1, // unk07 &invmenupos_00010fd0, // menupos NULL, // fire animation 0x00102000, // flags SPECIALFUNC_DATAUPLINK_UPLINK, 0x0000001e, 0x00000000, }; struct weapon invitem_datauplink = { FILE_GCOMMSUPLINK, // lo model FILE_GCOMMSUPLINK, // hi model invanim_datauplink_equip, // equip animation invanim_datauplink_unequip, // unequip animation NULL, // pritosec animation NULL, // sectopri animation { &invfunc_datauplink_primary, NULL }, // functions NULL, // pri ammo NULL, // sec ammo &inve_000110c0, // eptr 1, // sway 8, // left/right -16.2, // up/down -17.5, // front/back 1, // unk38 NULL, // fptr NULL, // gptr L_GUN(75), // short name L_GUN(75), // name L_GUN(0), // manufacturer L_GUN(197), // description 0x88022048, // flags }; struct weapon invitem_doordecoder = { FILE_PCHRDOORDECODER, // lo model FILE_PCHRDOORDECODER, // hi model NULL, // equip animation NULL, // unequip animation NULL, // pritosec animation NULL, // sectopri animation NULL, // pri function NULL, // sec function NULL, // pri ammo NULL, // sec ammo &inve_000110c0, // eptr 1, // sway 35, // left/right -26.7, // up/down -41, // front/back 1, // unk38 NULL, // fptr NULL, // gptr L_GUN(63), // short name L_GUN(63), // name L_GUN(0), // manufacturer L_GUN(200), // description 0x88000008, // flags }; struct weapon invitem_rocket = { FILE_GCYCLONE, // lo model FILE_GCYCLONELOD, // hi model NULL, // equip animation NULL, // unequip animation NULL, // pritosec animation NULL, // sectopri animation NULL, // pri function NULL, // sec function &invammo_default, // pri ammo NULL, // sec ammo &inve_000110c0, // eptr 1, // sway 12.5, // left/right -17, // up/down -27.5, // front/back 1, // unk38 NULL, // fptr NULL, // gptr L_GUN(44), // short name L_GUN(44), // name L_GUN(0), // manufacturer L_GUN(0), // description 0x00000000, // flags }; struct weapon invitem_homingrocket = { FILE_GCYCLONE, // lo model FILE_GCYCLONELOD, // hi model NULL, // equip animation NULL, // unequip animation NULL, // pritosec animation NULL, // sectopri animation NULL, // pri function NULL, // sec function &invammo_default, // pri ammo NULL, // sec ammo &inve_000110c0, // eptr 1, // sway 12.5, // left/right -17, // up/down -27.5, // front/back 1, // unk38 NULL, // fptr NULL, // gptr L_GUN(45), // short name L_GUN(45), // name L_GUN(0), // manufacturer L_GUN(0), // description 0x00000000, // flags }; struct weapon invitem_grenaderound = { FILE_GCYCLONE, // lo model FILE_GCYCLONELOD, // hi model NULL, // equip animation NULL, // unequip animation NULL, // pritosec animation NULL, // sectopri animation { &invfunc_devastator_shoot, &invfunc_devastator_wallhugger }, // functions &invammo_default, // pri ammo NULL, // sec ammo &inve_000110c0, // eptr 1, // sway 12.5, // left/right -17, // up/down -27.5, // front/back 1, // unk38 NULL, // fptr NULL, // gptr L_GUN(46), // short name L_GUN(46), // name L_GUN(0), // manufacturer L_GUN(0), // description 0x00000000, // flags }; struct weapon invitem_bolt = { FILE_GCYCLONE, // lo model FILE_GCYCLONELOD, // hi model NULL, // equip animation NULL, // unequip animation NULL, // pritosec animation NULL, // sectopri animation { &invfunc_crossbow_shoot, &invfunc_crossbow_lethal }, // functions &invammo_default, // pri ammo NULL, // sec ammo &inve_000110c0, // eptr 1, // sway 12.5, // left/right -17, // up/down -27.5, // front/back 1, // unk38 NULL, // fptr NULL, // gptr L_GUN(48), // short name L_GUN(48), // name L_GUN(0), // manufacturer L_GUN(0), // description 0x00000000, // flags }; struct weaponfunc_special invfunc_unused_8006f9a4 = { INVENTORYFUNCTYPE_SPECIAL, L_GUN(144), // "Place Explosives" 0x00, // unk06 -1, // unk07 &invmenupos_00010fd0, // menupos NULL, // fire animation 0x00102000, // flags SPECIALFUNC_DATAUPLINK_UPLINK, 0x0000001e, 0x00000000, }; struct weapon invitem_skedarbomb = { FILE_PSKEDARBOMB, // lo model FILE_PSKEDARBOMB, // hi model NULL, // equip animation NULL, // unequip animation NULL, // pritosec animation NULL, // sectopri animation NULL, // pri function NULL, // sec function NULL, // pri ammo NULL, // sec ammo &inve_000110c0, // eptr 1, // sway 15.5, // left/right -20.2, // up/down -33.5, // front/back 1, // unk38 NULL, // fptr NULL, // gptr L_GUN(221), // short name L_GUN(221), // name L_GUN(0), // manufacturer L_GUN(203), // description 0x80000000, // flags }; struct weapon invitem_explosives = { FILE_PEXPLOSIVEBRICK, // lo model FILE_PEXPLOSIVEBRICK, // hi model NULL, // equip animation NULL, // unequip animation NULL, // pritosec animation NULL, // sectopri animation NULL, // pri function NULL, // sec function NULL, // pri ammo NULL, // sec ammo &inve_000110c0, // eptr 1, // sway 15.5, // left/right -20.2, // up/down -33.5, // front/back 1, // unk38 NULL, // fptr NULL, // gptr L_GUN(64), // short name L_GUN(64), // name L_GUN(0), // manufacturer L_GUN(202), // description 0x80000000, // flags }; struct weaponfunc_visual invfunc_presidentscanner_primary = { INVENTORYFUNCTYPE_VISUAL, L_GUN(142), // name 0x00, // unk06 0, // unk07 &invmenupos_00010fd0, // menupos NULL, // fire animation 0x00002000, // flags 0x00000010, }; struct weapon invitem_presidentscanner = { FILE_PRUSSDAR, // lo model FILE_PRUSSDAR, // hi model NULL, // equip animation NULL, // unequip animation NULL, // pritosec animation NULL, // sectopri animation { &invfunc_presidentscanner_primary, NULL }, // functions NULL, // pri ammo NULL, // sec ammo &inve_000110c0, // eptr 1, // sway 0, // left/right -39.5, // up/down -55.5, // front/back 1, // unk38 NULL, // fptr NULL, // gptr L_GUN(231), // short name L_GUN(219), // name L_GUN(0), // manufacturer L_GUN(199), // description 0x08001018, // flags }; struct weapon invitem_autosurgeon = { FILE_PAUTOSURGEON, // lo model FILE_PAUTOSURGEON, // hi model NULL, // equip animation NULL, // unequip animation NULL, // pritosec animation NULL, // sectopri animation NULL, // pri function NULL, // sec function NULL, // pri ammo NULL, // sec ammo &inve_000110c0, // eptr 1, // sway 15.5, // left/right -20.2, // up/down -33.5, // front/back 1, // unk38 NULL, // fptr NULL, // gptr L_GUN(220), // short name L_GUN(220), // name L_GUN(0), // manufacturer L_GUN(201), // description 0x88000000, // flags }; struct weapon invitem_flightplans = { FILE_PSAFEITEM, // lo model FILE_PSAFEITEM, // hi model NULL, // equip animation NULL, // unequip animation NULL, // pritosec animation NULL, // sectopri animation NULL, // pri function NULL, // sec function NULL, // pri ammo NULL, // sec ammo &inve_000110c0, // eptr 1, // sway 15.5, // left/right -20.2, // up/down -33.5, // front/back 1, // unk38 NULL, // fptr NULL, // gptr L_GUN(225), // short name L_GUN(225), // name L_GUN(0), // manufacturer L_GUN(207), // description 0x08000000, // flags }; struct weapon invitem_researchtape = { FILE_PRESEARCHTAPE, // lo model FILE_PRESEARCHTAPE, // hi model NULL, // equip animation NULL, // unequip animation NULL, // pritosec animation NULL, // sectopri animation NULL, // pri function NULL, // sec function NULL, // pri ammo NULL, // sec ammo &inve_000110c0, // eptr 1, // sway 15.5, // left/right -20.2, // up/down -33.5, // front/back 1, // unk38 NULL, // fptr NULL, // gptr L_GUN(226), // short name L_GUN(226), // name L_GUN(0), // manufacturer L_GUN(208), // description 0x08000000, // flags }; struct weapon invitem_backupdisk = { FILE_PZIGGYCARD, // lo model FILE_PZIGGYCARD, // hi model NULL, // equip animation NULL, // unequip animation NULL, // pritosec animation NULL, // sectopri animation NULL, // pri function NULL, // sec function NULL, // pri ammo NULL, // sec ammo &inve_000110c0, // eptr 1, // sway 15.5, // left/right -20.2, // up/down -33.5, // front/back 1, // unk38 NULL, // fptr NULL, // gptr L_GUN(227), // short name L_GUN(227), // name L_GUN(0), // manufacturer L_GUN(209), // description 0x08000000, // flags }; struct weapon invitem_briefcase = { FILE_PKEYCARD, // lo model FILE_PKEYCARD, // hi model NULL, // equip animation NULL, // unequip animation NULL, // pritosec animation NULL, // sectopri animation NULL, // pri function NULL, // sec function NULL, // pri ammo NULL, // sec ammo &inve_000110c0, // eptr 1, // sway 15.5, // left/right -20.2, // up/down -33.5, // front/back 1, // unk38 NULL, // fptr NULL, // gptr L_GUN(229), // short name L_GUN(229), // name L_GUN(0), // manufacturer L_GUN(0), // description 0x08040000, // flags }; struct weapon invitem_suitcase = { FILE_PCHRBRIEFCASE, // lo model FILE_PCHRBRIEFCASE, // hi model NULL, // equip animation NULL, // unequip animation NULL, // pritosec animation NULL, // sectopri animation NULL, // pri function NULL, // sec function NULL, // pri ammo NULL, // sec ammo &inve_000110c0, // eptr 1, // sway 15.5, // left/right -20.2, // up/down -33.5, // front/back 1, // unk38 NULL, // fptr NULL, // gptr L_GUN(67), // short name L_GUN(67), // name L_GUN(0), // manufacturer L_GUN(0), // description 0x88000000, // flags }; struct weapon invitem_necklace = { FILE_PCHRCHAIN, // lo model FILE_PCHRCHAIN, // hi model NULL, // equip animation NULL, // unequip animation NULL, // pritosec animation NULL, // sectopri animation NULL, // pri function NULL, // sec function NULL, // pri ammo NULL, // sec ammo &inve_000110c0, // eptr 1, // sway 15.5, // left/right -20.2, // up/down -33.5, // front/back 1, // unk38 NULL, // fptr NULL, // gptr L_GUN(230), // short name L_GUN(230), // name L_GUN(0), // manufacturer L_GUN(238), // description 0x08000000, // flags }; struct weapon invitem_shield = { FILE_PCHRSHIELD, // lo model FILE_PCHRSHIELD, // hi model NULL, // equip animation NULL, // unequip animation NULL, // pritosec animation NULL, // sectopri animation NULL, // pri function NULL, // sec function NULL, // pri ammo NULL, // sec ammo &inve_000110c0, // eptr 1, // sway 15.5, // left/right -20.2, // up/down -33.5, // front/back 1, // unk38 NULL, // fptr NULL, // gptr L_GUN(240), // short name L_GUN(240), // name L_GUN(0), // manufacturer L_GUN(241), // description 0x08000000, // flags }; struct weapon invitem_keycard = { FILE_PKEYCARD, // lo model FILE_PKEYCARD, // hi model NULL, // equip animation NULL, // unequip animation NULL, // pritosec animation NULL, // sectopri animation NULL, // pri function NULL, // sec function NULL, // pri ammo NULL, // sec ammo &inve_000110c0, // eptr 1, // sway 15.5, // left/right -20.2, // up/down -33.5, // front/back 1, // unk38 NULL, // fptr NULL, // gptr L_GUN(228), // short name L_GUN(228), // name L_GUN(0), // manufacturer L_GUN(0), // description 0x08000000, // flags }; struct weaponfunc_shootprojectile invfunc_rocketlauncher34_primary = { INVENTORYFUNCTYPE_SHOOT_PROJECTILE, L_GUN(0), // name 0x00, // unk06 0, // unk07 &invmenupos_00011048, // menupos invanim_rockerlauncher_equiporshoot, // fire animation 0x08000040, // flags 0x00000000, 0x00000000, 0x3f800000, 0x40c00000, 3, 12, 15, 0, 0x40400000, 0x40000000, 0x00000000, 0x40800000, 0x04008053, 0x01000000, 0x0000011f, 0x00000000, 0x40066666, 0x00000014, 0x00000000, 0x00000000, 0xffffffff, 0x3d4ccccd, 0x80530000, }; struct inventory_ammo invammo_rocketlauncher34 = { AMMOTYPE_ROCKET, CASING_NONE, 1, // clip size invanim_rocketlauncher_reload, // reload animation 0, // style }; struct weapon invitem_rocketlauncher_34 = { FILE_GDYROCKET, // lo model FILE_GROCKETLOD, // hi model NULL, // equip animation NULL, // unequip animation NULL, // pritosec animation NULL, // sectopri animation { &invfunc_rocketlauncher34_primary, NULL }, // functions &invammo_rocketlauncher34, // pri ammo NULL, // sec ammo &inve_000135f0, // eptr 1, // sway 24.5, // left/right -25.2, // up/down -30, // front/back 1, // unk38 NULL, // fptr NULL, // gptr L_GUN(80), // short name L_GUN(27), // name L_GUN(0), // manufacturer L_GUN(0), // description 0x40026070, // flags }; u32 invanim_tester_shoot[] = { gunscript_playanimation(0x0112, 0, 10000) gunscript_end }; struct weaponfunc_shootsingle invfunc_tester_primary = { INVENTORYFUNCTYPE_SHOOT_SINGLE, L_GUN(0), // name 0x00, // unk06 0, // unk07 &invmenupos_0001100c, // menupos invanim_tester_shoot, // fire animation 0x00000000, // flags &invmenupos_00011070, 0x10000000, 0x3f800000, 0x40c00000, 4, 8, 3, 0, 0x00000000, 0x00000000, 0x426fffff, 0x00000000, 0x0000804d, 0x01000000, }; struct inventory_ammo invammo_tester = { AMMOTYPE_PISTOL, CASING_STANDARD, 8, // clip size NULL, // reload animation 0, // style }; struct weapon invitem_tester = { FILE_GTESTGUN, // lo model FILE_GTESTGUN, // hi model NULL, // equip animation NULL, // unequip animation NULL, // pritosec animation NULL, // sectopri animation { &invfunc_tester_primary, NULL }, // functions &invammo_tester, // pri ammo NULL, // sec ammo &inve_000110c0, // eptr 1, // sway 15.5, // left/right -20.2, // up/down -33.5, // front/back 1, // unk38 NULL, // fptr NULL, // gptr L_GUN(58), // short name L_GUN(58), // name L_GUN(0), // manufacturer L_GUN(0), // description 0x0000a47c, // flags }; struct weapon *g_Weapons[] = { &invitem_nothing, &invitem_unarmed, &invitem_falcon2, &invitem_falcon2silencer, &invitem_falcon2scope, &invitem_magsec, &invitem_mauler, &invitem_phoenix, &invitem_dy357, &invitem_dy357lx, &invitem_cmp150, &invitem_cyclone, &invitem_callisto, &invitem_rcp120, &invitem_laptopgun, &invitem_dragon, &invitem_k7avenger, &invitem_ar34, &invitem_superdragon, &invitem_shotgun, &invitem_reaper, &invitem_sniperrifle, &invitem_farsight, &invitem_devastator, &invitem_rocketlauncher, &invitem_slayer, &invitem_combatknife, &invitem_crossbow, &invitem_tranquilizer, &invitem_laser, &invitem_grenade, &invitem_nbomb, &invitem_timedmine, &invitem_proximitymine, &invitem_remotemine, &invitem_combatboost, &invitem_pp9i, &invitem_cc13, &invitem_kl01313, &invitem_kf7special, &invitem_zzt9mm, &invitem_dmc, &invitem_ar53, &invitem_rcp45, &invitem_psychosisgun, &invitem_nightvision, &invitem_camspy, &invitem_xrayscanner, &invitem_irscanner, &invitem_cloakingdevice, &invitem_horizonscanner, &invitem_tester, &invitem_rocketlauncher_34, &invitem_ecmmine, &invitem_datauplink, &invitem_rtracker, &invitem_presidentscanner, &invitem_doordecoder, &invitem_autosurgeon, &invitem_explosives, &invitem_skedarbomb, &invitem_commsrider, &invitem_tracerbug, &invitem_targetamplifier, &invitem_disguise40, &invitem_disguise41, &invitem_flightplans, &invitem_researchtape, &invitem_backupdisk, &invitem_keycard, &invitem_keycard, &invitem_keycard, &invitem_keycard, &invitem_keycard, &invitem_keycard, &invitem_keycard, &invitem_keycard, &invitem_suitcase, &invitem_briefcase, &invitem_shield, &invitem_necklace, &invitem_hammer, &invitem_hammer, &invitem_rocket, &invitem_homingrocket, &invitem_grenaderound, &invitem_bolt, &invitem_briefcase2, &invitem_rocket, &invitem_59, &invitem_5a, &invitem_hammer, &invitem_hammer, &invitem_suicidepill, };