X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;f=Source%2FGame.cpp;h=8bc4342f3ebf2eb234a07b7a9ddc87fc4fe59caf;hb=55b9188087248e41adc8ce60f4dd1bfadbc179af;hp=0cc5057361aa86855ff8ff42fa6fc2ddf0f29b6a;hpb=fcfe1edb8c85534fc39744821769d6981d31caa7;p=lugaru.git diff --git a/Source/Game.cpp b/Source/Game.cpp index 0cc5057..8bc4342 100644 --- a/Source/Game.cpp +++ b/Source/Game.cpp @@ -199,7 +199,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; @@ -207,51 +206,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]=0; - *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]; - str[255]=0; - (*charselected)--; - (*nb_chars)--; - } - } else if(evenement.key.keysym.sym==SDLK_DELETE){ - if((*charselected)<(*nb_chars)){ - for(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)) + 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)--; + } + } 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>=32&&evenement.key.keysym.unicode<127&&(*nb_chars)<60){ - for(i=255;i>=(*charselected)+1;i--) - str[i]=str[i-1]; - str[*charselected]=evenement.key.keysym.unicode; - (*charselected)++; - (*nb_chars)++; - } - break; + (*nb_chars)++; + } + break; + } } if(!waiting) {