Mercurial > hg > dmlib
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,