--- deliantra/server/common/region.C 2010/04/25 11:23:31 1.51
+++ deliantra/server/common/region.C 2016/11/16 23:41:59 1.56
@@ -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
@@ -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;