--- deliantra/server/common/region.C 2010/04/25 10:45:38 1.50 +++ deliantra/server/common/region.C 2017/01/29 02:47:04 1.57 @@ -1,24 +1,24 @@ /* * 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,2013,2014,2015,2016 Marc Alexander Lehmann / Robin Redeker / the Deliantra team * Copyright (©) 2001-2003 Mark Wedel & Crossfire Development Team * Copyright (©) 1992 Frank Tore Johansen - * + * * Deliantra is free software: you can redistribute it and/or modify it under * the terms of the Affero GNU General Public License as published by the * Free Software Foundation, either version 3 of the License, or (at your * option) any later version. - * + * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * + * * You should have received a copy of the Affero GNU General Public License * and the GNU General Public License along with this program. If not, see * . - * + * * The authors can be reached via e-mail to */ @@ -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 @@ -73,7 +76,7 @@ //+GPL -/* +/* * returns 1 if the player is in the region reg, or a child region thereof * otherwise returns 0 * if passed a NULL region returns -1 @@ -97,7 +100,7 @@ } /** Returns an object which is an exit through which the player represented by op should be - * sent in order to be imprisoned. If there is no suitable place to which an exit can be + * sent in order to be imprisoned. If there is no suitable place to which an exit can be * constructed, then NULL will be returned. The caller is responsible for freeing the object * created by this function. */ @@ -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;