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

Comparing deliantra/server/random_maps/standalone.C (file contents):
Revision 1.14 by pippijn, Mon Jan 15 21:06:19 2007 UTC vs.
Revision 1.19 by root, Mon Sep 29 10:32:50 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) 2002 Mark Wedel & Crossfire Development Team 5 * Copyright (©) 2002,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#define LO_NEWFILE 2 24#define LO_NEWFILE 2
26 25
27/* the main routine for making a standalone version. */ 26/* the main routine for making a standalone version. */
45 if (argc < 3) 44 if (argc < 3)
46 { 45 {
47 printf ("\nUsage: %s inputfile outputfile\n", argv[0]); 46 printf ("\nUsage: %s inputfile outputfile\n", argv[0]);
48 exit (0); 47 exit (0);
49 } 48 }
49
50 strcpy (InFileName, argv[1]); 50 strcpy (InFileName, argv[1]);
51 strcpy (OutFileName, argv[2]); 51 strcpy (OutFileName, argv[2]);
52 52
53 init_globals (); 53 init_globals ();
54 init_library (); 54 init_library ();
78{ 78{
79} /* doesn't need to do anything */ 79} /* doesn't need to do anything */
80 80
81#include <global.h> 81#include <global.h>
82 82
83
84/* some plagarized code from apply.c--I needed just these two functions 83/* some plagarized code from apply.c--I needed just these two functions
85without all the rest of the junk, so.... */ 84without all the rest of the junk, so.... */
86int 85int
87auto_apply (object *op) 86auto_apply (object *op)
88{ 87{
95 if (!op->has_random_items ()) 94 if (!op->has_random_items ())
96 return 0; 95 return 0;
97 do 96 do
98 { 97 {
99 i = 10; /* let's give it 10 tries */ 98 i = 10; /* let's give it 10 tries */
99
100 while ((tmp = generate_treasure (op->randomitems, op->stats.exp ? op->stats.exp : 5)) == NULL && --i); 100 while (!(tmp = generate_treasure (op->randomitems, op->stats.exp ? op->stats.exp : 5))
101 && --i)
102 ;
103
101 if (tmp == NULL) 104 if (tmp == NULL)
102 return 0; 105 return 0;
106
103 if (QUERY_FLAG (tmp, FLAG_CURSED) || QUERY_FLAG (tmp, FLAG_DAMNED)) 107 if (QUERY_FLAG (tmp, FLAG_CURSED) || QUERY_FLAG (tmp, FLAG_DAMNED))
104 { 108 {
105 tmp->destroy (); 109 tmp->destroy ();
106 tmp = NULL; 110 tmp = NULL;
107 } 111 }
118 case TREASURE: 122 case TREASURE:
119 if (op->has_random_items ()) 123 if (op->has_random_items ())
120 while ((op->stats.hp--) > 0) 124 while ((op->stats.hp--) > 0)
121 create_treasure (op->randomitems, op, GT_ENVIRONMENT, 125 create_treasure (op->randomitems, op, GT_ENVIRONMENT,
122 op->stats.exp ? op->stats.exp : op->map == NULL ? 14 : op->map->difficulty, 0); 126 op->stats.exp ? op->stats.exp : op->map == NULL ? 14 : op->map->difficulty, 0);
123 op->remove (); 127
124 op->destroy (); 128 op->destroy ();
125 break; 129 break;
126 } 130 }
127 131
128 return tmp ? 1 : 0; 132 return tmp ? 1 : 0;
131/* fix_auto_apply goes through the entire map (only the first time 135/* fix_auto_apply goes through the entire map (only the first time
132 * when an original map is loaded) and performs special actions for 136 * when an original map is loaded) and performs special actions for
133 * certain objects (most initialization of chests and creation of 137 * certain objects (most initialization of chests and creation of
134 * treasures and stuff). Calls auto_apply if appropriate. 138 * treasures and stuff). Calls auto_apply if appropriate.
135 */ 139 */
136
137void 140void
138fix_auto_apply (maptile *m) 141fix_auto_apply (maptile *m)
139{ 142{
140 object *tmp, *above = NULL; 143 object *tmp, *above = NULL;
141 int x, y; 144 int x, y;
274 277
275void 278void
276trap_adjust (object *ob, int x) 279trap_adjust (object *ob, int x)
277{ 280{
278} 281}
282

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines