X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Fobject%2Fpowerup.cpp;h=4e14f93db089db09bf85a17e5d9db1fab9ed4687;hb=fe138b9ec292ca9679b43cf5c4555f0193bab25d;hp=2e401ae765d49f6923008c8734dcd3f6c4bfaaae;hpb=07ddaed2a657e4d2a3d038fed223fc5827159caf;p=supertux.git diff --git a/src/object/powerup.cpp b/src/object/powerup.cpp index 2e401ae76..4e14f93db 100644 --- a/src/object/powerup.cpp +++ b/src/object/powerup.cpp @@ -19,7 +19,9 @@ #include +#include #include +#include #include "powerup.hpp" #include "resources.hpp" #include "player.hpp" @@ -33,7 +35,8 @@ PowerUp::PowerUp(const lisp::Lisp& lisp) { lisp.get("x", bbox.p1.x); lisp.get("y", bbox.p1.y); - lisp.get("sprite", sprite_name); + if (!lisp.get("sprite", sprite_name)) + throw std::runtime_error("no sprite file set for powerup"); lisp.get("script", script); no_physics = false; lisp.get("disable-physics", no_physics); @@ -76,10 +79,10 @@ PowerUp::collision(GameObject& other, const CollisionHit& hit) // some defaults if no script has been set if (sprite_name == "images/powerups/egg/egg.sprite") { - player->set_bonus(GROWUP_BONUS, true); + player->add_bonus(GROWUP_BONUS, true); sound_manager->play("sounds/grow.wav"); } else if (sprite_name == "images/powerups/fireflower/fireflower.sprite") { - player->set_bonus(FIRE_BONUS, true); + player->add_bonus(FIRE_BONUS, true); sound_manager->play("sounds/fire-flower.wav"); } else if (sprite_name == "images/powerups/star/star.sprite") { player->make_invincible();