Precaching CS weapon sounds via sound-shaders...

This commit is contained in:
Marco Cawthorne 2020-04-06 10:53:26 +02:00
parent 755eecfc34
commit 1f0e93d35a
34 changed files with 621 additions and 373 deletions

View file

@ -3,18 +3,192 @@ weapon_ak47.fire
sample weapons/ak47-1.wav
sample weapons/ak47-2.wav
}
weapon_aug.fire
{
sample weapons/aug-1.wav
sample weapons/aug-2.wav
}
weapon_awp.fire
{
sample weapons/awp-1.wav
sample weapons/awp-2.wav
}
weapon_c4bomb.disarm
{
sample weapons/c4_disarm.wav
}
weapon_c4bomb.disarmed
{
sample weapons/c4_disarmed.wav
}
weapon_c4bomb.explode
{
sample weapons/c4_explode1.wav
}
weapon_c4bomb.plant
{
sample weapons/c4_plant.wav
}
weapon_deagle.fire
{
sample weapons/deagle-1.wav
sample weapons/deagle-2.wav
}
weapon_elites.fire
{
sample weapons/elites-1.wav
sample weapons/elites-2.wav
}
weapon_fiveseven.fire
{
sample weapons/fiveseven-1.wav
sample weapons/fiveseven-2.wav
}
weapon_flashbang.explode
{
sample weapons/flashbang-1.wav
}
weapon_g3sg1.fire
{
sample weapons/g3sg1-1.wav
sample weapons/g3sg1-2.wav
}
weapon_glock.fire
{
sample weapons/glock18-1.wav
sample weapons/glock18-2.wav
}
weapon_grenade.bounce
{
sample weapons/he_bounce-1.wav
}
weapon_hegrenade.explode
{
}
weapon_knife.hit
{
sample weapons/knife_hitwall1.wav
}
weapon_knife.hitbody
{
sample weapons/knife_hit1.wav
sample weapons/knife_hit2.wav
sample weapons/knife_hit3.wav
sample weapons/knife_hit4.wav
}
weapon_knife.hithard
{
sample weapons/knife_stab.wav
}
weapon_knife.miss
{
sample weapons/knife_slash1.wav
}
weapon_m3.fire
{
sample weapons/m3-1.wav
}
weapon_m4a1.fire
{
sample weapons/m4a1_unsil-1.wav
sample weapons/m4a1_unsil-2.wav
}
weapon_m4a1.silenced
{
sample weapons/m4a1-1.wav
}
weapon_mac10.fire
{
sample weapons/mac10-1.wav
}
weapon_mp5.fire
{
sample weapons/mp5-1.wav
}
weapon_p228.fire
{
sample weapons/p228-1.wav
}
weapon_p90.fire
{
sample weapons/p90-1.wav
}
weapon_para.fire
{
sample weapons/m249-1.wav
sample weapons/m249-2.wav
}
weapon_scout.fire
{
sample weapons/scout_fire-1.wav
}
weapon_sg550.fire
{
sample weapons/sg550-1.wav
}
weapon_sg552.fire
{
sample weapons/sg552-1.wav
}
weapon_smokegrenade.explode
{
sample weapons/sg_explode.wav
}
weapon_tmp.fire
{
sample weapons/tmp-1.wav
sample weapons/tmp-2.wav
}
weapon_ump45.fire
{
sample weapons/ump45-1.wav
}
weapon_usp45.fire
{
sample weapons/usp_unsil-1.wav
}
weapon_usp45.silencer
{
sample weapons/usp1.wav
sample weapons/usp2.wav
}
weapon_xm1014.fire
{
sample weapons/xm1014-1.wav
}

View file

@ -1,4 +1,4 @@
ammo_gass.pickup
ammo_gas.pickup
{
sample player/pl_slosh1.wav
}

View file

@ -25,7 +25,7 @@ BASEGAME scihunt
-seta gameinfo_menutrack "sound/Hondo2/pca.wav"
// download/update packaging information
PACKAGE scihunt/pak0.pk3 0xc1cbd5c1 "http://www.frag-net.com/files/scihunt_pak0.pk3"
PACKAGE scihunt/pak0.pk3 0xc1cbd5c1 "http://www.frag-net.com/dl/c1cbd5c1/pak0.pk3"
// do we want this? I don't want to automatically update it
// UPDATEURL http://www.frag-net.com/mods/scihunt.fmf

View file

@ -47,10 +47,11 @@
../../shared/cstrike/items.h
../../shared/valve/weapon_common.h
../../shared/cstrike/weapons.h
../../shared/cstrike/w_ak47.c
../../shared/cstrike/w_deagle.c
../../shared/cstrike/w_knife.c
../../shared/cstrike/w_usp45.c
../../shared/cstrike/w_glock18.c
../../shared/cstrike/w_deagle.c
../../shared/cstrike/w_p228.c
../../shared/cstrike/w_elites.c
../../shared/cstrike/w_fiveseven.c
@ -61,7 +62,6 @@
../../shared/cstrike/w_ump45.c
../../shared/cstrike/w_mac10.c
../../shared/cstrike/w_tmp.c
../../shared/cstrike/w_ak47.c
../../shared/cstrike/w_sg552.c
../../shared/cstrike/w_m4a1.c
../../shared/cstrike/w_aug.c

View file

@ -196,7 +196,7 @@ void customgame_btninstall_start(void)
{
int gid = customgame_lbMods.GetSelected();
print(sprintf("Requesting download for http://www.frag-net.com/mods/%s.fmf...\n", games[gid].gamedir));
localcmd(sprintf("fs_changegame http://www.frag-net.com/mods/%s.fmf\n", games[gid].game));
localcmd(sprintf("fs_changegame %s http://www.frag-net.com/mods/%s.fmf\n", games[gid].gamedir, games[gid].gamedir));
}
void customgame_btndeactivate_start(void)
{

View file

@ -34,10 +34,11 @@
../../shared/cstrike/items.h
../../shared/valve/weapon_common.h
../../shared/cstrike/weapons.h
../../shared/cstrike/w_ak47.c
../../shared/cstrike/w_deagle.c
../../shared/cstrike/w_knife.c
../../shared/cstrike/w_usp45.c
../../shared/cstrike/w_glock18.c
../../shared/cstrike/w_deagle.c
../../shared/cstrike/w_p228.c
../../shared/cstrike/w_elites.c
../../shared/cstrike/w_fiveseven.c
@ -48,7 +49,6 @@
../../shared/cstrike/w_ump45.c
../../shared/cstrike/w_mac10.c
../../shared/cstrike/w_tmp.c
../../shared/cstrike/w_ak47.c
../../shared/cstrike/w_sg552.c
../../shared/cstrike/w_m4a1.c
../../shared/cstrike/w_aug.c

View file

@ -93,7 +93,7 @@ w_ak47_primary(void)
{
player pl = (player)self;
if (pl.w_attack_next > 0.0) {
if (pl.w_attack_next > 0) {
return;
}
@ -105,7 +105,7 @@ w_ak47_primary(void)
View_SetMuzzleflash(MUZZLE_RIFLE);
Weapons_ViewPunchAngle([-2,0,0]);
int r = floor(random(0,3));
int r = (float)input_sequence % 3;
switch (r) {
case 0:
Weapons_ViewAnimation(AK47_SHOOT1);
@ -122,7 +122,7 @@ w_ak47_primary(void)
return;
}
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 8, [0.01,0,01], WEAPON_AK47);
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 36, [0.35,0,1.25], WEAPON_AK47);
pl.ak47_mag--;
@ -220,27 +220,27 @@ w_ak47_hudpic(int selected, vector pos, float a)
weapon_t w_ak47 =
{
ITEM_AK47,
0,
7,
"sprites/640hud1.spr_0.tga",
[32,16],
[192,16],
w_ak47_draw,
__NULL__,
w_ak47_primary,
__NULL__,
w_ak47_reload,
__NULL__,
w_ak47_hud,
w_ak47_precache,
w_ak47_pickup,
w_ak47_updateammo,
w_ak47_wmodel,
w_ak47_pmodel,
w_ak47_deathmsg,
w_ak47_aimanim,
w_ak47_hudpic
.id = ITEM_AK47,
.slot = 0,
.slot_pos = 7,
.ki_spr = "sprites/640hud1.spr_0.tga",
.ki_size = [32,16],
.ki_xy = [192,16],
.draw = w_ak47_draw,
.holster = __NULL__,
.primary = w_ak47_primary,
.secondary = __NULL__,
.reload = w_ak47_reload,
.release = __NULL__,
.crosshair = w_ak47_hud,
.precache = w_ak47_precache,
.pickup = w_ak47_pickup,
.updateammo = w_ak47_updateammo,
.wmodel = w_ak47_wmodel,
.pmodel = w_ak47_pmodel,
.deathmsg = w_ak47_deathmsg,
.aimanim = w_ak47_aimanim,
.hudpic = w_ak47_hudpic
};
#ifdef SSQC

View file

@ -105,7 +105,7 @@ w_aug_primary(void)
View_SetMuzzleflash(MUZZLE_RIFLE);
Weapons_ViewPunchAngle([-2,0,0]);
int r = floor(random(0,3));
int r = (float)input_sequence % 3;
switch (r) {
case 0:
Weapons_ViewAnimation(AUG_SHOOT1);
@ -122,7 +122,7 @@ w_aug_primary(void)
return;
}
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 8, [0.01,0,01], WEAPON_AUG);
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 32, [0.01,0,01], WEAPON_AUG);
pl.aug_mag--;
@ -134,7 +134,7 @@ w_aug_primary(void)
Sound_Play(pl, CHAN_WEAPON, "weapon_aug.fire");
#endif
pl.w_attack_next = 0.0955f;
pl.w_attack_next = 0.0825f;
}
void
@ -172,7 +172,7 @@ w_aug_reload(void)
float
w_aug_aimanim(void)
{
return self.flags & FL_CROUCHING ? ANIM_CR_AIM1HAND : ANIM_AIM1HAND;
return w_ak47_aimanim();
}
void

