Add 'explosionfix' cvar to control explosions going through walls sometimes. Related issue: https://github.com/ValveSoftware/halflife/issues/3244 (#252)

This commit is contained in:
Roman Chistokhodov 2022-06-05 19:35:04 +03:00 committed by GitHub
parent 3db3772bff
commit 4e13400c61
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 8 additions and 1 deletions

View File

@ -35,6 +35,7 @@ cvar_t weaponstay = { "mp_weaponstay","0", FCVAR_SERVER };
cvar_t selfgauss = { "selfgauss", "1", FCVAR_SERVER };
cvar_t chargerfix = { "chargerfix", "0", FCVAR_SERVER };
cvar_t satchelfix = { "satchelfix", "0", FCVAR_SERVER };
cvar_t explosionfix = { "explosionfix", "0", FCVAR_SERVER };
cvar_t monsteryawspeedfix = { "monsteryawspeedfix", "1", FCVAR_SERVER };
cvar_t forcerespawn = { "mp_forcerespawn","1", FCVAR_SERVER };
cvar_t flashlight = { "mp_flashlight","0", FCVAR_SERVER };
@ -486,6 +487,7 @@ void GameDLLInit( void )
CVAR_REGISTER( &selfgauss );
CVAR_REGISTER( &chargerfix );
CVAR_REGISTER( &satchelfix );
CVAR_REGISTER( &explosionfix );
CVAR_REGISTER( &monsteryawspeedfix );
CVAR_REGISTER( &forcerespawn );
CVAR_REGISTER( &flashlight );

View File

@ -30,6 +30,7 @@ extern cvar_t weaponstay;
extern cvar_t selfgauss;
extern cvar_t chargerfix;
extern cvar_t satchelfix;
extern cvar_t explosionfix;
extern cvar_t monsteryawspeedfix;
extern cvar_t forcerespawn;
extern cvar_t flashlight;

View File

@ -26,6 +26,7 @@
#include "nodes.h"
#include "soundent.h"
#include "decals.h"
#include "game.h"
//===================grenade
@ -59,7 +60,10 @@ void CGrenade::Explode( TraceResult *pTrace, int bitsDamageType )
// Pull out of the wall a bit
if( pTrace->flFraction != 1.0f )
{
pev->origin = pTrace->vecEndPos + ( pTrace->vecPlaneNormal * ( pev->dmg - 24 ) * 0.6f );
if (explosionfix.value)
pev->origin = pTrace->vecEndPos + ( pTrace->vecPlaneNormal * 0.6f );
else
pev->origin = pTrace->vecEndPos + ( pTrace->vecPlaneNormal * ( pev->dmg - 24 ) * 0.6f );
}
int iContents = UTIL_PointContents( pev->origin );