Rebased against the latest Nuclide commit.

This commit is contained in:
Marco Cawthorne 2022-03-15 19:33:41 -07:00
parent f8fae52db8
commit 42555d426d
Signed by: eukara
GPG key ID: C196CD8BA993248A
3 changed files with 65 additions and 77 deletions

View file

@ -49,7 +49,7 @@ w_cannon_updateammo(player pl)
} }
string string
w_cannon_pmodel(void) w_cannon_pmodel(player pl)
{ {
return "models/p_cannon.mdl"; return "models/p_cannon.mdl";
} }
@ -61,9 +61,8 @@ w_cannon_deathmsg(void)
} }
void void
w_cannon_reload(void) w_cannon_reload(player pl)
{ {
player pl = (player)self;
if (pl.w_attack_next > 0) { if (pl.w_attack_next > 0) {
return; return;
} }
@ -74,7 +73,7 @@ w_cannon_reload(void)
return; return;
} }
Weapons_ViewAnimation(CANNON_RELOAD); Weapons_ViewAnimation(pl, CANNON_RELOAD);
#ifdef SERVER #ifdef SERVER
Weapons_ReloadWeapon(pl, player::cannon_mag, player::ammo_buckshot, 2); Weapons_ReloadWeapon(pl, player::cannon_mag, player::ammo_buckshot, 2);
@ -85,10 +84,9 @@ w_cannon_reload(void)
} }
int int
w_cannon_pickup(int new, int startammo) w_cannon_pickup(player pl, int new, int startammo)
{ {
#ifdef SERVER #ifdef SERVER
player pl = (player)self;
if (new) { if (new) {
pl.cannon_mag = 2; pl.cannon_mag = 2;
@ -104,29 +102,28 @@ w_cannon_pickup(int new, int startammo)
} }
void void
w_cannon_draw(void) w_cannon_draw(player pl)
{ {
Weapons_SetModel("models/v_cannon.mdl"); Weapons_SetModel("models/v_cannon.mdl");
Weapons_ViewAnimation(CANNON_DEPLOY); Weapons_ViewAnimation(pl, CANNON_DEPLOY);
} }
void void
w_cannon_holster(void) w_cannon_holster(player pl)
{ {
Weapons_ViewAnimation(CANNON_PUTAWAY); Weapons_ViewAnimation(pl, CANNON_PUTAWAY);
} }
void void
w_cannon_primary(void) w_cannon_primary(player pl)
{ {
player pl = (player)self;
if (pl.w_attack_next > 0.0) { if (pl.w_attack_next > 0.0) {
return; return;
} }
if (pl.cannon_mag != 2) { if (pl.cannon_mag != 2) {
w_cannon_reload(); w_cannon_reload(pl);
return; return;
} }
@ -140,8 +137,8 @@ w_cannon_primary(void)
Sound_Play(pl, CHAN_WEAPON, "weapon_cannon.shoot"); Sound_Play(pl, CHAN_WEAPON, "weapon_cannon.shoot");
Weapons_UpdateAmmo(pl, pl.cannon_mag, pl.ammo_buckshot, __NULL__); Weapons_UpdateAmmo(pl, pl.cannon_mag, pl.ammo_buckshot, __NULL__);
#endif #endif
Weapons_ViewPunchAngle([-5,0,0]); Weapons_ViewPunchAngle(pl, [-5,0,0]);
Weapons_ViewAnimation(CANNON_FIREBOTH); Weapons_ViewAnimation(pl, CANNON_FIREBOTH);
pl.w_attack_next = 1.5f; pl.w_attack_next = 1.5f;
pl.w_idle_next = 2.5f; pl.w_idle_next = 2.5f;
@ -152,20 +149,19 @@ w_cannon_primary(void)
} }
void void
w_cannon_secondary(void) w_cannon_secondary(player pl)
{ {
player pl = (player)self;
if (pl.w_attack_next > 0.0) { if (pl.w_attack_next > 0.0) {
return; return;
} }
if (!pl.cannon_mag) { if (!pl.cannon_mag) {
w_cannon_reload(); w_cannon_reload(pl);
return; return;
} }
Weapons_ViewPunchAngle([-5,0,0]); Weapons_ViewPunchAngle(pl, [-5,0,0]);
#ifdef SERVER #ifdef SERVER
int dmg; int dmg;
@ -176,9 +172,9 @@ w_cannon_secondary(void)
#endif #endif
if (pl.cannon_mag == 2) { if (pl.cannon_mag == 2) {
Weapons_ViewAnimation(CANNON_FIRELEFT); Weapons_ViewAnimation(pl, CANNON_FIRELEFT);
} else { } else {
Weapons_ViewAnimation(CANNON_FIRERIGHT); Weapons_ViewAnimation(pl, CANNON_FIRERIGHT);
} }
pl.w_attack_next = 1.5f; pl.w_attack_next = 1.5f;
@ -190,14 +186,13 @@ w_cannon_secondary(void)
Animation_PlayerTop(pl, ANIM_SHOOTSHOTGUN, 0.5f); Animation_PlayerTop(pl, ANIM_SHOOTSHOTGUN, 0.5f);
} }
void void
w_cannon_release(void) w_cannon_release(player pl)
{ {
player pl = (player)self;
/* auto-reload if need be */ /* auto-reload if need be */
if (pl.w_attack_next <= 0.0) if (pl.w_attack_next <= 0.0)
if (pl.cannon_mag == 0 && pl.ammo_buckshot > 0) { if (pl.cannon_mag == 0 && pl.ammo_buckshot > 0) {
Weapons_Reload(); Weapons_Reload(pl);
return; return;
} }
@ -208,10 +203,10 @@ w_cannon_release(void)
int r = floor(random(0,2)); int r = floor(random(0,2));
switch (r) { switch (r) {
case 0: case 0:
Weapons_ViewAnimation(CANNON_IDLE1); Weapons_ViewAnimation(pl, CANNON_IDLE1);
break; break;
case 1: case 1:
Weapons_ViewAnimation(CANNON_IDLE2); Weapons_ViewAnimation(pl, CANNON_IDLE2);
break; break;
} }
@ -219,7 +214,7 @@ w_cannon_release(void)
} }
void void
w_cannon_crosshair(void) w_cannon_crosshair(player pl)
{ {
#ifdef CLIENT #ifdef CLIENT
static vector cross_pos; static vector cross_pos;
@ -233,16 +228,15 @@ w_cannon_crosshair(void)
} }
float float
w_cannon_aimanim(void) w_cannon_aimanim(player pl)
{ {
return self.flags & FL_CROUCHING ? ANIM_CR_AIMSHOTGUN : ANIM_AIMSHOTGUN; return pl.flags & FL_CROUCHING ? ANIM_CR_AIMSHOTGUN : ANIM_AIMSHOTGUN;
} }
void void
w_cannon_hudpic(int s, vector pos, float a) w_cannon_hudpic(player pl, int s, vector pos, float a)
{ {
#ifdef CLIENT #ifdef CLIENT
player pl = (player)self;
vector hud_col; vector hud_col;
if (pl.cannon_mag == 0 && pl.ammo_buckshot == 0) if (pl.cannon_mag == 0 && pl.ammo_buckshot == 0)
@ -264,7 +258,7 @@ weapon_t
w_cannon = w_cannon =
{ {
.name = "handcannon", .name = "handcannon",
.id = ITEM_CANNON, .id = ITEM_CANNON,
.slot = 2, .slot = 2,
.slot_pos = 3, .slot_pos = 3,
.draw = w_cannon_draw, .draw = w_cannon_draw,
@ -273,7 +267,7 @@ w_cannon =
.secondary = w_cannon_secondary, .secondary = w_cannon_secondary,
.reload = w_cannon_reload, .reload = w_cannon_reload,
.release = w_cannon_release, .release = w_cannon_release,
.crosshair = w_cannon_crosshair, .postdraw = w_cannon_crosshair,
.precache = w_cannon_precache, .precache = w_cannon_precache,
.pickup = w_cannon_pickup, .pickup = w_cannon_pickup,
.updateammo = w_cannon_updateammo, .updateammo = w_cannon_updateammo,

View file

@ -54,7 +54,7 @@ void w_chainsaw_updateammo(player pl)
{ {
Weapons_UpdateAmmo(pl, -1, -1, -1); Weapons_UpdateAmmo(pl, -1, -1, -1);
} }
string w_chainsaw_pmodel(void) string w_chainsaw_pmodel(player pl)
{ {
return "models/p_saw.mdl"; return "models/p_saw.mdl";
} }
@ -63,25 +63,23 @@ string w_chainsaw_deathmsg(void)
return "%s killed %s with chainsaw."; return "%s killed %s with chainsaw.";
} }
void w_chainsaw_draw(void) void w_chainsaw_draw(player pl)
{ {
player pl = (player)self;
Weapons_SetModel("models/v_chainsaw.mdl"); Weapons_SetModel("models/v_chainsaw.mdl");
Weapons_ViewAnimation(CHAINSAW_DEPLOY); Weapons_ViewAnimation(pl, CHAINSAW_DEPLOY);
#ifdef SERVER #ifdef SERVER
Sound_Play(pl, CHAN_WEAPON, "weapon_chainsaw.startup"); Sound_Play(pl, CHAN_WEAPON, "weapon_chainsaw.startup");
#endif #endif
} }
void w_chainsaw_holster(void) void w_chainsaw_holster(player pl)
{ {
Weapons_ViewAnimation(CHAINSAW_HOLSTER); Weapons_ViewAnimation(pl, CHAINSAW_HOLSTER);
} }
void w_chainsaw_primary(void) void w_chainsaw_primary(player pl)
{ {
player pl = (player)self;
/* only do it in the attack state */ /* only do it in the attack state */
if (pl.ammo_chainsaw_state == CHAINSAWSTATE_ATTACKING) if (pl.ammo_chainsaw_state == CHAINSAWSTATE_ATTACKING)
@ -89,10 +87,10 @@ void w_chainsaw_primary(void)
return; return;
pl.ammo_chainsaw_state = CHAINSAWSTATE_ATTACKING; pl.ammo_chainsaw_state = CHAINSAWSTATE_ATTACKING;
Weapons_ViewAnimation(CHAINSAW_CONTINUEFIRE); Weapons_ViewAnimation(pl, CHAINSAW_CONTINUEFIRE);
#ifdef SERVER #ifdef SERVER
Weapons_MakeVectors(); Weapons_MakeVectors(pl);
vector src = pl.origin + pl.view_ofs; vector src = pl.origin + pl.view_ofs;
traceline(src, src + (v_forward * 32), FALSE, pl); traceline(src, src + (v_forward * 32), FALSE, pl);
@ -123,16 +121,15 @@ void w_chainsaw_primary(void)
pl.w_idle_next = 0.0f; pl.w_idle_next = 0.0f;
} }
void w_chainsaw_release(void) void w_chainsaw_release(player pl)
{ {
player pl = (player)self;
if (pl.w_idle_next) if (pl.w_idle_next)
return; return;
if (pl.ammo_chainsaw_state == CHAINSAWSTATE_ATTACKING) { if (pl.ammo_chainsaw_state == CHAINSAWSTATE_ATTACKING) {
pl.ammo_chainsaw_state = CHAINSAWSTATE_IDLE; pl.ammo_chainsaw_state = CHAINSAWSTATE_IDLE;
Weapons_ViewAnimation(CHAINSAW_STOPFIRE); Weapons_ViewAnimation(pl, CHAINSAW_STOPFIRE);
#ifdef SERVER #ifdef SERVER
Sound_Play(pl, CHAN_WEAPON, "weapon_chainsaw.idle"); Sound_Play(pl, CHAN_WEAPON, "weapon_chainsaw.idle");
#endif #endif
@ -149,21 +146,21 @@ void w_chainsaw_release(void)
} }
if (pl.w_attack_next <= 0.0f) { if (pl.w_attack_next <= 0.0f) {
if (random() < 0.5) { if (random() < 0.5) {
Weapons_ViewAnimation(CHAINSAW_IDLE1); Weapons_ViewAnimation(pl, CHAINSAW_IDLE1);
} else { } else {
Weapons_ViewAnimation(CHAINSAW_IDLE2); Weapons_ViewAnimation(pl, CHAINSAW_IDLE2);
} }
pl.w_attack_next = 5.3333f; pl.w_attack_next = 5.3333f;
} }
} }
} }
float w_chainsaw_aimanim(void) float w_chainsaw_aimanim(player pl)
{ {
return self.flags & FL_CROUCHING ? ANIM_CR_AIMEGON : ANIM_AIMEGON; return pl.flags & FL_CROUCHING ? ANIM_CR_AIMEGON : ANIM_AIMEGON;
} }
void w_chainsaw_hudpic(int s, vector pos, float a) void w_chainsaw_hudpic(player pl, int s, vector pos, float a)
{ {
#ifdef CLIENT #ifdef CLIENT
if (s) { if (s) {
@ -181,7 +178,7 @@ void w_chainsaw_hudpic(int s, vector pos, float a)
weapon_t w_chainsaw = weapon_t w_chainsaw =
{ {
.name = "chainsaw", .name = "chainsaw",
.id = ITEM_CHAINSAW, .id = ITEM_CHAINSAW,
.slot = 0, .slot = 0,
.slot_pos = 2, .slot_pos = 2,
.draw = w_chainsaw_draw, .draw = w_chainsaw_draw,
@ -190,7 +187,7 @@ weapon_t w_chainsaw =
.secondary = w_chainsaw_release, .secondary = w_chainsaw_release,
.reload = w_chainsaw_release, .reload = w_chainsaw_release,
.release = w_chainsaw_release, .release = w_chainsaw_release,
.crosshair = __NULL__, .postdraw = __NULL__,
.precache = w_chainsaw_precache, .precache = w_chainsaw_precache,
.pickup = __NULL__, .pickup = __NULL__,
.updateammo = w_chainsaw_updateammo, .updateammo = w_chainsaw_updateammo,

View file

@ -48,7 +48,7 @@ void w_hammer_updateammo(player pl)
{ {
Weapons_UpdateAmmo(pl, -1, -1, -1); Weapons_UpdateAmmo(pl, -1, -1, -1);
} }
string w_hammer_pmodel(void) string w_hammer_pmodel(player pl)
{ {
return "models/p_hammer.mdl"; return "models/p_hammer.mdl";
} }
@ -57,51 +57,48 @@ string w_hammer_deathmsg(void)
return "%s killed %s with hammer."; return "%s killed %s with hammer.";
} }
void w_hammer_draw(void) void w_hammer_draw(player pl)
{ {
Weapons_SetModel("models/v_hammer.mdl"); Weapons_SetModel("models/v_hammer.mdl");
Weapons_ViewAnimation(HAMMER_DRAW); Weapons_ViewAnimation(pl, HAMMER_DRAW);
} }
void w_hammer_holster(void) void w_hammer_holster(player pl)
{ {
Weapons_ViewAnimation(HAMMER_HOLSTER); Weapons_ViewAnimation(pl, HAMMER_HOLSTER);
} }
void w_hammer_primary(void) void w_hammer_primary(player pl)
{ {
player pl = (player)self;
if (!pl.w_attack_next) { if (!pl.w_attack_next) {
/* Hack */ /* Hack */
if (pl.ammo_hammer_state != 1) { if (pl.ammo_hammer_state != 1) {
Weapons_ViewAnimation(HAMMER_HOLSTER2); Weapons_ViewAnimation(pl, HAMMER_HOLSTER2);
pl.ammo_hammer_state = 1; pl.ammo_hammer_state = 1;
pl.w_attack_next = 0.5f; pl.w_attack_next = 0.5f;
} }
} }
pl.w_idle_next = 2.5f; pl.w_idle_next = 2.5f;
} }
void w_hammer_secondary(void) void w_hammer_secondary(player pl)
{ {
player pl = (player)self;
if (!pl.w_attack_next) { if (!pl.w_attack_next) {
/* Hack */ /* Hack */
if (pl.ammo_hammer_state != 2) { if (pl.ammo_hammer_state != 2) {
Weapons_ViewAnimation(HAMMER_HOLSTER3); Weapons_ViewAnimation(pl, HAMMER_HOLSTER3);
pl.ammo_hammer_state = 2; pl.ammo_hammer_state = 2;
pl.w_attack_next = 0.5f; pl.w_attack_next = 0.5f;
} }
} }
pl.w_idle_next = 2.5f; pl.w_idle_next = 2.5f;
} }
void w_hammer_reload(void) void w_hammer_reload(player pl)
{ {
} }
void w_hammer_release(void) void w_hammer_release(player pl)
{ {
player pl = (player)self;
if (pl.w_attack_next) { if (pl.w_attack_next) {
return; return;
@ -140,7 +137,7 @@ void w_hammer_release(void)
} }
} }
#endif #endif
Weapons_ViewAnimation(HAMMER_ATTACK1); Weapons_ViewAnimation(pl, HAMMER_ATTACK1);
pl.w_attack_next = 1.0f; pl.w_attack_next = 1.0f;
if (self.flags & FL_CROUCHING) if (self.flags & FL_CROUCHING)
@ -162,7 +159,7 @@ void w_hammer_release(void)
} }
} }
#endif #endif
Weapons_ViewAnimation(HAMMER_ATTACK2); Weapons_ViewAnimation(pl, HAMMER_ATTACK2);
pl.w_attack_next = 0.75f; pl.w_attack_next = 0.75f;
if (self.flags & FL_CROUCHING) if (self.flags & FL_CROUCHING)
@ -197,24 +194,24 @@ void w_hammer_release(void)
int r = floor(random(0,3)); int r = floor(random(0,3));
switch (r) { switch (r) {
case 0: case 0:
Weapons_ViewAnimation(HAMMER_IDLE1); Weapons_ViewAnimation(pl, HAMMER_IDLE1);
break; break;
case 1: case 1:
Weapons_ViewAnimation(HAMMER_IDLE2); Weapons_ViewAnimation(pl, HAMMER_IDLE2);
break; break;
case 2: case 2:
Weapons_ViewAnimation(HAMMER_IDLE3); Weapons_ViewAnimation(pl, HAMMER_IDLE3);
break; break;
} }
pl.w_idle_next = 10.0f; pl.w_idle_next = 10.0f;
} }
float w_hammer_aimanim(void) float w_hammer_aimanim(player pl)
{ {
return self.flags & FL_CROUCHING ? ANIM_CR_AIMCROWBAR : ANIM_AIMCROWBAR; return pl.flags & FL_CROUCHING ? ANIM_CR_AIMCROWBAR : ANIM_AIMCROWBAR;
} }
void w_hammer_hudpic(int s, vector pos, float a) void w_hammer_hudpic(player pl, int s, vector pos, float a)
{ {
#ifdef CLIENT #ifdef CLIENT
if (s) { if (s) {
@ -228,7 +225,7 @@ void w_hammer_hudpic(int s, vector pos, float a)
weapon_t w_hammer = weapon_t w_hammer =
{ {
.name = "hammer", .name = "hammer",
.id = ITEM_HAMMER, .id = ITEM_HAMMER,
.slot = 0, .slot = 0,
.slot_pos = 1, .slot_pos = 1,
.draw = w_hammer_draw, .draw = w_hammer_draw,
@ -237,7 +234,7 @@ weapon_t w_hammer =
.secondary = w_hammer_secondary, .secondary = w_hammer_secondary,
.reload = w_hammer_reload, .reload = w_hammer_reload,
.release = w_hammer_release, .release = w_hammer_release,
.crosshair = __NULL__, .postdraw = __NULL__,
.precache = w_hammer_precache, .precache = w_hammer_precache,
.pickup = __NULL__, .pickup = __NULL__,
.updateammo = w_hammer_updateammo, .updateammo = w_hammer_updateammo,