--- /dev/null
+/*\r
+=====================\r
+=\r
+= DemoLoop\r
+=\r
+=====================\r
+*/\r
+\r
+static char *ParmStrings[] = {"baby","easy","normal","hard",""};\r
+\r
+void DemoLoop (void)\r
+{\r
+ static int LastDemo;\r
+ int i,level;\r
+ long nsize;\r
+ memptr nullblock;\r
+\r
+//\r
+// check for launch from ted\r
+//\r
+ if (tedlevel)\r
+ {\r
+ NoWait = true;\r
+ NewGame(1,0);\r
+\r
+ for (i = 1;i < _argc;i++)\r
+ {\r
+ if ( (level = US_CheckParm(_argv[i],ParmStrings)) != -1)\r
+ {\r
+ gamestate.difficulty=level;\r
+ break;\r
+ }\r
+ }\r
+\r
+#ifndef SPEAR\r
+ gamestate.episode = tedlevelnum/10;\r
+ gamestate.mapon = tedlevelnum%10;\r
+#else\r
+ gamestate.episode = 0;\r
+ gamestate.mapon = tedlevelnum;\r
+#endif\r
+ GameLoop();\r
+ Quit (NULL);\r
+ }\r
+\r
+\r
+//\r
+// main game cycle\r
+//\r
+\r
+\r
+// nsize = (long)40*1024;\r
+// MM_GetPtr(&nullblock,nsize);\r
+\r
+#ifndef DEMOTEST\r
+\r
+ #ifndef UPLOAD\r
+\r
+ #ifndef GOODTIMES\r
+ #ifndef SPEAR\r
+ #ifndef JAPAN\r
+ if (!NoWait)\r
+ NonShareware();\r
+ #endif\r
+ #else\r
+\r
+ #ifndef GOODTIMES\r
+ #ifndef SPEARDEMO\r
+ CopyProtection();\r
+ #endif\r
+ #endif\r
+\r
+ #endif\r
+ #endif\r
+ #endif\r
+\r
+ StartCPMusic(INTROSONG);\r
+\r
+#ifndef JAPAN\r
+ if (!NoWait)\r
+ PG13 ();\r
+#endif\r
+\r
+#endif\r
+\r
+ while (1)\r
+ {\r
+ while (!NoWait)\r
+ {\r
+//\r
+// title page\r
+//\r
+ MM_SortMem ();\r
+#ifndef DEMOTEST\r
+\r
+#ifdef SPEAR\r
+ CA_CacheGrChunk (TITLEPALETTE);\r
+\r
+ CA_CacheGrChunk (TITLE1PIC);\r
+ VWB_DrawPic (0,0,TITLE1PIC);\r
+ UNCACHEGRCHUNK (TITLE1PIC);\r
+\r
+ CA_CacheGrChunk (TITLE2PIC);\r
+ VWB_DrawPic (0,80,TITLE2PIC);\r
+ UNCACHEGRCHUNK (TITLE2PIC);\r
+ VW_UpdateScreen ();\r
+ VL_FadeIn(0,255,grsegs[TITLEPALETTE],30);\r
+\r
+ UNCACHEGRCHUNK (TITLEPALETTE);\r
+#else\r
+ CA_CacheScreen (TITLEPIC);\r
+ VW_UpdateScreen ();\r
+ VW_FadeIn();\r
+#endif\r
+ if (IN_UserInput(TickBase*15))\r
+ break;\r
+ VW_FadeOut();\r
+//\r
+// credits page\r
+//\r
+ CA_CacheScreen (CREDITSPIC);\r
+ VW_UpdateScreen();\r
+ VW_FadeIn ();\r
+ if (IN_UserInput(TickBase*10))\r
+ break;\r
+ VW_FadeOut ();\r
+//\r
+// high scores\r
+//\r
+ DrawHighScores ();\r
+ VW_UpdateScreen ();\r
+ VW_FadeIn ();\r
+\r
+ if (IN_UserInput(TickBase*10))\r
+ break;\r
+#endif\r
+//\r
+// demo\r
+//\r
+\r
+ #ifndef SPEARDEMO\r
+ PlayDemo (LastDemo++%4);\r
+ #else\r
+ PlayDemo (0);\r
+ #endif\r
+\r
+ if (playstate == ex_abort)\r
+ break;\r
+ StartCPMusic(INTROSONG);\r
+ }\r
+\r
+ VW_FadeOut ();\r
+\r
+#ifndef SPEAR\r
+ if (Keyboard[sc_Tab] && MS_CheckParm("goobers"))\r
+#else\r
+ if (Keyboard[sc_Tab] && MS_CheckParm("debugmode"))\r
+#endif\r
+ RecordDemo ();\r
+ else\r
+ US_ControlPanel (0);\r
+\r
+ if (startgame || loadedgame)\r
+ {\r
+ GameLoop ();\r
+ VW_FadeOut();\r
+ StartCPMusic(INTROSONG);\r
+ }\r
+ }\r
+}\r