diff --git a/audio/mix_1_p.ogg b/audio/mix_1_p.ogg new file mode 100644 index 0000000..07ec3c1 Binary files /dev/null and b/audio/mix_1_p.ogg differ diff --git a/audio/mm2air.ogg b/audio/mm2air.ogg new file mode 100644 index 0000000..c4e414a Binary files /dev/null and b/audio/mm2air.ogg differ diff --git a/audio/mm2boss.ogg b/audio/mm2boss.ogg new file mode 100644 index 0000000..4d5b098 Binary files /dev/null and b/audio/mm2boss.ogg differ diff --git a/audio/mm2bubbl.ogg b/audio/mm2bubbl.ogg new file mode 100644 index 0000000..1a19c59 Binary files /dev/null and b/audio/mm2bubbl.ogg differ diff --git a/audio/mm2cras2.ogg b/audio/mm2cras2.ogg new file mode 100644 index 0000000..b9bac56 Binary files /dev/null and b/audio/mm2cras2.ogg differ diff --git a/audio/mm2crash.ogg b/audio/mm2crash.ogg new file mode 100644 index 0000000..032bae8 Binary files /dev/null and b/audio/mm2crash.ogg differ diff --git a/audio/mm2end.ogg b/audio/mm2end.ogg new file mode 100644 index 0000000..704042d Binary files /dev/null and b/audio/mm2end.ogg differ diff --git a/audio/mm2flas2.ogg b/audio/mm2flas2.ogg new file mode 100644 index 0000000..3e5864a Binary files /dev/null and b/audio/mm2flas2.ogg differ diff --git a/audio/mm2flash.ogg b/audio/mm2flash.ogg new file mode 100644 index 0000000..893cda1 Binary files /dev/null and b/audio/mm2flash.ogg differ diff --git a/audio/mm2heat.ogg b/audio/mm2heat.ogg new file mode 100644 index 0000000..d4d47eb Binary files /dev/null and b/audio/mm2heat.ogg differ diff --git a/audio/mm2intro.ogg b/audio/mm2intro.ogg new file mode 100644 index 0000000..93a3ae9 Binary files /dev/null and b/audio/mm2intro.ogg differ diff --git a/audio/mm2meta2.ogg b/audio/mm2meta2.ogg new file mode 100644 index 0000000..ac4ef7d Binary files /dev/null and b/audio/mm2meta2.ogg differ diff --git a/audio/mm2metal.ogg b/audio/mm2metal.ogg new file mode 100644 index 0000000..7550157 Binary files /dev/null and b/audio/mm2metal.ogg differ diff --git a/audio/mm2passw.ogg b/audio/mm2passw.ogg new file mode 100644 index 0000000..409416b Binary files /dev/null and b/audio/mm2passw.ogg differ diff --git a/audio/mm2quick.ogg b/audio/mm2quick.ogg new file mode 100644 index 0000000..20417b7 Binary files /dev/null and b/audio/mm2quick.ogg differ diff --git a/audio/mm2selec.ogg b/audio/mm2selec.ogg new file mode 100644 index 0000000..26b3ee3 Binary files /dev/null and b/audio/mm2selec.ogg differ diff --git a/audio/mm2titl2.ogg b/audio/mm2titl2.ogg new file mode 100644 index 0000000..a1de0c3 Binary files /dev/null and b/audio/mm2titl2.ogg differ diff --git a/audio/mm2title.ogg b/audio/mm2title.ogg new file mode 100644 index 0000000..bb6692a Binary files /dev/null and b/audio/mm2title.ogg differ diff --git a/audio/mm2w1rm.ogg b/audio/mm2w1rm.ogg new file mode 100644 index 0000000..ca956ec Binary files /dev/null and b/audio/mm2w1rm.ogg differ diff --git a/audio/mm2wily1.ogg b/audio/mm2wily1.ogg new file mode 100644 index 0000000..190e1de Binary files /dev/null and b/audio/mm2wily1.ogg differ diff --git a/audio/mm2wood.ogg b/audio/mm2wood.ogg new file mode 100644 index 0000000..6943ada Binary files /dev/null and b/audio/mm2wood.ogg differ diff --git a/audio/mm2wy1.ogg b/audio/mm2wy1.ogg new file mode 100644 index 0000000..c765ac5 Binary files /dev/null and b/audio/mm2wy1.ogg differ diff --git a/src/game.c b/src/game.c index 2a271d9..741b61f 100644 --- a/src/game.c +++ b/src/game.c @@ -28,14 +28,22 @@ t_game game_new(int nb_joueur, int niveau, int mode, int kill_bomb) { game_time_init(); FILE *level; + const char *file_path; if (mode==1){ - if (nb_joueur==1) - level=fopen(SRC_LEVELS_1_PLAYER,"r"); - else - level=fopen(SRC_LEVELS_2_PLAYERS,"r"); + if (nb_joueur==1){ + file_path = SRC_LEVELS_1_PLAYER; + } + else{ + file_path = SRC_LEVELS_2_PLAYERS; + } } else{ - level=fopen(SRC_LEVELS_EDITOR,"r"); + file_path = SRC_LEVELS_EDITOR; + } + + level=fopen(file_path,"r"); + if(level==NULL){ + printf("ERROR: cannot open file: %s\n", file_path); } the_game.map = map_load_dynamic(level,niveau,nb_joueur); the_game.player1 = player_init(2,1,1,1); diff --git a/src/main.c b/src/main.c index abd852a..0f8fe9c 100644 --- a/src/main.c +++ b/src/main.c @@ -263,7 +263,6 @@ int main_game(SDL_Surface *screen, int nb_joueur, int niveau, int mode, int kill } } - else if (nb_joueur==2){ // boucle principale d'un jeu à 2 joueurs: while (done==0 && player_get_dead(player1)!=0 && player_get_dead(player2)!=0) { @@ -367,9 +366,14 @@ int main_game(SDL_Surface *screen, int nb_joueur, int niveau, int mode, int kill boucle=1; } } + + SDL_FillRect(screen, NULL, SDL_MapRGB(screen->format, 0, 0, 0)); - SDL_BlitSurface(menu, NULL, screen, &positionMenu); - SDL_FreeSurface(menu); + if(menu != NULL){ + 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,6 +384,7 @@ int main_game(SDL_Surface *screen, int nb_joueur, int niveau, int mode, int kill SDL_Flip(screen); #endif //HW_SCREEN_RESIZE + bool continu = false; if (boucle==1){ while (!continu) @@ -388,7 +393,7 @@ int main_game(SDL_Surface *screen, int nb_joueur, int niveau, int mode, int kill switch(event.type) { case SDL_QUIT: - continu = 1; + continu = true; break; case SDL_KEYDOWN: switch(event.key.keysym.sym){ @@ -397,7 +402,7 @@ int main_game(SDL_Surface *screen, int nb_joueur, int niveau, int mode, int kill case SDLK_RETURN: case SDLK_a: case SDLK_b: - continu = 1; + continu = true; default: break; } break; @@ -437,6 +442,7 @@ int main(int argc, char *argv[]) { error("Can't init SDL: %s\n", SDL_GetError()); } SDL_EnableKeyRepeat(SDL_DEFAULT_REPEAT_DELAY, SDL_DEFAULT_REPEAT_INTERVAL); + SDL_ShowCursor(SDL_DISABLE); /** Init Video */ #ifdef HW_SCREEN_RESIZE @@ -489,17 +495,39 @@ int main(int argc, char *argv[]) { Mix_Music *musique_p_e = NULL; //if(Mix_OpenAudio(22050, AUDIO_S16SYS, 2, 640)==-1){ - if(Mix_OpenAudio(44100, MIX_DEFAULT_FORMAT, 2, 1024)==-1){ + if(Mix_OpenAudio(44100, AUDIO_S16, 1, 4096) < 0){ + //if(Mix_OpenAudio(44100, MIX_DEFAULT_FORMAT, 2, 1024)==-1){ printf("Mix_OpenAudio: %s\n", Mix_GetError()); //exit(2); } else{ audio_init_ok = true; - musique_menu_p = Mix_LoadMUS("audio/mm2titl2.mid"); - musique_editeur = Mix_LoadMUS("audio/mm2crash.mid"); - musique_2_p = Mix_LoadMUS("audio/mm2wy1.mid"); - musique_1_p = Mix_LoadMUS("audio/mix_1_p.mid"); - musique_p_e = Mix_LoadMUS("audio/mm2flash.mid"); + const char *music_file; + music_file = "audio/mm2titl2.ogg"; + musique_menu_p = Mix_LoadMUS(music_file); + if(musique_menu_p == NULL){ + printf("Mix_LoadMUS(\"%s\"): %s\n", Mix_GetError(), music_file); + } + music_file = "audio/mm2crash.ogg"; + musique_editeur = Mix_LoadMUS(music_file); + if(musique_editeur == NULL){ + printf("Mix_LoadMUS(\"%s\"): %s\n", Mix_GetError(), music_file); + } + music_file = "audio/mm2wy1.ogg"; + musique_2_p = Mix_LoadMUS(music_file); + if(musique_2_p == NULL){ + printf("Mix_LoadMUS(\"%s\"): %s\n", Mix_GetError(), music_file); + } + music_file = "audio/mix_1_p.ogg"; + musique_1_p = Mix_LoadMUS(music_file); + if(musique_1_p == NULL){ + printf("Mix_LoadMUS(\"%s\"): %s\n", Mix_GetError(), music_file); + } + music_file = "audio/mm2flash.ogg"; + musique_p_e = Mix_LoadMUS(music_file); + if(musique_p_e == NULL){ + printf("Mix_LoadMUS(\"%s\"): %s\n", Mix_GetError(), music_file); + } } #endif //SOUND_SDL_ACTIVATED @@ -540,7 +568,10 @@ int main(int argc, char *argv[]) { #ifdef SOUND_FMOD_ACTIVATED FMUSIC_PlaySong(musique_menu_p); #elif defined(SOUND_SDL_ACTIVATED) - Mix_PlayMusic(musique_menu_p, -1); + if(Mix_PlayMusic(musique_menu_p, -1) < 0){ + printf("Error in File: %s, func: %s, l.%d - Cannot play music!\n", + __FILE__, __func__, __LINE__); + } #endif //SOUND_SDL_ACTIVATED } play_music=0; @@ -560,16 +591,20 @@ int main(int argc, char *argv[]) { break; case SDL_KEYDOWN: - - if(event.key.keysym.sym==SDLK_ESCAPE){ // Veut arrêter le jeu + switch(event.key.keysym.sym){ + + case SDLK_ESCAPE: // Veut arrêter le jeu + case SDLK_q: // Veut arrêter le jeu #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 || event.key.keysym.sym==SDLK_u){ + break; + + case SDLK_UP: + case SDLK_u: switch(choix_actuel){ case 1: menu = IMG_Load("sprite/menu_q.png"); @@ -596,8 +631,10 @@ int main(int argc, char *argv[]) { choix_actuel=5; break; } - } - else if(event.key.keysym.sym==SDLK_DOWN || event.key.keysym.sym==SDLK_d){ + break; + + case SDLK_DOWN: + case SDLK_d: switch(choix_actuel){ case 1: menu = IMG_Load("sprite/menu_2_p.png"); @@ -624,9 +661,11 @@ int main(int argc, char *argv[]) { choix_actuel=1; break; } - } - else if(event.key.keysym.sym==SDLK_RETURN || event.key.keysym.sym==SDLK_KP_ENTER - || event.key.keysym.sym==SDLK_a){ + break; + + case SDLK_RETURN: + case SDLK_KP_ENTER: + case SDLK_a: switch(choix_actuel){ case 1: //on rentre dans le mode 1 joueur. @@ -636,7 +675,10 @@ int main(int argc, char *argv[]) { FMUSIC_PlaySong(musique_1_p); #elif defined(SOUND_SDL_ACTIVATED) Mix_HaltMusic(); - Mix_PlayMusic(musique_1_p, -1); + if(Mix_PlayMusic(musique_1_p, -1) < 0){ + printf("Error in File: %s, func: %s, l.%d - Cannot play music!\n", + __FILE__, __func__, __LINE__); + } #endif //SOUND_SDL_ACTIVATED } while (niveau_reussi< 10){ //En effet il n'y a que 10 niveaux dans ce jeu @@ -645,8 +687,7 @@ int main(int argc, char *argv[]) { niveau_reussi=0; //après game over le joueur repart du niveau 1; game_over=NB_DECES; } - - choix_entrer_dans_niveau=niveau_1_joueur(screen,niveau_reussi+1); + choix_entrer_dans_niveau = niveau_1_joueur(screen,niveau_reussi+1); if (choix_entrer_dans_niveau==0){ ancien_niveau=niveau_reussi; niveau_reussi=main_game(screen,1,niveau_reussi+1,1, kill_bomb, game_over); // le jeu se lance, @@ -668,7 +709,6 @@ int main(int argc, char *argv[]) { break; } } - else{ if(are_you_sure(screen)==1){ //si l'utilisateur veut quitter le mode 1 joueur play_music=1; @@ -693,7 +733,10 @@ int main(int argc, char *argv[]) { FMUSIC_PlaySong(musique_2_p); #elif defined(SOUND_SDL_ACTIVATED) Mix_HaltMusic(); - Mix_PlayMusic(musique_2_p, -1); + if(Mix_PlayMusic(musique_2_p, -1) < 0){ + printf("Error in File: %s, func: %s, l.%d - Cannot play music!\n", + __FILE__, __func__, __LINE__); + } #endif //SOUND_SDL_ACTIVATED } sure=2; @@ -731,7 +774,10 @@ int main(int argc, char *argv[]) { FMUSIC_PlaySong(musique_editeur); #elif defined(SOUND_SDL_ACTIVATED) Mix_HaltMusic(); - Mix_PlayMusic(musique_editeur, -1); + if(Mix_PlayMusic(musique_editeur, -1) < 0){ + printf("Error in File: %s, func: %s, l.%d - Cannot play music!\n", + __FILE__, __func__, __LINE__); + } #endif //SOUND_SDL_ACTIVATED } sure=2; @@ -769,7 +815,10 @@ int main(int argc, char *argv[]) { FMUSIC_PlaySong(musique_p_e); #elif defined(SOUND_SDL_ACTIVATED) Mix_HaltMusic(); - Mix_PlayMusic(musique_p_e, -1); + if(Mix_PlayMusic(musique_p_e, -1) < 0){ + printf("Error in File: %s, func: %s, l.%d - Cannot play music!\n", + __FILE__, __func__, __LINE__); + } #endif //SOUND_SDL_ACTIVATED } sure=2; @@ -819,7 +868,10 @@ int main(int argc, char *argv[]) { #ifdef SOUND_FMOD_ACTIVATED FMUSIC_PlaySong(musique_menu_p); #elif defined(SOUND_SDL_ACTIVATED) - Mix_PlayMusic(musique_menu_p, -1); + if(Mix_PlayMusic(musique_menu_p, -1) < 0){ + printf("Error in File: %s, func: %s, l.%d - Cannot play music!\n", + __FILE__, __func__, __LINE__); + } #endif //SOUND_SDL_ACTIVATED } audio=1; @@ -869,8 +921,13 @@ int main(int argc, char *argv[]) { } break; + + default: + break; + } - default: break; + default: + break; } diff --git a/src/niveau.c b/src/niveau.c index 3c38bb2..53129fb 100644 --- a/src/niveau.c +++ b/src/niveau.c @@ -76,15 +76,16 @@ int niveau_1_joueur(SDL_Surface *screen, int niveau){ switch(event.type) { case SDL_QUIT: - SDL_FreeSurface(menu); + if(menu != NULL) SDL_FreeSurface(menu); return 1; break; case SDL_KEYDOWN: switch(event.key.keysym.sym) { case SDLK_ESCAPE: + case SDLK_q: case SDLK_b: - SDL_FreeSurface(menu); + if(menu != NULL) SDL_FreeSurface(menu); return 1; break; case SDLK_RETURN: @@ -107,7 +108,7 @@ int niveau_1_joueur(SDL_Surface *screen, int niveau){ SDL_Flip(screen); #endif //HW_SCREEN_RESIZE } - SDL_FreeSurface(menu); + if(menu != NULL) SDL_FreeSurface(menu); return 0; } @@ -163,6 +164,7 @@ int niveau_2_joueur(SDL_Surface *screen, int choix_niveau){ { case SDLK_ESCAPE: // Veut arrêter le jeu case SDLK_b: // Veut arrêter le jeu + case SDLK_q: continuer=0; break; case SDLK_UP: @@ -226,7 +228,7 @@ int niveau_2_joueur(SDL_Surface *screen, int choix_niveau){ case SDLK_RETURN: case SDLK_KP_ENTER: case SDLK_a: - SDL_FreeSurface(menu); + if(menu != NULL) SDL_FreeSurface(menu); return choix_actuel; break; @@ -247,7 +249,7 @@ int niveau_2_joueur(SDL_Surface *screen, int choix_niveau){ SDL_Flip(screen); #endif //HW_SCREEN_RESIZE } - SDL_FreeSurface(menu); + if(menu != NULL) SDL_FreeSurface(menu); return 0; } @@ -283,6 +285,7 @@ int editeur_choix_niveau(SDL_Surface *screen){ { case SDLK_ESCAPE: // Veut arrêter le jeu case SDLK_b: // Veut arrêter le jeu + case SDLK_q: continuer=0; break; case SDLK_UP: @@ -346,7 +349,7 @@ int editeur_choix_niveau(SDL_Surface *screen){ case SDLK_RETURN: case SDLK_KP_ENTER: case SDLK_a: - SDL_FreeSurface(menu); + if(menu != NULL) SDL_FreeSurface(menu); return choix_actuel; break; @@ -367,7 +370,7 @@ int editeur_choix_niveau(SDL_Surface *screen){ SDL_Flip(screen); #endif //HW_SCREEN_RESIZE } - SDL_FreeSurface(menu); + if(menu != NULL) SDL_FreeSurface(menu); return 0; } @@ -410,6 +413,7 @@ int are_you_sure(SDL_Surface *screen){ { case SDLK_ESCAPE: // Veut arrêter le jeu case SDLK_b: // Veut arrêter le jeu + case SDLK_q: continuer=0; break; case SDLK_LEFT: @@ -466,7 +470,7 @@ int are_you_sure(SDL_Surface *screen){ SDL_Flip(screen); #endif //HW_SCREEN_RESIZE } - SDL_FreeSurface(menu); + if(menu != NULL) SDL_FreeSurface(menu); return 0; } @@ -502,6 +506,7 @@ int choix_nb_joueurs(SDL_Surface *screen){ { case SDLK_ESCAPE: // Veut arrêter le jeu case SDLK_b: // Veut arrêter le jeu + case SDLK_q: continuer=0; break; case SDLK_UP: @@ -533,7 +538,7 @@ int choix_nb_joueurs(SDL_Surface *screen){ case SDLK_RETURN: case SDLK_KP_ENTER: case SDLK_a: - SDL_FreeSurface(menu); + if(menu != NULL) SDL_FreeSurface(menu); return choix_actuel; break; @@ -554,7 +559,7 @@ int choix_nb_joueurs(SDL_Surface *screen){ SDL_Flip(screen); #endif //HW_SCREEN_RESIZE } - SDL_FreeSurface(menu); + if(menu != NULL) SDL_FreeSurface(menu); return 0; } @@ -590,6 +595,7 @@ int options(SDL_Surface *screen){ { case SDLK_ESCAPE: // Veut arrêter le jeu case SDLK_b: // Veut arrêter le jeu + case SDLK_q: continuer=0; break; case SDLK_LEFT: @@ -679,7 +685,7 @@ int options(SDL_Surface *screen){ case SDLK_RETURN: case SDLK_KP_ENTER: case SDLK_a: - SDL_FreeSurface(menu); + if(menu != NULL) SDL_FreeSurface(menu); return choix_actuel; break; @@ -700,6 +706,6 @@ int options(SDL_Surface *screen){ SDL_Flip(screen); #endif //HW_SCREEN_RESIZE } - SDL_FreeSurface(menu); + if(menu != NULL) SDL_FreeSurface(menu); return 0; }