--- deliantra/server/common/region.C 2010/04/25 10:45:38 1.50 +++ deliantra/server/common/region.C 2012/01/03 11:25:31 1.54 @@ -1,7 +1,7 @@ /* * This file is part of Deliantra, the Roguelike Realtime MMORPG. * - * Copyright (©) 2005,2006,2007,2008,2009,2010 Marc Alexander Lehmann / Robin Redeker / the Deliantra team + * Copyright (©) 2005,2006,2007,2008,2009,2010,2011,2012 Marc Alexander Lehmann / Robin Redeker / the Deliantra team * Copyright (©) 2001-2003 Mark Wedel & Crossfire Development Team * Copyright (©) 1992 Frank Tore Johansen * @@ -47,18 +47,21 @@ return default_region (); } -region * -region::find (object_thawer &f) +void +object_thawer::get (region_ptr &r) const { - shstr_cmp name = f.get_str (); + shstr_cmp name = get_str (); for_all_regions (rgn) if (rgn->name == name) - return rgn; + { + r = rgn; + return; + } - f.parse_error (format ("region called %s requested, but not found, using fallback.\n", f.get_str ())); + parse_error (format ("region called %s requested, but not found, using fallback.\n", get_str ())); - return default_region (); + r = region::default_region (); } void @@ -150,7 +153,7 @@ switch (f.kw) { case KW_parent: - rgn->parent = region::find (f); + f.get (rgn->parent); break; case KW_msg: f.get_ml (KW_endmsg, rgn->msg); break; @@ -159,8 +162,6 @@ case KW_jail_x: f.get (rgn->jailx); break; case KW_jail_y: f.get (rgn->jaily); break; case KW_portal_map: f.get (rgn->portalmap);break; - case KW_portal_x: f.get (rgn->portalx); break; - case KW_portal_y: f.get (rgn->portaly); break; case KW_fallback: f.get (rgn->fallback); break; case KW_chance: f.get (rgn->treasure_density); break;