--- deliantra/server/common/object.C 2007/07/21 18:01:25 1.167 +++ deliantra/server/common/object.C 2007/08/08 04:52:59 1.174 @@ -962,6 +962,12 @@ if (destroy_inventory) destroy_inv (false); + if (is_head ()) + if (sound_destroy) + play_sound (sound_destroy); + else if (flag [FLAG_MONSTER]) + play_sound (sound_find ("monster_destroy")); // quick hack, too lazy to create a generic mechanism + attachable::destroy (); } @@ -1091,21 +1097,12 @@ * being removed. */ - if (tmp->type == PLAYER && tmp != this) - { - /* If a container that the player is currently using somehow gets - * removed (most likely destroyed), update the player view - * appropriately. - */ - if (tmp->container == this) - { - flag [FLAG_APPLIED] = 0; - tmp->container = 0; - } - - if (tmp->contr->ns) - tmp->contr->ns->floorbox_update (); - } + if (tmp->type == PLAYER && tmp->container == this) + /* If a container that the player is currently using somehow gets + * removed (most likely destroyed), update the player view + * appropriately. + */ + tmp->close_container (); /* See if object moving off should effect something */ if (check_walk_off @@ -2730,4 +2727,3 @@ insert (force); } -