Atrinik Server 2.5
random_maps/random_map.h
Go to the documentation of this file.
00001 /************************************************************************
00002 *            Atrinik, a Multiplayer Online Role Playing Game            *
00003 *                                                                       *
00004 *    Copyright (C) 2009-2011 Alex Tokar and Atrinik Development Team    *
00005 *                                                                       *
00006 * Fork from Daimonin (Massive Multiplayer Online Role Playing Game)     *
00007 * and Crossfire (Multiplayer game for X-windows).                       *
00008 *                                                                       *
00009 * This program is free software; you can redistribute it and/or modify  *
00010 * it under the terms of the GNU General Public License as published by  *
00011 * the Free Software Foundation; either version 2 of the License, or     *
00012 * (at your option) any later version.                                   *
00013 *                                                                       *
00014 * This program is distributed in the hope that it will be useful,       *
00015 * but WITHOUT ANY WARRANTY; without even the implied warranty of        *
00016 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
00017 * GNU General Public License for more details.                          *
00018 *                                                                       *
00019 * You should have received a copy of the GNU General Public License     *
00020 * along with this program; if not, write to the Free Software           *
00021 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.             *
00022 *                                                                       *
00023 * The author can be reached at admin@atrinik.org                        *
00024 ************************************************************************/
00025 
00030 #ifndef RANDOM_MAP_H
00031 #define RANDOM_MAP_H
00032 
00033 #define RM_SIZE 512
00034 
00036 typedef struct
00037 {
00039     char wallstyle[RM_SIZE];
00040 
00042     char wall_name[RM_SIZE];
00043 
00045     char floorstyle[RM_SIZE];
00046 
00048     char monsterstyle[RM_SIZE];
00049 
00051     char layoutstyle[RM_SIZE];
00052 
00054     char doorstyle[RM_SIZE];
00055 
00057     char decorstyle[RM_SIZE];
00058 
00060     char origin_map[RM_SIZE];
00061 
00063     char final_map[RM_SIZE];
00064 
00066     char exitstyle[RM_SIZE];
00067 
00069     char dungeon_name[RM_SIZE];
00070 
00072     char bg_music[RM_SIZE];
00073 
00075     int Xsize;
00076 
00078     int Ysize;
00079 
00081     int expand2x;
00082 
00084     int layoutoptions1;
00085 
00087     int layoutoptions2;
00088 
00090     int layoutoptions3;
00091 
00093     int symmetry;
00094 
00096     int difficulty;
00097 
00099     int difficulty_given;
00100 
00102     int dungeon_level;
00103 
00105     int dungeon_depth;
00106 
00108     int decorchance;
00109 
00111     int orientation;
00112 
00114     int origin_y;
00115 
00117     int origin_x;
00118 
00120     int random_seed;
00121 
00123     int map_layout_style;
00124 
00126     int symmetry_used;
00127 
00129     int num_monsters;
00130 
00132     int darkness;
00133 
00135     int level_increment;
00136 } RMParms;
00137 
00141 #define ONION_LAYOUT          1
00142 #define MAZE_LAYOUT           2
00143 #define SPIRAL_LAYOUT         3
00144 #define ROGUELIKE_LAYOUT      4
00145 #define SNAKE_LAYOUT          5
00146 #define SQUARE_SPIRAL_LAYOUT  6
00147 #define NROFLAYOUTS           6
00148 
00154 #define OPT_RANDOM     0
00155 
00156 #define OPT_CENTERED   1
00157 
00158 #define OPT_LINEAR     2
00159 
00160 #define OPT_BOTTOM_C   4
00161 
00162 #define OPT_BOTTOM_R   8
00163 
00164 #define OPT_IRR_SPACE  16
00165 
00166 #define OPT_WALL_OFF   32
00167 
00168 #define OPT_WALLS_ONLY 64
00169 
00170 #define OPT_NO_DOORS   256
00171 
00180 #define RANDOM_SYM  0
00181 
00182 #define NO_SYM      1
00183 
00184 #define X_SYM       2
00185 
00186 #define Y_SYM       3
00187 
00188 #define XY_SYM      4
00189 
00194 #define BC_RANDOM(x) ((int) ((RANDOM() % (x) + RANDOM() % (x) + RANDOM() % (x)) / 3.))
00195 
00196 #endif