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.23 by pippijn, Mon Jan 15 21:06:19 2007 UTC vs.
Revision 1.29 by root, Fri Apr 11 21:09:53 2008 UTC

1/* 1/*
2 * CrossFire, A Multiplayer game for X-windows 2 * This file is part of Deliantra, the Roguelike Realtime MMORPG.
3 * 3 *
4 * Copyright (C) 2005, 2006, 2007 Marc Lehmann & Crossfire+ Development Team 4 * Copyright (©) 2005,2006,2007,2008 Marc Alexander Lehmann / Robin Redeker / the Deliantra team
5 * Copyright (C) 2001 Mark Wedel & Crossfire Development Team 5 * Copyright (©) 2001,2007 Mark Wedel & Crossfire Development Team
6 * Copyright (C) 1992 Frank Tore Johansen 6 * Copyright (©) 1992,2007 Frank Tore Johansen
7 * 7 *
8 * This program is free software; you can redistribute it and/or modify 8 * Deliantra 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 3 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, see <http://www.gnu.org/licenses/>.
20 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
21 * 20 *
22 * The authors can be reached via e-mail at <crossfire@schmorp.de> 21 * The authors can be reached via e-mail to <support@deliantra.net>
23 */ 22 */
24 23
25#include <global.h> 24#include <global.h>
26#include <random_map.h> 25#include <random_map.h>
27#include <sproto.h> 26#include <sproto.h>
38 *fx = -1; 37 *fx = -1;
39 *fy = -1; 38 *fy = -1;
40 39
41 /* if a starting point isn't given, pick one */ 40 /* if a starting point isn't given, pick one */
42 if (mode < 1 || mode > 4) 41 if (mode < 1 || mode > 4)
43 M = RANDOM () % 4 + 1; 42 M = rndm (4) + 1;
44 else 43 else
45 M = mode; 44 M = mode;
46 45
47 /* four different search starting points and methods so that 46 /* four different search starting points and methods so that
48 we can do something different for symmetrical maps instead of 47 we can do something different for symmetrical maps instead of
133 if (RP->exit_on_final_map) 132 if (RP->exit_on_final_map)
134 if (strstr (RP->exit_on_final_map, "no")) 133 if (strstr (RP->exit_on_final_map, "no"))
135 final_map_exit = 0; 134 final_map_exit = 0;
136 135
137 if (!orientation) 136 if (!orientation)
138 orientation = RANDOM () % 6 + 1; 137 orientation = rndm (6) + 1;
139 138
140 switch (orientation) 139 switch (orientation)
141 { 140 {
142 case 1: 141 case 1:
143 { 142 {
171 170
172 else 171 else
173 { 172 {
174 object *tmp; 173 object *tmp;
175 174
176 tmp = pick_random_object (style_map_up); 175 tmp = style_map_up->pick_random_object ();
177 the_exit_up = arch_to_object (tmp->arch); 176 the_exit_up = arch_to_object (tmp->arch);
178 } 177 }
179 178
180 /* we need a down exit only if we're recursing. */ 179 /* we need a down exit only if we're recursing. */
181 if (RP->dungeon_level < RP->dungeon_depth || RP->final_map[0] != 0) 180 if (RP->dungeon_level < RP->dungeon_depth || RP->final_map[0] != 0)
184 183
185 else 184 else
186 { 185 {
187 object *tmp; 186 object *tmp;
188 187
189 tmp = pick_random_object (style_map_down); 188 tmp = style_map_down->pick_random_object ();
190 the_exit_down = arch_to_object (tmp->arch); 189 the_exit_down = arch_to_object (tmp->arch);
191 } 190 }
192 else 191 else
193 the_exit_down = 0; 192 the_exit_down = 0;
194 193
378 { 377 {
379 for (walk = GET_MAP_OB (map, i, j); walk != NULL; walk = walk->above) 378 for (walk = GET_MAP_OB (map, i, j); walk != NULL; walk = walk->above)
380 { 379 {
381 if (walk->move_block == MOVE_ALL && walk->type != LOCKED_DOOR) 380 if (walk->move_block == MOVE_ALL && walk->type != LOCKED_DOOR)
382 { 381 {
383 walk->move_block = MOVE_BLOCK_DEFAULT; 382 walk->move_block = 0;
384 update_object (walk, UP_OBJ_CHANGE); 383 update_object (walk, UP_OBJ_CHANGE);
385 } 384 }
386 } 385 }
387 } 386 }
388} 387}

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines