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.16 by root, Thu Nov 8 19:43:25 2007 UTC vs.
Revision 1.20 by root, Sun Oct 11 18:18:03 2009 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 Marc Alexander Lehmann / Robin Redeker / the Deliantra team 4 * Copyright (©) 2005,2006,2007,2008 Marc Alexander Lehmann / Robin Redeker / the Deliantra team
5 * Copyright (©) 2002,2007 Mark Wedel & Crossfire Development Team 5 * Copyright (©) 2002,2007 Mark Wedel & Crossfire Development Team
6 * Copyright (©) 1992,2007 Frank Tore Johansen 6 * Copyright (©) 1992,2007 Frank Tore Johansen
7 * 7 *
8 * Deliantra 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
44 if (argc < 3) 44 if (argc < 3)
45 { 45 {
46 printf ("\nUsage: %s inputfile outputfile\n", argv[0]); 46 printf ("\nUsage: %s inputfile outputfile\n", argv[0]);
47 exit (0); 47 exit (0);
48 } 48 }
49
49 strcpy (InFileName, argv[1]); 50 strcpy (InFileName, argv[1]);
50 strcpy (OutFileName, argv[2]); 51 strcpy (OutFileName, argv[2]);
51 52
52 init_globals (); 53 init_globals ();
53 init_library (); 54 init_library ();
77{ 78{
78} /* doesn't need to do anything */ 79} /* doesn't need to do anything */
79 80
80#include <global.h> 81#include <global.h>
81 82
82
83/* 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
84without all the rest of the junk, so.... */ 84without all the rest of the junk, so.... */
85int 85int
86auto_apply (object *op) 86auto_apply (object *op)
87{ 87{
94 if (!op->has_random_items ()) 94 if (!op->has_random_items ())
95 return 0; 95 return 0;
96 do 96 do
97 { 97 {
98 i = 10; /* let's give it 10 tries */ 98 i = 10; /* let's give it 10 tries */
99
99 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
100 if (tmp == NULL) 104 if (tmp == NULL)
101 return 0; 105 return 0;
106
102 if (QUERY_FLAG (tmp, FLAG_CURSED) || QUERY_FLAG (tmp, FLAG_DAMNED)) 107 if (QUERY_FLAG (tmp, FLAG_CURSED) || QUERY_FLAG (tmp, FLAG_DAMNED))
103 { 108 {
104 tmp->destroy (); 109 tmp->destroy ();
105 tmp = NULL; 110 tmp = NULL;
106 } 111 }
117 case TREASURE: 122 case TREASURE:
118 if (op->has_random_items ()) 123 if (op->has_random_items ())
119 while ((op->stats.hp--) > 0) 124 while ((op->stats.hp--) > 0)
120 create_treasure (op->randomitems, op, GT_ENVIRONMENT, 125 create_treasure (op->randomitems, op, GT_ENVIRONMENT,
121 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);
122 op->remove (); 127
123 op->destroy (); 128 op->destroy ();
124 break; 129 break;
125 } 130 }
126 131
127 return tmp ? 1 : 0; 132 return tmp ? 1 : 0;
130/* 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
131 * when an original map is loaded) and performs special actions for 136 * when an original map is loaded) and performs special actions for
132 * certain objects (most initialization of chests and creation of 137 * certain objects (most initialization of chests and creation of
133 * treasures and stuff). Calls auto_apply if appropriate. 138 * treasures and stuff). Calls auto_apply if appropriate.
134 */ 139 */
135
136void 140void
137fix_auto_apply (maptile *m) 141fix_auto_apply (maptile *m)
138{ 142{
139 object *tmp, *above = NULL; 143 object *tmp, *above = NULL;
140 int x, y; 144 int x, y;
167 } 171 }
168 for (x = 0; x < m->width; x++) 172 for (x = 0; x < m->width; x++)
169 for (y = 0; y < m->height; y++) 173 for (y = 0; y < m->height; y++)
170 for (tmp = GET_MAP_OB (m, x, y); tmp != NULL; tmp = tmp->above) 174 for (tmp = GET_MAP_OB (m, x, y); tmp != NULL; tmp = tmp->above)
171 if (tmp->above && (tmp->type == TRIGGER_BUTTON || tmp->type == TRIGGER_PEDESTAL)) 175 if (tmp->above && (tmp->type == TRIGGER_BUTTON || tmp->type == TRIGGER_PEDESTAL))
172 check_trigger (tmp, tmp->above); 176 check_trigger (tmp, tmp->above, tmp->above);
173} 177}
174 178
175/** 179/**
176 * Those are dummy functions defined to resolve all symboles. 180 * Those are dummy functions defined to resolve all symboles.
177 * Added as part of glue cleaning. 181 * Added as part of glue cleaning.
273 277
274void 278void
275trap_adjust (object *ob, int x) 279trap_adjust (object *ob, int x)
276{ 280{
277} 281}
282

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines