changeset 847:cf142447dd63

Add "enter to start" text for the setup screen.
author Matti Hamalainen <ccr@tnsp.org>
date Tue, 21 Oct 2014 16:29:18 +0300
parents 05a3ee1ca964
children 30f9af5e80f2
files src/dmengine.h src/dmsimple.c
diffstat 2 files changed, 23 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/src/dmengine.h	Tue Oct 21 10:42:08 2014 +0300
+++ b/src/dmengine.h	Tue Oct 21 16:29:18 2014 +0300
@@ -287,9 +287,9 @@
     void   (*demoQuit)(struct DMEngineData *);
 
     // Setup specifics
-    DMVector setupMenuPos, setupMenuDim, setupText1Pos;
+    DMVector setupMenuPos, setupMenuDim, setupText1Pos, setupText2Pos;
     BOOL setupMenuCenter, setupTextCondensed;
-    char setupTextFullscreen[64], setupTextWindowed[64], setupTextPrefix[64];
+    char setupTextFullscreen[64], setupTextWindowed[64], setupTextPrefix[64], setupTextEnterToStart[64];
 } DMEngineData;
 
 
--- a/src/dmsimple.c	Tue Oct 21 10:42:08 2014 +0300
+++ b/src/dmsimple.c	Tue Oct 21 16:29:18 2014 +0300
@@ -216,7 +216,7 @@
 {
     DMResource *file = NULL;
     int res;
-    char buf[128];
+    char buf[256];
 
     if ((res = dmf_open(engine.resources, filename, &file)) != DMERR_OK)
         return res;
@@ -235,6 +235,7 @@
         if (buf[pos] == 0 || buf[pos] == '#')
             continue;
 
+        // XXX TODO FIXME: Needs better parsing, with size checks etc.
         char *str = buf+pos;
         if (sscanf(str, "menuPos %f %f",
             &engine.setupMenuPos.x, &engine.setupMenuPos.y) != 2 &&
@@ -242,11 +243,14 @@
             &engine.setupMenuDim.x, &engine.setupMenuDim.y) != 2 &&
             sscanf(str, "text1Pos %f %f",
             &engine.setupText1Pos.x, &engine.setupText1Pos.y) != 2 &&
+            sscanf(str, "text2Pos %f %f",
+            &engine.setupText2Pos.x, &engine.setupText2Pos.y) != 2 &&
             sscanf(str, "menuCenter %d", &engine.setupMenuCenter) != 1 &&
             sscanf(str, "textCondensed %d", &engine.setupTextCondensed) != 1 &&
             sscanf(str, "textFullscreen %s", engine.setupTextFullscreen) != 1 &&
             sscanf(str, "textWindowed %s", engine.setupTextWindowed) != 1 &&
-            sscanf(str, "textPrefix %s", engine.setupTextPrefix) != 1
+            sscanf(str, "textPrefix %s", engine.setupTextPrefix) != 1 &&
+            sscanf(str, "textEnterToStart %s", engine.setupTextEnterToStart) != 1
             )
         {
             dmError("Syntax error in configuration:\n%s\n", buf);
@@ -319,11 +323,15 @@
     engine.setupMenuDim.y = 0.41666f;
 
     engine.setupText1Pos.x = 0.3f;
-    engine.setupText1Pos.y = 0.7f;
+    engine.setupText1Pos.y = 0.9f;
+
+    engine.setupText2Pos.x = 0.25f;
+    engine.setupText2Pos.y = 0.85f;
 
-    strcpy(engine.setupTextFullscreen , "FULLSCREEN");
-    strcpy(engine.setupTextWindowed   , " WINDOWED ");
-    strcpy(engine.setupTextPrefix     , "USE LEFT/RIGHT ARROW TO TOGGLE : ");
+    strcpy(engine.setupTextFullscreen   , "FULLSCREEN");
+    strcpy(engine.setupTextWindowed     , " WINDOWED ");
+    strcpy(engine.setupTextEnterToStart , "ENTER TO START THE DEMO");
+    strcpy(engine.setupTextPrefix       , "USE LEFT/RIGHT ARROW TO TOGGLE : ");
 
     if (engineParseSetupConfig(engineSetupDataName) != DMERR_OK)
         goto out;
@@ -504,6 +512,13 @@
                 menuStr);
         }
         
+        dmDrawBMTextConst(
+            engine.screen, menuFont,
+            engine.setupTextCondensed, DMD_TRANSPARENT,
+            vsX(engine.setupText2Pos),
+            vsY(engine.setupText2Pos),
+            engine.setupTextEnterToStart);
+
         snprintf(menuStr, sizeof(menuStr),
             "%s%s",
             engine.setupTextPrefix,