--- deliantra/server/common/treasure.C 2007/04/19 16:36:00 1.51 +++ deliantra/server/common/treasure.C 2007/04/21 16:56:30 1.53 @@ -239,6 +239,9 @@ */ if (flags & GT_ENVIRONMENT && op->type != SPELL) { + op->deactivate_recursive (); + op->expand_tail (); + if (ob_blocked (op, creator->map, creator->x, creator->y)) op->destroy (); else @@ -1572,14 +1575,15 @@ } static int -legal_artifact_combination (object *op, artifact * art) +legal_artifact_combination (object *op, artifact *art) { int neg, success = 0; linked_char *tmp; const char *name; - if (art->allowed == (linked_char *) NULL) + if (!art->allowed) return 1; /* Ie, "all" */ + for (tmp = art->allowed; tmp; tmp = tmp->next) { #ifdef TREASURE_VERBOSE @@ -1600,6 +1604,7 @@ else if (neg) success = 1; } + return success; }