mirror of
https://github.com/FunKey-Project/Bibi.git
synced 2026-03-19 18:32:44 +01:00
removed confirmation screen and added FK keys for all mappings, my god this should be refactored
This commit is contained in:
79
src/main.c
79
src/main.c
@@ -38,7 +38,8 @@ int input_update(t_game game, int nb_joueur) {
|
||||
t_map map = game_the_map(game);
|
||||
int x, y;
|
||||
|
||||
while (SDL_PollEvent(&event)) {
|
||||
// Loop through all pending events and process only the latest one
|
||||
while (SDL_PollEvent(&event)){
|
||||
switch (event.type) {
|
||||
case SDL_QUIT:
|
||||
return 2;
|
||||
@@ -46,9 +47,11 @@ int input_update(t_game game, int nb_joueur) {
|
||||
case SDL_KEYDOWN:
|
||||
switch (event.key.keysym.sym) {
|
||||
case SDLK_ESCAPE:
|
||||
case SDLK_q:
|
||||
return 2;
|
||||
|
||||
case SDLK_UP:
|
||||
case SDLK_u:
|
||||
player_set_current_way(player1, UP);
|
||||
player_move(player1, map);
|
||||
if (player_win(player1)==1){
|
||||
@@ -57,6 +60,7 @@ int input_update(t_game game, int nb_joueur) {
|
||||
break;
|
||||
|
||||
case SDLK_DOWN:
|
||||
case SDLK_d:
|
||||
player_set_current_way(player1, DOWN);
|
||||
player_move(player1, map);
|
||||
if (player_win(player1)==1){
|
||||
@@ -65,6 +69,7 @@ int input_update(t_game game, int nb_joueur) {
|
||||
break;
|
||||
|
||||
case SDLK_RIGHT:
|
||||
case SDLK_r:
|
||||
player_set_current_way(player1, RIGHT);
|
||||
player_move(player1, map);
|
||||
if (player_win(player1)==1){
|
||||
@@ -73,6 +78,7 @@ int input_update(t_game game, int nb_joueur) {
|
||||
break;
|
||||
|
||||
case SDLK_LEFT:
|
||||
case SDLK_l:
|
||||
player_set_current_way(player1, LEFT);
|
||||
player_move(player1, map);
|
||||
if (player_win(player1)==1){
|
||||
@@ -80,20 +86,11 @@ int input_update(t_game game, int nb_joueur) {
|
||||
}
|
||||
break;
|
||||
|
||||
case SDLK_END: //sert <20> poser une bombe pour le joueur 1 (cette touche sert
|
||||
x= player_get_x(player1); //pour les ordinateurs portables qui n'ont pas forc<72>ment la touce 0 <20> c<>t<EFBFBD> des fl<66>ches directionnelles)
|
||||
y= player_get_y(player1);
|
||||
|
||||
if (player_get_nb_bomb(player1)>0 && map_get_cell_type(map,x,y)!=CELL_BOMB){
|
||||
int portee=player_portee_bomb(player1);
|
||||
game_init_bomb(game,x,y,portee,1);
|
||||
map_set_cell_type(map, x, y, CELL_BOMB);
|
||||
player_decrease_nb_bomb(player1);
|
||||
}
|
||||
break;
|
||||
|
||||
|
||||
case SDLK_KP0: //sert <20> poser une bombe pour le joueur 1
|
||||
//sert <20> poser une bombe pour le joueur 1
|
||||
case SDLK_END: //cette touche sert pour les ordinateurs portables qui n'ont pas forc<72>ment la touce 0 <20> c<>t<EFBFBD> des fl<66>ches directionnelles)
|
||||
case SDLK_KP0:
|
||||
case SDLK_a:
|
||||
case SDLK_b:
|
||||
x= player_get_x(player1);
|
||||
y= player_get_y(player1);
|
||||
|
||||
@@ -105,7 +102,8 @@ int input_update(t_game game, int nb_joueur) {
|
||||
}
|
||||
break;
|
||||
|
||||
// touches du joueur 2:
|
||||
/*
|
||||
// touches du joueur 2:
|
||||
case SDLK_e:
|
||||
if (nb_joueur == 2){
|
||||
player_set_current_way(player2, UP);
|
||||
@@ -156,6 +154,7 @@ int input_update(t_game game, int nb_joueur) {
|
||||
}
|
||||
}
|
||||
break;
|
||||
*/
|
||||
|
||||
default: break;
|
||||
}
|
||||
@@ -187,7 +186,7 @@ int main_game(SDL_Surface *screen, int nb_joueur, int niveau, int mode, int kill
|
||||
t_game game = game_new(nb_joueur,niveau,mode, kill_bomb); //on lance le jeu
|
||||
|
||||
#ifdef HW_SCREEN_RESIZE
|
||||
//if(screen != NULL) SDL_FreeSurface(screen);
|
||||
if(screen != NULL) SDL_FreeSurface(screen);
|
||||
screen = SDL_CreateRGBSurface(SDL_SWSURFACE, SIZE_BLOC * map_get_width(game_the_map(game)),
|
||||
SIZE_BLOC * map_get_height(game_the_map(game)), WINDOW_BPP,
|
||||
0, 0, 0, 0);
|
||||
@@ -300,7 +299,7 @@ int main_game(SDL_Surface *screen, int nb_joueur, int niveau, int mode, int kill
|
||||
}
|
||||
|
||||
#ifdef HW_SCREEN_RESIZE
|
||||
//if(screen != NULL) SDL_FreeSurface(screen);
|
||||
if(screen != NULL) SDL_FreeSurface(screen);
|
||||
screen = SDL_CreateRGBSurface(SDL_SWSURFACE, 480,480, WINDOW_BPP, 0, 0, 0, 0);
|
||||
#else //HW_SCREEN_RESIZE
|
||||
screen = SDL_SetVideoMode(480,480, WINDOW_BPP,SDL_HWSURFACE);
|
||||
@@ -358,6 +357,7 @@ int main_game(SDL_Surface *screen, int nb_joueur, int niveau, int mode, int kill
|
||||
}
|
||||
SDL_FillRect(screen, NULL, SDL_MapRGB(screen->format, 0, 0, 0));
|
||||
SDL_BlitSurface(menu, NULL, screen, &positionMenu);
|
||||
SDL_FreeSurface(menu);
|
||||
#ifdef HW_SCREEN_RESIZE
|
||||
SDL_FillRect(hw_screen, NULL, 0x000000);
|
||||
flip_NNOptimized_AllowOutOfScreen(screen, hw_screen,
|
||||
@@ -380,22 +380,18 @@ int main_game(SDL_Surface *screen, int nb_joueur, int niveau, int mode, int kill
|
||||
break;
|
||||
case SDL_KEYDOWN:
|
||||
switch(event.key.keysym.sym){
|
||||
case SDLK_ESCAPE:
|
||||
continu = 1;
|
||||
break;
|
||||
case SDLK_RETURN:
|
||||
continu = 1;
|
||||
break;
|
||||
case SDLK_ESCAPE:
|
||||
case SDLK_KP_ENTER:
|
||||
case SDLK_RETURN:
|
||||
case SDLK_a:
|
||||
case SDLK_b:
|
||||
continu = 1;
|
||||
break;
|
||||
default: break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
SDL_FreeSurface(menu);
|
||||
|
||||
if (nb_joueur==1 && player_win(player1)==1){
|
||||
game_free(game);
|
||||
@@ -436,7 +432,7 @@ int main(int argc, char *argv[]) {
|
||||
if (hw_screen == NULL) {
|
||||
error("Can't set video mode: %s\n", SDL_GetError());
|
||||
}
|
||||
//if(screen != NULL) SDL_FreeSurface(screen);
|
||||
if(screen != NULL) SDL_FreeSurface(screen);
|
||||
screen = SDL_CreateRGBSurface(SDL_SWSURFACE, 700,500, WINDOW_BPP, 0, 0, 0, 0);
|
||||
#else //HW_SCREEN_RESIZE
|
||||
screen = SDL_SetVideoMode(700,500, WINDOW_BPP,SDL_HWSURFACE);
|
||||
@@ -541,17 +537,27 @@ int main(int argc, char *argv[]) {
|
||||
SDL_WaitEvent(&event);
|
||||
switch(event.type)
|
||||
{
|
||||
|
||||
case SDL_QUIT:
|
||||
#ifdef SOUND_FMOD_ACTIVATED
|
||||
//FMUSIC_StopSong(musique_menu_p);
|
||||
#elif defined(SOUND_SDL_ACTIVATED)
|
||||
Mix_HaltMusic();
|
||||
#endif //SOUND_SDL_ACTIVATED
|
||||
done = 1;
|
||||
break;
|
||||
|
||||
case SDL_KEYDOWN:
|
||||
|
||||
if(event.key.keysym.sym==SDLK_ESCAPE){ // Veut arr<72>ter le jeu
|
||||
// FMUSIC_StopSong(musique_menu_p);
|
||||
#ifdef SOUND_FMOD_ACTIVATED
|
||||
//FMUSIC_StopSong(musique_menu_p);
|
||||
#elif defined(SOUND_SDL_ACTIVATED)
|
||||
Mix_HaltMusic();
|
||||
#endif //SOUND_SDL_ACTIVATED
|
||||
done = 1;
|
||||
}
|
||||
else if(event.key.keysym.sym==SDLK_UP){
|
||||
else if(event.key.keysym.sym==SDLK_UP || event.key.keysym.sym==SDLK_u){
|
||||
switch(choix_actuel){
|
||||
case 1:
|
||||
menu = IMG_Load("sprite/menu_q.png");
|
||||
@@ -579,7 +585,7 @@ int main(int argc, char *argv[]) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
else if(event.key.keysym.sym==SDLK_DOWN){
|
||||
else if(event.key.keysym.sym==SDLK_DOWN || event.key.keysym.sym==SDLK_d){
|
||||
switch(choix_actuel){
|
||||
case 1:
|
||||
menu = IMG_Load("sprite/menu_2_p.png");
|
||||
@@ -607,7 +613,8 @@ int main(int argc, char *argv[]) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
else if(event.key.keysym.sym==SDLK_RETURN || event.key.keysym.sym==SDLK_KP_ENTER){
|
||||
else if(event.key.keysym.sym==SDLK_RETURN || event.key.keysym.sym==SDLK_KP_ENTER
|
||||
|| event.key.keysym.sym==SDLK_a){
|
||||
switch(choix_actuel){
|
||||
|
||||
case 1: //on rentre dans le mode 1 joueur.
|
||||
@@ -829,18 +836,20 @@ int main(int argc, char *argv[]) {
|
||||
|
||||
case 6:
|
||||
if(are_you_sure(screen)==1){
|
||||
if(audio_init_ok && audio==1)
|
||||
if(audio_init_ok && audio==1){
|
||||
#ifdef SOUND_FMOD_ACTIVATED
|
||||
FMUSIC_StopSong(musique_menu_p);
|
||||
#elif defined(SOUND_SDL_ACTIVATED)
|
||||
Mix_HaltMusic();
|
||||
#endif //SOUND_FMOD_ACTIVATED
|
||||
}
|
||||
done=1;
|
||||
resize=1;
|
||||
break;
|
||||
}
|
||||
else
|
||||
resize=1;
|
||||
else{
|
||||
resize=1;
|
||||
}
|
||||
break;
|
||||
|
||||
|
||||
@@ -855,7 +864,7 @@ int main(int argc, char *argv[]) {
|
||||
|
||||
if (resize==1){
|
||||
#ifdef HW_SCREEN_RESIZE
|
||||
//if(screen != NULL) SDL_FreeSurface(screen);
|
||||
if(screen != NULL) SDL_FreeSurface(screen);
|
||||
screen = SDL_CreateRGBSurface(SDL_SWSURFACE, 700,500, WINDOW_BPP, 0, 0, 0, 0);
|
||||
#else //HW_SCREEN_RESIZE
|
||||
screen = SDL_SetVideoMode(700,500, WINDOW_BPP,SDL_HWSURFACE);
|
||||
|
||||
53
src/niveau.c
53
src/niveau.c
@@ -69,6 +69,7 @@ int niveau_1_joueur(SDL_Surface *screen, int niveau){
|
||||
positionMenu.x = 0;
|
||||
positionMenu.y = 0;
|
||||
|
||||
/** Wait for input */
|
||||
while (continuer)
|
||||
{
|
||||
SDL_WaitEvent(&event);
|
||||
@@ -82,13 +83,13 @@ int niveau_1_joueur(SDL_Surface *screen, int niveau){
|
||||
switch(event.key.keysym.sym)
|
||||
{
|
||||
case SDLK_ESCAPE:
|
||||
case SDLK_b:
|
||||
SDL_FreeSurface(menu);
|
||||
return 1;
|
||||
break;
|
||||
case SDLK_RETURN:
|
||||
continuer = 0;
|
||||
break;
|
||||
case SDLK_KP_ENTER:
|
||||
case SDLK_a:
|
||||
continuer = 0;
|
||||
break;
|
||||
default: break;
|
||||
@@ -161,9 +162,11 @@ int niveau_2_joueur(SDL_Surface *screen, int choix_niveau){
|
||||
switch(event.key.keysym.sym)
|
||||
{
|
||||
case SDLK_ESCAPE: // Veut arr<72>ter le jeu
|
||||
case SDLK_b: // Veut arr<72>ter le jeu
|
||||
continuer=0;
|
||||
break;
|
||||
case SDLK_UP:
|
||||
case SDLK_u:
|
||||
switch(choix_actuel){
|
||||
case 1:
|
||||
menu = IMG_Load("sprite/niveau_2p_6.png");;
|
||||
@@ -192,6 +195,7 @@ int niveau_2_joueur(SDL_Surface *screen, int choix_niveau){
|
||||
}
|
||||
break;
|
||||
case SDLK_DOWN:
|
||||
case SDLK_d:
|
||||
switch(choix_actuel){
|
||||
case 1:
|
||||
menu = IMG_Load("sprite/niveau_2p_2.png");;
|
||||
@@ -220,10 +224,8 @@ int niveau_2_joueur(SDL_Surface *screen, int choix_niveau){
|
||||
}
|
||||
break;
|
||||
case SDLK_RETURN:
|
||||
SDL_FreeSurface(menu);
|
||||
return choix_actuel;
|
||||
break;
|
||||
case SDLK_KP_ENTER:
|
||||
case SDLK_a:
|
||||
SDL_FreeSurface(menu);
|
||||
return choix_actuel;
|
||||
break;
|
||||
@@ -280,9 +282,11 @@ int editeur_choix_niveau(SDL_Surface *screen){
|
||||
switch(event.key.keysym.sym)
|
||||
{
|
||||
case SDLK_ESCAPE: // Veut arr<72>ter le jeu
|
||||
case SDLK_b: // Veut arr<72>ter le jeu
|
||||
continuer=0;
|
||||
break;
|
||||
case SDLK_UP:
|
||||
case SDLK_u:
|
||||
switch(choix_actuel){
|
||||
case 1:
|
||||
menu = IMG_Load("sprite/niveau_2p_6.png");;
|
||||
@@ -311,6 +315,7 @@ int editeur_choix_niveau(SDL_Surface *screen){
|
||||
}
|
||||
break;
|
||||
case SDLK_DOWN:
|
||||
case SDLK_d:
|
||||
switch(choix_actuel){
|
||||
case 1:
|
||||
menu = IMG_Load("sprite/niveau_2p_2.png");;
|
||||
@@ -339,10 +344,8 @@ int editeur_choix_niveau(SDL_Surface *screen){
|
||||
}
|
||||
break;
|
||||
case SDLK_RETURN:
|
||||
SDL_FreeSurface(menu);
|
||||
return choix_actuel;
|
||||
break;
|
||||
case SDLK_KP_ENTER:
|
||||
case SDLK_a:
|
||||
SDL_FreeSurface(menu);
|
||||
return choix_actuel;
|
||||
break;
|
||||
@@ -370,6 +373,10 @@ int editeur_choix_niveau(SDL_Surface *screen){
|
||||
|
||||
|
||||
int are_you_sure(SDL_Surface *screen){
|
||||
|
||||
#warning Voluntary Bypass FunKey
|
||||
return 1;
|
||||
|
||||
|
||||
#ifdef HW_SCREEN_RESIZE
|
||||
//if(screen != NULL) SDL_FreeSurface(screen);
|
||||
@@ -381,6 +388,7 @@ int are_you_sure(SDL_Surface *screen){
|
||||
exit(1);
|
||||
}
|
||||
#endif //HW_SCREEN_RESIZE
|
||||
|
||||
int continuer = 1, choix_actuel=1;
|
||||
SDL_Surface *menu = NULL;
|
||||
SDL_Event event;
|
||||
@@ -400,38 +408,43 @@ int are_you_sure(SDL_Surface *screen){
|
||||
switch(event.key.keysym.sym)
|
||||
{
|
||||
case SDLK_ESCAPE: // Veut arr<72>ter le jeu
|
||||
case SDLK_b: // Veut arr<72>ter le jeu
|
||||
continuer=0;
|
||||
break;
|
||||
case SDLK_LEFT:
|
||||
case SDLK_l:
|
||||
switch(choix_actuel){
|
||||
case 1:
|
||||
if(menu != NULL) SDL_FreeSurface(menu);
|
||||
menu = IMG_Load("sprite/sure_no.png");;
|
||||
choix_actuel=2;
|
||||
break;
|
||||
case 2:
|
||||
if(menu != NULL) SDL_FreeSurface(menu);
|
||||
menu = IMG_Load("sprite/sure_yes.png");
|
||||
choix_actuel=1;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case SDLK_RIGHT:
|
||||
case SDLK_r:
|
||||
switch(choix_actuel){
|
||||
case 1:
|
||||
if(menu != NULL) SDL_FreeSurface(menu);
|
||||
menu = IMG_Load("sprite/sure_no.png");;
|
||||
choix_actuel=2;
|
||||
break;
|
||||
case 2:
|
||||
if(menu != NULL) SDL_FreeSurface(menu);
|
||||
menu = IMG_Load("sprite/sure_yes.png");
|
||||
choix_actuel=1;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case SDLK_RETURN:
|
||||
SDL_FreeSurface(menu);
|
||||
return choix_actuel;
|
||||
break;
|
||||
case SDLK_KP_ENTER:
|
||||
SDL_FreeSurface(menu);
|
||||
case SDLK_a:
|
||||
if(menu != NULL) SDL_FreeSurface(menu);
|
||||
return choix_actuel;
|
||||
break;
|
||||
|
||||
@@ -487,9 +500,11 @@ int choix_nb_joueurs(SDL_Surface *screen){
|
||||
switch(event.key.keysym.sym)
|
||||
{
|
||||
case SDLK_ESCAPE: // Veut arr<72>ter le jeu
|
||||
case SDLK_b: // Veut arr<72>ter le jeu
|
||||
continuer=0;
|
||||
break;
|
||||
case SDLK_UP:
|
||||
case SDLK_u:
|
||||
switch(choix_actuel){
|
||||
case 1:
|
||||
menu = IMG_Load("sprite/menu_nb_joueur_2.png");;
|
||||
@@ -502,6 +517,7 @@ int choix_nb_joueurs(SDL_Surface *screen){
|
||||
}
|
||||
break;
|
||||
case SDLK_DOWN:
|
||||
case SDLK_d:
|
||||
switch(choix_actuel){
|
||||
case 1:
|
||||
menu = IMG_Load("sprite/menu_nb_joueur_2.png");;
|
||||
@@ -514,10 +530,8 @@ int choix_nb_joueurs(SDL_Surface *screen){
|
||||
}
|
||||
break;
|
||||
case SDLK_RETURN:
|
||||
SDL_FreeSurface(menu);
|
||||
return choix_actuel;
|
||||
break;
|
||||
case SDLK_KP_ENTER:
|
||||
case SDLK_a:
|
||||
SDL_FreeSurface(menu);
|
||||
return choix_actuel;
|
||||
break;
|
||||
@@ -574,9 +588,11 @@ int options(SDL_Surface *screen){
|
||||
switch(event.key.keysym.sym)
|
||||
{
|
||||
case SDLK_ESCAPE: // Veut arr<72>ter le jeu
|
||||
case SDLK_b: // Veut arr<72>ter le jeu
|
||||
continuer=0;
|
||||
break;
|
||||
case SDLK_LEFT:
|
||||
case SDLK_l:
|
||||
switch(choix_actuel){
|
||||
case 1:
|
||||
menu = IMG_Load("sprite/options_s_n.png");;
|
||||
@@ -597,6 +613,7 @@ int options(SDL_Surface *screen){
|
||||
}
|
||||
break;
|
||||
case SDLK_RIGHT:
|
||||
case SDLK_r:
|
||||
switch(choix_actuel){
|
||||
case 1:
|
||||
menu = IMG_Load("sprite/options_s_n.png");;
|
||||
@@ -617,6 +634,7 @@ int options(SDL_Surface *screen){
|
||||
}
|
||||
break;
|
||||
case SDLK_UP:
|
||||
case SDLK_u:
|
||||
switch(choix_actuel){
|
||||
case 1:
|
||||
menu = IMG_Load("sprite/options_b_o.png");;
|
||||
@@ -637,6 +655,7 @@ int options(SDL_Surface *screen){
|
||||
}
|
||||
break;
|
||||
case SDLK_DOWN:
|
||||
case SDLK_d:
|
||||
switch(choix_actuel){
|
||||
case 1:
|
||||
menu = IMG_Load("sprite/options_b_o.png");;
|
||||
@@ -657,10 +676,8 @@ int options(SDL_Surface *screen){
|
||||
}
|
||||
break;
|
||||
case SDLK_RETURN:
|
||||
SDL_FreeSurface(menu);
|
||||
return choix_actuel;
|
||||
break;
|
||||
case SDLK_KP_ENTER:
|
||||
case SDLK_a:
|
||||
SDL_FreeSurface(menu);
|
||||
return choix_actuel;
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user