]> git.jsancho.org Git - lugaru.git/commitdiff
Fix 7s offset between shown challenge time and high score
authorRémi Verschelde <rverschelde@gmail.com>
Sat, 10 Dec 2016 12:55:38 +0000 (13:55 +0100)
committerRémi Verschelde <rverschelde@gmail.com>
Sat, 10 Dec 2016 12:55:38 +0000 (13:55 +0100)
Also properly rounds the float time so that 26.89s does not end up as 26 but 27.

Source/Game.cpp
Source/Game.h
Source/GameDraw.cpp
Source/GameTick.cpp
Source/Menu.cpp

index e0aeedac4727acde6ac68fa68105d6ddf42d8e42..39b7df764627e1cb9ed0258acad3a9806afbf1ce 100644 (file)
@@ -67,7 +67,9 @@ bool firstload = 0;
 Texture hawktexture;
 float hawkyaw = 0;
 float hawkcalldelay = 0;
+
 float leveltime = 0;
+float wonleveltime = 0;
 float loadtime = 0;
 
 Model hawk;
index 43f256e9f645cb2127aa92795a74234fae2b4e6b..68a23a3d979c8b95113ea0b422a7fbc731ed8372 100644 (file)
@@ -76,6 +76,7 @@ extern bool cameramode;
 extern bool firstload;
 
 extern float leveltime;
+extern float wonleveltime;
 extern float loadtime;
 
 extern Model hawk;
index 7ee322eb48eaec9ee32858938a9170cf58fb68e6..a0c92d50e0f93542ef5930cd567c302fe7b5bf6f 100644 (file)
@@ -1610,21 +1610,19 @@ int Game::DrawGLScene(StereoSide side)
             sprintf (string, "Score:     %d", (int)(bonustotal - startbonustotal));
             text->glPrintOutlined(1024 / 30, 768 * 6 / 8, string, 1, 2, 1024, 768);
 
-            if (campaign)
-                sprintf (string, "Press Escape or Space to continue");
-            else
-                sprintf (string, "Press Escape to return to menu or Space to continue");
+            sprintf (string, "Press Escape to return to menu or Space to continue");
             text->glPrintOutlined(640 / 2 - strlen(string) * 5, 480 * 1 / 16, string, 1, 1, 640, 480);
 
             char temp[255];
 
             for (int i = 0; i < 255; i++)
                 string[i] = '\0';
-            sprintf (temp, "Time:      %d:", (int)(((int)leveltime - (int)(leveltime) % 60) / 60));
+            int wontime = (int)round(wonleveltime);
+            sprintf (temp, "Time:      %d:", int((wontime - wontime % 60) / 60));
             strcat(string, temp);
-            if ((int)(leveltime) % 60 < 10)
+            if (wontime % 60 < 10)
                 strcat(string, "0");
-            sprintf (temp, "%d", (int)(leveltime) % 60);
+            sprintf (temp, "%d", wontime % 60);
             strcat(string, temp);
             text->glPrintOutlined(1024 / 30, 768 * 6 / 8 - 40, string, 1, 2, 1024, 768);
 
index 1dfebb29955118d4bdef80c76b18a149c64382bd..1a84485a31f86785300a89bbdcebfe5e6fc45944 100644 (file)
@@ -1105,6 +1105,7 @@ void Game::Loadlevel(const std::string& name)
         firstload = 1;
 
     leveltime = 0;
+    wonleveltime = 0;
     visibleloading = 0;
 }
 
@@ -6218,6 +6219,7 @@ void Game::TickOnceAfter()
                     accountactive->winCampaignLevel(whichchoice, bonustotal, leveltime);
                     scoreadded = 1;
                 } else {
+                    wonleveltime = leveltime;
                     accountactive->winLevel(whichlevel, bonustotal - startbonustotal, leveltime);
                 }
                 won = 1;
index 8ed62b466c759a473fdbced994350bd1657d6eba..9e08d744f5b4fbfeebb53eef33efa23adedbf1b9 100644 (file)
@@ -464,11 +464,12 @@ void Menu::Load()
             if (name.size() < 32) {
                 name.append((32 - name.size()), ' ');
             }
-            name += to_string(int((int(accountactive->getFastTime(i)) - int(accountactive->getFastTime(i)) % 60) / 60));
+            int fasttime = (int)round(accountactive->getFastTime(i));
+            name += to_string(int((fasttime - fasttime % 60) / 60));
             name += ":";
-            if ((int)(accountactive->getFastTime(i)) % 60 < 10)
+            if (fasttime % 60 < 10)
                 name += "0";
-            name += to_string((int)(accountactive->getFastTime(i)) % 60);
+            name += to_string(fasttime % 60);
 
             addButton(i, name, 10, 400 - i * 25, i > accountactive->getProgress() ? 0.5 : 1, 0, 0);
         }