--- deliantra/server/common/init.C 2007/01/03 00:21:35 1.21 +++ deliantra/server/common/init.C 2007/04/16 11:09:30 1.33 @@ -1,25 +1,26 @@ /* - CrossFire, A Multiplayer game for X-windows - - Copyright (C) 2002 Mark Wedel & Crossfire Development Team - Copyright (C) 1992 Frank Tore Johansen - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - 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, A Multiplayer game for X-windows + * + * Copyright (C) 2005, 2006, 2007 Marc Lehmann & Crossfire+ Development Team + * Copyright (C) 2002 Mark Wedel & Crossfire Development Team + * Copyright (C) 1992 Frank Tore Johansen + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * 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 + */ #define EXTERN // horrible hack @@ -81,7 +82,6 @@ BALANCED_STAT_LOSS, NOT_PERMADETH, SIMPLE_EXP, - RESET_LOCATION_TIME, SET_TITLE, RESURRECTION, SEARCH_ITEMS, @@ -148,21 +148,13 @@ void init_library (void) { - init_environ (); init_globals (); - init_vars (); init_block (); - ReadBmapNames (); - ReadSmooth (); - init_anim (); /* Must be after we read in the bitmaps */ - init_archetypes (); /* Reads all archetypes from file */ init_dynamic (); init_attackmess (); - init_clocks (); init_experience (); } - /* init_environ initialises values from the environmental variables. * it needs to be called very early, since command line options should * overwrite these if specified. @@ -175,38 +167,44 @@ cp = getenv ("CROSSFIRE_LIBDIR"); if (cp) settings.datadir = cp; + cp = getenv ("CROSSFIRE_LOCALDIR"); if (cp) settings.localdir = cp; + cp = getenv ("CROSSFIRE_PLAYERDIR"); if (cp) settings.playerdir = cp; + cp = getenv ("CROSSFIRE_MAPDIR"); if (cp) settings.mapdir = cp; + cp = getenv ("CROSSFIRE_ARCHETYPES"); if (cp) settings.archetypes = cp; + cp = getenv ("CROSSFIRE_TREASURES"); if (cp) settings.treasures = cp; + cp = getenv ("CROSSFIRE_UNIQUEDIR"); if (cp) settings.uniquedir = cp; + cp = getenv ("CROSSFIRE_TEMPLATEDIR"); if (cp) settings.templatedir = cp; + cp = getenv ("CROSSFIRE_TMPDIR"); if (cp) settings.tmpdir = cp; } - /* * Initialises all global variables. * Might use environment-variables as default for some of them. */ - void init_globals (void) { @@ -243,64 +241,10 @@ at = at->next; } - LOG (llevDebug, "You Need a archetype called 'map' and it have to contain start map\n"); + LOG (llevDebug, "You need an archetype of type 'map' and it has to contain the player start map\n"); exit (-1); } -unsigned long todtick; - -/* - * Write out the current time to the file so time does not - * reset every time the server reboots. - */ - -void -write_todclock (void) -{ - char filename[MAX_BUF]; - FILE *fp; - - sprintf (filename, "%s/clockdata", settings.localdir); - if ((fp = fopen (filename, "w")) == NULL) - { - LOG (llevError, "Cannot open %s for writing\n", filename); - return; - } - fprintf (fp, "%lu", todtick); - fclose (fp); -} - -/* - * initialises the gametime and TOD counters - * Called by init_library(). - */ - -void -init_clocks (void) -{ - char filename[MAX_BUF]; - FILE *fp; - static int has_been_done = 0; - - if (has_been_done) - return; - else - has_been_done = 1; - - sprintf (filename, "%s/clockdata", settings.localdir); - LOG (llevDebug, "Reading clockdata from %s...\n", filename); - if ((fp = fopen (filename, "r")) == NULL) - { - LOG (llevError, "Can't open %s.\n", filename); - todtick = 0; - write_todclock (); - return; - } - fscanf (fp, "%lu", &todtick); - LOG (llevDebug, "todtick=%lu\n", todtick); - fclose (fp); -} - /* * initialises the attack messages. * Called by init_library().