Functionized powerup determination.
authorlimb <limb@bc5cbbab-a4ec-0310-bb52-ff3d296db539>
Wed, 20 May 2009 19:54:04 +0000 (19:54 +0000)
committerlimb <limb@bc5cbbab-a4ec-0310-bb52-ff3d296db539>
Wed, 20 May 2009 19:54:04 +0000 (19:54 +0000)
Planned additional bosses.

git-svn-id: svn+ssh://svn/var/repos/curfender@794 bc5cbbab-a4ec-0310-bb52-ff3d296db539

layout.txt
main.cpp

index 73b7804..b5a38ea 100644 (file)
 2
 3
 4
-5
\ No newline at end of file
+5
+
+
+Bosses:
+4: Saucer /==O==\
+
+8: Super Saucer /=O=\
+             /===+=+===\
+
+12: Gunboat         /O\
+              <==/==[=]==\==>
+
+16: Skull      (---)
+              (-o-o-)
+               |   |
+               \|_|/
+
+20: Squid         (----)
+                (------)
+                (------)
+                 (----)
+                  |||\
+                 / | \\
+                 | //|
+
+24: Singularity Drone   .
+
index 0b6c7ea..795862c 100644 (file)
--- a/main.cpp
+++ b/main.cpp
@@ -680,6 +680,18 @@ game_object powerup_init(game_object powerup, game_object object){
   return powerup;
 };
 
