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.1 by elmex, Sun Aug 13 17:16:03 2006 UTC vs.
Revision 1.12 by root, Sun Dec 31 19:02:24 2006 UTC

1/*
2 * static char *rcsid_standalone_c =
3 * "$Id: standalone.C,v 1.1 2006/08/13 17:16:03 elmex Exp $";
4 */
5 1
6/* 2/*
7 CrossFire, A Multiplayer game for X-windows 3 CrossFire, A Multiplayer game for X-windows
8 4
9 Copyright (C) 2002 Mark Wedel & Crossfire Development Team 5 Copyright (C) 2002 Mark Wedel & Crossfire Development Team
21 17
22 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
23 along with this program; if not, write to the Free Software 19 along with this program; if not, write to the Free Software
24 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 20 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
25 21
26 The authors can be reached via e-mail at crossfire-devel@real-time.com 22 The authors can be reached via e-mail at <crossfire@schmorp.de>
27*/ 23*/
28 24
29#define LO_NEWFILE 2 25#define LO_NEWFILE 2
30 26
31/* the main routine for making a standalone version. */ 27/* the main routine for making a standalone version. */
36#include <maze_gen.h> 32#include <maze_gen.h>
37#include <room_gen.h> 33#include <room_gen.h>
38#include <random_map.h> 34#include <random_map.h>
39#include <rproto.h> 35#include <rproto.h>
40 36
37int
41int main(int argc, char *argv[]) { 38main (int argc, char *argv[])
39{
42 char InFileName[1024],OutFileName[1024]; 40 char InFileName[1024], OutFileName[1024];
43 mapstruct *newMap; 41 maptile *newMap;
44 RMParms rp; 42 random_map_params rp;
45 FILE *fp; 43 FILE *fp;
46 44
47 if(argc < 3) { 45 if (argc < 3)
46 {
48 printf("\nUsage: %s inputfile outputfile\n",argv[0]); 47 printf ("\nUsage: %s inputfile outputfile\n", argv[0]);
49 exit(0); 48 exit (0);
50 } 49 }
51 strcpy(InFileName,argv[1]); 50 strcpy (InFileName, argv[1]);
52 strcpy(OutFileName,argv[2]); 51 strcpy (OutFileName, argv[2]);
53 52
54 init_globals(); 53 init_globals ();
55 init_library(); 54 init_library ();
56 init_archetypes(); 55 init_archetypes ();
57 init_artifacts(); 56 init_artifacts ();
58 init_formulae(); 57 init_formulae ();
59 init_readable(); 58 init_readable ();
60 59
61 init_gods(); 60 init_gods ();
62 memset(&rp, 0, sizeof(RMParms)); 61 memset (&rp, 0, sizeof (random_map_params));
63 rp.Xsize=-1; 62 rp.Xsize = -1;
64 rp.Ysize=-1; 63 rp.Ysize = -1;
65 if ((fp=fopen(InFileName, "r"))==NULL) { 64 if ((fp = fopen (InFileName, "r")) == NULL)
65 {
66 fprintf(stderr,"\nError: can not open %s\n", InFileName); 66 fprintf (stderr, "\nError: can not open %s\n", InFileName);
67 exit(1); 67 exit (1);
68 } 68 }
69 load_parameters(fp, LO_NEWFILE, &rp); 69 load_parameters (fp, LO_NEWFILE, &rp);
70 fclose(fp); 70 fclose (fp);
71 newMap = generate_random_map(OutFileName, &rp); 71 newMap = generate_random_map (OutFileName, &rp);
72 new_save_map(newMap,1); 72 new_save_map (newMap, 1);
73 exit(0); 73 exit (0);
74} 74}
75 75
76void set_map_timeout(mapstruct *) {} /* doesn't need to do anything */ 76void
77set_map_timeout (maptile *)
78{
79} /* doesn't need to do anything */
77 80
78#include <global.h> 81#include <global.h>
79 82
80 83
81/* some plagarized code from apply.c--I needed just these two functions 84/* some plagarized code from apply.c--I needed just these two functions
82without all the rest of the junk, so.... */ 85without all the rest of the junk, so.... */
86int
83int auto_apply (object *op) { 87auto_apply (object *op)
88{
84 object *tmp = NULL; 89 object *tmp = NULL;
85 int i; 90 int i;
86 91
87 switch(op->type) { 92 switch (op->type)
93 {
88 case SHOP_FLOOR: 94 case SHOP_FLOOR:
89 if (!HAS_RANDOM_ITEMS(op)) return 0; 95 if (!op->has_random_items ())
90 do { 96 return 0;
97 do
98 {
91 i=10; /* let's give it 10 tries */ 99 i = 10; /* let's give it 10 tries */
92 while((tmp=generate_treasure(op->randomitems,op->stats.exp? 100 while ((tmp = generate_treasure (op->randomitems, op->stats.exp ? op->stats.exp : 5)) == NULL && --i);
93 op->stats.exp:5))==NULL&&--i);
94 if(tmp==NULL) 101 if (tmp == NULL)
95 return 0; 102 return 0;
96 if(QUERY_FLAG(tmp, FLAG_CURSED) || QUERY_FLAG(tmp, FLAG_DAMNED)) 103 if (QUERY_FLAG (tmp, FLAG_CURSED) || QUERY_FLAG (tmp, FLAG_DAMNED))
97 { 104 {
98 free_object(tmp); 105 tmp->destroy ();
99 tmp = NULL; 106 tmp = NULL;
107 }
100 } 108 }
101 } while(!tmp); 109 while (!tmp);
102 110
103 tmp->x=op->x,tmp->y=op->y; 111 tmp->x = op->x, tmp->y = op->y;
104 SET_FLAG(tmp,FLAG_UNPAID); 112 SET_FLAG (tmp, FLAG_UNPAID);
105 insert_ob_in_map(tmp,op->map,NULL,0); 113 insert_ob_in_map (tmp, op->map, NULL, 0);
106 CLEAR_FLAG(op,FLAG_AUTO_APPLY); 114 CLEAR_FLAG (op, FLAG_AUTO_APPLY);
107 identify(tmp); 115 identify (tmp);
108 break; 116 break;
109 117
110 case TREASURE: 118 case TREASURE:
111 if (HAS_RANDOM_ITEMS(op)) 119 if (op->has_random_items ())
112 while ((op->stats.hp--)>0) 120 while ((op->stats.hp--) > 0)
113 create_treasure(op->randomitems, op, GT_ENVIRONMENT, 121 create_treasure (op->randomitems, op, GT_ENVIRONMENT,
114 op->stats.exp ? op->stats.exp : 122 op->stats.exp ? op->stats.exp : op->map == NULL ? 14 : op->map->difficulty, 0);
115 op->map == NULL ? 14: op->map->difficulty,0); 123 op->remove ();
116 remove_ob(op); 124 op->destroy ();
117 free_object(op);
118 break; 125 break;
119 } 126 }
120 127
121 return tmp ? 1 : 0; 128 return tmp ? 1 : 0;
122} 129}
123 130
124/* fix_auto_apply goes through the entire map (only the first time 131/* fix_auto_apply goes through the entire map (only the first time
125 * when an original map is loaded) and performs special actions for 132 * when an original map is loaded) and performs special actions for
126 * certain objects (most initialization of chests and creation of 133 * certain objects (most initialization of chests and creation of
127 * treasures and stuff). Calls auto_apply if appropriate. 134 * treasures and stuff). Calls auto_apply if appropriate.
128 */ 135 */
129 136
130void fix_auto_apply(mapstruct *m) { 137void
138fix_auto_apply (maptile *m)
139{
131 object *tmp,*above=NULL; 140 object *tmp, *above = NULL;
132 int x,y; 141 int x, y;
133 142
134 for(x=0;x<MAP_WIDTH(m);x++) 143 for (x = 0; x < m->width; x++)
135 for(y=0;y<MAP_HEIGHT(m);y++) 144 for (y = 0; y < m->height; y++)
136 for(tmp=get_map_ob(m,x,y);tmp!=NULL;tmp=above) { 145 for (tmp = GET_MAP_OB (m, x, y); tmp != NULL; tmp = above)
146 {
137 above=tmp->above; 147 above = tmp->above;
138 148
139 if(QUERY_FLAG(tmp,FLAG_AUTO_APPLY)) 149 if (QUERY_FLAG (tmp, FLAG_AUTO_APPLY))
140 auto_apply(tmp); 150 auto_apply (tmp);
141 else if(tmp->type==TREASURE) { 151 else if (tmp->type == TREASURE)
142 if (HAS_RANDOM_ITEMS(tmp)) 152 {
153 if (tmp->has_random_items ())
143 while ((tmp->stats.hp--)>0) 154 while ((tmp->stats.hp--) > 0)
144 create_treasure(tmp->randomitems, tmp, 0, 155 create_treasure (tmp->randomitems, tmp, 0, m->difficulty, 0);
145 m->difficulty,0); 156 }
157 if (tmp && tmp->arch && tmp->type != PLAYER && tmp->type != TREASURE && tmp->randomitems)
158 {
159 if (tmp->type == CONTAINER)
160 {
161 if (tmp->has_random_items ())
162 while ((tmp->stats.hp--) > 0)
163 create_treasure (tmp->randomitems, tmp, 0, m->difficulty, 0);
164 }
165 else if (tmp->has_random_items ())
166 create_treasure (tmp->randomitems, tmp, GT_APPLY, m->difficulty, 0);
167 }
146 } 168 }
147 if(tmp && tmp->arch && tmp->type!=PLAYER && tmp->type!=TREASURE && 169 for (x = 0; x < m->width; x++)
148 tmp->randomitems){ 170 for (y = 0; y < m->height; y++)
149 if(tmp->type==CONTAINER) {
150 if (HAS_RANDOM_ITEMS(tmp))
151 while ((tmp->stats.hp--)>0)
152 create_treasure(tmp->randomitems, tmp, 0,
153 m->difficulty,0);
154 }
155 else if (HAS_RANDOM_ITEMS(tmp))
156 create_treasure(tmp->randomitems, tmp, GT_APPLY,
157 m->difficulty,0);
158 }
159 }
160 for(x=0;x<MAP_WIDTH(m);x++)
161 for(y=0;y<MAP_HEIGHT(m);y++)
162 for(tmp=get_map_ob(m,x,y);tmp!=NULL;tmp=tmp->above) 171 for (tmp = GET_MAP_OB (m, x, y); tmp != NULL; tmp = tmp->above)
163 if (tmp->above
164 && (tmp->type == TRIGGER_BUTTON || tmp->type == TRIGGER_PEDESTAL)) 172 if (tmp->above && (tmp->type == TRIGGER_BUTTON || tmp->type == TRIGGER_PEDESTAL))
165 check_trigger(tmp,tmp->above); 173 check_trigger (tmp, tmp->above);
166} 174}
167 175
168/** 176/**
169 * Those are dummy functions defined to resolve all symboles. 177 * Those are dummy functions defined to resolve all symboles.
170 * Added as part of glue cleaning. 178 * Added as part of glue cleaning.
171 * Ryo 2005-07-15 179 * Ryo 2005-07-15
172 **/ 180 **/
173 181
182void
174void new_draw_info(int a, int b, const object *ob, const char *txt) 183new_draw_info (int a, int b, const object *ob, const char *txt)
175 { 184{
176 fprintf(logfile, "%s\n", txt); 185 fprintf (logfile, "%s\n", txt);
177 } 186}
187
188void
178void new_info_map(int color, mapstruct *map, const char *str) 189new_info_map (int color, maptile *map, const char *str)
179 { 190{
180 fprintf(logfile, "new_info_map: %s\n", str); 191 fprintf (logfile, "new_info_map: %s\n", str);
181 } 192}
182 193
194void
183void move_teleporter( object* ob) 195move_teleporter (object *ob)
184 { 196{
185 } 197}
186 198
199void
187void move_firewall( object* ob) 200move_firewall (object *ob)
188 { 201{
189 } 202}
190 203
204void
191void move_duplicator( object* ob) 205move_duplicator (object *ob)
192 { 206{
193 } 207}
194 208
209void
195void move_marker( object* ob) 210move_marker (object *ob)
196 { 211{
197 } 212}
198 213
214void
199void move_creator( object* ob) 215move_creator (object *ob)
200 { 216{
201 } 217}
202 218
219void
203void emergency_save( int x ) 220emergency_save (int x)
204 { 221{
205 } 222}
206 223
224void
207void clean_tmp_files( void ) 225clean_tmp_files (void)
208 { 226{
209 } 227}
210 228
229void
211void esrv_send_item( object* ob, object* obx ) 230esrv_send_item (object *ob, object *obx)
212 { 231{
213 } 232}
214 233
234void
215void dragon_ability_gain( object* ob, int x, int y ) 235dragon_ability_gain (object *ob, int x, int y)
216 { 236{
217 } 237}
218 238
239void
219void weather_effect( const char* c ) 240weather_effect (const char *c)
220 { 241{
221 } 242}
222 243
223void set_darkness_map( mapstruct* m) 244void
224 { 245set_darkness_map (maptile *m)
225 } 246{
226 247}
248
249void
227void move_apply( object* ob, object* obt, object* obx ) 250move_apply (object *ob, object *obt, object *obx)
228 { 251{
229 } 252}
230 253
254object *
231object* find_skill_by_number( object* ob, int x ) 255find_skill_by_number (object *ob, int x)
232 { 256{
233 return NULL; 257 return NULL;
234 } 258}
235 259
260void
236void esrv_del_item(player *pl, int tag) 261esrv_del_item (player *pl, int tag)
237 { 262{
238 } 263}
239 264
265void
240void esrv_update_spells(player *pl) 266esrv_update_spells (player *pl)
241 { 267{
242 } 268}
243 269
270void
244void monster_check_apply( object* ob, object* obt ) 271monster_check_apply (object *ob, object *obt)
245 { 272{
246 } 273}
247 274
275void
248void trap_adjust( object* ob, int x ) 276trap_adjust (object *ob, int x)
249 { 277{
250 } 278}

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines