Vanilla issue when attack lands on a target with one of these flags:
- DAM_DROP - should drop target's weapon on his feet. Instead nothing happens.
- DAM_DESTROY - should destroy weapon in target's hands. Instead weapon in attacker's hand is destroyed.
The reason - show_damage_to_object has parameters:
- critter - this can is either attacker (on, e.g. critical failures) or target (or extras etc.)
- weapon - weapon used by attacker for the attack.
When internal_destroy or obj_drop is called, these parameters are always passed to these functions. So for flags on attacker they will work correctly, but not for normal attacks.