--- /dev/null
+/*\r
+=====================\r
+=\r
+= DemoLoop\r
+=\r
+=====================\r
+*/\r
+\r
+void\r
+DemoLoop (void)\r
+{\r
+ char *s;\r
+ word move;\r
+ longword lasttime;\r
+ char *FileName1;\r
+ struct Shape FileShape1;\r
+#if CREDITS\r
+ char *FileName2;\r
+ struct Shape FileShape2;\r
+#endif\r
+ struct ffblk ffblk;\r
+ WindowRec mywin;\r
+ int bufsave = bufferofs;\r
+ int dissave = displayofs;\r
+\r
+\r
+#if FRILLS\r
+//\r
+// check for launch from ted\r
+//\r
+ if (tedlevel)\r
+ {\r
+ NewGame();\r
+ gamestate.mapon = tedlevelnum;\r
+ GameLoop();\r
+ TEDDeath();\r
+ }\r
+#endif\r
+\r
+//\r
+// demo loop\r
+//\r
+ US_SetLoadSaveHooks(LoadGame,SaveGame,ResetGame);\r
+ restartgame = gd_Continue;\r
+\r
+ if (findfirst("KDREAMS.CMP", &ffblk, 0) == -1)\r
+ Quit("Couldn't find KDREAMS.CMP");\r
+\r
+ while (true)\r
+ {\r
+\r
+ loadedgame = false;\r
+\r
+ FileName1 = "TITLESCR.LBM";\r
+ if (LoadLIBShape("KDREAMS.CMP", FileName1, &FileShape1))\r
+ Quit("Can't load TITLE SCREEN");\r
+#if CREDITS\r
+ FileName2 = "CREDITS.LBM";\r
+ if (LoadLIBShape("KDREAMS.CMP", FileName2, &FileShape2))\r
+ Quit("Can't load CREDITS SCREEN");\r
+#endif\r
+\r
+ while (!restartgame && !loadedgame)\r
+ {\r
+\r
+ VW_InitDoubleBuffer();\r
+ IN_ClearKeysDown();\r
+\r
+ while (true)\r
+ {\r
+\r
+ VW_SetScreen(0, 0);\r
+ MoveGfxDst(0, 200);\r
+ UnpackEGAShapeToScreen(&FileShape1, 0, 0);\r
+ VW_ScreenToScreen (64*200,0,40,200);\r
+\r
+#if CREDITS\r
+ if (IN_UserInput(TickBase * 8, false))\r
+ break;\r
+#else\r
+ if (IN_UserInput(TickBase * 4, false))\r
+ break;\r
+#endif\r
+\r
+#if CREDITS\r
+ MoveGfxDst(0, 200);\r
+ UnpackEGAShapeToScreen(&FileShape2, 0, 0);\r
+ VW_ScreenToScreen (64*200,0,40,200);\r
+\r
+ if (IN_UserInput(TickBase * 7, false))\r
+ break;\r
+#else\r
+ MoveGfxDst(0, 200);\r
+ UnpackEGAShapeToScreen(&FileShape1, 0, 0);\r
+ VW_ScreenToScreen (64*200,0,40,200);\r
+\r
+ if (IN_UserInput(TickBase * 3, false))\r
+ break;\r
+#endif\r
+\r
+ displayofs = 0;\r
+ VWB_Bar(0,0,320,200,FIRSTCOLOR);\r
+ US_DisplayHighScores(-1);\r
+\r
+ if (IN_UserInput(TickBase * 6, false))\r
+ break;\r
+\r
+ }\r
+\r
+ bufferofs = bufsave;\r
+ displayofs = dissave;\r
+\r
+ VW_FixRefreshBuffer();\r
+ US_ControlPanel ();\r
+ }\r
+\r
+ if (!loadedgame)\r
+ NewGame();\r
+\r
+ FreeShape(&FileShape1);\r
+#if CREDITS\r
+ FreeShape(&FileShape2);\r
+#endif\r
+ GameLoop();\r
+ }\r
+}\r