+}
+
+HitResponse
+Snowman::collision_bullet(Bullet& bullet, const CollisionHit& hit)
+{
+ if(bullet.get_type() == FIRE_BONUS) {
+ // fire bullets destroy snowman's body
+ loose_head();
+
+ // FIXME: the sound used here should differ since there is still a threat
+ sound_manager->play("sounds/fall.wav", get_pos());
+ bullet.remove_me();
+
+ return ABORT_MOVE;
+ }
+ else {
+ // in all other cases, bullets ricochet
+ bullet.ricochet(*this, hit);
+ return FORCE_MOVE;
+ }
+}
+
+bool
+Snowman::collision_squished(GameObject& object)
+{
+ // bounce
+ Player* player = dynamic_cast<Player*>(&object);
+ if (player)
+ player->bounce(*this);
+
+ // FIXME: the squish sound isn't best here
+ sound_manager->play("sounds/squish.wav", get_pos());
+
+ loose_head();