+void determine_powerup(game_object powerups[], game_object object, int odds){
+  if(rand()%1000>odds){
+    for(int puploop = 0; puploop<4; puploop++){
+      if(powerups[puploop].active==0){
+        powerups[puploop] = powerup_init(powerups[puploop], object);
+       break;
+      };
+    };
+  };
+
+};
+
 game_object player_init(game_object player){
   player.x = 18;
   player.y = rand()%600+20;
@@ -1537,15 +1549,7 @@ int main(){
        //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)))){
-           //powerup?
-           if(rand()%1000>800){
-             for(int puploop = 0; puploop<4; puploop++){
-               if(powerups[puploop].active==0){
-                 powerups[puploop] = powerup_init(powerups[puploop], landers[landerloop]);
-                 break;
-               };
-             };
-           };
+           determine_powerup(powerups, landers[landerloop], 800);
            boom_object(boomstuff, landers[landerloop]);
            landers[landerloop] = object_out(landers[landerloop]);
            score = score + 10;
@@ -1554,15 +1558,7 @@ int main(){
        //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)))){
-           //powerup?
-           if(rand()%1000>800){
-             for(int puploop = 0; puploop<4; puploop++){
-               if(powerups[puploop].active==0){
-                 powerups[puploop] = powerup_init(powerups[puploop], crazies[crazyloop]);
-                 break;
-               };
-             };
-           };
+           determine_powerup(powerups, crazies[crazyloop], 800);           
            boom_object(boomstuff, crazies[crazyloop]);
            crazies[crazyloop] = object_out(crazies[crazyloop]);
            score = score + 10;
@@ -1571,15 +1567,7 @@ int main(){
        //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)))){
-           //powerup?
-           if(rand()%1000>800){
-             for(int puploop = 0; puploop<4; puploop++){
-               if(powerups[puploop].active==0){
-                 powerups[puploop] = powerup_init(powerups[puploop], crawlers[crawlerloop]);
-                 break;
-               };
-             };
-           };
+           determine_powerup(powerups, crawlers[crawlerloop], 800);
            boom_object(boomstuff, crawlers[crawlerloop]);
            crawlers[crawlerloop] = object_out(crawlers[crawlerloop]);
            score = score + 10;
@@ -1590,15 +1578,7 @@ int main(){
          if((abs(player.y-saucer.y)<=40)&&(player.x==saucer.x)&&((player.face==0&&(saucer.y<player.y))||(player.face==1&&(saucer.y>player.y)))){
            saucer.phase = saucer.phase - 5;
            if(saucer.phase<=0){
-             //powerup?
-             if(rand()%1000>600){
-               for(int puploop = 0; puploop<4; puploop++){
-                 if(powerups[puploop].active==0){
-                   powerups[puploop] = powerup_init(powerups[puploop], saucer);
-                   break;
-                 };
-               };
-             };
+             determine_powerup(powerups, saucer, 600);
              boom_object(boomstuff, saucer);
              saucer = object_out(saucer);
              score = score + 100;
@@ -1663,15 +1643,7 @@ int main(){
       smartbombs--;
       for(int landerloop = 0; landerloop<landermax; landerloop++){
        if(abs(player.y-landers[landerloop].y)<=40){
-         //powerup?
-         if(rand()%1000>800){
-           for(int puploop = 0; puploop<4; puploop++){
-             if(powerups[puploop].active==0){
-               powerups[puploop] = powerup_init(powerups[puploop], landers[landerloop]);
-               break;
-             };
-           };
-         };
+         determine_powerup(powerups, landers[landerloop], 800);
          boom_object(boomstuff, landers[landerloop]);
          landers[landerloop] = object_out(landers[landerloop]);
          score = score + 20;
@@ -1722,15 +1694,7 @@ int main(){
          if(landers[landerloop].active==1){
            if(check_collision(bullets[bulletloop], landers[landerloop])==1){
              //kill lander and bullet
-             //powerup?
-             if(rand()%1000>800){
-               for(int puploop = 0; puploop<4; puploop++){
-                 if(powerups[puploop].active==0){
-                   powerups[puploop] = powerup_init(powerups[puploop], landers[landerloop]);
-                   break;
-                 };
-               };
-             };
+             determine_powerup(powerups, landers[landerloop], 800);
              boom_object(boomstuff, landers[landerloop]);
              landers[landerloop] = object_out(landers[landerloop]);
              bullets[bulletloop].vtime = 100;
@@ -1745,15 +1709,7 @@ int main(){
          if(crazies[crazyloop].active==1){
            if(check_collision(bullets[bulletloop], crazies[crazyloop])==1){
              //kill crazy and bullet
-             //powerup?
-             if(rand()%1000>800){
-               for(int puploop = 0; puploop<4; puploop++){
-                 if(powerups[puploop].active==0){
-                   powerups[puploop] = powerup_init(powerups[puploop], crazies[crazyloop]);
-                   break;
-                 };
-               };
-             };
+             determine_powerup(powerups, crazies[crazyloop], 800);           
              boom_object(boomstuff, crazies[crazyloop]);
              crazies[crazyloop] = object_out(crazies[crazyloop]);
              bullets[bulletloop].vtime = 100;
@@ -1768,15 +1724,7 @@ int main(){
          if(crawlers[crawlerloop].active==1){
            if(check_collision(bullets[bulletloop], crawlers[crawlerloop])==1){
              //kill crawler and bullet
-             //powerup?
-             if(rand()%1000>800){
-               for(int puploop = 0; puploop<4; puploop++){
-                 if(powerups[puploop].active==0){
-                   powerups[puploop] = powerup_init(powerups[puploop], crawlers[crawlerloop]);
-                   break;
-                 };
-               };
-             };
+             determine_powerup(powerups, crawlers[crawlerloop], 800);
              boom_object(boomstuff, crawlers[crawlerloop]);
              crawlers[crawlerloop] = object_out(crawlers[crawlerloop]);
              bullets[bulletloop].vtime = 100;
@@ -1792,15 +1740,7 @@ int main(){
            //kill hurt or kill saucer, kill bullet
            saucer.phase = saucer.phase - 1;
            if(saucer.phase<=0){
-             //powerup?
-             if(rand()%1000>600){
-               for(int puploop = 0; puploop<4; puploop++){
-                 if(powerups[puploop].active==0){
-                   powerups[puploop] = powerup_init(powerups[puploop], saucer);
-                   break;
-                 };
-               };
-             };
+             determine_powerup(powerups, saucer, 600);
              boom_object(boomstuff, saucer);
              saucer = object_out(saucer);
              bullets[bulletloop].vtime = 100;