]> 4ch.mooo.com Git - 16.git/blobdiff - src/lib/hb/demokd.c
[16_ca needs huge amounts of work and I should remember what needs to be done soon...
[16.git] / src / lib / hb / demokd.c
diff --git a/src/lib/hb/demokd.c b/src/lib/hb/demokd.c
new file mode 100755 (executable)
index 0000000..1b19e36
--- /dev/null
@@ -0,0 +1,126 @@
+/*\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