From 4305f8de03f2cd9564c8ab658e7d1fdb67326c82 Mon Sep 17 00:00:00 2001 From: suve Date: Sun, 18 Nov 2018 21:09:11 +0100 Subject: [PATCH 1/2] Add a minimum & maximum game speed limit --- src/level/robotmain.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/level/robotmain.cpp b/src/level/robotmain.cpp index 2cabcccf..40b74a95 100644 --- a/src/level/robotmain.cpp +++ b/src/level/robotmain.cpp @@ -119,6 +119,10 @@ const float UNIT = 4.0f; // default for g_unit float g_unit; // conversion factor +// Min/max values for the game speed. +const float MIN_SPEED = 1/8.0f; +const float MAX_SPEED = 256.0f; + // Reference colors used when recoloring textures, see ChangeColor() const Gfx::Color COLOR_REF_BOT = Gfx::Color( 10.0f/256.0f, 166.0f/256.0f, 254.0f/256.0f); // blue const Gfx::Color COLOR_REF_ALIEN = Gfx::Color(135.0f/256.0f, 170.0f/256.0f, 13.0f/256.0f); // green @@ -5362,6 +5366,15 @@ void CRobotMain::UpdateChapterPassed() //! Changes game speed void CRobotMain::SetSpeed(float speed) { + if(speed < MIN_SPEED) + { + speed = MIN_SPEED; + } + else if(speed > MAX_SPEED) + { + speed = MAX_SPEED; + } + m_app->SetSimulationSpeed(speed); UpdateSpeedLabel(); } From 508e7529d2b7cc7ab56175cd8d8b5595e19700fe Mon Sep 17 00:00:00 2001 From: suve Date: Tue, 27 Nov 2018 19:25:56 +0100 Subject: [PATCH 2/2] Use Math::Clamp() when limiting game speed --- src/level/robotmain.cpp | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/src/level/robotmain.cpp b/src/level/robotmain.cpp index 40b74a95..2e456fc6 100644 --- a/src/level/robotmain.cpp +++ b/src/level/robotmain.cpp @@ -60,6 +60,7 @@ #include "level/parser/parser.h" #include "math/const.h" +#include "math/func.h" #include "math/geometry.h" #include "object/object.h" @@ -5362,18 +5363,10 @@ void CRobotMain::UpdateChapterPassed() return m_ui->UpdateChapterPassed(); } - //! Changes game speed void CRobotMain::SetSpeed(float speed) { - if(speed < MIN_SPEED) - { - speed = MIN_SPEED; - } - else if(speed > MAX_SPEED) - { - speed = MAX_SPEED; - } + speed = Math::Clamp(speed, MIN_SPEED, MAX_SPEED); m_app->SetSimulationSpeed(speed); UpdateSpeedLabel();