Added tripshot, shield, smartbomb, life powerups.
authorlimb <limb@bc5cbbab-a4ec-0310-bb52-ff3d296db539>
Sat, 10 Feb 2007 22:52:28 +0000 (22:52 +0000)
committerlimb <limb@bc5cbbab-a4ec-0310-bb52-ff3d296db539>
Sat, 10 Feb 2007 22:52:28 +0000 (22:52 +0000)
git-svn-id: svn+ssh://svn/var/repos/curfender@631 bc5cbbab-a4ec-0310-bb52-ff3d296db539

CHANGELOG
main.cpp

index d644b42..02831b7 100644 (file)
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,4 @@
+Tripleshot, shield, life, smartbomb powerups.
 Landers don't fire while chasing pods.
 Implemented triple shot.  Needs powerup to activate.
 Implemented shields. Replenished by level-up.
index e0f6483..7ef7c0a 100644 (file)
--- a/main.cpp
+++ b/main.cpp
@@ -527,8 +527,21 @@ game_object powerup_init(game_object powerup, game_object object){
     };
   powerup.speed = 1;
   
-  strcpy (powerup.line0, "(T)");
+  int fodder = rand()%1000;
 
+  if(fodder>=750){
+    strcpy (powerup.line0, "T");
+  };
+  if(fodder>=500&&fodder<750){
+    strcpy (powerup.line0, "S");
+  };
+  if(fodder>=250&&fodder<500){
+    strcpy (powerup.line0, "L");
+  };
+  if(fodder<250){
+    strcpy (powerup.line0, "B");
+  };
+  
   return powerup;
 };
 
@@ -1087,6 +1100,25 @@ int main(){
       };
     };
 
+    //check for powerup pickup
+    for(int puploop = 0; puploop<4; puploop++){
+      if((powerups[puploop].active==1)&&(check_collision(powerups[puploop], player)==1)){
+       powerups[puploop] = object_out(powerups[puploop]);
+       if(strncmp(powerups[puploop].line0, "T", 1)==0){
+         tripshot = tripshot + 100;
+       };
+       if(strncmp(powerups[puploop].line0, "S", 1)==0){
+         shieldsleft = shieldsleft + 100;
+       };
+       if(strncmp(powerups[puploop].line0, "L", 1)==0){
+         lives++;
+       };
+       if(strncmp(powerups[puploop].line0, "B", 1)==0){
+         smartbombs++;
+       };
+      };
+    };
+    
     //check for / process pod pickup
     for(int podloop = 0; podloop<podmax; podloop++){ 
       if((pod_in==0)&&(pods[podloop].active==1)&&(check_collision(pods[podloop], player)==1)){
@@ -1179,6 +1211,15 @@ 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;
+             };
+           };
+         };
          landers[landerloop] = object_out(landers[landerloop]);
          score = score + 20;
        };
@@ -1210,6 +1251,15 @@ 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;
+                 };
+               };
+             };
              landers[landerloop] = object_out(landers[landerloop]);
              bullets[bulletloop].vtime = 100;
              bullets[bulletloop] = age_bullet(bullets[bulletloop]);
@@ -1223,6 +1273,15 @@ 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;
+                 };
+               };
+             };
              crazies[crazyloop] = object_out(crazies[crazyloop]);
              bullets[bulletloop].vtime = 100;
              bullets[bulletloop] = age_bullet(bullets[bulletloop]);