summaryrefslogtreecommitdiff
path: root/src/engine
diff options
context:
space:
mode:
Diffstat (limited to 'src/engine')
-rw-r--r--src/engine/main.cpp2
-rw-r--r--src/engine/physics.cpp5
-rw-r--r--src/engine/rendergl.cpp1
3 files changed, 7 insertions, 1 deletions
diff --git a/src/engine/main.cpp b/src/engine/main.cpp
index c7a88cf..40ef42a 100644
--- a/src/engine/main.cpp
+++ b/src/engine/main.cpp
@@ -6,6 +6,8 @@
#include "SDL_syswm.h"
#endif
+float speedmodifier = 0.0f;
+
extern void cleargamma();
void cleanup()
diff --git a/src/engine/physics.cpp b/src/engine/physics.cpp
index 4a30130..4c23739 100644
--- a/src/engine/physics.cpp
+++ b/src/engine/physics.cpp
@@ -1631,7 +1631,10 @@ void modifyvelocity(physent *pl, bool local, bool water, bool floating, int curt
}
vec d(m);
- d.mul(pl->maxspeed);
+ speedmodifier*=(pl->physstate!=PHYS_FLOOR)*(speedmodifier>0);
+ speedmodifier=(speedmodifier>100.0f)?100.0f:speedmodifier;
+ d.mul(pl->maxspeed + speedmodifier);
+
if(pl->type==ENT_PLAYER)
{
if(floating)
diff --git a/src/engine/rendergl.cpp b/src/engine/rendergl.cpp
index 9b7c35f..f6d19b9 100644
--- a/src/engine/rendergl.cpp
+++ b/src/engine/rendergl.cpp
@@ -815,6 +815,7 @@ void mousemove(int dx, int dy)
player->yaw = camera1->yaw;
player->pitch = camera1->pitch;
}
+ speedmodifier += abs(dx)-abs(dy);
}
void recomputecamera()