[ioquake3] 12/33: Fix hit accuracy stats for lightning gun and shotgun kills
Simon McVittie
smcv at debian.org
Mon Oct 30 14:00:26 UTC 2017
This is an automated email from the git hooks/post-receive script.
smcv pushed a commit to branch debian/master
in repository ioquake3.
commit 51e9aa2df037e3df72bc5f3b663010b8f4986b14
Author: Zack Middleton <zack at cloemail.com>
Date: Fri Sep 29 18:28:34 2017 -0500
Fix hit accuracy stats for lightning gun and shotgun kills
If a lightning bolt killed a player or the first shotgun pellet that
hit a player killed them, the shot was not counted as accurate.
Check if shot player is alive for hit accuracy before dealing damage.
---
code/game/g_weapon.c | 32 ++++++++++----------------------
1 file changed, 10 insertions(+), 22 deletions(-)
diff --git a/code/game/g_weapon.c b/code/game/g_weapon.c
index ecf6505..e4d32f9 100644
--- a/code/game/g_weapon.c
+++ b/code/game/g_weapon.c
@@ -275,6 +275,7 @@ qboolean ShotgunPellet( vec3_t start, vec3_t end, gentity_t *ent ) {
vec3_t impactpoint, bouncedir;
#endif
vec3_t tr_start, tr_end;
+ qboolean hitClient = qfalse;
passent = ent->s.number;
VectorCopy( start, tr_start );
@@ -304,19 +305,12 @@ qboolean ShotgunPellet( vec3_t start, vec3_t end, gentity_t *ent ) {
}
continue;
}
- else {
- G_Damage( traceEnt, ent, ent, forward, tr.endpos,
- damage, 0, MOD_SHOTGUN);
- if( LogAccuracyHit( traceEnt, ent ) ) {
- return qtrue;
- }
- }
-#else
- G_Damage( traceEnt, ent, ent, forward, tr.endpos, damage, 0, MOD_SHOTGUN);
- if( LogAccuracyHit( traceEnt, ent ) ) {
- return qtrue;
- }
#endif
+ if( LogAccuracyHit( traceEnt, ent ) ) {
+ hitClient = qtrue;
+ }
+ G_Damage( traceEnt, ent, ent, forward, tr.endpos, damage, 0, MOD_SHOTGUN);
+ return hitClient;
}
return qfalse;
}
@@ -663,14 +657,11 @@ void Weapon_LightningFire( gentity_t *ent ) {
}
continue;
}
- else {
- G_Damage( traceEnt, ent, ent, forward, tr.endpos,
- damage, 0, MOD_LIGHTNING);
- }
-#else
- G_Damage( traceEnt, ent, ent, forward, tr.endpos,
- damage, 0, MOD_LIGHTNING);
#endif
+ if( LogAccuracyHit( traceEnt, ent ) ) {
+ ent->client->accuracy_hits++;
+ }
+ G_Damage( traceEnt, ent, ent, forward, tr.endpos, damage, 0, MOD_LIGHTNING);
}
if ( traceEnt->takedamage && traceEnt->client ) {
@@ -678,9 +669,6 @@ void Weapon_LightningFire( gentity_t *ent ) {
tent->s.otherEntityNum = traceEnt->s.number;
tent->s.eventParm = DirToByte( tr.plane.normal );
tent->s.weapon = ent->s.weapon;
- if( LogAccuracyHit( traceEnt, ent ) ) {
- ent->client->accuracy_hits++;
- }
} else if ( !( tr.surfaceFlags & SURF_NOIMPACT ) ) {
tent = G_TempEntity( tr.endpos, EV_MISSILE_MISS );
tent->s.eventParm = DirToByte( tr.plane.normal );
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-games/ioquake3.git
More information about the Pkg-games-commits
mailing list