]> 4ch.mooo.com Git - 16.git/blobdiff - src/lib/hb/democ3.c
[16_ca needs huge amounts of work and I should remember what needs to be done soon...
[16.git] / src / lib / hb / democ3.c
diff --git a/src/lib/hb/democ3.c b/src/lib/hb/democ3.c
new file mode 100755 (executable)
index 0000000..43f581c
--- /dev/null
@@ -0,0 +1,82 @@
+/*\r
+=====================\r
+=\r
+= DemoLoop\r
+=\r
+=====================\r
+*/\r
+\r
+static char *ParmStrings[] = {"easy","normal","hard",""};\r
+\r
+void   DemoLoop (void)\r
+{\r
+       int     i,level;\r
+\r
+//\r
+// check for launch from ted\r
+//\r
+       if (tedlevel)\r
+       {\r
+               NewGame();\r
+               gamestate.mapon = tedlevelnum;\r
+               restartgame = gd_Normal;\r
+               for (i = 1;i < _argc;i++)\r
+               {\r
+                       if ( (level = US_CheckParm(_argv[i],ParmStrings)) == -1)\r
+                               continue;\r
+\r
+                       restartgame = gd_Easy+level;\r
+                       break;\r
+               }\r
+               GameLoop();\r
+               TEDDeath();\r
+       }\r
+\r
+\r
+//\r
+// main game cycle\r
+//\r
+       displayofs = bufferofs = 0;\r
+       VW_Bar (0,0,320,200,0);\r
+\r
+       while (1)\r
+       {\r
+               CA_CacheGrChunk (TITLEPIC);\r
+               bufferofs = SCREEN2START;\r
+               displayofs = SCREEN1START;\r
+               VWB_DrawPic (0,0,TITLEPIC);\r
+               MM_SetPurge (&grsegs[TITLEPIC],3);\r
+               UNMARKGRCHUNK(TITLEPIC);\r
+               FizzleFade (bufferofs,displayofs,320,200,true);\r
+\r
+               if (!IN_UserInput(TickBase*3,false))\r
+               {\r
+                       CA_CacheGrChunk (CREDITSPIC);\r
+                       VWB_DrawPic (0,0,CREDITSPIC);\r
+                       MM_SetPurge (&grsegs[CREDITSPIC],3);\r
+                       UNMARKGRCHUNK(CREDITSPIC);\r
+                       FizzleFade (bufferofs,displayofs,320,200,true);\r
+\r
+               }\r
+\r
+               if (!IN_UserInput(TickBase*3,false))\r
+               {\r
+highscores:\r
+                       DrawHighScores ();\r
+                       FizzleFade (bufferofs,displayofs,320,200,true);\r
+                       IN_UserInput(TickBase*3,false);\r
+               }\r
+\r
+               if (IN_IsUserInput())\r
+               {\r
+                       US_ControlPanel ();\r
+\r
+                       if (restartgame || loadedgame)\r
+                       {\r
+                               GameLoop ();\r
+                               goto highscores;\r
+                       }\r
+               }\r
+\r
+       }\r
+}\r