--- deliantra/server/common/init.C 2007/04/16 06:23:39 1.32 +++ deliantra/server/common/init.C 2007/07/01 05:00:17 1.38 @@ -1,25 +1,24 @@ /* - * CrossFire, A Multiplayer game for X-windows + * This file is part of Crossfire TRT, the Roguelike Realtime MORPG. * - * Copyright (C) 2005, 2006, 2007 Marc Lehmann & Crossfire+ Development Team - * Copyright (C) 2002 Mark Wedel & Crossfire Development Team - * Copyright (C) 1992 Frank Tore Johansen + * Copyright (©) 2005,2006,2007 Marc Alexander Lehmann / Robin Redeker / the Crossfire TRT team + * Copyright (©) 2002,2007 Mark Wedel & Crossfire Development Team + * Copyright (©) 1992,2007 Frank Tore Johansen * - * This program is free software; you can redistribute it and/or modify + * Crossfire TRT 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 + * the Free Software Foundation, either version 3 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 + * 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 + * along with this program. If not, see . + * + * The authors can be reached via e-mail to */ #define EXTERN // horrible hack @@ -74,8 +73,8 @@ PLAYERDIR, MAPDIR, ARCHETYPES, REGIONS, TREASURES, UNIQUE_DIR, TEMPLATE_DIR, TMPDIR, - STAT_LOSS_ON_DEATH, PK_LUCK_PENALTY, + STAT_LOSS_ON_DEATH, PERMANENT_EXPERIENCE_RATIO, DEATH_PENALTY_RATIO, DEATH_PENALTY_LEVEL, @@ -87,11 +86,11 @@ SEARCH_ITEMS, SPELL_ENCUMBRANCE, SPELL_FAILURE_EFFECTS, - CASTING_TIME, - REAL_WIZ, + SET_FRIENDLY_FIRE, + 0, + 0, EXPLORE_MODE, SPELLPOINT_LEVEL_DEPEND, - SET_FRIENDLY_FIRE, MOTD, "rules", "news", @@ -106,8 +105,6 @@ ARMOR_WEIGHT_LINEAR, ARMOR_SPEED_IMPROVEMENT, ARMOR_SPEED_LINEAR, - 1, /* no_player_stealing */ - 1, /* create_home_portals */ }; /* perhaps not the best place for this, but needs to be @@ -150,13 +147,11 @@ { init_globals (); init_block (); - init_archetypes (); /* Reads all archetypes from file */ init_dynamic (); init_attackmess (); 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. @@ -169,27 +164,35 @@ 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; @@ -216,23 +219,19 @@ void init_dynamic (void) { - archetype *at = first_archetype; - - while (at) + for_all_archetypes (at) { - if (at->clone.type == MAP) + if (at->type == MAP) { - if (at->clone.race) - first_map_ext_path = at->clone.race; + if (at->race) + first_map_ext_path = at->race; - if (EXIT_PATH (&at->clone)) + if (EXIT_PATH (at)) { - first_map_path = EXIT_PATH (&at->clone); + first_map_path = EXIT_PATH (at); return; } } - - at = at->next; } LOG (llevDebug, "You need an archetype of type 'map' and it has to contain the player start map\n");