View file

@ -67,10 +67,10 @@ w_awp_pickup(int new)
player pl = (player)self;
if (new) {
pl.awp_mag = 30;
pl.awp_mag = 10;
} else {
if (pl.ammo_762mm < 90) {
pl.ammo_762mm = bound(0, pl.ammo_762mm + 30, 90);
if (pl.ammo_762mm < 20) {
pl.ammo_762mm = bound(0, pl.ammo_762mm + 10, 20);
} else {
return FALSE;
}
@ -105,7 +105,7 @@ w_awp_primary(void)
View_SetMuzzleflash(MUZZLE_RIFLE);
Weapons_ViewPunchAngle([-2,0,0]);
int r = floor(random(0,3));
int r = (float)input_sequence % 3;
switch (r) {
case 0:
Weapons_ViewAnimation(AWP_SHOOT1);
@ -122,7 +122,7 @@ w_awp_primary(void)
return;
}
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 8, [0.01,0,01], WEAPON_AWP);
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 115, [0.01,0,01], WEAPON_AWP);
pl.awp_mag--;
@ -134,7 +134,7 @@ w_awp_primary(void)
Sound_Play(pl, CHAN_WEAPON, "weapon_awp.fire");
#endif
pl.w_attack_next = 0.0955f;
pl.w_attack_next = 1.2f;
}
void
@ -147,21 +147,21 @@ w_awp_reload(void)
}
#ifdef CSQC
if (pl.a_ammo1 >= 30) {
if (pl.a_ammo1 >= 10) {
return;
}
if (!pl.a_ammo2) {
return;
}
#else
if (pl.awp_mag >= 30) {
if (pl.awp_mag >= 10) {
return;
}
if (!pl.ammo_762mm) {
return;
}
Weapons_ReloadWeapon(pl, player::awp_mag, player::ammo_762mm, 30);
Weapons_ReloadWeapon(pl, player::awp_mag, player::ammo_762mm, 10);
Weapons_UpdateAmmo(pl, pl.awp_mag, pl.ammo_762mm, -1);
#endif
@ -172,7 +172,7 @@ w_awp_reload(void)
float
w_awp_aimanim(void)
{
return self.flags & FL_CROUCHING ? ANIM_CR_AIM1HAND : ANIM_AIM1HAND;
return w_ak47_aimanim();
}
void

View file

@ -26,6 +26,12 @@ enum {
void
w_c4bomb_precache(void)
{
#ifdef SSQC
Sound_Precache("weapon_c4bomb.disarm");
Sound_Precache("weapon_c4bomb.disarmed");
Sound_Precache("weapon_c4bomb.explode");
Sound_Precache("weapon_c4bomb.plant");
#endif
precache_model("models/v_c4bomb.mdl");
precache_model("models/w_c4bomb.mdl");
precache_model("models/p_c4bomb.mdl");
@ -79,7 +85,7 @@ w_c4bomb_primary(void)
View_SetMuzzleflash(MUZZLE_RIFLE);
Weapons_ViewPunchAngle([-2,0,0]);
int r = floor(random(0,3));
int r = (float)input_sequence % 3;
switch (r) {
case 0:
Weapons_ViewAnimation(C4BOMB_SHOOT1);

View file

@ -38,7 +38,7 @@ void
w_deagle_updateammo(player pl)
{
#ifdef SSQC
Weapons_UpdateAmmo(pl, pl.deagle_mag, pl.ammo_762mm, -1);
Weapons_UpdateAmmo(pl, pl.deagle_mag, pl.ammo_50ae, -1);
#endif
}
@ -67,10 +67,10 @@ w_deagle_pickup(int new)
player pl = (player)self;
if (new) {
pl.deagle_mag = 30;
pl.deagle_mag = 7;
} else {
if (pl.ammo_762mm < 90) {
pl.ammo_762mm = bound(0, pl.ammo_762mm + 30, 90);
if (pl.ammo_50ae < AMMO_MAX_50AE) {
pl.ammo_50ae = bound(0, pl.ammo_50ae + 7, AMMO_MAX_50AE);
} else {
return FALSE;
}
@ -82,10 +82,8 @@ w_deagle_pickup(int new)
void
w_deagle_draw(void)
{
#ifdef CSQC
Weapons_SetModel("models/v_deagle.mdl");
Weapons_ViewAnimation(DEAGLE_DRAW);
#endif
}
void
@ -105,7 +103,7 @@ w_deagle_primary(void)
View_SetMuzzleflash(MUZZLE_RIFLE);
Weapons_ViewPunchAngle([-2,0,0]);
int r = floor(random(0,3));
int r = (float)input_sequence % 3;
switch (r) {
case 0:
Weapons_ViewAnimation(DEAGLE_SHOOT1);
@ -122,7 +120,7 @@ w_deagle_primary(void)
return;
}
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 8, [0.01,0,01], WEAPON_DEAGLE);
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 54, [0.01,0,01], WEAPON_DEAGLE);
pl.deagle_mag--;
@ -134,7 +132,7 @@ w_deagle_primary(void)
Sound_Play(pl, CHAN_WEAPON, "weapon_deagle.fire");
#endif
pl.w_attack_next = 0.0955f;
pl.w_attack_next = 0.15f;
}
void
@ -147,22 +145,22 @@ w_deagle_reload(void)
}
#ifdef CSQC
if (pl.a_ammo1 >= 30) {
if (pl.a_ammo1 >= 7) {
return;
}
if (!pl.a_ammo2) {
return;
}
#else
if (pl.deagle_mag >= 30) {
if (pl.deagle_mag >= 7) {
return;
}
if (!pl.ammo_762mm) {
if (!pl.ammo_50ae) {
return;
}
Weapons_ReloadWeapon(pl, player::deagle_mag, player::ammo_762mm, 30);
Weapons_UpdateAmmo(pl, pl.deagle_mag, pl.ammo_762mm, -1);
Weapons_ReloadWeapon(pl, player::deagle_mag, player::ammo_50ae, 7);
Weapons_UpdateAmmo(pl, pl.deagle_mag, pl.ammo_50ae, -1);
#endif
Weapons_ViewAnimation(DEAGLE_RELOAD);
@ -179,7 +177,6 @@ void
w_deagle_hud(void)
{
#ifdef CSQC
HUD_DrawAmmo1();
HUD_DrawAmmo2();
vector aicon_pos = g_hudmins + [g_hudres[0] - 48, g_hudres[1] - 42];

View file

@ -26,11 +26,12 @@ enum {
void
w_elites_precache(void)
{
#ifdef SSQC
Sound_Precache("weapon_elites.fire");
#endif
precache_model("models/v_elites.mdl");
precache_model("models/w_elites.mdl");
precache_model("models/p_elites.mdl");
precache_sound("weapons/elites-1.wav");
precache_sound("weapons/elites-2.wav");
}
void
@ -104,7 +105,7 @@ w_elites_primary(void)
View_SetMuzzleflash(MUZZLE_RIFLE);
Weapons_ViewPunchAngle([-2,0,0]);
int r = floor(random(0,3));
int r = (float)input_sequence % 3;
switch (r) {
case 0:
Weapons_ViewAnimation(ELITES_SHOOT1);
@ -121,7 +122,7 @@ w_elites_primary(void)
return;
}
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 8, [0.01,0,01], WEAPON_ELITES);
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 45, [0.01,0,01], WEAPON_ELITES);
pl.elites_mag--;
@ -130,14 +131,10 @@ w_elites_primary(void)
else
Animation_PlayerTopTemp(ANIM_CR_SHOOT1HAND, 0.45f);
if (random() < 0.5) {
sound(pl, CHAN_WEAPON, "weapons/elites-1.wav", 1.0f, ATTN_NORM);
} else {
sound(pl, CHAN_WEAPON, "weapons/elites-2.wav", 1.0f, ATTN_NORM);
}
Sound_Play(pl, CHAN_WEAPON, "weapon_elites.fire");
#endif
pl.w_attack_next = 0.0955f;
pl.w_attack_next = 0.15f;
}
void

View file

@ -26,11 +26,12 @@ enum {
void
w_fiveseven_precache(void)
{
#ifdef SSQC
Sound_Precache("weapon_fiveseven.fire");
#endif
precache_model("models/v_fiveseven.mdl");
precache_model("models/w_fiveseven.mdl");
precache_model("models/p_fiveseven.mdl");
precache_sound("weapons/fiveseven-1.wav");
precache_sound("weapons/fiveseven-2.wav");
}
void
@ -66,10 +67,10 @@ w_fiveseven_pickup(int new)
player pl = (player)self;
if (new) {
pl.fiveseven_mag = 30;
pl.fiveseven_mag = 20;
} else {
if (pl.ammo_762mm < 90) {
pl.ammo_762mm = bound(0, pl.ammo_762mm + 30, 90);
if (pl.ammo_762mm < 40) {
pl.ammo_762mm = bound(0, pl.ammo_762mm + 20, 40);
} else {
return FALSE;
}
@ -104,7 +105,7 @@ w_fiveseven_primary(void)
View_SetMuzzleflash(MUZZLE_RIFLE);
Weapons_ViewPunchAngle([-2,0,0]);
int r = floor(random(0,3));
int r = (float)input_sequence % 3;
switch (r) {
case 0:
Weapons_ViewAnimation(FIVESEVEN_SHOOT1);
@ -121,7 +122,7 @@ w_fiveseven_primary(void)
return;
}
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 8, [0.01,0,01], WEAPON_FIVESEVEN);
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 25, [0.01,0,01], WEAPON_FIVESEVEN);
pl.fiveseven_mag--;
@ -130,14 +131,10 @@ w_fiveseven_primary(void)
else
Animation_PlayerTopTemp(ANIM_CR_SHOOT1HAND, 0.45f);
if (random() < 0.5) {
sound(pl, CHAN_WEAPON, "weapons/fiveseven-1.wav", 1.0f, ATTN_NORM);
} else {
sound(pl, CHAN_WEAPON, "weapons/fiveseven-2.wav", 1.0f, ATTN_NORM);
}
Sound_Play(pl, CHAN_WEAPON, "weapon_fiveseven.fire");
#endif
pl.w_attack_next = 0.0955f;
pl.w_attack_next = 0.15f;
}
void
@ -150,21 +147,21 @@ w_fiveseven_reload(void)
}
#ifdef CSQC
if (pl.a_ammo1 >= 30) {
if (pl.a_ammo1 >= 20) {
return;
}
if (!pl.a_ammo2) {
return;
}
#else
if (pl.fiveseven_mag >= 30) {
if (pl.fiveseven_mag >= 20) {
return;
}
if (!pl.ammo_762mm) {
return;
}
Weapons_ReloadWeapon(pl, player::fiveseven_mag, player::ammo_762mm, 30);
Weapons_ReloadWeapon(pl, player::fiveseven_mag, player::ammo_762mm, 20);
Weapons_UpdateAmmo(pl, pl.fiveseven_mag, pl.ammo_762mm, -1);
#endif
@ -175,7 +172,7 @@ w_fiveseven_reload(void)
float
w_fiveseven_aimanim(void)
{
return self.flags & FL_CROUCHING ? ANIM_CR_AIM1HAND : ANIM_AIM1HAND;
return w_deagle_aimanim();
}
void

View file

@ -26,6 +26,9 @@ enum {
void
w_flashbang_precache(void)
{
#ifdef SSQC
Sound_Precache("weapon_flashbang.explode");
#endif
precache_model("models/v_flashbang.mdl");
precache_model("models/w_flashbang.mdl");
precache_model("models/p_flashbang.mdl");
@ -79,7 +82,7 @@ w_flashbang_primary(void)
View_SetMuzzleflash(MUZZLE_RIFLE);
Weapons_ViewPunchAngle([-2,0,0]);
int r = floor(random(0,3));
int r = (float)input_sequence % 3;
switch (r) {
case 0:
Weapons_ViewAnimation(FLASHBANG_SHOOT1);

View file

@ -26,6 +26,9 @@ enum {
void
w_g3sg1_precache(void)
{
#ifdef SSQC
Sound_Precache("weapon_g3sg1.fire");
#endif
precache_model("models/v_g3sg1.mdl");
precache_model("models/w_g3sg1.mdl");
precache_model("models/p_g3sg1.mdl");
@ -64,10 +67,10 @@ w_g3sg1_pickup(int new)
player pl = (player)self;
if (new) {
pl.g3sg1_mag = 30;
pl.g3sg1_mag = 20;
} else {
if (pl.ammo_762mm < 90) {
pl.ammo_762mm = bound(0, pl.ammo_762mm + 30, 90);
if (pl.ammo_762mm < 60) {
pl.ammo_762mm = bound(0, pl.ammo_762mm + 20, 60);
} else {
return FALSE;
}
@ -102,7 +105,7 @@ w_g3sg1_primary(void)
View_SetMuzzleflash(MUZZLE_RIFLE);
Weapons_ViewPunchAngle([-2,0,0]);
int r = floor(random(0,3));
int r = (float)input_sequence % 3;
switch (r) {
case 0:
Weapons_ViewAnimation(G3SG1_SHOOT1);
@ -119,7 +122,7 @@ w_g3sg1_primary(void)
return;
}
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 8, [0.01,0,01], WEAPON_G3SG1);
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 80, [0.01,0,01], WEAPON_G3SG1);
pl.g3sg1_mag--;
@ -128,14 +131,10 @@ w_g3sg1_primary(void)
else
Animation_PlayerTopTemp(ANIM_CR_SHOOT1HAND, 0.45f);
if (random() < 0.5) {
sound(pl, CHAN_WEAPON, "weapons/g3sg1-1.wav", 1.0f, ATTN_NORM);
} else {
sound(pl, CHAN_WEAPON, "weapons/g3sg1-2.wav", 1.0f, ATTN_NORM);
}
Sound_Play(pl, CHAN_WEAPON, "weapon_g3sg1.fire");
#endif
pl.w_attack_next = 0.0955f;
pl.w_attack_next = 0.25f;
}
void
@ -148,21 +147,21 @@ w_g3sg1_reload(void)
}
#ifdef CSQC
if (pl.a_ammo1 >= 30) {
if (pl.a_ammo1 >= 20) {
return;
}
if (!pl.a_ammo2) {
return;
}
#else
if (pl.g3sg1_mag >= 30) {
if (pl.g3sg1_mag >= 20) {
return;
}
if (!pl.ammo_762mm) {
return;
}
Weapons_ReloadWeapon(pl, player::g3sg1_mag, player::ammo_762mm, 30);
Weapons_ReloadWeapon(pl, player::g3sg1_mag, player::ammo_762mm, 20);
Weapons_UpdateAmmo(pl, pl.g3sg1_mag, pl.ammo_762mm, -1);
#endif
@ -173,7 +172,7 @@ w_g3sg1_reload(void)
float
w_g3sg1_aimanim(void)
{
return self.flags & FL_CROUCHING ? ANIM_CR_AIM1HAND : ANIM_AIM1HAND;
return w_ak47_aimanim();
}
void

View file

@ -26,11 +26,12 @@ enum {
void
w_glock18_precache(void)
{
#ifdef SSQC
Sound_Precache("weapon_glock18.fire");
#endif
precache_model("models/v_glock18.mdl");
precache_model("models/w_glock18.mdl");
precache_model("models/p_glock18.mdl");
precache_sound("weapons/glock18-1.wav");
precache_sound("weapons/glock18-2.wav");
}
void
@ -66,10 +67,10 @@ w_glock18_pickup(int new)
player pl = (player)self;
if (new) {
pl.glock18_mag = 30;
pl.glock18_mag = 20;
} else {
if (pl.ammo_762mm < 90) {
pl.ammo_762mm = bound(0, pl.ammo_762mm + 30, 90);
if (pl.ammo_762mm < 40) {
pl.ammo_762mm = bound(0, pl.ammo_762mm + 20, 40);
} else {
return FALSE;
}
@ -104,7 +105,7 @@ w_glock18_primary(void)
View_SetMuzzleflash(MUZZLE_RIFLE);
Weapons_ViewPunchAngle([-2,0,0]);
int r = floor(random(0,3));
int r = (float)input_sequence % 3;
switch (r) {
case 0:
Weapons_ViewAnimation(GLOCK18_SHOOT1);
@ -121,7 +122,7 @@ w_glock18_primary(void)
return;
}
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 8, [0.01,0,01], WEAPON_GLOCK18);
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 25, [0.01,0,01], WEAPON_GLOCK18);
pl.glock18_mag--;
@ -130,14 +131,10 @@ w_glock18_primary(void)
else
Animation_PlayerTopTemp(ANIM_CR_SHOOT1HAND, 0.45f);
if (random() < 0.5) {
sound(pl, CHAN_WEAPON, "weapons/glock18-1.wav", 1.0f, ATTN_NORM);
} else {
sound(pl, CHAN_WEAPON, "weapons/glock18-2.wav", 1.0f, ATTN_NORM);
}
Sound_Play(pl, CHAN_WEAPON, "weapon_glock18.fire");
#endif
pl.w_attack_next = 0.0955f;
pl.w_attack_next = 0.15f;
}
void
@ -150,32 +147,32 @@ w_glock18_reload(void)
}
#ifdef CSQC
if (pl.a_ammo1 >= 30) {
if (pl.a_ammo1 >= 20) {
return;
}
if (!pl.a_ammo2) {
return;
}
#else
if (pl.glock18_mag >= 30) {
if (pl.glock18_mag >= 20) {
return;
}
if (!pl.ammo_762mm) {
return;
}
Weapons_ReloadWeapon(pl, player::glock18_mag, player::ammo_762mm, 30);
Weapons_ReloadWeapon(pl, player::glock18_mag, player::ammo_762mm, 20);
Weapons_UpdateAmmo(pl, pl.glock18_mag, pl.ammo_762mm, -1);
#endif
Weapons_ViewAnimation(GLOCK18_RELOAD);
pl.w_attack_next = 2.0f;
pl.w_attack_next = 2.1f;
}
float
w_glock18_aimanim(void)
{
return self.flags & FL_CROUCHING ? ANIM_CR_AIM1HAND : ANIM_AIM1HAND;
return w_deagle_aimanim();
}
void

View file

@ -79,7 +79,7 @@ w_hegrenade_primary(void)
View_SetMuzzleflash(MUZZLE_RIFLE);
Weapons_ViewPunchAngle([-2,0,0]);
int r = floor(random(0,3));
int r = (float)input_sequence % 3;
switch (r) {
case 0:
Weapons_ViewAnimation(HEGRENADE_SHOOT1);
@ -99,7 +99,7 @@ w_hegrenade_primary(void)
float
w_hegrenade_aimanim(void)
{
return self.flags & FL_CROUCHING ? ANIM_CR_AIM1HAND : ANIM_AIM1HAND;
return w_flashbang_aimanim();
}
void

View file

@ -26,6 +26,12 @@ enum {
void
w_knife_precache(void)
{
#ifdef SSQC
Sound_Precache("weapon_knife.hit");
Sound_Precache("weapon_knife.hitbody");
Sound_Precache("weapon_knife.hithard");
Sound_Precache("weapon_knife.miss");
#endif
precache_model("models/v_knife.mdl");
precache_model("models/w_knife.mdl");
precache_model("models/p_knife.mdl");
@ -79,7 +85,7 @@ w_knife_primary(void)
View_SetMuzzleflash(MUZZLE_RIFLE);
Weapons_ViewPunchAngle([-2,0,0]);
int r = floor(random(0,3));
int r = (float)input_sequence % 3;
switch (r) {
case 0:
Weapons_ViewAnimation(KNIFE_SHOOT1);
@ -93,7 +99,7 @@ w_knife_primary(void)
}
#endif
pl.w_attack_next = 0.0955f;
pl.w_attack_next = 0.7f;
}
float

View file

@ -26,6 +26,9 @@ enum {
void
w_m3_precache(void)
{
#ifdef SSQC
Sound_Precache("weapon_m3.fire");
#endif
precache_model("models/v_m3.mdl");
precache_model("models/w_m3.mdl");
precache_model("models/p_m3.mdl");
@ -35,7 +38,7 @@ void
w_m3_updateammo(player pl)
{
#ifdef SSQC
Weapons_UpdateAmmo(pl, pl.m3_mag, pl.ammo_762mm, -1);
Weapons_UpdateAmmo(pl, pl.m3_mag, pl.ammo_buckshot, -1);
#endif
}
@ -64,10 +67,10 @@ w_m3_pickup(int new)
player pl = (player)self;
if (new) {
pl.m3_mag = 30;
pl.m3_mag = 8;
} else {
if (pl.ammo_762mm < 90) {
pl.ammo_762mm = bound(0, pl.ammo_762mm + 30, 90);
if (pl.ammo_buckshot < AMMO_MAX_BUCKSHOT) {
pl.ammo_buckshot = bound(0, pl.ammo_buckshot + 8, AMMO_MAX_BUCKSHOT);
} else {
return FALSE;
}
@ -102,7 +105,7 @@ w_m3_primary(void)
View_SetMuzzleflash(MUZZLE_RIFLE);
Weapons_ViewPunchAngle([-2,0,0]);
int r = floor(random(0,3));
int r = (float)input_sequence % 3;
switch (r) {
case 0:
Weapons_ViewAnimation(M3_SHOOT1);
@ -119,7 +122,7 @@ w_m3_primary(void)
return;
}
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 8, [0.01,0,01], WEAPON_M3);
TraceAttack_FireBullets(8, pl.origin + pl.view_ofs, 26, [0.01,0,01], WEAPON_M3);
pl.m3_mag--;
@ -128,14 +131,10 @@ w_m3_primary(void)
else
Animation_PlayerTopTemp(ANIM_CR_SHOOT1HAND, 0.45f);
if (random() < 0.5) {
sound(pl, CHAN_WEAPON, "weapons/m3-1.wav", 1.0f, ATTN_NORM);
} else {
sound(pl, CHAN_WEAPON, "weapons/m3-2.wav", 1.0f, ATTN_NORM);
}
Sound_Play(pl, CHAN_WEAPON, "weapon_m3.fire");
#endif
pl.w_attack_next = 0.0955f;
pl.w_attack_next = 1.0f;
}
void
@ -148,22 +147,22 @@ w_m3_reload(void)
}
#ifdef CSQC
if (pl.a_ammo1 >= 30) {
if (pl.a_ammo1 >= 8) {
return;
}
if (!pl.a_ammo2) {
return;
}
#else
if (pl.m3_mag >= 30) {
if (pl.m3_mag >= 8) {
return;
}
if (!pl.ammo_762mm) {
if (!pl.ammo_buckshot) {
return;
}
Weapons_ReloadWeapon(pl, player::m3_mag, player::ammo_762mm, 30);
Weapons_UpdateAmmo(pl, pl.m3_mag, pl.ammo_762mm, -1);
Weapons_ReloadWeapon(pl, player::m3_mag, player::ammo_buckshot, 8);
Weapons_UpdateAmmo(pl, pl.m3_mag, pl.ammo_buckshot, -1);
#endif
Weapons_ViewAnimation(M3_RELOAD);
@ -173,7 +172,7 @@ w_m3_reload(void)
float
w_m3_aimanim(void)
{
return self.flags & FL_CROUCHING ? ANIM_CR_AIM1HAND : ANIM_AIM1HAND;
return w_ak47_aimanim();
}
void

View file

@ -16,16 +16,28 @@
enum {
M4A1_IDLE,
M4A1_RELOAD,
M4A1_DRAW,
M4A1_SHOOT1,
M4A1_SHOOT2,
M4A1_SHOOT3
M4A1_SHOOT3,
M4A1_RELOAD,
M4A1_DRAW,
M4A1_ADDSIL,
M4A1_IDLEUNSIL,
M4A1_SHOOT1UNSIL,
M4A1_SHOOT2UNSIL,
M4A1_SHOOT3UNSIL,
M4A1_RELOADUNSIL,
M4A1_DRAWUNSIL,
M4A1_DETACHSIL
};
void
w_m4a1_precache(void)
{
#ifdef SSQC
Sound_Precache("weapon_m4a1.fire");
Sound_Precache("weapon_m4a1.silenced");
#endif
precache_model("models/v_m4a1.mdl");
precache_model("models/w_m4a1.mdl");
precache_model("models/p_m4a1.mdl");
@ -79,10 +91,8 @@ w_m4a1_pickup(int new)
void
w_m4a1_draw(void)
{
#ifdef CSQC
Weapons_SetModel("models/v_m4a1.mdl");
Weapons_ViewAnimation(M4A1_DRAW);
#endif
}
void
@ -94,48 +104,100 @@ w_m4a1_primary(void)
return;
}
/* ammo check */
#ifdef CSQC
if (!pl.a_ammo1) {
return;
}
View_SetMuzzleflash(MUZZLE_RIFLE);
Weapons_ViewPunchAngle([-2,0,0]);
int r = floor(random(0,3));
switch (r) {
case 0:
Weapons_ViewAnimation(M4A1_SHOOT1);
break;
case 1:
Weapons_ViewAnimation(M4A1_SHOOT2);
break;
default:
Weapons_ViewAnimation(M4A1_SHOOT3);
break;
}
#else
if (!pl.m4a1_mag) {
return;
}
#endif
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 8, [0.01,0,01], WEAPON_M4A1);
/* actual firing */
#ifdef CSQC
if (pl.a_ammo3 == 1) {
View_SetMuzzleflash(0);
} else {
View_SetMuzzleflash(MUZZLE_RIFLE);
}
pl.a_ammo1--;
View_SetMuzzleflash(MUZZLE_RIFLE);
Weapons_ViewPunchAngle([-2,0,0]);
#else
pl.m4a1_mag--;
/* Different sounds without silencer */
if (pl.a_ammo3 == 1) {
Sound_Play(pl, CHAN_WEAPON, "weapon_m4a1.silenced");
} else {
Sound_Play(pl, CHAN_WEAPON, "weapon_m4a1.fire");
}
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 33, [0.1,0.1], WEAPON_M4A1);
if (self.flags & FL_CROUCHING)
Animation_PlayerTopTemp(ANIM_SHOOT1HAND, 0.45f);
else
Animation_PlayerTopTemp(ANIM_CR_SHOOT1HAND, 0.45f);
if (random() < 0.5) {
sound(pl, CHAN_WEAPON, "weapons/m4a1-1.wav", 1.0f, ATTN_NORM);
} else {
sound(pl, CHAN_WEAPON, "weapons/m4a1-2.wav", 1.0f, ATTN_NORM);
}
#endif
pl.w_attack_next = 0.0955f;
/* this stuff is predicted */
int r = (float)input_sequence % 3;
if (pl.a_ammo3 == 1) {
switch (r) {
case 0:
Weapons_ViewAnimation(M4A1_SHOOT1);
break;
case 1:
Weapons_ViewAnimation(M4A1_SHOOT2);
break;
default:
Weapons_ViewAnimation(M4A1_SHOOT3);
break;
}
} else {
switch (r) {
case 0:
Weapons_ViewAnimation(M4A1_SHOOT1UNSIL);
break;
case 1:
Weapons_ViewAnimation(M4A1_SHOOT2UNSIL);
break;
default:
Weapons_ViewAnimation(M4A1_SHOOT3UNSIL);
break;
}
}
Weapons_ViewPunchAngle([-2,0,0]);
pl.w_attack_next = 0.0875f;
pl.w_idle_next = 5.0f;
}
void
w_m4a1_secondary(void)
{
player pl = (player)self;
if (pl.w_attack_next > 0) {
return;
}
/* toggle silencer */
pl.a_ammo3 = 1 - pl.a_ammo3;
/* play the animation */
if (pl.a_ammo3) {
Weapons_ViewAnimation(M4A1_ADDSIL);
} else {
Weapons_ViewAnimation(M4A1_DETACHSIL);
}
pl.w_attack_next = 2.0f;
pl.w_idle_next = pl.w_attack_next;
}
void
@ -163,7 +225,6 @@ w_m4a1_reload(void)
}
Weapons_ReloadWeapon(pl, player::m4a1_mag, player::ammo_762mm, 30);
Weapons_UpdateAmmo(pl, pl.m4a1_mag, pl.ammo_762mm, -1);
#endif
Weapons_ViewAnimation(M4A1_RELOAD);
@ -173,14 +234,13 @@ w_m4a1_reload(void)
float
w_m4a1_aimanim(void)
{
return self.flags & FL_CROUCHING ? ANIM_CR_AIM1HAND : ANIM_AIM1HAND;
return w_ak47_aimanim();
}
void
w_m4a1_hud(void)
{
#ifdef CSQC
HUD_DrawAmmo1();
HUD_DrawAmmo2();
vector aicon_pos = g_hudmins + [g_hudres[0] - 48, g_hudres[1] - 42];
@ -188,6 +248,23 @@ w_m4a1_hud(void)
#endif
}
void
w_m4a1_release(void)
{
player pl = (player)self;
if (pl.w_idle_next > 0.0) {
return;
}
if (pl.a_ammo3) {
Weapons_ViewAnimation(M4A1_IDLE);
} else {
Weapons_ViewAnimation(M4A1_IDLEUNSIL);
}
pl.w_idle_next = 5.0f;
}
void
w_m4a1_hudpic(int selected, vector pos, float a)
{
@ -220,27 +297,27 @@ w_m4a1_hudpic(int selected, vector pos, float a)
weapon_t w_m4a1 =
{
ITEM_M4A1,
0,
9,
"sprites/640hud1.spr_0.tga",
[32,16],
[192,16],
w_m4a1_draw,
__NULL__,
w_m4a1_primary,
__NULL__,
w_m4a1_reload,
__NULL__,
w_m4a1_hud,
w_m4a1_precache,
w_m4a1_pickup,
w_m4a1_updateammo,
w_m4a1_wmodel,
w_m4a1_pmodel,
w_m4a1_deathmsg,
w_m4a1_aimanim,
w_m4a1_hudpic
.id = ITEM_M4A1,
.slot = 0,
.slot_pos = 9,
.ki_spr = "sprites/640hud1.spr_0.tga",
.ki_size = [32,16],
.ki_xy = [192,16],
.draw = w_m4a1_draw,
.holster = __NULL__,
.primary = w_m4a1_primary,
.secondary = w_m4a1_secondary,
.reload = w_m4a1_reload,
.release = w_m4a1_release,
.crosshair = w_m4a1_hud,
.precache = w_m4a1_precache,
.pickup = w_m4a1_pickup,
.updateammo = w_m4a1_updateammo,
.wmodel = w_m4a1_wmodel,
.pmodel = w_m4a1_pmodel,
.deathmsg = w_m4a1_deathmsg,
.aimanim = w_m4a1_aimanim,
.hudpic = w_m4a1_hudpic
};
#ifdef SSQC

View file

@ -26,6 +26,9 @@ enum {
void
w_mac10_precache(void)
{
#ifdef SSQC
Sound_Precache("weapon_mac10.fire");
#endif
precache_model("models/v_mac10.mdl");
precache_model("models/w_mac10.mdl");
precache_model("models/p_mac10.mdl");
@ -102,7 +105,7 @@ w_mac10_primary(void)
View_SetMuzzleflash(MUZZLE_RIFLE);
Weapons_ViewPunchAngle([-2,0,0]);
int r = floor(random(0,3));
int r = (float)input_sequence % 3;
switch (r) {
case 0:
Weapons_ViewAnimation(MAC10_SHOOT1);
@ -119,7 +122,7 @@ w_mac10_primary(void)
return;
}
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 8, [0.01,0,01], WEAPON_MAC10);
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 29, [0.01,0,01], WEAPON_MAC10);
pl.mac10_mag--;
@ -128,14 +131,10 @@ w_mac10_primary(void)
else
Animation_PlayerTopTemp(ANIM_CR_SHOOT1HAND, 0.45f);
if (random() < 0.5) {
sound(pl, CHAN_WEAPON, "weapons/mac10-1.wav", 1.0f, ATTN_NORM);
} else {
sound(pl, CHAN_WEAPON, "weapons/mac10-2.wav", 1.0f, ATTN_NORM);
}
Sound_Play(pl, CHAN_WEAPON, "weapon_mac10.fire");
#endif
pl.w_attack_next = 0.0955f;
pl.w_attack_next = 0.07f;
}
void
@ -173,7 +172,7 @@ w_mac10_reload(void)
float
w_mac10_aimanim(void)
{
return self.flags & FL_CROUCHING ? ANIM_CR_AIM1HAND : ANIM_AIM1HAND;
return w_deagle_aimanim();
}
void

View file

@ -26,6 +26,9 @@ enum {
void
w_mp5_precache(void)
{
#ifdef SSQC
Sound_Precache("weapon_mp5.fire");
#endif
precache_model("models/v_mp5.mdl");
precache_model("models/w_mp5.mdl");
precache_model("models/p_mp5.mdl");
@ -35,7 +38,7 @@ void
w_mp5_updateammo(player pl)
{
#ifdef SSQC
Weapons_UpdateAmmo(pl, pl.mp5_mag, pl.ammo_762mm, -1);
Weapons_UpdateAmmo(pl, pl.mp5_mag, pl.ammo_9mm, -1);
#endif
}
@ -66,8 +69,8 @@ w_mp5_pickup(int new)
if (new) {
pl.mp5_mag = 30;
} else {
if (pl.ammo_762mm < 90) {
pl.ammo_762mm = bound(0, pl.ammo_762mm + 30, 90);
if (pl.ammo_9mm < AMMO_MAX_9MM) {
pl.ammo_9mm = bound(0, pl.ammo_9mm + 30, AMMO_MAX_9MM);
} else {
return FALSE;
}
@ -79,10 +82,8 @@ w_mp5_pickup(int new)
void
w_mp5_draw(void)
{
#ifdef CSQC
Weapons_SetModel("models/v_mp5.mdl");
Weapons_ViewAnimation(MP5_DRAW);
#endif
}
void
@ -102,7 +103,7 @@ w_mp5_primary(void)
View_SetMuzzleflash(MUZZLE_RIFLE);
Weapons_ViewPunchAngle([-2,0,0]);
int r = floor(random(0,3));
int r = (float)input_sequence % 3;
switch (r) {
case 0:
Weapons_ViewAnimation(MP5_SHOOT1);
@ -119,7 +120,7 @@ w_mp5_primary(void)
return;
}
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 8, [0.01,0,01], WEAPON_MP5);
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 26, [0.01,0,01], WEAPON_MP5);
pl.mp5_mag--;
@ -128,14 +129,10 @@ w_mp5_primary(void)
else
Animation_PlayerTopTemp(ANIM_CR_SHOOT1HAND, 0.45f);
if (random() < 0.5) {
sound(pl, CHAN_WEAPON, "weapons/mp5-1.wav", 1.0f, ATTN_NORM);
} else {
sound(pl, CHAN_WEAPON, "weapons/mp5-2.wav", 1.0f, ATTN_NORM);
}
Sound_Play(pl, CHAN_WEAPON, "weapon_mp5.fire");
#endif
pl.w_attack_next = 0.0955f;
pl.w_attack_next = 0.08f;
}
void
@ -158,12 +155,12 @@ w_mp5_reload(void)
if (pl.mp5_mag >= 30) {
return;
}
if (!pl.ammo_762mm) {
if (!pl.ammo_9mm) {
return;
}
Weapons_ReloadWeapon(pl, player::mp5_mag, player::ammo_762mm, 30);
Weapons_UpdateAmmo(pl, pl.mp5_mag, pl.ammo_762mm, -1);
Weapons_ReloadWeapon(pl, player::mp5_mag, player::ammo_9mm, 30);
Weapons_UpdateAmmo(pl, pl.mp5_mag, pl.ammo_9mm, -1);
#endif
Weapons_ViewAnimation(MP5_RELOAD);
@ -173,14 +170,13 @@ w_mp5_reload(void)
float
w_mp5_aimanim(void)
{
return self.flags & FL_CROUCHING ? ANIM_CR_AIM1HAND : ANIM_AIM1HAND;
return w_ak47_aimanim();
}
void
w_mp5_hud(void)
{
#ifdef CSQC
HUD_DrawAmmo1();
HUD_DrawAmmo2();
vector aicon_pos = g_hudmins + [g_hudres[0] - 48, g_hudres[1] - 42];

View file

@ -26,6 +26,9 @@ enum {
void
w_p228_precache(void)
{
#ifdef SSQC
Sound_Precache("weapon_p228.fire");
#endif
precache_model("models/v_p228.mdl");
precache_model("models/w_p228.mdl");
precache_model("models/p_p228.mdl");
@ -66,10 +69,10 @@ w_p228_pickup(int new)
player pl = (player)self;
if (new) {
pl.p228_mag = 30;
pl.p228_mag = 13;
} else {
if (pl.ammo_762mm < 90) {
pl.ammo_762mm = bound(0, pl.ammo_762mm + 30, 90);
if (pl.ammo_762mm < 26) {
pl.ammo_762mm = bound(0, pl.ammo_762mm + 13, 26);
} else {
return FALSE;
}
@ -104,7 +107,7 @@ w_p228_primary(void)
View_SetMuzzleflash(MUZZLE_RIFLE);
Weapons_ViewPunchAngle([-2,0,0]);
int r = floor(random(0,3));
int r = (float)input_sequence % 3;
switch (r) {
case 0:
Weapons_ViewAnimation(P228_SHOOT1);
@ -121,7 +124,7 @@ w_p228_primary(void)
return;
}
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 8, [0.01,0,01], WEAPON_P228);
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 40, [0.01,0,01], WEAPON_P228);
pl.p228_mag--;
@ -130,14 +133,10 @@ w_p228_primary(void)
else
Animation_PlayerTopTemp(ANIM_CR_SHOOT1HAND, 0.45f);
if (random() < 0.5) {
sound(pl, CHAN_WEAPON, "weapons/p228-1.wav", 1.0f, ATTN_NORM);
} else {
sound(pl, CHAN_WEAPON, "weapons/p228-2.wav", 1.0f, ATTN_NORM);
}
Sound_Play(pl, CHAN_WEAPON, "weapon_p228.fire");
#endif
pl.w_attack_next = 0.0955f;
pl.w_attack_next = 0.15f;
}
void
@ -175,7 +174,7 @@ w_p228_reload(void)
float
w_p228_aimanim(void)
{
return self.flags & FL_CROUCHING ? ANIM_CR_AIM1HAND : ANIM_AIM1HAND;
return w_deagle_aimanim();
}
void

View file

@ -26,6 +26,9 @@ enum {
void
w_p90_precache(void)
{
#ifdef SSQC
Sound_Precache("weapon_p90.fire");
#endif
precache_model("models/v_p90.mdl");
precache_model("models/w_p90.mdl");
precache_model("models/p_p90.mdl");
@ -64,10 +67,10 @@ w_p90_pickup(int new)
player pl = (player)self;
if (new) {
pl.p90_mag = 30;
pl.p90_mag = 50;
} else {
if (pl.ammo_762mm < 90) {
pl.ammo_762mm = bound(0, pl.ammo_762mm + 30, 90);
if (pl.ammo_762mm < 100) {
pl.ammo_762mm = bound(0, pl.ammo_762mm + 50, 100);
} else {
return FALSE;
}
@ -102,7 +105,7 @@ w_p90_primary(void)
View_SetMuzzleflash(MUZZLE_RIFLE);
Weapons_ViewPunchAngle([-2,0,0]);
int r = floor(random(0,3));
int r = (float)input_sequence % 3;
switch (r) {
case 0:
Weapons_ViewAnimation(P90_SHOOT1);
@ -119,7 +122,7 @@ w_p90_primary(void)
return;
}
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 8, [0.01,0,01], WEAPON_P90);
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 26, [0.01,0,01], WEAPON_P90);
pl.p90_mag--;
@ -128,14 +131,10 @@ w_p90_primary(void)
else
Animation_PlayerTopTemp(ANIM_CR_SHOOT1HAND, 0.45f);
if (random() < 0.5) {
sound(pl, CHAN_WEAPON, "weapons/p90-1.wav", 1.0f, ATTN_NORM);
} else {
sound(pl, CHAN_WEAPON, "weapons/p90-2.wav", 1.0f, ATTN_NORM);
}
Sound_Play(pl, CHAN_WEAPON, "weapon_p90.fire");
#endif
pl.w_attack_next = 0.0955f;
pl.w_attack_next = 0.07f;
}
void
@ -148,21 +147,21 @@ w_p90_reload(void)
}
#ifdef CSQC
if (pl.a_ammo1 >= 30) {
if (pl.a_ammo1 >= 50) {
return;
}
if (!pl.a_ammo2) {
return;
}
#else
if (pl.p90_mag >= 30) {
if (pl.p90_mag >= 50) {
return;
}
if (!pl.ammo_762mm) {
return;
}
Weapons_ReloadWeapon(pl, player::p90_mag, player::ammo_762mm, 30);
Weapons_ReloadWeapon(pl, player::p90_mag, player::ammo_762mm, 50);
Weapons_UpdateAmmo(pl, pl.p90_mag, pl.ammo_762mm, -1);
#endif
@ -173,7 +172,7 @@ w_p90_reload(void)
float
w_p90_aimanim(void)
{
return self.flags & FL_CROUCHING ? ANIM_CR_AIM1HAND : ANIM_AIM1HAND;
return w_ak47_aimanim();
}
void

View file

@ -26,9 +26,12 @@ enum {
void
w_para_precache(void)
{
precache_model("models/v_para.mdl");
precache_model("models/w_para.mdl");
precache_model("models/p_para.mdl");
#ifdef SSQC
Sound_Precache("weapon_para.fire");
#endif
precache_model("models/v_m249.mdl");
precache_model("models/w_m249.mdl");
precache_model("models/p_m249.mdl");
}
void
@ -42,13 +45,13 @@ w_para_updateammo(player pl)
string
w_para_wmodel(void)
{
return "models/w_para.mdl";
return "models/w_m249.mdl";
}
string
w_para_pmodel(void)
{
return "models/p_para.mdl";
return "models/p_m249.mdl";
}
string
@ -64,10 +67,10 @@ w_para_pickup(int new)
player pl = (player)self;
if (new) {
pl.para_mag = 30;
pl.para_mag = 100;
} else {
if (pl.ammo_762mm < 90) {
pl.ammo_762mm = bound(0, pl.ammo_762mm + 30, 90);
if (pl.ammo_762mm < 200) {
pl.ammo_762mm = bound(0, pl.ammo_762mm + 100, 200);
} else {
return FALSE;
}
@ -80,7 +83,7 @@ void
w_para_draw(void)
{
#ifdef CSQC
Weapons_SetModel("models/v_para.mdl");
Weapons_SetModel("models/v_m249.mdl");
Weapons_ViewAnimation(PARA_DRAW);
#endif
}
@ -102,7 +105,7 @@ w_para_primary(void)
View_SetMuzzleflash(MUZZLE_RIFLE);
Weapons_ViewPunchAngle([-2,0,0]);
int r = floor(random(0,3));
int r = (float)input_sequence % 3;
switch (r) {
case 0:
Weapons_ViewAnimation(PARA_SHOOT1);
@ -119,7 +122,7 @@ w_para_primary(void)
return;
}
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 8, [0.01,0,01], WEAPON_PARA);
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 35, [0.01,0,01], WEAPON_PARA);
pl.para_mag--;
@ -128,14 +131,10 @@ w_para_primary(void)
else
Animation_PlayerTopTemp(ANIM_CR_SHOOT1HAND, 0.45f);
if (random() < 0.5) {
sound(pl, CHAN_WEAPON, "weapons/para-1.wav", 1.0f, ATTN_NORM);
} else {
sound(pl, CHAN_WEAPON, "weapons/para-2.wav", 1.0f, ATTN_NORM);
}
Sound_Play(pl, CHAN_WEAPON, "weapon_para.fire");
#endif
pl.w_attack_next = 0.0955f;
pl.w_attack_next = 0.1f;
}
void
@ -148,21 +147,21 @@ w_para_reload(void)
}
#ifdef CSQC
if (pl.a_ammo1 >= 30) {
if (pl.a_ammo1 >= 100) {
return;
}
if (!pl.a_ammo2) {
return;
}
#else
if (pl.para_mag >= 30) {
if (pl.para_mag >= 100) {
return;
}
if (!pl.ammo_762mm) {
return;
}
Weapons_ReloadWeapon(pl, player::para_mag, player::ammo_762mm, 30);
Weapons_ReloadWeapon(pl, player::para_mag, player::ammo_762mm, 100);
Weapons_UpdateAmmo(pl, pl.para_mag, pl.ammo_762mm, -1);
#endif
@ -173,7 +172,7 @@ w_para_reload(void)
float
w_para_aimanim(void)
{
return self.flags & FL_CROUCHING ? ANIM_CR_AIM1HAND : ANIM_AIM1HAND;
return w_ak47_aimanim();
}
void

View file

@ -26,6 +26,9 @@ enum {
void
w_scout_precache(void)
{
#ifdef SSQC
Sound_Precache("weapon_scout.fire");
#endif
precache_model("models/v_scout.mdl");
precache_model("models/w_scout.mdl");
precache_model("models/p_scout.mdl");
@ -64,10 +67,10 @@ w_scout_pickup(int new)
player pl = (player)self;
if (new) {
pl.scout_mag = 30;
pl.scout_mag = 10;
} else {
if (pl.ammo_762mm < 90) {
pl.ammo_762mm = bound(0, pl.ammo_762mm + 30, 90);
if (pl.ammo_762mm < 30) {
pl.ammo_762mm = bound(0, pl.ammo_762mm + 10, 30);
} else {
return FALSE;
}
@ -102,7 +105,7 @@ w_scout_primary(void)
View_SetMuzzleflash(MUZZLE_RIFLE);
Weapons_ViewPunchAngle([-2,0,0]);
int r = floor(random(0,3));
int r = (float)input_sequence % 3;
switch (r) {
case 0:
Weapons_ViewAnimation(SCOUT_SHOOT1);
@ -119,7 +122,7 @@ w_scout_primary(void)
return;
}
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 8, [0.01,0,01], WEAPON_SCOUT);
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 75, [0.01,0,01], WEAPON_SCOUT);
pl.scout_mag--;
@ -128,14 +131,10 @@ w_scout_primary(void)
else
Animation_PlayerTopTemp(ANIM_CR_SHOOT1HAND, 0.45f);
if (random() < 0.5) {
sound(pl, CHAN_WEAPON, "weapons/scout-1.wav", 1.0f, ATTN_NORM);
} else {
sound(pl, CHAN_WEAPON, "weapons/scout-2.wav", 1.0f, ATTN_NORM);
}
Sound_Play(pl, CHAN_WEAPON, "weapon_scout.fire");
#endif
pl.w_attack_next = 0.0955f;
pl.w_attack_next = 1.25f;
}
void
@ -148,21 +147,21 @@ w_scout_reload(void)
}
#ifdef CSQC
if (pl.a_ammo1 >= 30) {
if (pl.a_ammo1 >= 10) {
return;
}
if (!pl.a_ammo2) {
return;
}
#else
if (pl.scout_mag >= 30) {
if (pl.scout_mag >= 10) {
return;
}
if (!pl.ammo_762mm) {
return;
}
Weapons_ReloadWeapon(pl, player::scout_mag, player::ammo_762mm, 30);
Weapons_ReloadWeapon(pl, player::scout_mag, player::ammo_762mm, 10);
Weapons_UpdateAmmo(pl, pl.scout_mag, pl.ammo_762mm, -1);
#endif
@ -173,7 +172,7 @@ w_scout_reload(void)
float
w_scout_aimanim(void)
{
return self.flags & FL_CROUCHING ? ANIM_CR_AIM1HAND : ANIM_AIM1HAND;
return w_ak47_aimanim();
}
void

View file

@ -26,6 +26,9 @@ enum {
void
w_sg550_precache(void)
{
#ifdef SSQC
Sound_Precache("weapon_sg550.fire");
#endif
precache_model("models/v_sg550.mdl");
precache_model("models/w_sg550.mdl");
precache_model("models/p_sg550.mdl");
@ -102,7 +105,7 @@ w_sg550_primary(void)
View_SetMuzzleflash(MUZZLE_RIFLE);
Weapons_ViewPunchAngle([-2,0,0]);
int r = floor(random(0,3));
int r = (float)input_sequence % 3;
switch (r) {
case 0:
Weapons_ViewAnimation(SG550_SHOOT1);
@ -119,7 +122,7 @@ w_sg550_primary(void)
return;
}
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 8, [0.01,0,01], WEAPON_SG550);
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 70, [0.01,0,01], WEAPON_SG550);
pl.sg550_mag--;
@ -128,14 +131,10 @@ w_sg550_primary(void)
else
Animation_PlayerTopTemp(ANIM_CR_SHOOT1HAND, 0.45f);
if (random() < 0.5) {
sound(pl, CHAN_WEAPON, "weapons/sg550-1.wav", 1.0f, ATTN_NORM);
} else {
sound(pl, CHAN_WEAPON, "weapons/sg550-2.wav", 1.0f, ATTN_NORM);
}
Sound_Play(pl, CHAN_WEAPON, "weapon_sg550.fire");
#endif
pl.w_attack_next = 0.0955f;
pl.w_attack_next = 0.25f;
}
void
@ -173,7 +172,7 @@ w_sg550_reload(void)
float
w_sg550_aimanim(void)
{
return self.flags & FL_CROUCHING ? ANIM_CR_AIM1HAND : ANIM_AIM1HAND;
return w_ak47_aimanim();
}
void

View file

@ -26,6 +26,9 @@ enum {
void
w_sg552_precache(void)
{
#ifdef SSQC
Sound_Precache("weapon_sg552.fire");
#endif
precache_model("models/v_sg552.mdl");
precache_model("models/w_sg552.mdl");
precache_model("models/p_sg552.mdl");
@ -102,7 +105,7 @@ w_sg552_primary(void)
View_SetMuzzleflash(MUZZLE_RIFLE);
Weapons_ViewPunchAngle([-2,0,0]);
int r = floor(random(0,3));
int r = (float)input_sequence % 3;
switch (r) {
case 0:
Weapons_ViewAnimation(SG552_SHOOT1);
@ -119,7 +122,7 @@ w_sg552_primary(void)
return;
}
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 8, [0.01,0,01], WEAPON_SG552);
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 33, [0.01,0,01], WEAPON_SG552);
pl.sg552_mag--;
@ -128,14 +131,10 @@ w_sg552_primary(void)
else
Animation_PlayerTopTemp(ANIM_CR_SHOOT1HAND, 0.45f);
if (random() < 0.5) {
sound(pl, CHAN_WEAPON, "weapons/sg552-1.wav", 1.0f, ATTN_NORM);
} else {
sound(pl, CHAN_WEAPON, "weapons/sg552-2.wav", 1.0f, ATTN_NORM);
}
Sound_Play(pl, CHAN_WEAPON, "weapon_sg552.fire");
#endif
pl.w_attack_next = 0.0955f;
pl.w_attack_next = 0.0825f;
}
void
@ -173,7 +172,7 @@ w_sg552_reload(void)
float
w_sg552_aimanim(void)
{
return self.flags & FL_CROUCHING ? ANIM_CR_AIM1HAND : ANIM_AIM1HAND;
return w_ak47_aimanim();
}
void

View file

@ -26,6 +26,9 @@ enum {
void
w_smokegrenade_precache(void)
{
#ifdef SSQC
Sound_Precache("weapon_smokegrenade.explode");
#endif
precache_model("models/v_smokegrenade.mdl");
precache_model("models/w_smokegrenade.mdl");
precache_model("models/p_smokegrenade.mdl");
@ -79,7 +82,7 @@ w_smokegrenade_primary(void)
View_SetMuzzleflash(MUZZLE_RIFLE);
Weapons_ViewPunchAngle([-2,0,0]);
int r = floor(random(0,3));
int r = (float)input_sequence % 3;
switch (r) {
case 0:
Weapons_ViewAnimation(SMOKEGRENADE_SHOOT1);
@ -99,7 +102,7 @@ w_smokegrenade_primary(void)
float
w_smokegrenade_aimanim(void)
{
return self.flags & FL_CROUCHING ? ANIM_CR_AIM1HAND : ANIM_AIM1HAND;
return w_flashbang_aimanim();
}
void

View file

@ -26,6 +26,9 @@ enum {
void
w_tmp_precache(void)
{
#ifdef SSQC
Sound_Precache("weapon_tmp.fire");
#endif
precache_model("models/v_tmp.mdl");
precache_model("models/w_tmp.mdl");
precache_model("models/p_tmp.mdl");
@ -102,7 +105,7 @@ w_tmp_primary(void)
View_SetMuzzleflash(MUZZLE_RIFLE);
Weapons_ViewPunchAngle([-2,0,0]);
int r = floor(random(0,3));
int r = (float)input_sequence % 3;
switch (r) {
case 0:
Weapons_ViewAnimation(TMP_SHOOT1);
@ -119,7 +122,7 @@ w_tmp_primary(void)
return;
}
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 8, [0.01,0,01], WEAPON_TMP);
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 26, [0.01,0,01], WEAPON_TMP);
pl.tmp_mag--;
@ -128,14 +131,10 @@ w_tmp_primary(void)
else
Animation_PlayerTopTemp(ANIM_CR_SHOOT1HAND, 0.45f);
if (random() < 0.5) {
sound(pl, CHAN_WEAPON, "weapons/tmp-1.wav", 1.0f, ATTN_NORM);
} else {
sound(pl, CHAN_WEAPON, "weapons/tmp-2.wav", 1.0f, ATTN_NORM);
}
Sound_Play(pl, CHAN_WEAPON, "weapon_tmp.fire");
#endif
pl.w_attack_next = 0.0955f;
pl.w_attack_next = 0.07f;
}
void
@ -173,7 +172,7 @@ w_tmp_reload(void)
float
w_tmp_aimanim(void)
{
return self.flags & FL_CROUCHING ? ANIM_CR_AIM1HAND : ANIM_AIM1HAND;
return w_ak47_aimanim();
}
void

View file

@ -26,6 +26,9 @@ enum {
void
w_ump45_precache(void)
{
#ifdef SSQC
Sound_Precache("weapon_ump45.fire");
#endif
precache_model("models/v_ump45.mdl");
precache_model("models/w_ump45.mdl");
precache_model("models/p_ump45.mdl");
@ -35,7 +38,7 @@ void
w_ump45_updateammo(player pl)
{
#ifdef SSQC
Weapons_UpdateAmmo(pl, pl.ump45_mag, pl.ammo_762mm, -1);
Weapons_UpdateAmmo(pl, pl.ump45_mag, pl.ammo_45acp, -1);
#endif
}
@ -64,10 +67,10 @@ w_ump45_pickup(int new)
player pl = (player)self;
if (new) {
pl.ump45_mag = 30;
pl.ump45_mag = 25;
} else {
if (pl.ammo_762mm < 90) {
pl.ammo_762mm = bound(0, pl.ammo_762mm + 30, 90);
if (pl.ammo_45acp < AMMO_MAX_45ACP) {
pl.ammo_45acp = bound(0, pl.ammo_45acp + 25, AMMO_MAX_45ACP);
} else {
return FALSE;
}
@ -102,7 +105,7 @@ w_ump45_primary(void)
View_SetMuzzleflash(MUZZLE_RIFLE);
Weapons_ViewPunchAngle([-2,0,0]);
int r = floor(random(0,3));
int r = (float)input_sequence % 3;
switch (r) {
case 0:
Weapons_ViewAnimation(UMP45_SHOOT1);
@ -119,7 +122,7 @@ w_ump45_primary(void)
return;
}
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 8, [0.01,0,01], WEAPON_UMP45);
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 30, [0.01,0,01], WEAPON_UMP45);
pl.ump45_mag--;
@ -128,14 +131,10 @@ w_ump45_primary(void)
else
Animation_PlayerTopTemp(ANIM_CR_SHOOT1HAND, 0.45f);
if (random() < 0.5) {
sound(pl, CHAN_WEAPON, "weapons/ump45-1.wav", 1.0f, ATTN_NORM);
} else {
sound(pl, CHAN_WEAPON, "weapons/ump45-2.wav", 1.0f, ATTN_NORM);
}
Sound_Play(pl, CHAN_WEAPON, "weapon_ump45.fire");
#endif
pl.w_attack_next = 0.0955f;
pl.w_attack_next = 0.105f;
}
void
@ -148,22 +147,22 @@ w_ump45_reload(void)
}
#ifdef CSQC
if (pl.a_ammo1 >= 30) {
if (pl.a_ammo1 >= 25) {
return;
}
if (!pl.a_ammo2) {
return;
}
#else
if (pl.ump45_mag >= 30) {
if (pl.ump45_mag >= 25) {
return;
}
if (!pl.ammo_762mm) {
if (!pl.ammo_45acp) {
return;
}
Weapons_ReloadWeapon(pl, player::ump45_mag, player::ammo_762mm, 30);
Weapons_UpdateAmmo(pl, pl.ump45_mag, pl.ammo_762mm, -1);
Weapons_ReloadWeapon(pl, player::ump45_mag, player::ammo_45acp, 25);
Weapons_UpdateAmmo(pl, pl.ump45_mag, pl.ammo_45acp, -1);
#endif
Weapons_ViewAnimation(UMP45_RELOAD);
@ -173,14 +172,13 @@ w_ump45_reload(void)
float
w_ump45_aimanim(void)
{
return self.flags & FL_CROUCHING ? ANIM_CR_AIM1HAND : ANIM_AIM1HAND;
return w_ak47_aimanim();
}
void
w_ump45_hud(void)
{
#ifdef CSQC
HUD_DrawAmmo1();
HUD_DrawAmmo2();
vector aicon_pos = g_hudmins + [g_hudres[0] - 48, g_hudres[1] - 42];

View file

@ -26,6 +26,10 @@ enum {
void
w_usp45_precache(void)
{
#ifdef SSQC
Sound_Precache("weapon_usp45.fire");
Sound_Precache("weapon_usp45.silencer");
#endif
precache_model("models/v_usp45.mdl");
precache_model("models/w_usp45.mdl");
precache_model("models/p_usp45.mdl");
@ -37,7 +41,7 @@ void
w_usp45_updateammo(player pl)
{
#ifdef SSQC
Weapons_UpdateAmmo(pl, pl.usp45_mag, pl.ammo_762mm, -1);
Weapons_UpdateAmmo(pl, pl.usp45_mag, pl.ammo_45acp, -1);
#endif
}
@ -66,10 +70,10 @@ w_usp45_pickup(int new)
player pl = (player)self;
if (new) {
pl.usp45_mag = 30;
pl.usp45_mag = 12;
} else {
if (pl.ammo_762mm < 90) {
pl.ammo_762mm = bound(0, pl.ammo_762mm + 30, 90);
if (pl.ammo_45acp < AMMO_MAX_45ACP) {
pl.ammo_45acp = bound(0, pl.ammo_45acp + 12, AMMO_MAX_45ACP);
} else {
return FALSE;
}
@ -104,7 +108,7 @@ w_usp45_primary(void)
View_SetMuzzleflash(MUZZLE_RIFLE);
Weapons_ViewPunchAngle([-2,0,0]);
int r = floor(random(0,3));
int r = (float)input_sequence % 3;
switch (r) {
case 0:
Weapons_ViewAnimation(USP45_SHOOT1);
@ -121,7 +125,7 @@ w_usp45_primary(void)
return;
}
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 8, [0.01,0,01], WEAPON_USP45);
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 34, [0.01,0,01], WEAPON_USP45);
pl.usp45_mag--;
@ -130,14 +134,10 @@ w_usp45_primary(void)
else
Animation_PlayerTopTemp(ANIM_CR_SHOOT1HAND, 0.45f);
if (random() < 0.5) {
sound(pl, CHAN_WEAPON, "weapons/usp45-1.wav", 1.0f, ATTN_NORM);
} else {
sound(pl, CHAN_WEAPON, "weapons/usp45-2.wav", 1.0f, ATTN_NORM);
}
Sound_Play(pl, CHAN_WEAPON, "weapon_usp45.fire");
#endif
pl.w_attack_next = 0.0955f;
pl.w_attack_next = 0.15f;
}
void
@ -150,22 +150,22 @@ w_usp45_reload(void)
}
#ifdef CSQC
if (pl.a_ammo1 >= 30) {
if (pl.a_ammo1 >= 12) {
return;
}
if (!pl.a_ammo2) {
return;
}
#else
if (pl.usp45_mag >= 30) {
if (pl.usp45_mag >= 12) {
return;
}
if (!pl.ammo_762mm) {
if (!pl.ammo_45acp) {
return;
}
Weapons_ReloadWeapon(pl, player::usp45_mag, player::ammo_762mm, 30);
Weapons_UpdateAmmo(pl, pl.usp45_mag, pl.ammo_762mm, -1);
Weapons_ReloadWeapon(pl, player::usp45_mag, player::ammo_45acp, 12);
Weapons_UpdateAmmo(pl, pl.usp45_mag, pl.ammo_45acp, -1);
#endif
Weapons_ViewAnimation(USP45_RELOAD);
@ -175,7 +175,7 @@ w_usp45_reload(void)
float
w_usp45_aimanim(void)
{
return self.flags & FL_CROUCHING ? ANIM_CR_AIM1HAND : ANIM_AIM1HAND;
return w_deagle_aimanim();
}
void

View file

@ -26,6 +26,9 @@ enum {
void
w_xm1014_precache(void)
{
#ifdef SSQC
Sound_Precache("weapon_xm1014.fire");
#endif
precache_model("models/v_xm1014.mdl");
precache_model("models/w_xm1014.mdl");
precache_model("models/p_xm1014.mdl");
@ -35,7 +38,7 @@ void
w_xm1014_updateammo(player pl)
{
#ifdef SSQC
Weapons_UpdateAmmo(pl, pl.xm1014_mag, pl.ammo_762mm, -1);
Weapons_UpdateAmmo(pl, pl.xm1014_mag, pl.ammo_buckshot, -1);
#endif
}
@ -64,10 +67,10 @@ w_xm1014_pickup(int new)
player pl = (player)self;
if (new) {
pl.xm1014_mag = 30;
pl.xm1014_mag = 7;
} else {
if (pl.ammo_762mm < 90) {
pl.ammo_762mm = bound(0, pl.ammo_762mm + 30, 90);
if (pl.ammo_buckshot < AMMO_MAX_BUCKSHOT) {
pl.ammo_buckshot = bound(0, pl.ammo_buckshot + 7, AMMO_MAX_BUCKSHOT);
} else {
return FALSE;
}
@ -79,10 +82,8 @@ w_xm1014_pickup(int new)
void
w_xm1014_draw(void)
{
#ifdef CSQC
Weapons_SetModel("models/v_xm1014.mdl");
Weapons_ViewAnimation(XM1014_DRAW);
#endif
}
void
@ -102,7 +103,7 @@ w_xm1014_primary(void)
View_SetMuzzleflash(MUZZLE_RIFLE);
Weapons_ViewPunchAngle([-2,0,0]);
int r = floor(random(0,3));
int r = (float)input_sequence % 3;
switch (r) {
case 0:
Weapons_ViewAnimation(XM1014_SHOOT1);
@ -119,7 +120,7 @@ w_xm1014_primary(void)
return;
}
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 8, [0.01,0,01], WEAPON_XM1014);
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 22, [0.01,0,01], WEAPON_XM1014);
pl.xm1014_mag--;
@ -128,14 +129,10 @@ w_xm1014_primary(void)
else
Animation_PlayerTopTemp(ANIM_CR_SHOOT1HAND, 0.45f);
if (random() < 0.5) {
sound(pl, CHAN_WEAPON, "weapons/xm1014-1.wav", 1.0f, ATTN_NORM);
} else {
sound(pl, CHAN_WEAPON, "weapons/xm1014-2.wav", 1.0f, ATTN_NORM);
}
Sound_Play(pl, CHAN_WEAPON, "weapon_xm1014.fire");
#endif
pl.w_attack_next = 0.0955f;
pl.w_attack_next = 0.25f;
}
void
@ -148,22 +145,21 @@ w_xm1014_reload(void)
}
#ifdef CSQC
if (pl.a_ammo1 >= 30) {
if (pl.a_ammo1 >= 7) {
return;
}
if (!pl.a_ammo2) {
return;
}
#else
if (pl.xm1014_mag >= 30) {
if (pl.xm1014_mag >= 7) {
return;
}
if (!pl.ammo_762mm) {
if (!pl.ammo_buckshot) {
return;
}
Weapons_ReloadWeapon(pl, player::xm1014_mag, player::ammo_762mm, 30);
Weapons_UpdateAmmo(pl, pl.xm1014_mag, pl.ammo_762mm, -1);
Weapons_ReloadWeapon(pl, player::xm1014_mag, player::ammo_buckshot, 7);
#endif
Weapons_ViewAnimation(XM1014_RELOAD);
@ -173,7 +169,7 @@ w_xm1014_reload(void)
float
w_xm1014_aimanim(void)
{
return self.flags & FL_CROUCHING ? ANIM_CR_AIM1HAND : ANIM_AIM1HAND;
return w_ak47_aimanim();
}
void

View file

@ -46,3 +46,14 @@ enum
WEAPON_SMOKEGRENADE,
WEAPON_C4BOMB
};
#define AMMO_MAX_50AE 35
#define AMMO_MAX_762MM 90
#define AMMO_MAX_556MM 90
#define AMMO_MAX_556MMBOX 200
#define AMMO_MAX_338MAG 30
#define AMMO_MAX_9MM 150
#define AMMO_MAX_BUCKSHOT 32
#define AMMO_MAX_45ACP 100
#define AMMO_MAX_357SIG 52
#define AMMO_MAX_57MM 100