Fire should be working again.
authorRicardo Cruz <rick2@aeiou.pt>
Wed, 12 May 2004 18:28:37 +0000 (18:28 +0000)
committerRicardo Cruz <rick2@aeiou.pt>
Wed, 12 May 2004 18:28:37 +0000 (18:28 +0000)
Unfortanely, both ice and fire shots crash the game when colliding with a badguy.

SVN-Revision: 1139

src/special.cpp
src/world.cpp

index 68cfb85..ab9874a 100644 (file)
@@ -36,6 +36,7 @@ Sprite* img_icebullet;
 Sprite* img_star;
 Sprite* img_growup;
 Sprite* img_iceflower;
+Sprite* img_fireflower;
 Sprite* img_1up;
 
 #define GROWUP_SPEED 1.0f
@@ -107,7 +108,7 @@ Bullet::action(double frame_ratio)
 
   if(kind == FIRE_BULLET)
     base.ym = base.ym + 0.5 * frame_ratio;
-  else if(kind == FIRE_BULLET)
+  else if(kind == ICE_BULLET)
     base.ym = 0;
 
   if (base.x < scroll_x ||
@@ -130,7 +131,7 @@ Bullet::draw()
     {
       if(kind == FIRE_BULLET)
         img_firebullet->draw(base.x, base.y);
-      else if(kind == FIRE_BULLET)
+      else if(kind == ICE_BULLET)
         img_icebullet->draw(base.x, base.y);
     }
 }
@@ -162,7 +163,7 @@ Upgrade::init(float x_, float y_, Direction dir_, UpgradeKind kind_)
     physic.set_velocity(dir == LEFT ? -1 : 1, 4);
     physic.enable_gravity(true);
     base.height = 32;
-  } else if (kind == UPGRADE_ICEFLOWER) {
+  } else if (kind == UPGRADE_ICEFLOWER || kind == UPGRADE_FIREFLOWER) {
     // nothing
   } else if (kind == UPGRADE_GROWUP) {
     physic.set_velocity(dir == LEFT ? -GROWUP_SPEED : GROWUP_SPEED, 0);
@@ -189,7 +190,8 @@ Upgrade::remove_me()
 void
 Upgrade::action(double frame_ratio)
 {
-  if (kind == UPGRADE_ICEFLOWER || kind == UPGRADE_GROWUP) {
+  if (kind == UPGRADE_ICEFLOWER || kind == UPGRADE_FIREFLOWER
+      || kind == UPGRADE_GROWUP) {
     if (base.height < 32) {
       /* Rise up! */
       base.height = base.height + 0.7 * frame_ratio;
@@ -270,6 +272,8 @@ Upgrade::draw()
         img_growup->draw_part(0,0,dest.x,dest.y,dest.w,dest.h);
       else if (kind == UPGRADE_ICEFLOWER)
         img_iceflower->draw_part(0,0,dest.x,dest.y,dest.w,dest.h);
+      else if (kind == UPGRADE_FIREFLOWER)
+        img_fireflower->draw_part(0,0,dest.x,dest.y,dest.w,dest.h);
       else if (kind == UPGRADE_HERRING)
         img_star->draw_part(0,0,dest.x,dest.y,dest.w,dest.h);
       else if (kind == UPGRADE_1UP)
@@ -287,6 +291,11 @@ Upgrade::draw()
           img_iceflower->draw(
                        base.x, base.y);
         }
+      else if (kind == UPGRADE_FIREFLOWER)
+        {
+          img_fireflower->draw(
+                       base.x, base.y);
+        }
       else if (kind == UPGRADE_HERRING)
         {
           img_star->draw(
@@ -353,6 +362,12 @@ Upgrade::collision(void* p_c_object, int c_object, CollisionType type)
           pplayer->grow();
           pplayer->got_power = pplayer->ICE_POWER;
         }
+      else if (kind == UPGRADE_FIREFLOWER)
+        {
+          play_sound(sounds[SND_COFFEE], SOUND_CENTER_SPEAKER);
+          pplayer->grow();
+          pplayer->got_power = pplayer->FIRE_POWER;
+        }
       else if (kind == UPGRADE_HERRING)
         {
           play_sound(sounds[SND_HERRING], SOUND_CENTER_SPEAKER);
@@ -376,6 +391,7 @@ void load_special_gfx()
 {
   img_growup    = sprite_manager->load("egg");
   img_iceflower = sprite_manager->load("iceflower");
+  img_fireflower = sprite_manager->load("fireflower");
   img_star      = sprite_manager->load("star");
   img_1up       = sprite_manager->load("1up");
 
index daa399b..827433e 100644 (file)
@@ -671,7 +671,15 @@ World::tryemptybox(float x, float y, Direction col_side)
       player_status.distros++;
       break;
 
-    case 2: // Add an upgrade!
+    case 2: // Add a fire flower upgrade!
+      if (tux.size == SMALL)     /* Tux is small, add mints! */
+        add_upgrade(posx, posy, col_side, UPGRADE_GROWUP);
+      else     /* Tux is big, add a fireflower: */
+        add_upgrade(posx, posy, col_side, UPGRADE_FIREFLOWER);
+      play_sound(sounds[SND_UPGRADE], SOUND_CENTER_SPEAKER);
+      break;
+    
+    case 5: // Add an ice flower upgrade!
       if (tux.size == SMALL)     /* Tux is small, add mints! */
         add_upgrade(posx, posy, col_side, UPGRADE_GROWUP);
       else     /* Tux is big, add an iceflower: */