X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Fobject%2Fblock.cpp;h=6d0c5f4a650dad77e045289e45f4e11a873ce57f;hb=2bfc38ef3208dee885452cfa59a7c7df671eb24d;hp=dd2e11c8455183208a53d8a5812a867689af5ec3;hpb=0540d5db4c57c585615a78ccf33603ff3628db95;p=supertux.git diff --git a/src/object/block.cpp b/src/object/block.cpp index dd2e11c84..6d0c5f4a6 100644 --- a/src/object/block.cpp +++ b/src/object/block.cpp @@ -1,7 +1,7 @@ // $Id$ -// +// // SuperTux -// Copyright (C) 2005 Matthias Braun +// 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 @@ -12,14 +12,15 @@ // 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, write to the Free Software -// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -// 02111-1307, USA. +// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + #include #include "block.hpp" +#include "log.hpp" #include @@ -51,6 +52,7 @@ Block::Block(Sprite* newsprite) : sprite(newsprite), bouncing(false), bounce_dir(0), bounce_offset(0) { bbox.set_size(32, 32.1); + set_group(COLGROUP_STATIC); flags |= FLAG_SOLID; } @@ -121,7 +123,7 @@ Block::start_bounce() //--------------------------------------------------------------------------- BonusBlock::BonusBlock(const Vector& pos, int data) - : Block(sprite_manager->create("bonusblock")), object(0) + : Block(sprite_manager->create("images/objects/bonus_block/bonusblock.sprite")), object(0) { bbox.set_pos(pos); sprite->set_action("normal"); @@ -132,14 +134,14 @@ BonusBlock::BonusBlock(const Vector& pos, int data) case 4: contents = CONTENT_1UP; break; case 5: contents = CONTENT_ICEGROW; break; default: - std::cerr << "Invalid box contents!\n"; + log_warning << "Invalid box contents" << std::endl; contents = CONTENT_COIN; break; } } BonusBlock::BonusBlock(const lisp::Lisp& lisp) - : Block(sprite_manager->create("bonusblock")) + : Block(sprite_manager->create("images/objects/bonus_block/bonusblock.sprite")) { Vector pos; @@ -167,7 +169,7 @@ BonusBlock::BonusBlock(const lisp::Lisp& lisp) } else if(contentstring == "custom") { contents = CONTENT_CUSTOM; } else { - std::cerr << "Invalid box contents '" << contentstring << "'.\n"; + log_warning << "Invalid box contents '" << contentstring << "'" << std::endl; } } else { if(contents == CONTENT_CUSTOM) { @@ -177,7 +179,7 @@ BonusBlock::BonusBlock(const lisp::Lisp& lisp) throw std::runtime_error( "Only MovingObjects are allowed inside BonusBlocks"); } else { - std::cerr << "Invalid element '" << token << "' in bonusblock.\n"; + log_warning << "Invalid element '" << token << "' in bonusblock" << std::endl; } } } @@ -202,8 +204,8 @@ BonusBlock::hit(Player& ) void BonusBlock::try_open() { - if(sprite->get_action_name() == "empty") { - sound_manager->play("sounds/brick.ogg"); + if(sprite->get_action() == "empty") { + sound_manager->play("sounds/brick.wav"); return; } @@ -212,7 +214,7 @@ BonusBlock::try_open() switch(contents) { case CONTENT_COIN: Sector::current()->add_object(new BouncyCoin(get_pos())); - player.get_status()->incCoins(); + player.get_status()->add_coins(1); break; case CONTENT_FIREGROW: @@ -224,7 +226,7 @@ BonusBlock::try_open() get_pos(), new Flower(Flower::FIREFLOWER)); sector->add_object(riser); } - sound_manager->play("sounds/upgrade.ogg"); + sound_manager->play("sounds/upgrade.wav"); break; case CONTENT_ICEGROW: @@ -236,7 +238,7 @@ BonusBlock::try_open() get_pos(), new Flower(Flower::ICEFLOWER)); sector->add_object(riser); } - sound_manager->play("sounds/upgrade.ogg"); + sound_manager->play("sounds/upgrade.wav"); break; case CONTENT_STAR: @@ -251,7 +253,7 @@ BonusBlock::try_open() SpecialRiser* riser = new SpecialRiser(get_pos(), object); object = 0; sector->add_object(riser); - sound_manager->play("sounds/upgrade.ogg"); + sound_manager->play("sounds/upgrade.wav"); break; //default: @@ -267,7 +269,7 @@ IMPLEMENT_FACTORY(BonusBlock, "bonusblock"); //--------------------------------------------------------------------------- Brick::Brick(const Vector& pos, int data) - : Block(sprite_manager->create("brick")), breakable(false), + : Block(sprite_manager->create("images/objects/bonus_block/brick.sprite")), breakable(false), coin_counter(0) { bbox.set_pos(pos); @@ -280,7 +282,7 @@ Brick::Brick(const Vector& pos, int data) void Brick::hit(Player& ) { - if(sprite->get_action_name() == "empty") + if(sprite->get_action() == "empty") return; try_break(true); @@ -289,16 +291,16 @@ Brick::hit(Player& ) void Brick::try_break(bool playerhit) { - if(sprite->get_action_name() == "empty") + if(sprite->get_action() == "empty") return; - sound_manager->play("sounds/brick.ogg"); + sound_manager->play("sounds/brick.wav"); Sector* sector = Sector::current(); Player& player = *(sector->player); if(coin_counter > 0) { sector->add_object(new BouncyCoin(get_pos())); coin_counter--; - player.get_status()->incCoins(); + player.get_status()->add_coins(1); if(coin_counter == 0) sprite->set_action("empty"); start_bounce();