diff --git a/src/items/flyable.cpp b/src/items/flyable.cpp index b942442ef..2655a4d09 100644 --- a/src/items/flyable.cpp +++ b/src/items/flyable.cpp @@ -494,11 +494,6 @@ void Flyable::explode(AbstractKart *kart_hit, PhysicalObject *object, // rockets on short distance. if( (m_owner!=kart || m_owner==kart_hit) && !kart->getKartAnimation()) { - if(kart->isShielded()) - { - kart->decreaseShieldTime(); - continue; - } // The explosion animation will register itself with the kart // and will free it later. ExplosionAnimation::create(kart, getXYZ(), kart==kart_hit); diff --git a/src/karts/explosion_animation.cpp b/src/karts/explosion_animation.cpp index 0720c4d0c..30a9cc30e 100644 --- a/src/karts/explosion_animation.cpp +++ b/src/karts/explosion_animation.cpp @@ -38,6 +38,11 @@ ExplosionAnimation *ExplosionAnimation::create(AbstractKart *kart, bool direct_hit) { if(kart->isInvulnerable()) return NULL; + else if(kart->isShielded()) + { + kart->decreaseShieldTime(); + return NULL; + } float r = kart->getKartProperties()->getExplosionRadius();