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