OSDN Git Service

going to start wolf3d core core (loop with input only) work soon. I was mostly brains...
[proj16/16.git] / src / core / wl_menu.h
1 //\r
2 // WL_MENU.H\r
3 //\r
4 #ifdef SPEAR\r
5 \r
6 #define BORDCOLOR       0x99\r
7 #define BORD2COLOR      0x93\r
8 #define DEACTIVE        0x9b\r
9 #define BKGDCOLOR       0x9d\r
10 //#define STRIPE                0x9c\r
11 \r
12 #define MenuFadeOut()   VL_FadeOut(0,255,0,0,51,10)\r
13 \r
14 #else\r
15 \r
16 #define BORDCOLOR       0x29\r
17 #define BORD2COLOR      0x23\r
18 #define DEACTIVE        0x2b\r
19 #define BKGDCOLOR       0x2d\r
20 #define STRIPE          0x2c\r
21 \r
22 #define MenuFadeOut()   VL_FadeOut(0,255,43,0,0,10)\r
23 \r
24 #endif\r
25 \r
26 #define READCOLOR       0x4a\r
27 #define READHCOLOR      0x47\r
28 #define VIEWCOLOR       0x7f\r
29 #define TEXTCOLOR       0x17\r
30 #define HIGHLIGHT       0x13\r
31 #define MenuFadeIn()    VL_FadeIn(0,255,&gamepal,10)\r
32 \r
33 \r
34 #define MENUSONG        WONDERIN_MUS\r
35 \r
36 #ifndef SPEAR\r
37 #define INTROSONG       NAZI_NOR_MUS\r
38 #else\r
39 #define INTROSONG       XTOWER2_MUS\r
40 #endif\r
41 \r
42 #define SENSITIVE       60\r
43 #define CENTER          SENSITIVE*2\r
44 \r
45 #define MENU_X  76\r
46 #define MENU_Y  55\r
47 #define MENU_W  178\r
48 #ifndef SPEAR\r
49 #define MENU_H  13*10+6\r
50 #else\r
51 #define MENU_H  13*9+6\r
52 #endif\r
53 \r
54 #define SM_X    48\r
55 #define SM_W    250\r
56 \r
57 #define SM_Y1   20\r
58 #define SM_H1   4*13-7\r
59 #define SM_Y2   SM_Y1+5*13\r
60 #define SM_H2   4*13-7\r
61 #define SM_Y3   SM_Y2+5*13\r
62 #define SM_H3   3*13-7\r
63 \r
64 #define CTL_X   24\r
65 #define CTL_Y   70\r
66 #define CTL_W   284\r
67 #define CTL_H   13*7-7\r
68 \r
69 #define LSM_X   85\r
70 #define LSM_Y   55\r
71 #define LSM_W   175\r
72 #define LSM_H   10*13+10\r
73 \r
74 #define NM_X    50\r
75 #define NM_Y    100\r
76 #define NM_W    225\r
77 #define NM_H    13*4+15\r
78 \r
79 #define NE_X    10\r
80 #define NE_Y    23\r
81 #define NE_W    320-NE_X*2\r
82 #define NE_H    200-NE_Y*2\r
83 \r
84 #define CST_X           20\r
85 #define CST_Y           48\r
86 #define CST_START       60\r
87 #define CST_SPC 60\r
88 \r
89 \r
90 //\r
91 // TYPEDEFS\r
92 //\r
93 typedef struct {\r
94                 int x,y,amount,curpos,indent;\r
95                 } CP_iteminfo;\r
96 \r
97 typedef struct {\r
98                 int active;\r
99                 char string[36];\r
100                 void (* routine)(int temp1);\r
101                 } CP_itemtype;\r
102 \r
103 typedef struct {\r
104                 int allowed[4];\r
105                 } CustomCtrls;\r
106 \r
107 extern CP_itemtype far MainMenu[],far NewEMenu[];\r
108 extern CP_iteminfo MainItems;\r
109 \r
110 //\r
111 // FUNCTION PROTOTYPES\r
112 //\r
113 void SetupControlPanel(void);\r
114 void CleanupControlPanel(void);\r
115 \r
116 void DrawMenu(CP_iteminfo *item_i,CP_itemtype far *items);\r
117 int  HandleMenu(CP_iteminfo *item_i,\r
118                 CP_itemtype far *items,\r
119                 void (*routine)(int w));\r
120 void ClearMScreen(void);\r
121 void DrawWindow(int x,int y,int w,int h,int wcolor);\r
122 void DrawOutline(int x,int y,int w,int h,int color1,int color2);\r
123 void WaitKeyUp(void);\r
124 void ReadAnyControl(ControlInfo *ci);\r
125 void TicDelay(int count);\r
126 void CacheLump(int lumpstart,int lumpend);\r
127 void UnCacheLump(int lumpstart,int lumpend);\r
128 void StartCPMusic(int song);\r
129 int  Confirm(char far *string);\r
130 void Message(char far *string);\r
131 void CheckPause(void);\r
132 void ShootSnd(void);\r
133 void CheckSecretMissions(void);\r
134 void BossKey(void);\r
135 \r
136 void DrawGun(CP_iteminfo *item_i,CP_itemtype far *items,int x,int *y,int which,int basey,void (*routine)(int w));\r
137 void DrawHalfStep(int x,int y);\r
138 void EraseGun(CP_iteminfo *item_i,CP_itemtype far *items,int x,int y,int which);\r
139 void SetTextColor(CP_itemtype far *items,int hlight);\r
140 void DrawMenuGun(CP_iteminfo *iteminfo);\r
141 void DrawStripes(int y);\r
142 \r
143 void DefineMouseBtns(void);\r
144 void DefineJoyBtns(void);\r
145 void DefineKeyBtns(void);\r
146 void DefineKeyMove(void);\r
147 void EnterCtrlData(int index,CustomCtrls *cust,void (*DrawRtn)(int),void (*PrintRtn)(int),int type);\r
148 \r
149 void DrawMainMenu(void);\r
150 void DrawSoundMenu(void);\r
151 void DrawLoadSaveScreen(int loadsave);\r
152 void DrawNewEpisode(void);\r
153 void DrawNewGame(void);\r
154 void DrawChangeView(int view);\r
155 void DrawMouseSens(void);\r
156 void DrawCtlScreen(void);\r
157 void DrawCustomScreen(void);\r
158 void DrawLSAction(int which);\r
159 void DrawCustMouse(int hilight);\r
160 void DrawCustJoy(int hilight);\r
161 void DrawCustKeybd(int hilight);\r
162 void DrawCustKeys(int hilight);\r
163 void PrintCustMouse(int i);\r
164 void PrintCustJoy(int i);\r
165 void PrintCustKeybd(int i);\r
166 void PrintCustKeys(int i);\r
167 \r
168 void PrintLSEntry(int w,int color);\r
169 void TrackWhichGame(int w);\r
170 void DrawNewGameDiff(int w);\r
171 void FixupCustom(int w);\r
172 \r
173 void CP_NewGame(void);\r
174 void CP_Sound(void);\r
175 int  CP_LoadGame(int quick);\r
176 int  CP_SaveGame(int quick);\r
177 void CP_Control(void);\r
178 void CP_ChangeView(void);\r
179 void CP_ExitOptions(void);\r
180 void CP_Quit(void);\r
181 void CP_ViewScores(void);\r
182 int  CP_EndGame(void);\r
183 int  CP_CheckQuick(unsigned scancode);\r
184 void CustomControls(void);\r
185 void MouseSensitivity(void);\r
186 \r
187 void CheckForEpisodes(void);\r
188 \r
189 //\r
190 // VARIABLES\r
191 //\r
192 extern int SaveGamesAvail[10],StartGame,SoundStatus;\r
193 extern char SaveGameNames[10][32],SaveName[13];\r
194 \r
195 enum {MOUSE,JOYSTICK,KEYBOARDBTNS,KEYBOARDMOVE};        // FOR INPUT TYPES\r
196 \r
197 #ifndef USO_FIX1\r
198 extern\r
199 #endif\r
200 enum\r
201 {\r
202         newgame,\r
203         soundmenu,\r
204         control,\r
205         loadgame,\r
206         savegame,\r
207         changeview,\r
208 \r
209 #ifndef GOODTIMES\r
210 #ifndef SPEAR\r
211         readthis,\r
212 #endif\r
213 #endif\r
214 \r
215         viewscores,\r
216         backtodemo,\r
217         quit\r
218 } menuitems;\r
219 \r
220 //\r
221 // WL_INTER\r
222 //\r
223 typedef struct {\r
224                 int kill,secret,treasure;\r
225                 long time;\r
226                 } LRstruct;\r
227 \r
228 extern LRstruct LevelRatios[];\r
229 \r
230 void Write (int x,int y,char *string);\r
231 void NonShareware(void);\r
232 int GetYorN(int x,int y,int pic);\r
233 \r
234 \r