ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/random_maps/exit.C
(Generate patch)

Comparing deliantra/server/random_maps/exit.C (file contents):
Revision 1.21 by root, Thu Jan 11 00:41:08 2007 UTC vs.
Revision 1.25 by root, Sat Feb 17 23:32:11 2007 UTC

1/* 1/*
2 CrossFire, A Multiplayer game for X-windows 2 * CrossFire, A Multiplayer game for X-windows
3 3 *
4 Copyright (C) 2005, 2006, 2007 Marc Lehmann & Crossfire+ Development Team 4 * Copyright (C) 2005, 2006, 2007 Marc Lehmann & Crossfire+ Development Team
5 Copyright (C) 2001 Mark Wedel & Crossfire Development Team 5 * Copyright (C) 2001 Mark Wedel & Crossfire Development Team
6 Copyright (C) 1992 Frank Tore Johansen 6 * Copyright (C) 1992 Frank Tore Johansen
7 7 *
8 This program is free software; you can redistribute it and/or modify 8 * This program is free software; you can redistribute it and/or modify
9 it under the terms of the GNU General Public License as published by 9 * it under the terms of the GNU General Public License as published by
10 the Free Software Foundation; either version 2 of the License, or 10 * the Free Software Foundation; either version 2 of the License, or
11 (at your option) any later version. 11 * (at your option) any later version.
12 12 *
13 This program is distributed in the hope that it will be useful, 13 * This program is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 GNU General Public License for more details. 16 * GNU General Public License for more details.
17 17 *
18 You should have received a copy of the GNU General Public License 18 * You should have received a copy of the GNU General Public License
19 along with this program; if not, write to the Free Software 19 * along with this program; if not, write to the Free Software
20 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 20 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
21 21 *
22 The authors can be reached via e-mail at <crossfire@schmorp.de> 22 * The authors can be reached via e-mail at <crossfire@schmorp.de>
23*/ 23 */
24 24
25#include <global.h> 25#include <global.h>
26#include <random_map.h> 26#include <random_map.h>
27#include <sproto.h> 27#include <sproto.h>
28#include <rproto.h> 28#include <rproto.h>
38 *fx = -1; 38 *fx = -1;
39 *fy = -1; 39 *fy = -1;
40 40
41 /* if a starting point isn't given, pick one */ 41 /* if a starting point isn't given, pick one */
42 if (mode < 1 || mode > 4) 42 if (mode < 1 || mode > 4)
43 M = RANDOM () % 4 + 1; 43 M = rndm (4) + 1;
44 else 44 else
45 M = mode; 45 M = mode;
46 46
47 /* four different search starting points and methods so that 47 /* four different search starting points and methods so that
48 we can do something different for symmetrical maps instead of 48 we can do something different for symmetrical maps instead of
133 if (RP->exit_on_final_map) 133 if (RP->exit_on_final_map)
134 if (strstr (RP->exit_on_final_map, "no")) 134 if (strstr (RP->exit_on_final_map, "no"))
135 final_map_exit = 0; 135 final_map_exit = 0;
136 136
137 if (!orientation) 137 if (!orientation)
138 orientation = RANDOM () % 6 + 1; 138 orientation = rndm (6) + 1;
139 139
140 switch (orientation) 140 switch (orientation)
141 { 141 {
142 case 1: 142 case 1:
143 { 143 {
171 171
172 else 172 else
173 { 173 {
174 object *tmp; 174 object *tmp;
175 175
176 tmp = pick_random_object (style_map_up); 176 tmp = style_map_up->pick_random_object ();
177 the_exit_up = arch_to_object (tmp->arch); 177 the_exit_up = arch_to_object (tmp->arch);
178 } 178 }
179 179
180 /* we need a down exit only if we're recursing. */ 180 /* we need a down exit only if we're recursing. */
181 if (RP->dungeon_level < RP->dungeon_depth || RP->final_map[0] != 0) 181 if (RP->dungeon_level < RP->dungeon_depth || RP->final_map[0] != 0)
184 184
185 else 185 else
186 { 186 {
187 object *tmp; 187 object *tmp;
188 188
189 tmp = pick_random_object (style_map_down); 189 tmp = style_map_down->pick_random_object ();
190 the_exit_down = arch_to_object (tmp->arch); 190 the_exit_down = arch_to_object (tmp->arch);
191 } 191 }
192 else 192 else
193 the_exit_down = 0; 193 the_exit_down = 0;
194 194
304 304
305 if (the_exit_down) 305 if (the_exit_down)
306 { 306 {
307 char buf[16384]; 307 char buf[16384];
308 308
309 int i = find_first_free_spot (the_exit_down, map, downx, downy); 309 int i = find_free_spot (the_exit_down, map, downx, downy, 1, SIZEOFFREE1 + 1);
310 the_exit_down->x = downx + freearr_x[i]; 310 the_exit_down->x = downx + freearr_x[i];
311 the_exit_down->y = downy + freearr_y[i]; 311 the_exit_down->y = downy + freearr_y[i];
312 RP->origin_x = the_exit_down->x; 312 RP->origin_x = the_exit_down->x;
313 RP->origin_y = the_exit_down->y; 313 RP->origin_y = the_exit_down->y;
314 write_map_parameters_to_string (buf, RP); 314 write_map_parameters_to_string (buf, RP);

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines