From e651ca2c6bee66fe9edcdcb5b9434dbf6f2e9cbc Mon Sep 17 00:00:00 2001 From: Ricardo Cruz Date: Wed, 12 May 2004 18:28:37 +0000 Subject: [PATCH] Fire should be working again. Unfortanely, both ice and fire shots crash the game when colliding with a badguy. SVN-Revision: 1139 --- src/special.cpp | 24 ++++++++++++++++++++---- src/world.cpp | 10 +++++++++- 2 files changed, 29 insertions(+), 5 deletions(-) diff --git a/src/special.cpp b/src/special.cpp index 68cfb8550..ab9874acd 100644 --- a/src/special.cpp +++ b/src/special.cpp @@ -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"); diff --git a/src/world.cpp b/src/world.cpp index daa399b88..827433e38 100644 --- a/src/world.cpp +++ b/src/world.cpp @@ -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: */ -- 2.11.0