Skip to content

Commit f67e43c

Browse files
committed
fix: own gibs not flying away from damage
1 parent 38e746c commit f67e43c

1 file changed

Lines changed: 12 additions & 1 deletion

File tree

code/cgame/cg_event.c

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1218,7 +1218,18 @@ void CG_EntityEvent( centity_t *cent, vec3_t position, int entityNum ) {
12181218
if (cg_oldGibs.integer) {
12191219
CG_GibPlayerOld( cent->lerpOrigin );
12201220
} else {
1221-
CG_GibPlayer( cent->lerpOrigin, cent->lerpAngles, es->pos.trDelta );
1221+
if ( es->number == cg.snap->ps.clientNum ) {
1222+
// Apparently at this point `es->pos.trDelta` doesn't yet have
1223+
// the knockback from the damage that gibbed us,
1224+
// so we have to differentiate between self and non-self,
1225+
// and use `cg.predictedPlayerState.velocity`
1226+
// if it's ourself.
1227+
CG_GibPlayer( cent->lerpOrigin, cent->lerpAngles,
1228+
cg.predictedPlayerState.velocity );
1229+
} else {
1230+
CG_GibPlayer( cent->lerpOrigin, cent->lerpAngles,
1231+
es->pos.trDelta );
1232+
}
12221233
}
12231234
break;
12241235

0 commit comments

Comments
 (0)