X-Git-Url: https://git.octo.it/?a=blobdiff_plain;ds=sidebyside;f=src%2Fobject%2Fexplosion.cpp;h=828f02bb1ee0f96f6a7d31696181e0f0159414c6;hb=1b0e66b3b40159027706a4e0df0677cd801ed0b4;hp=543ef2b3fdfad92193dcb9cc7aade13b40665004;hpb=2da0aee5449da7a482152d9544553d68d70a7bed;p=supertux.git diff --git a/src/object/explosion.cpp b/src/object/explosion.cpp index 543ef2b3f..828f02bb1 100644 --- a/src/object/explosion.cpp +++ b/src/object/explosion.cpp @@ -35,10 +35,10 @@ Explosion::Explosion(const Vector& pos) : push(false), state(STATE_WAITING), light(0.0f,0.0f,0.0f), - lightsprite(sprite_manager->create("images/objects/lightmap_light/lightmap_light-large.sprite")) + lightsprite(SpriteManager::current()->create("images/objects/lightmap_light/lightmap_light-large.sprite")) { - sound_manager->preload("sounds/explosion.wav"); - sound_manager->preload("sounds/firecracker.ogg"); + SoundManager::current()->preload("sounds/explosion.wav"); + SoundManager::current()->preload("sounds/firecracker.ogg"); set_pos(get_pos() - (get_bbox().get_middle() - get_pos())); lightsprite->set_blend(Blend(GL_SRC_ALPHA, GL_ONE)); lightsprite->set_color(Color(0.6f, 0.6f, 0.6f)); @@ -50,10 +50,10 @@ Explosion::Explosion(const Reader& reader) : push(false), state(STATE_WAITING), light(0.0f,0.0f,0.0f), - lightsprite(sprite_manager->create("images/objects/lightmap_light/lightmap_light-large.sprite")) + lightsprite(SpriteManager::current()->create("images/objects/lightmap_light/lightmap_light-large.sprite")) { - sound_manager->preload("sounds/explosion.wav"); - sound_manager->preload("sounds/firecracker.ogg"); + SoundManager::current()->preload("sounds/explosion.wav"); + SoundManager::current()->preload("sounds/firecracker.ogg"); lightsprite->set_blend(Blend(GL_SRC_ALPHA, GL_ONE)); lightsprite->set_color(Color(0.6f, 0.6f, 0.6f)); } @@ -65,13 +65,10 @@ Explosion::explode() return; state = STATE_EXPLODING; - set_action("default", 1); //TODO: the less-threatening short_fuse explosion should look less-threatening + set_action(hurt ? "default" : "pop", 1); sprite->set_animation_loops(1); //TODO: this is necessary because set_action will not set "loops" when "action" is the default action - if (hurt) - sound_manager->play("sounds/explosion.wav", get_pos()); - else - sound_manager->play("sounds/firecracker.ogg", get_pos()); - + sprite->set_angle(graphicsRandom.randf(0, 360)); // a random rotation on the sprite to make explosions appear more random + SoundManager::current()->play(hurt ? "sounds/explosion.wav" : "sounds/firecracker.ogg", get_pos()); #if 0 // spawn some particles @@ -124,7 +121,7 @@ Explosion::explode() } /* if (push) */ } -void +void Explosion::update(float ) { switch(state) {