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

Comparing deliantra/server/common/init.C (file contents):
Revision 1.11 by root, Wed Sep 13 02:05:18 2006 UTC vs.
Revision 1.17 by root, Mon Dec 18 02:35:00 2006 UTC

16 16
17 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
18 along with this program; if not, write to the Free Software 18 along with this program; if not, write to the Free Software
19 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 19 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
20 20
21 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>
22*/ 22*/
23 23
24#define EXTERN // horrible hack 24#define EXTERN // horrible hack
25 25
26#include <global.h> 26#include <global.h>
27#include <object.h> 27#include <object.h>
28 28
29extern const char *const attacktype_desc[NROFATTACKS] = { 29extern const char *const attacktype_desc[NROFATTACKS] = {
30# define def(uc, lc, name, plus, change) # name, 30# define def(uc, lc, name, plus, change) # name,
31# include "attackinc.h"
32# undef def
33};
34
35extern const keyword resist_save[NROFATTACKS] = {
36# define def(uc, lc, name, plus, change) KW_resist_ ## lc,
37# include "attackinc.h" 31# include "attackinc.h"
38# undef def 32# undef def
39}; 33};
40 34
41extern const char *const resist_plus[NROFATTACKS] = { 35extern const char *const resist_plus[NROFATTACKS] = {
93 SEARCH_ITEMS, 87 SEARCH_ITEMS,
94 SPELL_ENCUMBRANCE, 88 SPELL_ENCUMBRANCE,
95 SPELL_FAILURE_EFFECTS, 89 SPELL_FAILURE_EFFECTS,
96 CASTING_TIME, 90 CASTING_TIME,
97 REAL_WIZ, 91 REAL_WIZ,
98 RECYCLE_TMP_MAPS,
99 EXPLORE_MODE, 92 EXPLORE_MODE,
100 SPELLPOINT_LEVEL_DEPEND, 93 SPELLPOINT_LEVEL_DEPEND,
101 SET_FRIENDLY_FIRE, 94 SET_FRIENDLY_FIRE,
102 "", /* Who format specifier */
103 "", /* who wiz format specifier */
104 MOTD, 95 MOTD,
105 "rules", 96 "rules",
106 "news", 97 "news",
107 "", /* DM_MAIL */ 98 "", /* DM_MAIL */
108 0, /* This and the next 3 values are metaserver values */
109 "",
110 "",
111 0,
112 "",
113 0, 0, 0, 0, 0, 0, 0, 0, /* worldmap settings */ 99 0, 0, 0, 0, 0, 0, 0, 0, /* worldmap settings */
114 EMERGENCY_MAPPATH, EMERGENCY_X, EMERGENCY_Y, 100 EMERGENCY_MAPPATH, EMERGENCY_X, EMERGENCY_Y,
115 0, 101 0,
116 1.0, 102 1.0,
117 103
177 continue; /* ignore comments */ 163 continue; /* ignore comments */
178 164
179 if (online == 0) 165 if (online == 0)
180 { 166 {
181 tmpbuf[strlen (tmpbuf) - 1] = 0; /* kill newline */ 167 tmpbuf[strlen (tmpbuf) - 1] = 0; /* kill newline */
182 settings.emergency_mapname = strdup_local (tmpbuf); 168 settings.emergency_mapname = strdup (tmpbuf);
183 } 169 }
184 else if (online == 1) 170 else if (online == 1)
185 { 171 {
186 settings.emergency_x = atoi (tmpbuf); 172 settings.emergency_x = atoi (tmpbuf);
187 } 173 }
214void 200void
215init_library (void) 201init_library (void)
216{ 202{
217 init_environ (); 203 init_environ ();
218 init_globals (); 204 init_globals ();
219 init_objects ();
220 init_vars (); 205 init_vars ();
221 init_block (); 206 init_block ();
222 ReadBmapNames (); 207 ReadBmapNames ();
223 ReadSmooth (); 208 ReadSmooth ();
224 init_anim (); /* Must be after we read in the bitmaps */ 209 init_anim (); /* Must be after we read in the bitmaps */
277 262
278void 263void
279init_globals (void) 264init_globals (void)
280{ 265{
281 if (settings.logfilename[0] == 0) 266 if (settings.logfilename[0] == 0)
282 {
283 logfile = stderr; 267 logfile = stderr;
284 }
285 else if ((logfile = fopen (settings.logfilename, "a")) == NULL) 268 else if ((logfile = fopen (settings.logfilename, "a")) == NULL)
286 { 269 {
287 fprintf (stderr, "Unable to open %s as the logfile - will use stderr instead\n", settings.logfilename); 270 fprintf (stderr, "Unable to open %s as the logfile - will use stderr instead\n", settings.logfilename);
288 logfile = stderr; 271 logfile = stderr;
289 } 272 }
290 else 273 else
291 {
292 setvbuf (logfile, NULL, _IOLBF, 0); 274 setvbuf (logfile, NULL, _IOLBF, 0);
293 }
294 exiting = 0;
295 first_player = NULL;
296 first_friendly_object = NULL;
297 first_map = NULL;
298 first_treasurelist = NULL;
299 first_artifactlist = NULL;
300 first_archetype = NULL;
301 *first_map_ext_path = 0;
302 warn_archetypes = 0;
303 nroftreasures = 0;
304 nrofartifacts = 0;
305 nrofallowedstr = 0;
306 ring_arch = NULL;
307 amulet_arch = NULL;
308 staff_arch = NULL;
309 trying_emergency_save = 0;
310 num_animations = 0;
311 animations_allocated = 0;
312 init_defaults ();
313} 275}
314
315/*
316 * Sets up and initialises the linked list of free and used objects.
317 * Allocates a certain chunk of objects and puts them on the free list.
318 * Called by init_library();
319 */
320
321void
322init_objects (void)
323{
324 /* Initialize all objects: */
325 objects = NULL;
326 active_objects = NULL;
327}
328
329/*
330 * Initialises global variables which can be changed by options.
331 * Called by init_library().
332 */
333
334void
335init_defaults (void)
336{
337 editor = 0;
338 nroferrors = 0;
339}
340
341 276
342void 277void
343init_dynamic (void) 278init_dynamic (void)
344{ 279{
345 archetype *at = first_archetype; 280 archetype *at = first_archetype;
347 while (at) 282 while (at)
348 { 283 {
349 if (at->clone.type == MAP) 284 if (at->clone.type == MAP)
350 { 285 {
351 if (at->clone.race) 286 if (at->clone.race)
352 {
353 strcpy (first_map_ext_path, at->clone.race); 287 strcpy (first_map_ext_path, at->clone.race);
354 } 288
355 if (EXIT_PATH (&at->clone)) 289 if (EXIT_PATH (&at->clone))
356 { 290 {
357 strcpy (first_map_path, EXIT_PATH (&at->clone)); 291 strcpy (first_map_path, EXIT_PATH (&at->clone));
358 return; 292 return;
359 } 293 }
360 } 294 }
295
361 at = at->next; 296 at = at->next;
362 } 297 }
298
363 LOG (llevDebug, "You Need a archetype called 'map' and it have to contain start map\n"); 299 LOG (llevDebug, "You Need a archetype called 'map' and it have to contain start map\n");
364 exit (-1); 300 exit (-1);
365} 301}
366 302
367unsigned long todtick; 303unsigned long todtick;
480 { 416 {
481 p = strtok (buf, "="); 417 p = strtok (buf, "=");
482 attack_mess[mess][level].level = atoi (buf); 418 attack_mess[mess][level].level = atoi (buf);
483 p = strtok (NULL, "="); 419 p = strtok (NULL, "=");
484 if (p != NULL) 420 if (p != NULL)
485 attack_mess[mess][level].buf1 = strdup_local (p); 421 attack_mess[mess][level].buf1 = strdup (p);
486 else 422 else
487 attack_mess[mess][level].buf1 = strdup_local (""); 423 attack_mess[mess][level].buf1 = strdup ("");
488 mode = 2; 424 mode = 2;
489 continue; 425 continue;
490 } 426 }
491 else if (mode == 2) 427 else if (mode == 2)
492 { 428 {
493 p = strtok (buf, "="); 429 p = strtok (buf, "=");
494 attack_mess[mess][level].level = atoi (buf); 430 attack_mess[mess][level].level = atoi (buf);
495 p = strtok (NULL, "="); 431 p = strtok (NULL, "=");
496 if (p != NULL) 432 if (p != NULL)
497 attack_mess[mess][level].buf2 = strdup_local (p); 433 attack_mess[mess][level].buf2 = strdup (p);
498 else 434 else
499 attack_mess[mess][level].buf2 = strdup_local (""); 435 attack_mess[mess][level].buf2 = strdup ("");
500 mode = 3; 436 mode = 3;
501 continue; 437 continue;
502 } 438 }
503 else if (mode == 3) 439 else if (mode == 3)
504 { 440 {
505 p = strtok (buf, "="); 441 p = strtok (buf, "=");
506 attack_mess[mess][level].level = atoi (buf); 442 attack_mess[mess][level].level = atoi (buf);
507 p = strtok (NULL, "="); 443 p = strtok (NULL, "=");
508 if (p != NULL) 444 if (p != NULL)
509 attack_mess[mess][level].buf3 = strdup_local (p); 445 attack_mess[mess][level].buf3 = strdup (p);
510 else 446 else
511 attack_mess[mess][level].buf3 = strdup_local (""); 447 attack_mess[mess][level].buf3 = strdup ("");
512 mode = 1; 448 mode = 1;
513 level++; 449 level++;
514 total++; 450 total++;
515 continue; 451 continue;
516 } 452 }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines