--- deliantra/server/common/button.C 2006/10/15 02:16:34 1.12 +++ deliantra/server/common/button.C 2006/12/19 13:41:45 1.15 @@ -773,10 +773,8 @@ * dereference a null value */ if (tmp->type == GOLEM && tmp->owner && tmp->owner->type == PLAYER && tmp->owner->contr->ranges[range_golem] == tmp) - { - tmp->owner->contr->ranges[range_golem] = NULL; - tmp->owner->contr->golem_count = 0; - } + tmp->owner->contr->ranges[range_golem] = 0; + tmp->owner = 0; } break; @@ -803,7 +801,7 @@ if (tmp2->type != PLAYER) break; - set_owner (tmp, tmp2); + tmp->set_owner (tmp2); SET_FLAG (tmp, FLAG_MONSTER); tmp->stats.exp = 0; SET_FLAG (tmp, FLAG_FRIENDLY); @@ -858,7 +856,7 @@ */ void -check_inv (object *op, object *trig) +check_inv (object *op, object *trig, bool move_on) { object *match; @@ -869,9 +867,15 @@ { if (trig->last_heal) decrease_ob (match); - use_trigger (trig); + + trig->value = move_on ? 1 : 0; + + push_button (trig); } else if (!match && !trig->last_sp) - use_trigger (trig); + { + trig->value = move_on ? 1 : 0; + push_button (trig); + } }