--- deliantra/server/socket/item.C 2008/05/06 16:32:34 1.65 +++ deliantra/server/socket/item.C 2008/05/08 20:03:50 1.68 @@ -751,6 +751,9 @@ { std::string s = op->describe (pl->ob); + if (msg_is_special (s.c_str (), false)) + cfperl_expand_cfpod (pl, s); + packet sl ("ex"); sl << ber32 (tag) << s.c_str (); @@ -897,9 +900,7 @@ void esrv_move_object (object *pl, tag_t to, tag_t tag, long nrof) { - object *op, *env; - - op = esrv_get_ob_from_count (pl, tag); + object *op = esrv_get_ob_from_count (pl, tag); if (!op) { LOG (llevDebug, "Player '%s' tried to move an unknown object (%ld)\n", &pl->name, tag); @@ -918,14 +919,10 @@ { int cnt = MAX_ITEM_PER_DROP; - for (object *current = op->inv; current; ) + for (object *current = op->inv; current && cnt--; ) { object *next = current->below; - drop_object (pl, current, 0); - - if (--cnt <= 0) break; - current = next; } @@ -948,7 +945,7 @@ return; } - env = esrv_get_ob_from_count (pl, to); + object *env = esrv_get_ob_from_count (pl, to); if (!env) { LOG (llevDebug, "Player '%s' tried to move object to the unknown location (%d)\n", &pl->name, to);