X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fobject%2Fflower.cpp;h=aaccbb3eb8767f26c1192bb0e79a6e286b6dfd9b;hb=c73a530130ab85f54446517dca9d80713cbaaf7e;hp=d4805553b59ea2182230ee9f4d8747d375c66cb2;hpb=9599042661b468aae7bd34dca05441c0ebc93ad7;p=supertux.git diff --git a/src/object/flower.cpp b/src/object/flower.cpp index d4805553b..aaccbb3eb 100644 --- a/src/object/flower.cpp +++ b/src/object/flower.cpp @@ -1,33 +1,50 @@ -#include - -#include -#include "flower.h" -#include "resources.h" -#include "camera.h" -#include "sector.h" -#include "player.h" -#include "app/globals.h" -#include "special/sprite_manager.h" - -Flower::Flower(const Vector& pos, Type _type) - : type(_type) +// SuperTux +// Copyright (C) 2006 Matthias Braun +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +#include "audio/sound_manager.hpp" +#include "object/flower.hpp" +#include "object/player.hpp" +#include "sprite/sprite_manager.hpp" + +Flower::Flower(BonusType _type) : + type(_type), + sprite() { - bbox.set_pos(pos); bbox.set_size(32, 32); - if(_type == FIREFLOWER) - sprite = sprite_manager->create("fireflower"); - else - sprite = sprite_manager->create("iceflower"); + if(type == FIRE_BONUS) { + sprite = sprite_manager->create("images/powerups/fireflower/fireflower.sprite"); + sound_manager->preload("sounds/fire-flower.wav"); + } + else if(type == ICE_BONUS) { + sprite = sprite_manager->create("images/powerups/iceflower/iceflower.sprite"); + sound_manager->preload("sounds/fire-flower.wav"); + } else { + assert(false); + } + + set_group(COLGROUP_TOUCHABLE); } Flower::~Flower() { - delete sprite; } void -Flower::action(float ) +Flower::update(float ) { } @@ -44,12 +61,12 @@ Flower::collision(GameObject& other, const CollisionHit& ) if(!player) return ABORT_MOVE; - if(type == FIREFLOWER) - player->got_power = Player::FIRE_POWER; - else - player->got_power = Player::ICE_POWER; - SoundManager::get()->play_sound(IDToSound(SND_COFFEE)); + if(!player->add_bonus(type, true)) + return FORCE_MOVE; + + sound_manager->play("sounds/fire-flower.wav"); remove_me(); return ABORT_MOVE; } +/* EOF */