- if(sprite->get_action() == "empty") {
- sound_manager->play("sounds/brick.wav");
- return;
- }
-
- Sector* sector = Sector::current();
- assert(sector);
- assert(sector->player);
- Player& player = *(sector->player);
- Direction direction = (player.get_bbox().get_middle().x > get_bbox().get_middle().x) ? LEFT : RIGHT;
-
- switch(contents) {
- case CONTENT_COIN:
- Sector::current()->add_object(new BouncyCoin(get_pos()));
- player.get_status()->add_coins(1);
- break;
-
- case CONTENT_FIREGROW:
- if(player.get_status()->bonus == NO_BONUS) {
- SpecialRiser* riser = new SpecialRiser(get_pos(), new GrowUp(direction));
- sector->add_object(riser);
- } else {
- SpecialRiser* riser = new SpecialRiser(
- get_pos(), new Flower(FIRE_BONUS));
- sector->add_object(riser);
- }
- sound_manager->play("sounds/upgrade.wav");
- break;
-
- case CONTENT_ICEGROW:
- if(player.get_status()->bonus == NO_BONUS) {
- SpecialRiser* riser = new SpecialRiser(get_pos(), new GrowUp(direction));
- sector->add_object(riser);
- } else {
- SpecialRiser* riser = new SpecialRiser(
- get_pos(), new Flower(ICE_BONUS));
- sector->add_object(riser);
- }
- sound_manager->play("sounds/upgrade.wav");
- break;
-
- case CONTENT_STAR:
- sector->add_object(new Star(get_pos() + Vector(0, -32), direction));
- break;
-
- case CONTENT_1UP:
- sector->add_object(new OneUp(get_pos(), direction));
- break;
-
- case CONTENT_CUSTOM:
- SpecialRiser* riser = new SpecialRiser(get_pos(), object);
- object = 0;
- sector->add_object(riser);
- sound_manager->play("sounds/upgrade.wav");
- break;
- }
-
- start_bounce();
- sprite->set_action("empty");