From 9618df6c3310853d8c07939b9761734fe9df2e87 Mon Sep 17 00:00:00 2001 From: xolatile Date: Wed, 23 Jul 2025 22:38:43 +0200 Subject: [PATCH] Hacked up speedometer and accelerated movement... --- src/engine/main.cpp | 2 ++ src/engine/physics.cpp | 5 ++++- src/engine/rendergl.cpp | 1 + src/fpsgame/fps.cpp | 6 +++++- src/shared/cube.h | 1 + 5 files changed, 13 insertions(+), 2 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() diff --git a/src/fpsgame/fps.cpp b/src/fpsgame/fps.cpp index 377afa3..038fe47 100644 --- a/src/fpsgame/fps.cpp +++ b/src/fpsgame/fps.cpp @@ -876,6 +876,8 @@ namespace game void drawhudicons(fpsent *d) { + int speedforreal = (int) (sqrtf(d->vel.squaredlen()) + /*speedmodifier*/ + 1.0f); + pushhudmatrix(); hudmatrix.scale(2, 2, 1); flushhudmatrix(); @@ -887,6 +889,8 @@ namespace game { if(d->armour) draw_textf("%d", (HICON_X + HICON_STEP + HICON_SIZE + HICON_SPACE)/2, HICON_TEXTY/2, d->armour); draw_textf("%d", (HICON_X + 2*HICON_STEP + HICON_SIZE + HICON_SPACE)/2, HICON_TEXTY/2, d->ammo[d->gunselect]); + //~draw_textf("%d", (HICON_X + 2*HICON_STEP + HICON_SIZE + HICON_SPACE)/2+800, HICON_TEXTY/2, (int) (100.0f+speedmodifier)); + draw_textf("%d", (HICON_X + 2*HICON_STEP + HICON_SIZE + HICON_SPACE)/2+400, HICON_TEXTY/2, speedforreal); } pophudmatrix(); @@ -981,7 +985,7 @@ namespace game flushhudmatrix(); defformatstring(label, "%d", p->ammo[gun]); - int tw, th, moved, movew = 0, moveh = 0; text_bounds(label, tw, th); + int tw, th; text_bounds(label, tw, th); vec2 textdrawpos = vec2(-tw, -th).div(2); float ammoratio = (float)p->ammo[gun] / itemstats[gun-GUN_SG].add; bvec color = bvec::hexcolor(p->ammo[gun] == 0 || ammoratio >= 1.0f ? 0xFFFFFF : (ammoratio >= 0.5f ? 0xFFC040 : 0xFF0000)); diff --git a/src/shared/cube.h b/src/shared/cube.h index ed1c207..ffb1d1b 100644 --- a/src/shared/cube.h +++ b/src/shared/cube.h @@ -66,3 +66,4 @@ #endif +extern float speedmodifier; -- 2.39.5