]> 4ch.mooo.com Git - 16.git/blob - src/lib/hp/demokd.c
going to start wolf3d core core (loop with input only) work soon. I was mostly brains...
[16.git] / src / lib / hp / demokd.c
1 /*\r
2 =====================\r
3 =\r
4 = DemoLoop\r
5 =\r
6 =====================\r
7 */\r
8 \r
9 void DemoLoop (void)\r
10 {\r
11         char            *s;\r
12         word            move;\r
13         longword        lasttime;\r
14         char *FileName1;\r
15         struct Shape FileShape1;\r
16 #if CREDITS\r
17         char *FileName2;\r
18         struct Shape FileShape2;\r
19 #endif\r
20         struct ffblk ffblk;\r
21         WindowRec       mywin;\r
22         int bufsave     = bufferofs;\r
23         int dissave     = displayofs;\r
24 \r
25 \r
26 #if FRILLS\r
27 //\r
28 // check for launch from ted\r
29 //\r
30         if (tedlevel)\r
31         {\r
32                 NewGame();\r
33                 gamestate.mapon = tedlevelnum;\r
34                 GameLoop();\r
35                 TEDDeath();\r
36         }\r
37 #endif\r
38 \r
39 //\r
40 // demo loop\r
41 //\r
42         US_SetLoadSaveHooks(LoadGame,SaveGame,ResetGame);\r
43         restartgame = gd_Continue;\r
44 \r
45         if (findfirst("KDREAMS.CMP", &ffblk, 0) == -1)\r
46                 Quit("Couldn't find KDREAMS.CMP");\r
47 \r
48         while (true)\r
49         {\r
50 \r
51                 loadedgame = false;\r
52 \r
53                 FileName1 = "TITLESCR.LBM";\r
54                 if (LoadLIBShape("KDREAMS.CMP", FileName1, &FileShape1))\r
55                         Quit("Can't load TITLE SCREEN");\r
56 #if CREDITS\r
57                 FileName2 = "CREDITS.LBM";\r
58                 if (LoadLIBShape("KDREAMS.CMP", FileName2, &FileShape2))\r
59                         Quit("Can't load CREDITS SCREEN");\r
60 #endif\r
61 \r
62                 while (!restartgame && !loadedgame)\r
63                 {\r
64 \r
65                         VW_InitDoubleBuffer();\r
66                         IN_ClearKeysDown();\r
67 \r
68                         while (true)\r
69                         {\r
70 \r
71                                 VW_SetScreen(0, 0);\r
72                                 MoveGfxDst(0, 200);\r
73                                 UnpackEGAShapeToScreen(&FileShape1, 0, 0);\r
74                                 VW_ScreenToScreen (64*200,0,40,200);\r
75 \r
76 #if CREDITS\r
77                                 if (IN_UserInput(TickBase * 8, false))\r
78                                         break;\r
79 #else\r
80                                 if (IN_UserInput(TickBase * 4, false))\r
81                                         break;\r
82 #endif\r
83 \r
84 #if CREDITS\r
85                                 MoveGfxDst(0, 200);\r
86                                 UnpackEGAShapeToScreen(&FileShape2, 0, 0);\r
87                                 VW_ScreenToScreen (64*200,0,40,200);\r
88 \r
89                                 if (IN_UserInput(TickBase * 7, false))\r
90                                         break;\r
91 #else\r
92                                 MoveGfxDst(0, 200);\r
93                                 UnpackEGAShapeToScreen(&FileShape1, 0, 0);\r
94                                 VW_ScreenToScreen (64*200,0,40,200);\r
95 \r
96                                 if (IN_UserInput(TickBase * 3, false))\r
97                                         break;\r
98 #endif\r
99 \r
100                                 displayofs = 0;\r
101                                 VWB_Bar(0,0,320,200,FIRSTCOLOR);\r
102                                 US_DisplayHighScores(-1);\r
103 \r
104                                 if (IN_UserInput(TickBase * 6, false))\r
105                                         break;\r
106 \r
107                         }\r
108 \r
109                         bufferofs = bufsave;\r
110                         displayofs = dissave;\r
111 \r
112                         VW_FixRefreshBuffer();\r
113                         US_ControlPanel ();\r
114                 }\r
115 \r
116                 if (!loadedgame)\r
117                         NewGame();\r
118 \r
119                 FreeShape(&FileShape1);\r
120 #if CREDITS\r
121                 FreeShape(&FileShape2);\r
122 #endif\r
123                 GameLoop();\r
124         }\r
125 }\r