changeset 94:5191f8e571d1

Add manual control mode.
author Matti Hamalainen <ccr@tnsp.org>
date Tue, 25 May 2021 00:58:02 +0300
parents 9fee97e7c5b6
children 59195e95c080
files gldragon.cpp
diffstat 1 files changed, 18 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/gldragon.cpp	Tue May 25 00:48:42 2021 +0300
+++ b/gldragon.cpp	Tue May 25 00:58:02 2021 +0300
@@ -99,6 +99,7 @@
     bool
         exitFlag = false,
         pauseFlag = false,
+        manualFlag = false,
         optShowHelp = false,
         optSetInputFilename = false,
         optUseShaders = false;
@@ -330,13 +331,26 @@
                 {
                     case SDLK_SPACE:
                     case SDLK_p:
-                        pauseFlag = !pauseFlag;
+                        if (manualFlag)
+                            pauseFlag = manualFlag = false;
+                        else
+                            pauseFlag = !pauseFlag;
                         break;
 
                     case SDLK_ESCAPE:
                     case SDLK_q:
                         exitFlag = true;
                         break;
+
+                    case SDLK_RIGHT:
+                        manualFlag = true;
+                        cycleFrames++;
+                        break;
+
+                    case SDLK_LEFT:
+                        manualFlag = true;
+                        cycleFrames--;
+                        break;
                 }
         }
 
@@ -351,8 +365,8 @@
 
         frameDelta = frameEnd - frameStart;
 
-        // Return true if a full rotation was done
-        if (!pauseFlag)
+        // Handle automatic mode
+        if (!pauseFlag && !manualFlag)
         {
             totalFrames++;
             cycleFrames++;
@@ -392,7 +406,7 @@
         }
         else
         {
-            SDL_Delay(100);
+            SDL_Delay(manualFlag ? 25 : 100);
         }
     }