X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;f=Source%2FGame.cpp;h=5e001a1c5a5004ca68047e91c972d57fe23f0430;hb=42bf932baf8cecf12b4daba00c4453093aa4971a;hp=66aafdf565c0afcc003bf3f63e820fb659f39980;hpb=f7f3989db89536a13751c11625168948a08e03e0;p=lugaru.git diff --git a/Source/Game.cpp b/Source/Game.cpp index 66aafdf..5e001a1 100644 --- a/Source/Game.cpp +++ b/Source/Game.cpp @@ -26,8 +26,6 @@ int directing; float dialoguetime; int dialoguegonethrough[20]; -std::vector Game::textures; - Game::Game() { terraintexture = 0; @@ -44,24 +42,7 @@ Game::Game() memset(Mainmenuitems, 0, sizeof(Mainmenuitems)); - nummenuitems = 0; - - memset(startx, 0, sizeof(startx)); - memset(starty, 0, sizeof(starty)); - memset(endx, 0, sizeof(endx)); - memset(endy, 0, sizeof(endy)); - - memset(selectedlong, 0, sizeof(selectedlong)); - memset(offsetx, 0, sizeof(offsetx)); - memset(offsety, 0, sizeof(offsety)); - memset(movex, 0, sizeof(movex)); - memset(movey, 0, sizeof(movey)); - memset(endy, 0, sizeof(endy)); - - transition = 0; - anim = 0; selected = 0; - loaddistrib = 0; keyselect = 0; indemo = 0; @@ -109,30 +90,10 @@ Game::Game() */ stealthloading = 0; - campaignnumlevels = 0; - - memset(campaignmapname, 0, sizeof(campaignmapname)); - memset(campaigndescription, 0, sizeof(campaigndescription)); - memset(campaignchoosenext, 0, sizeof(campaignchoosenext)); - memset(campaignnumnext, 0, sizeof(campaignnumnext)); - memset(campaignnextlevel, 0, sizeof(campaignnextlevel)); - int campaignchoicesmade; - memset(campaignchoices, 0, sizeof(campaignchoices)); - memset(campaignlocationx, 0, sizeof(campaignlocationx)); - memset(campaignlocationy, 0, sizeof(campaignlocationy)); - memset(campaignlocationy, 0, sizeof(campaignlocationy)); - - campaignchoicenum = 0; - - memset(campaignchoicewhich, 0, sizeof(campaignchoicewhich)); - whichchoice = 0; - - numlevelspassed = 0; - - memset(levelorder, 0, sizeof(levelorder)); - memset(levelvisible, 0, sizeof(levelvisible)); - memset(levelhighlight, 0, sizeof(levelhighlight)); + actuallevel = 0; + winhotspot = false; + windialogue = false; minimap = 0; @@ -174,7 +135,7 @@ Game::Game() scoreadded = 0; numchallengelevels = 0; - console = 0; + console = false; archiveselected = 0; memset(consoletext, 0, sizeof(consoletext)); @@ -193,6 +154,7 @@ Game::Game() autocam = 0; crouchkey = 0,jumpkey = 0,forwardkey = 0,chatkey = 0,backkey = 0,leftkey = 0,rightkey = 0,drawkey = 0,throwkey = 0,attackkey = 0; + consolekey = 0; oldattackkey = 0; loading = 0; @@ -230,7 +192,6 @@ void Game::fireSound(int sound) { void Game::inputText(char* str, int* charselected, int* nb_chars) { SDL_Event evenement; - int i; if(!waiting) { waiting=true; @@ -238,49 +199,52 @@ void Game::inputText(char* str, int* charselected, int* nb_chars) { SDL_EnableUNICODE(true); } - SDL_PollEvent(&evenement); + while(SDL_PollEvent(&evenement)) { - switch(evenement.type) { - case SDL_KEYDOWN: - if(evenement.key.keysym.sym == SDLK_ESCAPE) { - for(i=0;i<255;i++){ - str[i]=' '; - } - *nb_chars=0; - *charselected=0; - waiting=false; - } else if(evenement.key.keysym.sym==SDLK_BACKSPACE){ - if((*charselected)!=0) { - for(i=(*charselected)-1;i<255;i++){ - str[i]=str[i+1]; + switch(evenement.type) { + case SDL_KEYDOWN: + if(evenement.key.keysym.sym == SDLK_ESCAPE) { + for(int i=0;i<255;i++) + str[i]=0; + *nb_chars=0; + *charselected=0; + waiting=false; + } else if(evenement.key.keysym.sym==SDLK_BACKSPACE){ + if((*charselected)!=0) { + for(int i=(*charselected)-1;i<255;i++) + str[i]=str[i+1]; + str[255]=0; + (*charselected)--; + (*nb_chars)--; } - str[255]=' '; - (*charselected)--; - (*nb_chars)--; - } - } else if(evenement.key.keysym.sym==SDLK_DELETE){ - for(i=(*charselected);i<255;i++){ - str[i]=str[i+1]; - } - str[255]=' '; - (*nb_chars)--; - } else if(evenement.key.keysym.sym==SDLK_LEFT){ - if((*charselected)!=0) - (*charselected)--; - } else if(evenement.key.keysym.sym==SDLK_RIGHT){ - if((*charselected)<(*nb_chars)) + } else if(evenement.key.keysym.sym==SDLK_DELETE){ + if((*charselected)<(*nb_chars)){ + for(int i=(*charselected);i<255;i++) + str[i]=str[i+1]; + str[255]=0; + (*nb_chars)--; + } + } else if(evenement.key.keysym.sym==SDLK_HOME){ + (*charselected)=0; + } else if(evenement.key.keysym.sym==SDLK_END){ + (*charselected)=(*nb_chars); + } else if(evenement.key.keysym.sym==SDLK_LEFT){ + if((*charselected)!=0) + (*charselected)--; + } else if(evenement.key.keysym.sym==SDLK_RIGHT){ + if((*charselected)<(*nb_chars)) + (*charselected)++; + } else if(evenement.key.keysym.sym==SDLK_RETURN) { + waiting=false; + } else if(evenement.key.keysym.unicode>=32&&evenement.key.keysym.unicode<127&&(*nb_chars)<60){ + for(int i=255;i>=(*charselected)+1;i--) + str[i]=str[i-1]; + str[*charselected]=evenement.key.keysym.unicode; (*charselected)++; - } else if(evenement.key.keysym.sym==SDLK_RETURN) { - waiting=false; - } else if((evenement.key.keysym.unicode<127)&&((*nb_chars)<60)&&(evenement.key.keysym.sym!=SDLK_LSHIFT)&&(evenement.key.keysym.sym!=SDLK_RSHIFT)) { - for(i=255;i>=(*charselected)+1;i--){ - str[i]=str[i-1]; + (*nb_chars)++; } - str[*charselected]=evenement.key.keysym.unicode; - (*charselected)++; - (*nb_chars)++; - } - break; + break; + } } if(!waiting) { @@ -340,6 +304,8 @@ void Game::setKeySelected_thread() { break; case 8: attackkey=keycode; break; + case 9: consolekey=keycode; + break; default: break; }