X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Fbadguy%2Fmole.cpp;h=7f1bb7eb250e8a4dc342b66a22466cc69e9fe37b;hb=13c84268f16872f9b442251c4175a3a1a7a7899a;hp=73c1877412ada4060561932c8bb26e82108e5708;hpb=c307442e4bf1352cf1807b171b5ab175ba063b31;p=supertux.git diff --git a/src/badguy/mole.cpp b/src/badguy/mole.cpp index 73c187741..7f1bb7eb2 100644 --- a/src/badguy/mole.cpp +++ b/src/badguy/mole.cpp @@ -33,15 +33,21 @@ static const float THROW_INTERVAL = 1; /**< time between two thrown rocks */ static const float THROW_VELOCITY = 400; /**< initial velocity of thrown rocks */ Mole::Mole(const lisp::Lisp& reader) - : BadGuy(reader, "images/creatures/mole/mole.sprite", LAYER_TILES-1), state(PRE_THROWING) + : BadGuy(reader, "images/creatures/mole/mole.sprite", LAYER_TILES-1), state(PRE_THROWING) { physic.enable_gravity(false); + sound_manager->preload("sounds/fall.wav"); + sound_manager->preload("sounds/squish.wav"); + sound_manager->preload("sounds/dartfire.wav"); } Mole::Mole(const Vector& pos) - : BadGuy(pos, "images/creatures/mole/mole.sprite", LAYER_TILES-1), state(PRE_THROWING) + : BadGuy(pos, "images/creatures/mole/mole.sprite", LAYER_TILES-1), state(PRE_THROWING) { physic.enable_gravity(false); + sound_manager->preload("sounds/fall.wav"); + sound_manager->preload("sounds/squish.wav"); + sound_manager->preload("sounds/dartfire.wav"); } void @@ -104,26 +110,26 @@ Mole::active_update(float elapsed_time) switch (state) { case PRE_THROWING: if (timer.check()) { - set_state(THROWING); + set_state(THROWING); } break; case THROWING: if (throw_timer.check()) { throw_rock(); - throw_timer.start(THROW_INTERVAL); + throw_timer.start(THROW_INTERVAL); } if (timer.check()) { - set_state(POST_THROWING); + set_state(POST_THROWING); } break; case POST_THROWING: if (timer.check()) { - set_state(PEEKING); + set_state(PEEKING); } break; case PEEKING: if (sprite->animation_done()) { - set_state(PRE_THROWING); + set_state(PRE_THROWING); } break; case DEAD: @@ -132,33 +138,33 @@ Mole::active_update(float elapsed_time) } -void +void Mole::set_state(MoleState new_state) { switch (new_state) { case PRE_THROWING: sprite->set_action("idle"); - set_group(COLGROUP_DISABLED); + set_colgroup_active(COLGROUP_DISABLED); timer.start(IDLE_TIME); break; case THROWING: sprite->set_action("idle"); - set_group(COLGROUP_DISABLED); + set_colgroup_active(COLGROUP_DISABLED); timer.start(THROW_TIME); throw_timer.start(THROW_INTERVAL); break; case POST_THROWING: sprite->set_action("idle"); - set_group(COLGROUP_DISABLED); + set_colgroup_active(COLGROUP_DISABLED); timer.start(IDLE_TIME); break; case PEEKING: sprite->set_action("peeking", 1); - set_group(COLGROUP_STATIC); + set_colgroup_active(COLGROUP_STATIC); break; case DEAD: sprite->set_action("idle"); - set_group(COLGROUP_DISABLED); + set_colgroup_active(COLGROUP_DISABLED); break; } @@ -166,4 +172,3 @@ Mole::set_state(MoleState new_state) } IMPLEMENT_FACTORY(Mole, "mole") -