#include "audio/sound_manager.hpp"
#include "badguy/badguy.hpp"
+#include "object/broken_brick.hpp"
#include "object/coin.hpp"
#include "object/flower.hpp"
#include "object/growup.hpp"
#include "object/player.hpp"
#include "object/portable.hpp"
#include "supertux/constants.hpp"
+#include "supertux/sector.hpp"
static const float BOUNCY_BRICK_MAX_OFFSET = 8;
static const float BOUNCY_BRICK_SPEED = 90;
static const float BUMP_ROTATION_ANGLE = 10;
Block::Block(SpritePtr newsprite) :
- sprite(newsprite),
- bouncing(false),
- breaking(false),
- bounce_dir(0),
- bounce_offset(0),
+ sprite(newsprite),
+ bouncing(false),
+ breaking(false),
+ bounce_dir(0),
+ bounce_offset(0),
original_y(-1)
{
bbox.set_size(32, 32.1f);
set_group(COLGROUP_STATIC);
- sound_manager->preload("sounds/upgrade.wav");
- sound_manager->preload("sounds/brick.wav");
+ SoundManager::current()->preload("sounds/upgrade.wav");
+ SoundManager::current()->preload("sounds/brick.wav");
}
Block::~Block()
if(coin) {
coin->collect();
}
-
+
//Eggs get jumped
GrowUp* growup = dynamic_cast<GrowUp*> (&other);
if(growup) {
breaking = true;
}
+void
+Block::break_me()
+{
+ Sector* sector = Sector::current();
+ sector->add_object(
+ new BrokenBrick(sprite->clone(), get_pos(), Vector(-100, -400)));
+ sector->add_object(
+ new BrokenBrick(sprite->clone(), get_pos() + Vector(0, 16),
+ Vector(-150, -300)));
+ sector->add_object(
+ new BrokenBrick(sprite->clone(), get_pos() + Vector(16, 0),
+ Vector(100, -400)));
+ sector->add_object(
+ new BrokenBrick(sprite->clone(), get_pos() + Vector(16, 16),
+ Vector(150, -300)));
+ remove_me();
+}
+
/* EOF */