Browse Source

Merge branch 'master' into hlfixed

hlfixed
Andrey Akhmichin 2 years ago
parent
commit
dabbb1a8f4
No known key found for this signature in database
GPG Key ID: 1F180D249B0643C0
  1. 8
      dlls/animation.cpp
  2. 22
      dlls/func_break.cpp
  3. 2
      dlls/game.cpp
  4. 1
      dlls/game.h

8
dlls/animation.cpp

@ -238,7 +238,7 @@ void GetSequenceInfo( void *pmodel, entvars_t *pev, float *pflFrameRate, float *
mstudioseqdesc_t *pseqdesc; mstudioseqdesc_t *pseqdesc;
if( pev->sequence >= pstudiohdr->numseq ) if( pev->sequence < 0 || pev->sequence >= pstudiohdr->numseq )
{ {
*pflFrameRate = 0.0f; *pflFrameRate = 0.0f;
*pflGroundSpeed = 0.0f; *pflGroundSpeed = 0.0f;
@ -265,7 +265,7 @@ int GetSequenceFlags( void *pmodel, entvars_t *pev )
studiohdr_t *pstudiohdr; studiohdr_t *pstudiohdr;
pstudiohdr = (studiohdr_t *)pmodel; pstudiohdr = (studiohdr_t *)pmodel;
if( !pstudiohdr || pev->sequence >= pstudiohdr->numseq ) if( !pstudiohdr || pev->sequence < 0 || pev->sequence >= pstudiohdr->numseq )
return 0; return 0;
mstudioseqdesc_t *pseqdesc; mstudioseqdesc_t *pseqdesc;
@ -279,7 +279,7 @@ int GetAnimationEvent( void *pmodel, entvars_t *pev, MonsterEvent_t *pMonsterEve
studiohdr_t *pstudiohdr; studiohdr_t *pstudiohdr;
pstudiohdr = (studiohdr_t *)pmodel; pstudiohdr = (studiohdr_t *)pmodel;
if( !pstudiohdr || pev->sequence >= pstudiohdr->numseq || !pMonsterEvent ) if( !pstudiohdr || pev->sequence < 0 || pev->sequence >= pstudiohdr->numseq || !pMonsterEvent )
return 0; return 0;
mstudioseqdesc_t *pseqdesc; mstudioseqdesc_t *pseqdesc;
@ -379,7 +379,7 @@ float SetBlending( void *pmodel, entvars_t *pev, int iBlender, float flValue )
studiohdr_t *pstudiohdr; studiohdr_t *pstudiohdr;
pstudiohdr = (studiohdr_t *)pmodel; pstudiohdr = (studiohdr_t *)pmodel;
if( !pstudiohdr ) if( !pstudiohdr || pev->sequence < 0 || pev->sequence >= pstudiohdr->numseq )
return flValue; return flValue;
mstudioseqdesc_t *pseqdesc; mstudioseqdesc_t *pseqdesc;

22
dlls/func_break.cpp

@ -26,6 +26,7 @@
#include "func_break.h" #include "func_break.h"
#include "decals.h" #include "decals.h"
#include "explode.h" #include "explode.h"
#include "game.h"
extern DLL_GLOBAL Vector g_vecAttackDir; extern DLL_GLOBAL Vector g_vecAttackDir;
@ -925,12 +926,24 @@ void CPushable::Move( CBaseEntity *pOther, int push )
return; return;
} }
// g-cont. fix pushable acceleration bug (reverted as it used in mods)
if( pOther->IsPlayer() ) if( pOther->IsPlayer() )
{
// g-cont. fix pushable acceleration bug (now implemented as cvar)
if (pushablemode.value == 1)
{
// Allow player push when moving right, left and back too
if ( push && !(pevToucher->button & (IN_FORWARD|IN_MOVERIGHT|IN_MOVELEFT|IN_BACK)) )
return;
// Require player walking back when applying '+use' on pushable
if ( !push && !(pevToucher->button & (IN_BACK)) )
return;
}
else
{ {
// Don't push unless the player is pushing forward and NOT use (pull) // Don't push unless the player is pushing forward and NOT use (pull)
if( push && !( pevToucher->button & ( IN_FORWARD | IN_USE ) ) ) if( push && !( pevToucher->button & ( IN_FORWARD | IN_USE ) ) )
return; return;
}
playerTouch = 1; playerTouch = 1;
} }
@ -951,6 +964,13 @@ void CPushable::Move( CBaseEntity *pOther, int push )
else else
factor = 0.25f; factor = 0.25f;
// Spirit fix for pushable acceleration
if (pushablemode.value == 2)
{
if (!push)
factor *= 0.5f;
}
pev->velocity.x += pevToucher->velocity.x * factor; pev->velocity.x += pevToucher->velocity.x * factor;
pev->velocity.y += pevToucher->velocity.y * factor; pev->velocity.y += pevToucher->velocity.y * factor;

2
dlls/game.cpp

@ -38,6 +38,7 @@ cvar_t satchelfix = { "satchelfix", "1", FCVAR_SERVER };
cvar_t explosionfix = { "explosionfix", "1", FCVAR_SERVER }; cvar_t explosionfix = { "explosionfix", "1", FCVAR_SERVER };
cvar_t monsteryawspeedfix = { "monsteryawspeedfix", "1", FCVAR_SERVER }; cvar_t monsteryawspeedfix = { "monsteryawspeedfix", "1", FCVAR_SERVER };
cvar_t corpsephysics = { "corpsephysics", "0", FCVAR_SERVER }; cvar_t corpsephysics = { "corpsephysics", "0", FCVAR_SERVER };
cvar_t pushablemode = { "pushablemode", "0", 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 };
cvar_t aimcrosshair = { "mp_autocrosshair","1", FCVAR_SERVER }; cvar_t aimcrosshair = { "mp_autocrosshair","1", FCVAR_SERVER };
@ -491,6 +492,7 @@ void GameDLLInit( void )
CVAR_REGISTER( &explosionfix ); CVAR_REGISTER( &explosionfix );
CVAR_REGISTER( &monsteryawspeedfix ); CVAR_REGISTER( &monsteryawspeedfix );
CVAR_REGISTER( &corpsephysics ); CVAR_REGISTER( &corpsephysics );
CVAR_REGISTER( &pushablemode );
CVAR_REGISTER( &forcerespawn ); CVAR_REGISTER( &forcerespawn );
CVAR_REGISTER( &flashlight ); CVAR_REGISTER( &flashlight );
CVAR_REGISTER( &aimcrosshair ); CVAR_REGISTER( &aimcrosshair );

1
dlls/game.h

@ -33,6 +33,7 @@ extern cvar_t satchelfix;
extern cvar_t explosionfix; extern cvar_t explosionfix;
extern cvar_t monsteryawspeedfix; extern cvar_t monsteryawspeedfix;
extern cvar_t corpsephysics; extern cvar_t corpsephysics;
extern cvar_t pushablemode;
extern cvar_t forcerespawn; extern cvar_t forcerespawn;
extern cvar_t flashlight; extern cvar_t flashlight;
extern cvar_t aimcrosshair; extern cvar_t aimcrosshair;

Loading…
Cancel
Save