--- deliantra/server/common/treasure.C 2006/09/10 16:00:23 1.16 +++ deliantra/server/common/treasure.C 2006/09/14 21:16:11 1.18 @@ -1,7 +1,7 @@ /* * static char *rcs_treasure_c = - * "$Id: treasure.C,v 1.16 2006/09/10 16:00:23 root Exp $"; + * "$Id: treasure.C,v 1.18 2006/09/14 21:16:11 root Exp $"; */ /* @@ -60,13 +60,13 @@ warn_archetypes = 1; if (ring_arch == NULL) - ring_arch = find_archetype ("ring"); + ring_arch = archetype::find ("ring"); if (amulet_arch == NULL) - amulet_arch = find_archetype ("amulet"); + amulet_arch = archetype::find ("amulet"); if (staff_arch == NULL) - staff_arch = find_archetype ("staff"); + staff_arch = archetype::find ("staff"); if (crown_arch == NULL) - crown_arch = find_archetype ("crown"); + crown_arch = archetype::find ("crown"); warn_archetypes = prev_warn; } @@ -121,7 +121,7 @@ if (sscanf (cp, "arch %s", variable)) { - if ((t->item = find_archetype (variable)) == NULL) + if ((t->item = archetype::find (variable)) == NULL) LOG (llevError, "Treasure lacks archetype: %s\n", variable); } else if (sscanf (cp, "list %s", variable)) @@ -261,18 +261,14 @@ treasurelist * find_treasurelist (const char *name) { - /* Special cases - randomitems of NULL is to override default. If - * first_treasurelist is null, it means we are on the first pass of - * of loading archetypes, so for now, just return - second pass will - * init these values. - */ - if (!name) + shstr_cmp name_ (name); + + if (!name_) return 0; - if (const char *tmp = shstr::find (name)) - for (treasurelist * tl = first_treasurelist; tl != 0; tl = tl->next) - if (tmp == tl->name) - return tl; + for (treasurelist * tl = first_treasurelist; tl != 0; tl = tl->next) + if (name_ == tl->name) + return tl; if (first_treasurelist) LOG (llevError, "Couldn't find treasurelist %s\n", name);