ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/random_maps/random_map.h
Revision: 1.15
Committed: Sun Jul 1 05:00:19 2007 UTC (16 years, 10 months ago) by root
Content type: text/plain
Branch: MAIN
CVS Tags: rel-2_2, rel-2_3
Changes since 1.14: +11 -12 lines
Log Message:
- upgrade crossfire trt to the GPL version 3 (hopefully correctly).
- add a single file covered by the GNU Affero General Public License
  (which is not yet released, so I used the current draft, which is
  legally a bit wavy, but its likely better than nothing as it expresses
  direct intent by the authors, and we can upgrade as soon as it has been
  released).
  * this should ensure availability of source code for the server at least
    and hopefully also archetypes and maps even when modified versions
    are not being distributed, in accordance of section 13 of the agplv3.

File Contents

# User Rev Content
1 root 1.1 /*
2 root 1.15 * This file is part of Crossfire TRT, the Roguelike Realtime MORPG.
3 root 1.14 *
4     * Copyright (©) 2005,2006,2007 Marc Alexander Lehmann / Robin Redeker / the Crossfire TRT team
5     * Copyright (©) 2001,2007 Mark Wedel & Crossfire Development Team
6     * Copyright (©) 1992,2007 Frank Tore Johansen
7     *
8 root 1.15 * Crossfire TRT is free software: you can redistribute it and/or modify
9     * it under the terms of the GNU General Public License as published by
10     * the Free Software Foundation, either version 3 of the License, or
11     * (at your option) any later version.
12 root 1.14 *
13 root 1.15 * This program is distributed in the hope that it will be useful,
14     * but WITHOUT ANY WARRANTY; without even the implied warranty of
15     * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16     * GNU General Public License for more details.
17 root 1.14 *
18 root 1.15 * You should have received a copy of the GNU General Public License
19     * along with this program. If not, see <http://www.gnu.org/licenses/>.
20 root 1.14 *
21     * The authors can be reached via e-mail to <crossfire@schmorp.de>
22 root 1.1 */
23    
24     #ifndef RANDOM_MAP_H
25     #define RANDOM_MAP_H
26    
27 root 1.6 struct random_map_params
28     {
29 root 1.1 char wallstyle[512];
30     char wall_name[512];
31     char floorstyle[512];
32     char monsterstyle[512];
33     char treasurestyle[512];
34     char layoutstyle[512];
35     char doorstyle[512];
36     char decorstyle[512];
37 root 1.7 shstr origin_map;
38     shstr final_map;
39 root 1.1 char exitstyle[512];
40 root 1.7 shstr this_map;
41 root 1.1 char exit_on_final_map[512];
42 root 1.10 char *custom;
43 root 1.3
44 root 1.11 int xsize, ysize;
45 root 1.1 int expand2x;
46     int layoutoptions1;
47     int layoutoptions2;
48     int layoutoptions3;
49     int symmetry;
50     int difficulty;
51     int difficulty_given;
52     float difficulty_increase;
53 root 1.8
54 root 1.1 int dungeon_level;
55     int dungeon_depth;
56 root 1.8
57 root 1.1 int decoroptions;
58     int orientation;
59     int origin_y;
60     int origin_x;
61 root 1.12 uint32_t random_seed;
62 root 1.6 uint64_t total_map_hp;
63 root 1.1 int map_layout_style;
64     int treasureoptions;
65     int symmetry_used;
66 root 1.6
67 elmex 1.2 struct region *region;
68 root 1.11
69     // "private", adjusted sizes
70     int Xsize;
71     int Ysize;
72 root 1.6 };
73 root 1.1
74 root 1.6 enum {
75     LAYOUT_NONE,
76     LAYOUT_ONION,
77     LAYOUT_MAZE,
78     LAYOUT_SPIRAL,
79     LAYOUT_ROGUELIKE,
80     LAYOUT_SNAKE,
81     LAYOUT_SQUARE_SPIRAL,
82     NROFLAYOUTS,
83     };
84 root 1.1
85     /*
86     * Move these defines out of room_gen_onion.c to here, as
87     * other files (like square_spiral) also uses them.
88    
89     options:
90     0 Pick random options below
91     1 "centered"
92     2 linear doors (default is nonlinear)
93     4 bottom "centered"
94     8 bottom-right centered
95     16 irregularly/randomly spaced layers (default: regular)
96     32 outer wall off: i.e., no outer wall.
97    
98     */
99    
100 root 1.6 enum {
101     RMOPT_RANDOM = 0,
102     RMOPT_CENTERED = 1,
103     RMOPT_LINEAR = 2,
104     RMOPT_BOTTOM_C = 4,
105     RMOPT_BOTTOM_R = 8,
106     RMOPT_IRR_SPACE = 16,
107     RMOPT_WALL_OFF = 32,
108     RMOPT_WALLS_ONLY = 64,
109     RMOPT_NO_DOORS = 256, /* Place walls insead of doors. Produces broken map. */
110     };
111 root 1.1
112     /* symmetry definitions--used in this file AND in treasure.c:
113     the numerical values matter so don't change them. */
114 root 1.6 enum {
115     SYMMETRY_RANDOM,
116     SYMMETRY_NONE,
117     SYMMETRY_X,
118     SYMMETRY_Y,
119     SYMMETRY_XY,
120     };
121 root 1.1
122 root 1.13 // 12 has been experimentally :( determined ot be a lot more stable
123     // than 11 or 10, leading to the assumption that something inherently
124     // needs a minimum size of at least 12
125     #define MIN_RANDOM_MAP_SIZE 12
126 root 1.1
127 root 1.6 #endif
128 root 1.1