--- deliantra/server/server/spell_effect.C 2007/04/16 06:23:43 1.45 +++ deliantra/server/server/spell_effect.C 2007/04/24 12:32:16 1.46 @@ -1,5 +1,5 @@ /* - * CrossFire, A Multiplayer game for X-windows + * CrossFire, A Multiplayer game * * Copyright (C) 2005, 2006, 2007 Marc Lehmann & Crossfire+ Development Team * Copyright (C) 2002 Mark Wedel & Crossfire Development Team @@ -2245,7 +2245,6 @@ * that only let players use it was correct, and removed all the other * player checks. MSW 2003-01-06 */ - int animate_weapon (object *op, object *caster, object *spell, int dir) { @@ -2267,9 +2266,9 @@ return 0; /* if player already has a golem, abort */ - if (op->contr->ranges[range_golem]) + if (object *golem = op->contr->ranges[range_golem]) { - control_golem (op->contr->ranges[range_golem], dir); + control_golem (golem, dir); return 0; } @@ -2329,9 +2328,9 @@ add_friendly_object (tmp); tmp->type = GOLEM; tmp->set_owner (op); - set_spell_skill (op, caster, spell, tmp); op->contr->ranges[range_golem] = tmp; op->contr->shoottype = range_golem; + set_spell_skill (op, caster, spell, tmp); /* Give the weapon to the golem now. A bit of a hack to check the * removed flag - it should only be set if get_split_object was @@ -2339,6 +2338,7 @@ */ if (!QUERY_FLAG (weapon, FLAG_REMOVED)) weapon->remove (); + insert_ob_in_ob (weapon, tmp); esrv_send_item (op, weapon); /* To do everything necessary to let a golem use the weapon is a pain,