Use constant game object in powerup determination.
authorGwyn Ciesla <gwync@protonmail.com>
Thu, 27 Aug 2020 14:34:39 +0000 (09:34 -0500)
committerGwyn Ciesla <gwync@protonmail.com>
Thu, 27 Aug 2020 14:34:39 +0000 (09:34 -0500)
main.cpp
powerup.cpp
powerup.h

index b87a68f..7cb914b 100644 (file)
--- a/main.cpp
+++ b/main.cpp
@@ -1100,7 +1100,8 @@ int main(int argc, char *argv[]){
        //kill landers
        for(int landerloop = 0; landerloop<landermax; landerloop++){
          if(((abs(player.y-landers[landerloop].y)<=80)||(abs(player.y-landers[landerloop].y)>=540))&&(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, pupcreatesound, pupcreatechannel);
+           const game_object power_obj = landers[landerloop];
+           determine_powerup(powerups, power_obj, 800, pupcreatesound, pupcreatechannel);
            drawlocation = boom_object(drawlocation, boomstuff, landers[landerloop], boomsound, boomchannel);
            landers[landerloop] = object_out(landers[landerloop]);
            score = score + 15;
@@ -1109,7 +1110,8 @@ int main(int argc, char *argv[]){
        //kill crazies
        for(int crazyloop = 0; crazyloop<landermax; crazyloop++){
          if(((abs(player.y-crazies[crazyloop].y)<=80)||(abs(player.y-crazies[crazyloop].y)>=540))&&(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, pupcreatesound, pupcreatechannel);
+           const game_object power_obj = crazies[crazyloop];
+           determine_powerup(powerups, power_obj, 800, pupcreatesound, pupcreatechannel);
            drawlocation = boom_object(drawlocation, boomstuff, crazies[crazyloop], boomsound, boomchannel);
            crazies[crazyloop] = object_out(crazies[crazyloop]);
            score = score + 15;
@@ -1118,7 +1120,8 @@ int main(int argc, char *argv[]){
        //kill crawlers
        for(int crawlerloop = 0; crawlerloop<crawlermax; crawlerloop++){
          if(((abs(player.y-crawlers[crawlerloop].y)<=80)||(abs(player.y-crawlers[crawlerloop].y)>=540))&&(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, pupcreatesound, pupcreatechannel);
+           const game_object power_obj = crawlers[crawlerloop];
+           determine_powerup(powerups, power_obj, 800, pupcreatesound, pupcreatechannel);
            drawlocation = boom_object(drawlocation, boomstuff, crawlers[crawlerloop], boomsound, boomchannel);
            crawlers[crawlerloop] = object_out(crawlers[crawlerloop]);
            score = score + 15;
@@ -1130,7 +1133,8 @@ int main(int argc, char *argv[]){
            if(((abs(player.y-bosses[bossloop].y)<=80)||(abs(player.y-bosses[bossloop].y)>=540))&&(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, pupcreatesound, pupcreatechannel);
+               const game_object power_obj = bosses[bossloop];
+               determine_powerup(powerups, power_obj, 600, pupcreatesound, pupcreatechannel);
                drawlocation = boom_object(drawlocation, boomstuff, bosses[bossloop], boomsound, boomchannel);
                bosses[bossloop] = object_out(bosses[bossloop]);
                score = score + 75;
index 6e2d69c..c6b6331 100644 (file)
@@ -45,7 +45,7 @@ game_object powerup_init(game_object powerup, game_object object){
   return powerup;
 };
 
-void determine_powerup(game_object powerups[], game_object& object, int odds, Mix_Chunk *sound, int channel){
+void determine_powerup(game_object powerups[], const 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){
index 653d59d..7c79584 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, Mix_Chunk*, int);
+void determine_powerup(game_object[], const game_object&, int, Mix_Chunk*, int);