--- deliantra/server/random_maps/random_map.h 2008/04/14 22:41:17 1.18
+++ deliantra/server/random_maps/random_map.h 2010/03/28 22:29:50 1.24
@@ -1,22 +1,23 @@
/*
* This file is part of Deliantra, the Roguelike Realtime MMORPG.
*
- * Copyright (©) 2005,2006,2007,2008 Marc Alexander Lehmann / Robin Redeker / the Deliantra team
- * Copyright (©) 2001,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 (©) 2001 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 GNU General Public License as published by
- * the Free Software Foundation, either version 3 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.
*
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
+ * 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
*/
@@ -36,6 +37,7 @@
char layoutstyle[512];
char doorstyle[512];
char decorstyle[512];
+ char miningstyle[512];
shstr origin_map;
shstr final_map;
char exitstyle[512];
@@ -126,13 +128,24 @@
// needs a minimum size of at least 12
#define MIN_RANDOM_MAP_SIZE 12
-struct MazeData : zero_initialised
+// reference
+//
+// \0 floor only
+// # wall
+// D door
+// < up
+// > down
+// C "center" (of onion layout)
+// . ?? (rogue)
+//
+
+struct LayoutData : zero_initialised
{
char **col;
int w, h;
- MazeData (int w, int h);
- ~MazeData ();
+ LayoutData (int w, int h);
+ ~LayoutData ();
operator char **()
{
@@ -143,21 +156,21 @@
void border (char fill = '#');
};
-struct Maze
+struct Layout
{
- MazeData *ptr;
+ LayoutData *ptr;
- Maze ()
+ Layout ()
{
}
- Maze (int xsize, int ysize)
- : ptr (new MazeData (xsize, ysize))
+ Layout (int xsize, int ysize)
+ : ptr (new LayoutData (xsize, ysize))
{
}
- Maze (random_map_params *RP)
- : ptr (new MazeData (RP->Xsize, RP->Ysize))
+ Layout (random_map_params *RP)
+ : ptr (new LayoutData (RP->Xsize, RP->Ysize))
{
}
@@ -166,7 +179,7 @@
delete ptr;
}
- MazeData *operator ->() const
+ LayoutData *operator ->() const
{
return ptr;
}
@@ -176,11 +189,11 @@
return *ptr;
}
- void swap (Maze &maze)
+ void swap (const Layout &layout) const
{
- MazeData *p = maze.ptr;
- maze.ptr = ptr;
- ptr = p;
+ ::swap (layout.ptr->col, ptr->col);
+ ::swap (layout.ptr->w , ptr->w );
+ ::swap (layout.ptr->h , ptr->h );
}
};