From dad839d9f150ec4e93591e47bb511924bdb19580 Mon Sep 17 00:00:00 2001 From: Lee Salzman Date: Sat, 13 Sep 2008 23:00:54 +0000 Subject: [PATCH] clamp damage roll by maxroll git-svn-id: svn://svn.code.sf.net/p/actiongame/code/trunk/ac@2572 e016b1c5-ed68-44aa-a2f7-31cac88cffde --- source/src/entity.h | 2 ++ source/src/physics.cpp | 9 +++++++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/source/src/entity.h b/source/src/entity.h index 52369899..f62a90f9 100644 --- a/source/src/entity.h +++ b/source/src/entity.h @@ -389,8 +389,10 @@ struct playerent : dynent, playerstate void damageroll(float damage) { + extern void clamproll(physent *pl); float damroll = 2.0f*damage; roll += roll>0 ? damroll : (roll<0 ? -damroll : (rnd(2) ? damroll : -damroll)); // give player a kick + clamproll(this); } void hitpush(int damage, const vec &dir, playerent *actor, int gun) diff --git a/source/src/physics.cpp b/source/src/physics.cpp index 59bada83..bfb02623 100644 --- a/source/src/physics.cpp +++ b/source/src/physics.cpp @@ -243,6 +243,12 @@ VAR(recoilbackfade, 0, 100, 1000); // moveres indicated the physics precision (which is lower for monsters and multiplayer prediction) // local is false for multiplayer prediction +void clamproll(physent *pl) +{ + if(pl->roll > maxroll) pl->roll = maxroll; + else if(pl->roll < -maxroll) pl->roll = -maxroll; +} + void moveplayer(physent *pl, int moveres, bool local, int curtime) { bool water = false; @@ -457,8 +463,7 @@ void moveplayer(physent *pl, int moveres, bool local, int curtime) else { pl->roll += pl->strafe*curtime/-30.0f; - if(pl->roll>maxroll) pl->roll = (float)maxroll; - if(pl->roll<-maxroll) pl->roll = (float)-maxroll; + clamproll(pl); } // smooth pitch