2 #include "openal_wrapper.h"
3 #include "SDL_thread.h"
15 loadscreentexture = 0;
21 memset(Mainmenuitems, 0, sizeof(Mainmenuitems));
25 memset(startx, 0, sizeof(startx));
26 memset(starty, 0, sizeof(starty));
27 memset(endx, 0, sizeof(endx));
28 memset(endy, 0, sizeof(endy));
30 memset(selectedlong, 0, sizeof(selectedlong));
31 memset(offsetx, 0, sizeof(offsetx));
32 memset(offsety, 0, sizeof(offsety));
33 memset(movex, 0, sizeof(movex));
34 memset(movey, 0, sizeof(movey));
35 memset(endy, 0, sizeof(endy));
48 memset(menustring, 0, sizeof(menustring));
49 memset(registrationname, 0, sizeof(registrationname));
50 registrationnumber = 0;
57 deltah = 0,deltav = 0;
58 mousecoordh = 0,mousecoordv = 0;
59 oldmousecoordh = 0,oldmousecoordv = 0;
60 rotation = 0,rotation2 = 0;
65 cameratogglekeydown = 0;
66 chattogglekeydown = 0;
69 drawmodetogglekeydown = 0;
70 explodetogglekeydown = 0;
71 detailtogglekeydown = 0;
81 // XYZ realhawkcoords;
93 campaignnumlevels = 0;
95 memset(campaignmapname, 0, sizeof(campaignmapname));
96 memset(campaigndescription, 0, sizeof(campaigndescription));
97 memset(campaignchoosenext, 0, sizeof(campaignchoosenext));
98 memset(campaignnumnext, 0, sizeof(campaignnumnext));
99 memset(campaignnextlevel, 0, sizeof(campaignnextlevel));
100 int campaignchoicesmade;
101 memset(campaignchoices, 0, sizeof(campaignchoices));
102 memset(campaignlocationx, 0, sizeof(campaignlocationx));
103 memset(campaignlocationy, 0, sizeof(campaignlocationy));
104 memset(campaignlocationy, 0, sizeof(campaignlocationy));
106 campaignchoicenum = 0;
108 memset(campaignchoicewhich, 0, sizeof(campaignchoicewhich));
114 memset(levelorder, 0, sizeof(levelorder));
115 memset(levelvisible, 0, sizeof(levelvisible));
116 memset(levelhighlight, 0, sizeof(levelhighlight));
120 musictype = 0,oldmusictype = 0,oldoldmusictype = 0;
135 envtogglekeydown = 0;
136 slomotogglekeydown = 0;
137 texturesizetogglekeydown = 0;
138 freezetogglekeydown = 0;
152 // XYZ pathpoint[30];
154 memset(numpathpointconnect, 0, sizeof(numpathpointconnect));
155 memset(pathpointconnect, 0, sizeof(pathpointconnect));
156 pathpointselected = 0;
160 numchallengelevels = 0;
165 memset(consoletext, 0, sizeof(consoletext));
166 memset(consolechars, 0, sizeof(consolechars));
168 memset(displaytext, 0, sizeof(displaytext));
169 memset(displaychars, 0, sizeof(displaychars));
170 memset(displaytime, 0, sizeof(displaytime));
171 displayblinkdelay = 0;
175 consoletogglekeydown = 0;
176 consoleblinkdelay = 0;
179 // memset(togglekey, 0, sizeof(togglekey));
180 // memset(togglekeydelay, 0, sizeof(togglekeydelay));
184 crouchkey = 0,jumpkey = 0,forwardkey = 0,chatkey = 0,backkey = 0,leftkey = 0,rightkey = 0,drawkey = 0,throwkey = 0,attackkey = 0;
191 // XYZ boundary[360];
198 memset(musicvolume, 0, sizeof(musicvolume));
199 memset(oldmusicvolume, 0, sizeof(oldmusicvolume));
208 accountactive = NULL;
213 void (Game::*method)();
216 void Game::fireSound(int sound) {
217 emit_sound_at(sound);
220 void Game::inputText(char* str, int* charselected, int* nb_chars) {
226 SDL_EnableKeyRepeat(SDL_DEFAULT_REPEAT_DELAY,SDL_DEFAULT_REPEAT_INTERVAL);
227 SDL_EnableUNICODE(true);
230 SDL_PollEvent(&evenement);
232 switch(evenement.type) {
234 if(evenement.key.keysym.sym == SDLK_ESCAPE) {
241 } else if(evenement.key.keysym.sym==SDLK_BACKSPACE){
242 if((*charselected)!=0) {
243 for(i=(*charselected)-1;i<255;i++){
250 } else if(evenement.key.keysym.sym==SDLK_DELETE){
251 for(i=(*charselected);i<255;i++){
256 } else if(evenement.key.keysym.sym==SDLK_LEFT){
257 if((*charselected)!=0)
259 } else if(evenement.key.keysym.sym==SDLK_RIGHT){
260 if((*charselected)<(*nb_chars))
262 } else if(evenement.key.keysym.sym==SDLK_RETURN) {
264 } else if((evenement.key.keysym.unicode<127)&&((*nb_chars)<60)&&(evenement.key.keysym.sym!=SDLK_LSHIFT)&&(evenement.key.keysym.sym!=SDLK_RSHIFT)) {
265 for(i=255;i>=(*charselected)+1;i--){
268 str[*charselected]=evenement.key.keysym.unicode;
276 SDL_EnableKeyRepeat(0,0); // disable key repeat
277 SDL_EnableUNICODE(false);
281 void Game::setKeySelected() {
283 params_thread* data = new params_thread;
285 data->method = &Game::setKeySelected_thread;
286 printf("launch thread\n");
287 SDL_Thread* thread = SDL_CreateThread(Game::thread, data);
288 if ( thread == NULL ) {
289 fprintf(stderr, "Unable to create thread: %s\n", SDL_GetError());
295 void Game::setKeySelected_thread() {
299 SDL_WaitEvent(&evenement);
300 switch(evenement.type) {
302 keycode = evenement.key.keysym.sym;
304 case SDL_MOUSEBUTTONDOWN:
305 keycode = SDLK_LAST+evenement.button.button;
311 if(keycode != SDLK_ESCAPE) {
314 case 0: forwardkey=keycode;
316 case 1: backkey=keycode;
318 case 2: leftkey=keycode;
320 case 3: rightkey=keycode;
322 case 4: crouchkey=keycode;
324 case 5: jumpkey=keycode;
326 case 6: drawkey=keycode;
328 case 7: throwkey=keycode;
330 case 8: attackkey=keycode;
340 int Game::thread(void *data) {
341 params_thread* pt = (params_thread*)data;
343 (pt->game->*(pt->method))();
347 void Game::DrawGL() {
348 if ( stereomode == stereoNone ) {
349 DrawGLScene(stereoCenter);
351 DrawGLScene(stereoLeft);
352 DrawGLScene(stereoRight);