--- deliantra/server/common/init.C 2006/09/10 16:00:23 1.10 +++ deliantra/server/common/init.C 2006/12/31 21:02:04 1.19 @@ -1,9 +1,3 @@ - -/* - * static char *rcsid_init_c = - * "$Id: init.C,v 1.10 2006/09/10 16:00:23 root Exp $"; - */ - /* CrossFire, A Multiplayer game for X-windows @@ -24,7 +18,7 @@ along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - The authors can be reached via e-mail at crossfire-devel@real-time.com + The authors can be reached via e-mail at */ #define EXTERN // horrible hack @@ -33,33 +27,27 @@ #include extern const char *const attacktype_desc[NROFATTACKS] = { -#define def(uc, lc, name, plus, change) # name, -#include "attackinc.h" -#undef def -}; - -extern const keyword resist_save[NROFATTACKS] = { -#define def(uc, lc, name, plus, change) KW_resist_ ## lc, -#include "attackinc.h" -#undef def +# define def(uc, lc, name, plus, change) # name, +# include "attackinc.h" +# undef def }; extern const char *const resist_plus[NROFATTACKS] = { -#define def(uc, lc, name, plus, change) # plus, -#include "attackinc.h" -#undef def +# define def(uc, lc, name, plus, change) # plus, +# include "attackinc.h" +# undef def }; extern const char *const change_resist_msg[NROFATTACKS] = { -#define def(uc, lc, name, plus, change) # change, -#include "attackinc.h" -#undef def +# define def(uc, lc, name, plus, change) # change, +# include "attackinc.h" +# undef def }; int resist_table[NROFATTACKS] = { -#define def(uc, lc, name, plus, change) ATNR_ ## uc, -#include "attackinc.h" -#undef def +# define def(uc, lc, name, plus, change) ATNR_ ## uc, +# include "attackinc.h" +# undef def }; /* You unforunately need to looking in include/global.h to see what these @@ -101,23 +89,14 @@ SPELL_FAILURE_EFFECTS, CASTING_TIME, REAL_WIZ, - RECYCLE_TMP_MAPS, EXPLORE_MODE, SPELLPOINT_LEVEL_DEPEND, SET_FRIENDLY_FIRE, - "", /* Who format specifier */ - "", /* who wiz format specifier */ MOTD, "rules", "news", "", /* DM_MAIL */ - 0, /* This and the next 3 values are metaserver values */ - "", - "", - 0, - "", 0, 0, 0, 0, 0, 0, 0, 0, /* worldmap settings */ - EMERGENCY_MAPPATH, EMERGENCY_X, EMERGENCY_Y, 0, 1.0, @@ -158,56 +137,6 @@ "Light" }; - -/* This loads the emergency map information from a - * .emergency file in the map directory. Doing this makes - * it easier to switch between map distributions (don't need - * to recompile. Note that there is no reason I see that - * this could not be re-loaded during play, but it seems - * like there should be little reason to do that. - */ -static void -init_emergency_mappath (void) -{ - char filename[MAX_BUF], tmpbuf[MAX_BUF]; - FILE *fp; - int online = 0; - - /* If this file doesn't exist, not a big deal */ - sprintf (filename, "%s/%s/.emergency", settings.datadir, settings.mapdir); - if ((fp = fopen (filename, "r")) != NULL) - { - while (fgets (tmpbuf, MAX_BUF - 1, fp)) - { - if (tmpbuf[0] == '#') - continue; /* ignore comments */ - - if (online == 0) - { - tmpbuf[strlen (tmpbuf) - 1] = 0; /* kill newline */ - settings.emergency_mapname = strdup_local (tmpbuf); - } - else if (online == 1) - { - settings.emergency_x = atoi (tmpbuf); - } - - else if (online == 2) - { - settings.emergency_y = atoi (tmpbuf); - } - online++; - if (online > 2) - break; - } - fclose (fp); - if (online <= 2) - LOG (llevError, "Online read partial data from %s\n", filename); - LOG (llevDebug, "Emergency mappath reset to %s (%d, %d)\n", settings.emergency_mapname, settings.emergency_x, settings.emergency_y); - } -} - - /* * It is vital that init_library() is called by any functions * using this library. @@ -216,13 +145,11 @@ * init_function_pointers(). Good idea to also call init_vars and * init_hash_table if you are doing any object loading. */ - void init_library (void) { init_environ (); init_globals (); - init_objects (); init_vars (); init_block (); ReadBmapNames (); @@ -232,7 +159,6 @@ init_dynamic (); init_attackmess (); init_clocks (); - init_emergency_mappath (); init_experience (); } @@ -285,66 +211,16 @@ init_globals (void) { if (settings.logfilename[0] == 0) - { - logfile = stderr; - } + logfile = stderr; else if ((logfile = fopen (settings.logfilename, "a")) == NULL) { fprintf (stderr, "Unable to open %s as the logfile - will use stderr instead\n", settings.logfilename); logfile = stderr; } else - { - setvbuf (logfile, NULL, _IOLBF, 0); - } - exiting = 0; - first_player = NULL; - first_friendly_object = NULL; - first_map = NULL; - first_treasurelist = NULL; - first_artifactlist = NULL; - first_archetype = NULL; - *first_map_ext_path = 0; - warn_archetypes = 0; - nroftreasures = 0; - nrofartifacts = 0; - nrofallowedstr = 0; - ring_arch = NULL; - amulet_arch = NULL; - staff_arch = NULL; - trying_emergency_save = 0; - num_animations = 0; - animations_allocated = 0; - init_defaults (); + setvbuf (logfile, NULL, _IOLBF, 0); } -/* - * Sets up and initialises the linked list of free and used objects. - * Allocates a certain chunk of objects and puts them on the free list. - * Called by init_library(); - */ - -void -init_objects (void) -{ - /* Initialize all objects: */ - objects = NULL; - active_objects = NULL; -} - -/* - * Initialises global variables which can be changed by options. - * Called by init_library(). - */ - -void -init_defaults (void) -{ - editor = 0; - nroferrors = 0; -} - - void init_dynamic (void) { @@ -355,17 +231,18 @@ if (at->clone.type == MAP) { if (at->clone.race) - { - strcpy (first_map_ext_path, at->clone.race); - } + first_map_ext_path = at->clone.race; + if (EXIT_PATH (&at->clone)) { - strcpy (first_map_path, EXIT_PATH (&at->clone)); + first_map_path = EXIT_PATH (&at->clone); return; } } + at = at->next; } + LOG (llevDebug, "You Need a archetype called 'map' and it have to contain start map\n"); exit (-1); } @@ -488,9 +365,9 @@ attack_mess[mess][level].level = atoi (buf); p = strtok (NULL, "="); if (p != NULL) - attack_mess[mess][level].buf1 = strdup_local (p); + attack_mess[mess][level].buf1 = strdup (p); else - attack_mess[mess][level].buf1 = strdup_local (""); + attack_mess[mess][level].buf1 = strdup (""); mode = 2; continue; } @@ -500,9 +377,9 @@ attack_mess[mess][level].level = atoi (buf); p = strtok (NULL, "="); if (p != NULL) - attack_mess[mess][level].buf2 = strdup_local (p); + attack_mess[mess][level].buf2 = strdup (p); else - attack_mess[mess][level].buf2 = strdup_local (""); + attack_mess[mess][level].buf2 = strdup (""); mode = 3; continue; } @@ -512,9 +389,9 @@ attack_mess[mess][level].level = atoi (buf); p = strtok (NULL, "="); if (p != NULL) - attack_mess[mess][level].buf3 = strdup_local (p); + attack_mess[mess][level].buf3 = strdup (p); else - attack_mess[mess][level].buf3 = strdup_local (""); + attack_mess[mess][level].buf3 = strdup (""); mode = 1; level++; total++;