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

View File

@ -54,7 +54,7 @@ void w_chainsaw_updateammo(player pl)
{
Weapons_UpdateAmmo(pl, -1, -1, -1);
}
string w_chainsaw_pmodel(void)
string w_chainsaw_pmodel(player pl)
{
return "models/p_saw.mdl";
}
@ -63,25 +63,23 @@ string w_chainsaw_deathmsg(void)
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_ViewAnimation(CHAINSAW_DEPLOY);
Weapons_ViewAnimation(pl, CHAINSAW_DEPLOY);
#ifdef SERVER
Sound_Play(pl, CHAN_WEAPON, "weapon_chainsaw.startup");
#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 */
if (pl.ammo_chainsaw_state == CHAINSAWSTATE_ATTACKING)
@ -89,10 +87,10 @@ void w_chainsaw_primary(void)
return;
pl.ammo_chainsaw_state = CHAINSAWSTATE_ATTACKING;
Weapons_ViewAnimation(CHAINSAW_CONTINUEFIRE);
Weapons_ViewAnimation(pl, CHAINSAW_CONTINUEFIRE);
#ifdef SERVER
Weapons_MakeVectors();
Weapons_MakeVectors(pl);
vector src = pl.origin + pl.view_ofs;
traceline(src, src + (v_forward * 32), FALSE, pl);
@ -123,16 +121,15 @@ void w_chainsaw_primary(void)
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)
return;
if (pl.ammo_chainsaw_state == CHAINSAWSTATE_ATTACKING) {
pl.ammo_chainsaw_state = CHAINSAWSTATE_IDLE;
Weapons_ViewAnimation(CHAINSAW_STOPFIRE);
Weapons_ViewAnimation(pl, CHAINSAW_STOPFIRE);
#ifdef SERVER
Sound_Play(pl, CHAN_WEAPON, "weapon_chainsaw.idle");
#endif
@ -149,21 +146,21 @@ void w_chainsaw_release(void)
}
if (pl.w_attack_next <= 0.0f) {
if (random() < 0.5) {
Weapons_ViewAnimation(CHAINSAW_IDLE1);
Weapons_ViewAnimation(pl, CHAINSAW_IDLE1);
} else {
Weapons_ViewAnimation(CHAINSAW_IDLE2);
Weapons_ViewAnimation(pl, CHAINSAW_IDLE2);
}
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
if (s) {
@ -181,7 +178,7 @@ void w_chainsaw_hudpic(int s, vector pos, float a)
weapon_t w_chainsaw =
{
.name = "chainsaw",
.id = ITEM_CHAINSAW,
.id = ITEM_CHAINSAW,
.slot = 0,
.slot_pos = 2,
.draw = w_chainsaw_draw,
@ -190,7 +187,7 @@ weapon_t w_chainsaw =
.secondary = w_chainsaw_release,
.reload = w_chainsaw_release,
.release = w_chainsaw_release,
.crosshair = __NULL__,
.postdraw = __NULL__,
.precache = w_chainsaw_precache,
.pickup = __NULL__,
.updateammo = w_chainsaw_updateammo,

View File

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