--- /dev/null
+/*\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