--- deliantra/server/include/region.h 2007/05/28 21:15:56 1.3
+++ deliantra/server/include/region.h 2010/04/29 12:24:04 1.20
@@ -1,25 +1,25 @@
/*
- * This file is part of Crossfire TRT, the Multiplayer Online Role Playing Game.
+ * This file is part of Deliantra, the Roguelike Realtime MMORPG.
*
- * Copyright (©) 2005,2006,2007 Marc Alexander Lehmann / Robin Redeker / the Crossfire TRT team
- * Copyright (©) 2002-2005,2007 Mark Wedel & Crossfire Development Team
- * Copyright (©) 1992,2007 Frank Tore Johansen
+ * Copyright (©) 2005,2006,2007,2008,2009,2010 Marc Alexander Lehmann / Robin Redeker / the Deliantra team
+ * Copyright (©) 2002-2005 Mark Wedel & Crossfire Development Team
+ * Copyright (©) 1992 Frank Tore Johansen
*
- * Crossfire TRT is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the Free
- * Software Foundation; either version 2 of the License, or (at your option)
- * any later version.
+ * 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.
+ * 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 GNU General Public License along
- * with Crossfire TRT; if not, write to the Free Software Foundation, Inc. 51
- * Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ * 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
+ * The authors can be reached via e-mail to
*/
/*
@@ -30,16 +30,17 @@
#ifndef REGION_H
#define REGION_H
+//+GPL
+
/*
- * Each map is in a given region of the game world and links to a region definiton, so
+ * Each map is in a given region of the game world and links to a region definition, so
* they have to appear here in the headers, before the mapdef
*/
INTERFACE_CLASS (region)
-struct region : zero_initialised
+struct region : zero_initialised, attachable
{
shstr ACC (RW, name); /* Shortend name of the region as maps refer to it */
- shstr ACC (RW, match); // a perl regex that matches map paths
- region *ACC (RW, parent); /*
+ region_ptr ACC (RW, parent); /*
* Pointer to the region that is a parent of the current
* region, if a value isn't defined in the current region
* we traverse this series of pointers until it is.
@@ -50,18 +51,19 @@
shstr ACC (RW, jailmap); /*where a player that is arrested in this region should be imprisoned. */
sint16 ACC (RW, jailx), ACC (RW, jaily);/* The coodinates in jailmap to which the player should be sent. */
shstr ACC (RW, portalmap);
- sint16 ACC (RW, portalx), ACC (RW, portaly);
- int ACC (RW, index);
- uint32 ACC (RW, counter); /* A generic counter for holding temporary data. */
+ object_vector_index ACC (RW, index);
bool ACC (RW, fallback); /* whether, in the event of a region not existing,
* this should be the one we fall back on as the default */
float treasure_density; // chance of treasure per mapspace
treasurelist *treasure; // treasure to generate (mostly monsters)
- static region *default_region ();
- static region *find (const char *name);
- static region *find_fuzzy (const char *name);
+//-GPL
+
+ MTH static region *default_region ();
+ MTH static region *find (shstr_cmp name);
static region *read (object_thawer &f);
+
+ void do_destroy ();
};
typedef object_vector regionvec;
@@ -70,7 +72,7 @@
#define for_all_regions(var) \
for (unsigned _i = 0; _i < regions.size (); ++_i) \
- declvar (region *, var, regions [_i])
+ statementvar (region *, var, regions [_i])
#endif