comparison src/dmsimple.c @ 2586:9807ae37ad69

Require stdbool.h, we require C11 now.
author Matti Hamalainen <ccr@tnsp.org>
date Thu, 08 Dec 2022 15:59:22 +0200
parents 69a5af2eb1ea
children
comparison
equal deleted inserted replaced
2585:ef6c826c5b7a 2586:9807ae37ad69
23 static const char *setupDataName = "SetupData.txt"; 23 static const char *setupDataName = "SetupData.txt";
24 static const char *setupFontName = "SetupFont.dmf"; 24 static const char *setupFontName = "SetupFont.dmf";
25 static DMVector 25 static DMVector
26 setupMenuPos, setupMenuDim, setupText1Pos, setupText2Pos, 26 setupMenuPos, setupMenuDim, setupText1Pos, setupText2Pos,
27 setupMenuBarOffs, setupMenuBarDimAdj; 27 setupMenuBarOffs, setupMenuBarDimAdj;
28 static BOOL setupMenuCenter, setupTextCondensed; 28 static bool setupMenuCenter, setupTextCondensed;
29 static char 29 static char
30 setupTextFullscreen[setupTextFieldLen], 30 setupTextFullscreen[setupTextFieldLen],
31 setupTextWindowed[setupTextFieldLen], 31 setupTextWindowed[setupTextFieldLen],
32 setupTextPrefix[setupTextFieldLen], 32 setupTextPrefix[setupTextFieldLen],
33 setupTextEnterToStart[setupTextFieldLen], 33 setupTextEnterToStart[setupTextFieldLen],
54 dmPrintBanner(stdout, dmProgName, "[options]"); 54 dmPrintBanner(stdout, dmProgName, "[options]");
55 dmArgsPrintHelp(stdout, optList, optListN, 0); 55 dmArgsPrintHelp(stdout, optList, optListN, 0);
56 } 56 }
57 57
58 58
59 static BOOL argHandleOpt(const int optN, char *optArg, char *currArg) 59 static bool argHandleOpt(const int optN, char *optArg, char *currArg)
60 { 60 {
61 (void) optArg; 61 (void) optArg;
62 (void) currArg; 62 (void) currArg;
63 63
64 switch (optN) 64 switch (optN)
72 dmVerbosity++; 72 dmVerbosity++;
73 break; 73 break;
74 74
75 default: 75 default:
76 dmErrorDBGMsg("Unknown option '%s'.\n", currArg); 76 dmErrorDBGMsg("Unknown option '%s'.\n", currArg);
77 return FALSE; 77 return false;
78 } 78 }
79 79
80 return TRUE; 80 return true;
81 } 81 }
82 82
83 83
84 static inline void dmFillRect(SDL_Surface *screen, 84 static inline void dmFillRect(SDL_Surface *screen,
85 const int x0, const int y0, 85 const int x0, const int y0,
139 139
140 140
141 static int engineLoadResources() 141 static int engineLoadResources()
142 { 142 {
143 int err, loaded = 0, total = 0; 143 int err, loaded = 0, total = 0;
144 BOOL first = TRUE; 144 bool first = true;
145 145
146 do 146 do
147 { 147 {
148 // Show a nice progress bar while loading 148 // Show a nice progress bar while loading
149 if ((err = engineShowProgress(loaded, total)) != DMERR_OK) 149 if ((err = engineShowProgress(loaded, total)) != DMERR_OK)
150 return err; 150 return err;
151 151
152 err = dmResourcesPreload(engine.resources, first, &loaded, &total); 152 err = dmResourcesPreload(engine.resources, first, &loaded, &total);
153 first = FALSE; 153 first = false;
154 } 154 }
155 while (err == DMERR_PROGRESS); 155 while (err == DMERR_PROGRESS);
156 156
157 return err; 157 return err;
158 } 158 }
159 159
160 160
161 static BOOL engineGenInitializeVideo(int width, int height, int depth, Uint32 flags) 161 static bool engineGenInitializeVideo(int width, int height, int depth, Uint32 flags)
162 { 162 {
163 dmPrint(1, "Initializing SDL video %d x %d x %dbpp, flags=0x%08x\n", 163 dmPrint(1, "Initializing SDL video %d x %d x %dbpp, flags=0x%08x\n",
164 width, height, depth, flags); 164 width, height, depth, flags);
165 165
166 SDL_SetWindowTitle(engine.window, dmProgDesc); 166 SDL_SetWindowTitle(engine.window, dmProgDesc);
167 167
168 return TRUE; 168 return true;
169 } 169 }
170 170
171 171
172 static BOOL engineInitializeVideo() 172 static bool engineInitializeVideo()
173 { 173 {
174 return engineGenInitializeVideo(engine.optVidWidth, engine.optVidHeight, 174 return engineGenInitializeVideo(engine.optVidWidth, engine.optVidHeight,
175 engine.optVidDepth, engine.optVFlags); 175 engine.optVidDepth, engine.optVFlags);
176 } 176 }
177 177
326 { 326 {
327 DMBitmapFont *menuFont = NULL; 327 DMBitmapFont *menuFont = NULL;
328 DMResource *file = NULL; 328 DMResource *file = NULL;
329 SDL_Surface *menuBgImage = NULL, *menuBarImage = NULL; 329 SDL_Surface *menuBgImage = NULL, *menuBarImage = NULL;
330 int result, menuState = -1; 330 int result, menuState = -1;
331 BOOL menuFullScreen = TRUE; 331 bool menuFullScreen = true;
332 332
333 // Compute a list of valid modes 333 // Compute a list of valid modes
334 if (!engineGenInitializeVideo(DM_VSETUP_WIDTH, DM_VSETUP_HEIGHT, engine.optVidDepth, engine.optVFlags)) 334 if (!engineGenInitializeVideo(DM_VSETUP_WIDTH, DM_VSETUP_HEIGHT, engine.optVidDepth, engine.optVFlags))
335 goto out; 335 goto out;
336 336
506 if (menuOffset + menuIndex < nengineModeList - 1) 506 if (menuOffset + menuIndex < nengineModeList - 1)
507 menuOffset++; 507 menuOffset++;
508 break; 508 break;
509 509
510 case SDLK_LEFT: 510 case SDLK_LEFT:
511 menuFullScreen = FALSE; 511 menuFullScreen = false;
512 break; 512 break;
513 513
514 case SDLK_RIGHT: 514 case SDLK_RIGHT:
515 menuFullScreen = TRUE; 515 menuFullScreen = true;
516 break; 516 break;
517 517
518 case SDLK_SPACE: 518 case SDLK_SPACE:
519 menuFullScreen = !menuFullScreen; 519 menuFullScreen = !menuFullScreen;
520 break; 520 break;
623 623
624 624
625 int main(int argc, char *argv[]) 625 int main(int argc, char *argv[])
626 { 626 {
627 int err; 627 int err;
628 BOOL initSDL = FALSE; 628 bool initSDL = false;
629 629
630 memset(&engine, 0, sizeof(engine)); 630 memset(&engine, 0, sizeof(engine));
631 631
632 // Pre-initialization 632 // Pre-initialization
633 if ((err = demoPreInit(&engine)) != DMERR_OK) 633 if ((err = demoPreInit(&engine)) != DMERR_OK)
681 dmError(DMERR_INIT_FAIL, 681 dmError(DMERR_INIT_FAIL,
682 "Could not initialize SDL: %s\n", 682 "Could not initialize SDL: %s\n",
683 SDL_GetError()); 683 SDL_GetError());
684 goto out; 684 goto out;
685 } 685 }
686 initSDL = TRUE; 686 initSDL = true;
687 687
688 // Set start time 688 // Set start time
689 engine.startTimeAudio = -1; 689 engine.startTimeAudio = -1;
690 engine.startTime = -1; 690 engine.startTime = -1;
691 691
856 { 856 {
857 case SDL_KEYDOWN: 857 case SDL_KEYDOWN:
858 switch (engine.event.key.keysym.sym) 858 switch (engine.event.key.keysym.sym)
859 { 859 {
860 case SDLK_ESCAPE: 860 case SDLK_ESCAPE:
861 engine.exitFlag = TRUE; 861 engine.exitFlag = true;
862 break; 862 break;
863 863
864 case SDLK_SPACE: 864 case SDLK_SPACE:
865 engine.pauseFlag = !engine.pauseFlag; 865 engine.pauseFlag = !engine.pauseFlag;
866 break; 866 break;
888 888
889 case SDL_VIDEOEXPOSE: 889 case SDL_VIDEOEXPOSE:
890 break; 890 break;
891 891
892 case SDL_QUIT: 892 case SDL_QUIT:
893 engine.exitFlag = TRUE; 893 engine.exitFlag = true;
894 break; 894 break;
895 } 895 }
896 896
897 // Draw frame 897 // Draw frame
898 engine.frameTime = SDL_GetTicks(); 898 engine.frameTime = SDL_GetTicks();
952 #endif 952 #endif
953 953
954 if (engine.audioSimThread != NULL) 954 if (engine.audioSimThread != NULL)
955 { 955 {
956 dmMutexLock(engine.audioStreamMutex); 956 dmMutexLock(engine.audioStreamMutex);
957 engine.audioSimDone = TRUE; 957 engine.audioSimDone = true;
958 dmMutexUnlock(engine.audioStreamMutex); 958 dmMutexUnlock(engine.audioStreamMutex);
959 SDL_WaitThread(engine.audioSimThread, NULL); 959 SDL_WaitThread(engine.audioSimThread, NULL);
960 } 960 }
961 961
962 SDL_UnlockAudio(); 962 SDL_UnlockAudio();