1 /****************************************************************************
2 **
3 ** Menu.h   Stefan Disch, Tobias Nopper, Martina Welte 2001
4 **
5 ****************************************************************************/
6 
7 #include "sprache.h"
8 
9 #define AUS 0
10 #define STARTBILDSCHIRM 1
11 #define HAUPTMENU 2
12 #define TRAINING 3
13 #define ZWEISPIELER 4
14 #define NETZWERKHAUPT 5
15 #define NETZWERKNEU 6
16 #define NETZWERKBEITRETEN 7
17 #define BEENDEN 8
18 #define AUSSPIEL 9
19 #define EINSTELLUNGEN 10
20 #define EINSTELLUNGENSTEUERUNG 11
21 #define EINSTELLUNGENGRAFIK 12
22 #define EINSTELLUNGENGRAFIKHINWEIS 13
23 #define EINSTELLUNGENAUDIO 14
24 #define SPRACHAUSWAHL 15
25 #define SPIEL 20
26 
27 #define HILFE 30
28 #define HILFEREGELN1 31
29 #define HILFEREGELN2 32
30 #define HILFEREGELN3 33
31 #define HILFEREGELN4 34
32 #define HILFEREGELN5 35
33 #define HILFEREGELN6 36
34 #define HILFEREGELN7 37
35 #define HILFEREGELN8 38
36 #define HILFEEINFUEHRUNG1 41
37 #define HILFEEINFUEHRUNG2 42
38 #define HILFEEINFUEHRUNG3 43
39 #define HILFEEINFUEHRUNG4 44
40 #define HILFEEINFUEHRUNG5 45
41 #define HILFEEINFUEHRUNG6 46
42 #define HILFEEINFUEHRUNG7 47
43 #define HILFEEINFUEHRUNG8 48
44 #define HILFETASTENBELEGUNGEN 49
45 
46 #define SPIELENDE 99
47 
48 #define S_SB_LOGO 100
49 #define S_SB_NAMEN 101
50 #define S_LOGO 102
51 
52 #define S_HM_TRAINING 110
53 #define S_HM_ZWEISPIELER 111
54 #define S_HM_NETZWERKSPIEL 112
55 #define S_HM_EINSTELLUNGEN 113
56 #define S_HM_BEENDEN 114
57 #define S_HM_COMPUTERGEGNER 115
58 #define S_HM_HILFE 116
59 
60 #define S_TR_ACHTBALL 120
61 #define S_TR_NEUNBALL 121
62 #define S_TR_VIERZEHNPLUSEINS 122
63 #define S_TR_ZURUECK 123
64 
65 #define S_ZW_ACHTBALL 130
66 #define S_ZW_NEUNBALL 131
67 #define S_ZW_VIERZEHNPLUSEINS 132
68 #define S_ZW_ZURUECK 133
69 
70 #define S_NE_BEGINNEN 140
71 #define S_NE_TEILNEHMEN 141
72 #define S_NE_ZURUECK 142
73 
74 #define S_NB_ACHTBALL 150
75 #define S_NB_NEUNBALL 151
76 #define S_NB_VIERZEHNPLUSEINS 152
77 #define S_NB_ZURUECK  153
78 
79 #define S_NT_IPADRESSE 160
80 #define S_NT_VERBINDEN 161
81 #define S_NT_ZURUECK   162
82 
83 #define S_EI_BALLTEXTUREN 170
84 #define S_EI_TISCHTEXTUREN 180
85 #define S_EI_ANZEIGETEXTUREN 190
86 #define S_EI_TEXTURINTERPOLATION 195
87 #define S_EI_BALLGEOMETRIE   201
88 #define S_EI_MOUSESPEED      202
89 #define S_EI_XINVERT   203
90 #define S_EI_YINVERT   204
91 #define S_EI_SPRACHE   205
92 #define S_EI_ZURUECK 220
93 #define S_EI_ZURUECK_AS 221
94 #define S_EI_UEBERNEHMEN 222
95 #define S_EI_STEUERUNG 223
96 #define S_EI_STEUERUNGZURUECK 224
97 #define S_EI_STEUERUNGUEBERNEHMEN 225
98 #define S_EI_AUDIO 226
99 #define S_EI_AUDIOZURUECK 227
100 #define S_EI_AUDIOUEBERNEHMEN 228
101 #define S_EI_GRAFIK 800
102 #define S_EI_GRAFIKZURUECK 801
103 #define S_EI_GRAFIKUEBERNEHMEN 802
104 #define S_EI_AUFLOESUNG 803
105 #define S_EI_FARBTIEFE 804
106 #define S_EI_REFLEKTIONEN 805
107 #define S_EI_QUALITAET 806
108 #define S_EI_SCHATTEN 807
109 #define S_EI_AMBIENTESLICHT 808
110 #define S_EI_TISCHLAMPEN 809
111 #define S_EI_GRUENELAMPE 810
112 #define S_EI_FPS 811
113 
114 #define S_AS_WEITERSPIELEN 230
115 #define S_AS_HAUPTMENU 231
116 #define S_AS_EINSTELLUNGEN 232
117 #define S_AS_BEENDEN 233
118 #define S_AS_HILFE 234
119 
120 #define S_BE_JABEENDEN       850
121 #define S_BE_ZURUECK         851
122 #define S_BE_ZURUECK_AS       852
123 
124 #define S_SP_LOGO    500
125 #define S_SP_BALL    510
126 #define S_SP_WEITERSPIELEN 530
127 #define S_SP_ACHTEINSETZEN 531
128 #define S_SP_NEUAUFBAUEN 532
129 #define S_SP_HAUPTMENU 540
130 #define S_SP_NEUESSPIEL 541
131 
132 #define S_SP_NEUEACHTBALLAUFSTELLUNG 550
133 #define S_SP_NEUENEUNBALLAUFSTELLUNG 551
134 
135 #define S_SPIELER1HERHOEREN 601
136 #define S_SPIELER2HERHOEREN 602
137 #define S_NETZWERKSPIELERHERHOEREN 603
138 
139 #define S_H_TASTENBELEGUNGEN 300
140 #define S_H_BILLARDREGELN 301
141 #define S_H_TUTORIAL 302
142 #define S_H_ZUHILFE 303
143 #define S_H_E1_N 304
144 #define S_H_E2_N 305
145 #define S_H_E2_L 306
146 #define S_H_E3_N 307
147 #define S_H_E3_L 308
148 #define S_H_E4_N 309
149 #define S_H_E4_L 310
150 #define S_H_E5_N 311
151 #define S_H_E5_L 312
152 #define S_H_E6_N 313
153 #define S_H_E6_L 314
154 #define S_H_R1_N 315
155 #define S_H_R2_N 316
156 #define S_H_R2_L 317
157 #define S_H_R3_N 318
158 #define S_H_R3_L 319
159 #define S_H_R4_N 320
160 #define S_H_R4_L 321
161 #define S_H_R5_N 322
162 #define S_H_R5_L 323
163 #define S_H_R6_N 324
164 #define S_H_R6_L 325
165 
166 
167 #define ANIMATIONSDAUER 100
168 
169 class Menu {
170  public:
171   Menu();
172   void Initialisiere(GLint);
173   void male();
174   void Update(GLint);
175 
176   GLint Maustaste(int,int,int,int);
177   GLint KeyboardTaste (unsigned char,int,int);
178   void NeuerMenuZustand();
179   void SignalAusfuehrung(GLint);
180   void SetzeMenuZustand(GLint);
181   void SetzeFPS(GLint);
182   void ladeSprache(GLint);
183  private:
184   void StarteAnimation();
185   GLint Animationszeit;
186   GLint InAnimation;
187 
188   GLint MenuZustand;
189   GLint AusSpiel;
190 
191   Schild menuhintergrund;
192 
193   Schild logo;
194   Schild namen;
195 
196   Schild halbe;
197   Schild volle;
198 
199   Schild ball[16];
200 
201   Schild GameStar;
202 
203   Schild* SchildArray[300];
204   Textfeld* TextfeldArray[1000];
205 
206   Textfeld dummyTextfeld;
207 
208   GLint TDL;
209   //GLint TTA;
210 
211   GLint SchildAnzahl;
212   GLint TextfeldAnzahl;
213 
214   GLint E_Texturgroesse;
215   GLint E_AnzeigeTexturgroesse;
216   GLint E_TischTexturgroesse;
217   GLint E_KugelAufloesung;
218   GLfloat E_MouseSpeed;
219   GLint E_InvertX;
220   GLint E_InvertY;
221   GLint MenuGesperrt;
222   GLint E_Reflektionen;
223   GLint E_Farbtiefe;
224   GLint E_BildschirmAufloesung;
225   GLint Qualitaet;
226   GLint E_Schatten;
227 
228   GLint E_AmbientesLicht;
229   GLint E_TischLampen;
230   GLint E_GrueneLampe;
231   GLint E_ZeigeFPS;
232 
233   GLint E_TexMMM;
234 
235 };
236 
237 
238 extern GLint StateMaschin;
239 extern GLint Spiel;
240 extern class Kamera Kamera;
241 
242 extern GLint Texturgroesse,
243   AnzeigeTexturgroesse,
244   TischTexturgroesse,
245   KugelAufloesung,
246   InvertX,
247   InvertY,
248   Schatten,
249   SpielModus,
250   SpielerAmStoss;
251 
252 extern GLfloat MouseSpeed;
253 extern GLint   KugelnVersenkt[16];
254 extern GLint   KugelnImSpiel[16];
255 
256 extern class Kugel Kugel[16];
257 extern class Tisch Tisch;
258 extern class Anzeige Anzeige;
259 extern class Schiedsrichter Schiedsrichter;
260 extern class Beleuchtung Beleuchtung;
261 
262 extern GLint SchiedsrichterEntscheidung;
263 extern GLint SpielerAmStoss;
264 extern GLint AufnahmeWechsel;
265 extern GLint Foul;
266 extern GLint LageVerbesserungKopffeld;
267 extern GLint LageVerbesserung;
268 extern GLint NeuAufbauenOderWeiterspielen;
269 extern GLint NeuAufbauenOderAchtEinsetzen;
270 extern GLint Spieler1Gewonnen;
271 extern GLint Spieler2Gewonnen;
272 extern GLint AllerersterStoss;
273 
274 extern GLint ZeigeFPS,TischLampen,GrueneLampe;
275 extern GLfloat EffektLautstaerke,MusikLautstaerke;
276 
277 extern GLint TexMMM;
278 
279 extern GLint DelayAusgleich;
280 
281 extern GLint xnor;
282 
283 extern char Spieler1[10],Spieler2[10],NetzwerkSpieler[10],NetzwerkGegner[10];
284 
285 
286 
287 
288 
289 
290 
291 
292 
293 
294 
295 
296 
297 
298 
299 
300 
301 
302 
303 
304 
305 
306 
307 
308 
309 
310