Browse Source

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

hl_urbicide
Roman Chistokhodov 3 years ago committed by GitHub
parent
commit
4e13400c61
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 2
      dlls/game.cpp
  2. 1
      dlls/game.h
  3. 4
      dlls/ggrenade.cpp

2
dlls/game.cpp

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

1
dlls/game.h

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

4
dlls/ggrenade.cpp

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

Loading…
Cancel
Save