Integrate powerup create sound.
authorlimb <limb@bc5cbbab-a4ec-0310-bb52-ff3d296db539>
Wed, 3 Jun 2009 18:44:03 +0000 (18:44 +0000)
committerlimb <limb@bc5cbbab-a4ec-0310-bb52-ff3d296db539>
Wed, 3 Jun 2009 18:44:03 +0000 (18:44 +0000)
git-svn-id: svn+ssh://svn/var/repos/curfender@822 bc5cbbab-a4ec-0310-bb52-ff3d296db539

main.cpp
powerup.cpp
powerup.h

index b94e70d..96f362a 100644 (file)
--- a/main.cpp
+++ b/main.cpp
@@ -991,7 +991,7 @@ int main(int argc, char *argv[]){
        //kill landers
        for(int landerloop = 0; landerloop<landermax; landerloop++){
          if((abs(player.y-landers[landerloop].y)<=40)&&(player.x==landers[landerloop].x)&&((player.face==0&&(landers[landerloop].y<player.y))||(player.face==1&&(landers[landerloop].y>player.y)))){
-           determine_powerup(powerups, landers[landerloop], 800);
+           determine_powerup(powerups, landers[landerloop], 800, pupcreatesound, pupcreatechannel);
            boom_object(boomstuff, landers[landerloop], boomsound, boomchannel);
            landers[landerloop] = object_out(landers[landerloop]);
            score = score + 10;
@@ -1000,7 +1000,7 @@ int main(int argc, char *argv[]){
        //kill crazies
        for(int crazyloop = 0; crazyloop<landermax; crazyloop++){
          if((abs(player.y-crazies[crazyloop].y)<=40)&&(player.x==crazies[crazyloop].x)&&((player.face==0&&(crazies[crazyloop].y<player.y))||(player.face==1&&(crazies[crazyloop].y>player.y)))){
-           determine_powerup(powerups, crazies[crazyloop], 800);
+           determine_powerup(powerups, crazies[crazyloop], 800, pupcreatesound, pupcreatechannel);
            boom_object(boomstuff, crazies[crazyloop], boomsound, boomchannel);     
            crazies[crazyloop] = object_out(crazies[crazyloop]);
            score = score + 10;
@@ -1009,7 +1009,7 @@ int main(int argc, char *argv[]){
        //kill crawlers
        for(int crawlerloop = 0; crawlerloop<crawlermax; crawlerloop++){
          if((abs(player.y-crawlers[crawlerloop].y)<=40)&&(player.x==crawlers[crawlerloop].x)&&((player.face==0&&(crawlers[crawlerloop].y<player.y))||(player.face==1&&(crawlers[crawlerloop].y>player.y)))){
-           determine_powerup(powerups, crawlers[crawlerloop], 800);
+           determine_powerup(powerups, crawlers[crawlerloop], 800, pupcreatesound, pupcreatechannel);
            boom_object(boomstuff, crawlers[crawlerloop], boomsound, boomchannel);
            crawlers[crawlerloop] = object_out(crawlers[crawlerloop]);
            score = score + 10;
@@ -1021,7 +1021,7 @@ int main(int argc, char *argv[]){
            if((abs(player.y-bosses[bossloop].y)<=40)&&(player.x==bosses[bossloop].x)&&((player.face==0&&(bosses[bossloop].y<player.y))||(player.face==1&&(bosses[bossloop].y>player.y)))){
              bosses[bossloop].phase = bosses[bossloop].phase - 5;
              if(bosses[bossloop].phase<=0){
-               determine_powerup(powerups, bosses[bossloop], 600);
+               determine_powerup(powerups, bosses[bossloop], 600, pupcreatesound, pupcreatechannel);
                boom_object(boomstuff, bosses[bossloop], boomsound, boomchannel);
                bosses[bossloop] = object_out(bosses[bossloop]);
                score = score + 100;
@@ -1089,7 +1089,7 @@ int main(int argc, char *argv[]){
       smartbombs--;
       for(int landerloop = 0; landerloop<landermax; landerloop++){
        if(abs(player.y-landers[landerloop].y)<=40){
-         determine_powerup(powerups, landers[landerloop], 800);
+         determine_powerup(powerups, landers[landerloop], 800, pupcreatesound, pupcreatechannel);
          boom_object(boomstuff, landers[landerloop], boomsound, boomchannel);
          landers[landerloop] = object_out(landers[landerloop]);
          score = score + 20;
@@ -1142,7 +1142,7 @@ int main(int argc, char *argv[]){
          if(landers[landerloop].active==1){
            if(check_collision(bullets[bulletloop], landers[landerloop])==1){
              //kill lander and bullet
-             determine_powerup(powerups, landers[landerloop], 800);
+             determine_powerup(powerups, landers[landerloop], 800, pupcreatesound, pupcreatechannel);
              boom_object(boomstuff, landers[landerloop], boomsound, boomchannel);
              landers[landerloop] = object_out(landers[landerloop]);
              bullets[bulletloop].vtime = 100;
@@ -1157,7 +1157,7 @@ int main(int argc, char *argv[]){
          if(crazies[crazyloop].active==1){
            if(check_collision(bullets[bulletloop], crazies[crazyloop])==1){
              //kill crazy and bullet
-             determine_powerup(powerups, crazies[crazyloop], 800);           
+             determine_powerup(powerups, crazies[crazyloop], 800, pupcreatesound, pupcreatechannel);         
              boom_object(boomstuff, crazies[crazyloop], boomsound, boomchannel);
              crazies[crazyloop] = object_out(crazies[crazyloop]);
              bullets[bulletloop].vtime = 100;
@@ -1172,7 +1172,7 @@ int main(int argc, char *argv[]){
          if(crawlers[crawlerloop].active==1){
            if(check_collision(bullets[bulletloop], crawlers[crawlerloop])==1){
              //kill crawler and bullet
-             determine_powerup(powerups, crawlers[crawlerloop], 800);
+             determine_powerup(powerups, crawlers[crawlerloop], 800, pupcreatesound, pupcreatechannel);
              boom_object(boomstuff, crawlers[crawlerloop], boomsound, boomchannel);
              crawlers[crawlerloop] = object_out(crawlers[crawlerloop]);
              bullets[bulletloop].vtime = 100;
@@ -1189,7 +1189,7 @@ int main(int argc, char *argv[]){
              //hurt or kill boss, kill bullet
              bosses[bossloop].phase = bosses[bossloop].phase - 1;
              if(bosses[bossloop].phase<=0){
-               determine_powerup(powerups, bosses[bossloop], 600);
+               determine_powerup(powerups, bosses[bossloop], 600, pupcreatesound, pupcreatechannel);
                boom_object(boomstuff, bosses[bossloop], boomsound, boomchannel);
                bosses[bossloop] = object_out(bosses[bossloop]);
                bullets[bulletloop].vtime = 100;
index 0a8b8cc..d65e9ce 100644 (file)
@@ -1,7 +1,10 @@
 #include <cstdlib>
 #include <string.h>
+#include "SDL/SDL.h"
+#include "SDL/SDL_mixer.h"
 
 #include "game_object.h"
+#include "play_sound_effect.h"
 
 game_object powerup_init(game_object powerup, game_object object){
   //Call immediately before an object_out
@@ -36,10 +39,11 @@ game_object powerup_init(game_object powerup, game_object object){
   return powerup;
 };
 
-void determine_powerup(game_object powerups[], game_object object, int odds){
+void determine_powerup(game_object powerups[], game_object object, int odds, Mix_Chunk *sound, int channel){
   if(rand()%1000>odds){
     for(int puploop = 0; puploop<4; puploop++){
       if(powerups[puploop].active==0){
+        channel = play_sound_effect(sound);
         powerups[puploop] = powerup_init(powerups[puploop], object);
        break;
       };
index e5ee65a..9fc7f80 100644 (file)
--- a/powerup.h
+++ b/powerup.h
@@ -1,2 +1,2 @@
 game_object powerup_init(game_object, game_object);
-void determine_powerup(game_object[], game_object, int);
+void determine_powerup(game_object[], game_object, int, Mix_Chunk *sound, int channel);