summaryrefslogtreecommitdiff
path: root/src/game/g_weapon.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/game/g_weapon.c')
-rw-r--r--src/game/g_weapon.c22
1 files changed, 16 insertions, 6 deletions
diff --git a/src/game/g_weapon.c b/src/game/g_weapon.c
index d57f259f..18c3b8fc 100644
--- a/src/game/g_weapon.c
+++ b/src/game/g_weapon.c
@@ -579,9 +579,16 @@ void LCChargeFire( gentity_t *ent, qboolean secondary )
gentity_t *m;
if( secondary )
- m = fire_luciferCannon( ent, muzzle, forward, LCANNON_SECONDARY_DAMAGE, LCANNON_SECONDARY_RADIUS );
+ {
+ m = fire_luciferCannon( ent, muzzle, forward, LCANNON_SECONDARY_DAMAGE,
+ LCANNON_SECONDARY_RADIUS );
+ ent->client->ps.weaponTime = LCANNON_REPEAT;
+ }
else
+ {
m = fire_luciferCannon( ent, muzzle, forward, ent->client->ps.stats[ STAT_MISC ], LCANNON_RADIUS );
+ ent->client->ps.weaponTime = LCANNON_CHARGEREPEAT;
+ }
ent->client->ps.stats[ STAT_MISC ] = 0;
}
@@ -1260,15 +1267,15 @@ qboolean CheckPounceAttack( gentity_t *ent )
VectorSet( mins, -LEVEL3_POUNCE_WIDTH, -LEVEL3_POUNCE_WIDTH, -LEVEL3_POUNCE_WIDTH );
VectorSet( maxs, LEVEL3_POUNCE_WIDTH, LEVEL3_POUNCE_WIDTH, LEVEL3_POUNCE_WIDTH );
- if( !ent->client->allowedToPounce )
- return qfalse;
-
if( ent->client->ps.groundEntityNum != ENTITYNUM_NONE )
{
ent->client->allowedToPounce = qfalse;
- return qfalse;
+ ent->client->pmext.pouncePayload = 0;
}
+ if( !ent->client->allowedToPounce )
+ return qfalse;
+
if( ent->client->ps.weaponTime )
return qfalse;
@@ -1303,7 +1310,10 @@ qboolean CheckPounceAttack( gentity_t *ent )
if( !traceEnt->takedamage )
return qfalse;
- damage = (int)( ( (float)ent->client->pouncePayload / (float)LEVEL3_POUNCE_SPEED ) * LEVEL3_POUNCE_DMG );
+ damage = (int)( ( (float)ent->client->pmext.pouncePayload
+ / (float)LEVEL3_POUNCE_SPEED ) * LEVEL3_POUNCE_DMG );
+
+ ent->client->pmext.pouncePayload = 0;
G_Damage( traceEnt, ent, ent, forward, tr.endpos, damage,
DAMAGE_NO_KNOCKBACK|DAMAGE_NO_LOCDAMAGE, MOD_LEVEL3_POUNCE );