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

Comparing deliantra/server/random_maps/treasure.C (file contents):
Revision 1.58 by root, Sun Jul 4 22:12:26 2010 UTC vs.
Revision 1.65 by root, Sun Jan 29 02:47:05 2017 UTC

1/* 1/*
2 * This file is part of Deliantra, the Roguelike Realtime MMORPG. 2 * This file is part of Deliantra, the Roguelike Realtime MMORPG.
3 * 3 *
4 * Copyright (©) 2005,2006,2007,2008,2009,2010 Marc Alexander Lehmann / Robin Redeker / the Deliantra team 4 * Copyright (©) 2005,2006,2007,2008,2009,2010,2011,2012,2013,2014,2015,2016 Marc Alexander Lehmann / Robin Redeker / the Deliantra team
5 * Copyright (©) 2001 Mark Wedel & Crossfire Development Team 5 * Copyright (©) 2001 Mark Wedel & Crossfire Development Team
6 * Copyright (©) 1992 Frank Tore Johansen 6 * Copyright (©) 1992 Frank Tore Johansen
7 * 7 *
8 * Deliantra is free software: you can redistribute it and/or modify it under 8 * Deliantra is free software: you can redistribute it and/or modify it under
9 * the terms of the Affero GNU General Public License as published by the 9 * the terms of the Affero GNU General Public License as published by the
10 * Free Software Foundation, either version 3 of the License, or (at your 10 * Free Software Foundation, either version 3 of the License, or (at your
11 * option) any later version. 11 * 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 Affero GNU General Public License 18 * You should have received a copy of the Affero GNU General Public License
19 * and the GNU General Public License along with this program. If not, see 19 * and the GNU General Public License along with this program. If not, see
20 * <http://www.gnu.org/licenses/>. 20 * <http://www.gnu.org/licenses/>.
21 * 21 *
22 * The authors can be reached via e-mail to <support@deliantra.net> 22 * The authors can be reached via e-mail to <support@deliantra.net>
23 */ 23 */
24 24
25/* placing treasure in maps, where appropriate. */ 25/* placing treasure in maps, where appropriate. */
26 26
27#include <global.h> 27#include <global.h>
28#include <random_map.h> 28#include <rmg.h>
29#include <rproto.h> 29#include <rproto.h>
30 30
31/* some defines for various options which can be set. */ 31/* some defines for various options which can be set. */
32 32
33#define CONCENTRATED 1 /* all the treasure is at the C's for onions. */ 33#define CONCENTRATED 1 /* all the treasure is at the C's for onions. */
67 object *key = archetype::get (shstr_key_random_map); 67 object *key = archetype::get (shstr_key_random_map);
68 key->slaying = keycode; 68 key->slaying = keycode;
69 return key; 69 return key;
70} 70}
71 71
72/* places keys in the map, preferably in something alive. 72/* places keys in the map, preferably in something alive.
73 keycode is the key's code, 73 keycode is the key's code,
74 door_flag is either PASS_DOORS or NO_PASS_DOORS. 74 door_flag is either PASS_DOORS or NO_PASS_DOORS.
75 NO_PASS_DOORS won't cross doors or walls to keyplace, PASS_DOORS will. 75 NO_PASS_DOORS won't cross doors or walls to keyplace, PASS_DOORS will.
76 if n_keys is 1, it will place 1 key. if n_keys >1, it will place 2-4 keys: 76 if n_keys is 1, it will place 1 key. if n_keys >1, it will place 2-4 keys:
77 it will place 2-4 keys regardless of what nkeys is provided nkeys > 1. 77 it will place 2-4 keys regardless of what nkeys is provided nkeys > 1.
184 184
185 m->at (x, y).update (); 185 m->at (x, y).update ();
186 return GET_MAP_MOVE_BLOCK (m, x, y) & MOVE_WALK; 186 return GET_MAP_MOVE_BLOCK (m, x, y) & MOVE_WALK;
187} 187}
188 188
189/* place treasures in the map, given the 189/* place treasures in the map, given the
190map, (required) 190map, (required)
191maze, (required) 191maze, (required)
192treasure style (may be empty or NULL, or "none" to cause no treasure.) 192treasure style (may be empty or NULL, or "none" to cause no treasure.)
193treasureoptions (may be 0 for random choices or positive) 193treasureoptions (may be 0 for random choices or positive)
194*/ 194*/
688 688
689 if (!wall_blocked (map, x1, y1) && maze[x1][y1] == '>') 689 if (!wall_blocked (map, x1, y1) && maze[x1][y1] == '>')
690 { /* place a door */ 690 { /* place a door */
691 remove_monsters (x1, y1, map); 691 remove_monsters (x1, y1, map);
692 692
693 object *new_door = get_archetype (freearr_x[i] == 0 ? doors[1] : doors[0]); 693 object *new_door = archetype::get (freearr_x[i] == 0 ? doors[1] : doors[0]);
694 map->insert (new_door, x1, y1); 694 map->insert (new_door, x1, y1);
695 doorlist[ndoors_made] = new_door; 695 doorlist[ndoors_made] = new_door;
696 ndoors_made++; 696 ndoors_made++;
697 } 697 }
698 } 698 }
791 791
792 if (opts & DOORED) 792 if (opts & DOORED)
793 { 793 {
794 for (i = 0, door = doorlist[0]; doorlist[i]; i++) 794 for (i = 0, door = doorlist[0]; doorlist[i]; i++)
795 { 795 {
796 object *new_door = get_archetype (shstr_locked_door1); 796 object *new_door = archetype::get (shstr_locked_door1);
797 797
798 door = doorlist[i]; 798 door = doorlist[i];
799 new_door->face = door->face; 799 new_door->face = door->face;
800 new_door->x = door->x; 800 new_door->x = door->x;
801 new_door->y = door->y; 801 new_door->y = door->y;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines