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

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines