Okay, in g_active.c I found
if( client->ps.stats[STAT_HEALTH] <= 0 ) {
// DHM - Nerve
WolfFindMedic( ent );
// See if we need to hop to limbo
if( level.timeCurrent > client->respawnTime && !(ent->client->ps.pm_flags & PMF_LIMBO) ) {
if( ucmd->upmove > 0 ) {
if( g_gametype.integer == GT_WOLF_LMS || client->ps.persistant[PERS_RESPAWNS_LEFT] >= 0 ) {
trap_SendServerCommand( ent-g_entities, "reqforcespawn" );
} else {
limbo( ent, ( client->ps.stats[STAT_HEALTH] > GIB_HEALTH ) );
}
}
if((g_forcerespawn.integer > 0 && level.timeCurrent - client->respawnTime > g_forcerespawn.integer * 1000) || client->ps.stats[STAT_HEALTH] <= GIB_HEALTH) {
limbo(ent, (client->ps.stats[STAT_HEALTH] > GIB_HEALTH));
}
}
return;
}
I changed that to
if( client->ps.stats[STAT_HEALTH] <= 0 ) {
// DHM - Nerve
WolfFindMedic( ent );
// See if we need to hop to limbo
if( level.timeCurrent > client->respawnTime && !(ent->client->ps.pm_flags & PMF_LIMBO) ) {
if( ucmd->upmove > 0 ) {
if( g_gametype.integer == GT_WOLF_LMS || client->ps.persistant[PERS_RESPAWNS_LEFT] >= 0 ) {
trap_SendServerCommand( ent-g_entities, "reqforcespawn" );
} else {
limbo( ent, ( client->ps.stats[STAT_HEALTH] > GIB_HEALTH ) );
GibEntity( ent, 0 ); // gibs
}
}
if((g_forcerespawn.integer > 0 && level.timeCurrent - client->respawnTime > g_forcerespawn.integer * 1000) || client->ps.stats[STAT_HEALTH] <= GIB_HEALTH) {
limbo(ent, (client->ps.stats[STAT_HEALTH] > GIB_HEALTH));
GibEntity( ent, 0 ); // gibs
}
}
return;
}
and above client think I added
extern void GibEntity( gentity_t *self, int killer );
Now that seems to sorta work, but of course if your health is greater than 0 you are gibbed twice. Am I on the right track here or should I be looking in g_combat.c?