--- deliantra/server/common/init.C 2008/09/23 04:29:11 1.46 +++ deliantra/server/common/init.C 2009/11/29 10:55:18 1.52 @@ -5,18 +5,19 @@ * Copyright (©) 2002,2007 Mark Wedel & Crossfire Development Team * Copyright (©) 1992,2007 Frank Tore Johansen * - * Deliantra 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 3 of the License, or - * (at your option) any later version. + * Deliantra is free software: you can redistribute it and/or modify it under + * the terms of the Affero GNU General Public License as published by 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 * 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, see . + * You should have received a copy of the Affero GNU General Public License + * and the GNU General Public License along with this program. If not, see + * . * * The authors can be reached via e-mail to */ @@ -26,6 +27,8 @@ #include #include +dynbuf_text msg_dynbuf (65536, 65536); + extern const char *const attacktype_desc[NROFATTACKS] = { # define def(uc, lc, name, plus, change) # name, # include "attackinc.h" @@ -91,11 +94,6 @@ 0, EXPLORE_MODE, SPELLPOINT_LEVEL_DEPEND, - MOTD, - "rules", - "news", - "", /* DM_MAIL */ - 0, 0, 0, 0, 0, 0, 0, 0, /* worldmap settings */ 0, 1.0, @@ -139,11 +137,11 @@ * overwrite these if specified. */ void -init_environ (void) +init_environ () { const char *cp; - if (cp = getenv ("DELIANTRA_CONFDIR" )) settings.datadir = cp; + if (cp = getenv ("DELIANTRA_CONFDIR" )) settings.confdir = cp; if (cp = getenv ("DELIANTRA_LIBDIR" )) settings.datadir = cp; if (cp = getenv ("DELIANTRA_LOCALDIR" )) settings.localdir = cp; if (cp = getenv ("DELIANTRA_PLAYERDIR" )) settings.playerdir = cp; @@ -162,7 +160,7 @@ * Might use environment-variables as default for some of them. */ void -init_globals (void) +init_globals () { if (settings.logfilename[0] == 0) set_logfd (-1); @@ -181,7 +179,7 @@ } void -init_dynamic (void) +init_dynamic () { first_map_ext_path = "/start/HallsOfSelection"; first_map_path = "/HallOfSelection"; @@ -195,14 +193,14 @@ //attackmess_t attack_mess[NROFATTACKMESS][MAXATTACKMESS]; void -init_attackmess (void) +init_attackmess () { char buf[MAX_BUF]; char filename[MAX_BUF]; char *cp, *p; FILE *fp; static int has_been_done = 0; - int mess, level, comp; + int msgnum, level, comp; int mode = 0, total = 0; if (has_been_done) @@ -235,61 +233,63 @@ { p = strtok (buf, ":"); p = strtok (NULL, ":"); + if (mode == 1) { - attack_mess[mess][level].level = -1; - attack_mess[mess][level].buf1 = NULL; - attack_mess[mess][level].buf2 = NULL; - attack_mess[mess][level].buf3 = NULL; + attack_mess[msgnum][level].level = -1; + attack_mess[msgnum][level].buf1 = NULL; + attack_mess[msgnum][level].buf2 = NULL; + attack_mess[msgnum][level].buf3 = NULL; } level = 0; - mess = atoi (p); + msgnum = atoi (p); mode = 1; - continue; } - - if (mode == 1) + else if (mode == 1) { p = strtok (buf, "="); - attack_mess[mess][level].level = atoi (buf); + attack_mess[msgnum][level].level = atoi (buf); p = strtok (NULL, "="); + if (p != NULL) - attack_mess[mess][level].buf1 = strdup (p); + attack_mess[msgnum][level].buf1 = strdup (p); else - attack_mess[mess][level].buf1 = strdup (""); + attack_mess[msgnum][level].buf1 = strdup (""); + mode = 2; - continue; } else if (mode == 2) { p = strtok (buf, "="); - attack_mess[mess][level].level = atoi (buf); + attack_mess[msgnum][level].level = atoi (buf); p = strtok (NULL, "="); + if (p != NULL) - attack_mess[mess][level].buf2 = strdup (p); + attack_mess[msgnum][level].buf2 = strdup (p); else - attack_mess[mess][level].buf2 = strdup (""); + attack_mess[msgnum][level].buf2 = strdup (""); + mode = 3; - continue; } else if (mode == 3) { p = strtok (buf, "="); - attack_mess[mess][level].level = atoi (buf); + attack_mess[msgnum][level].level = atoi (buf); p = strtok (NULL, "="); + if (p != NULL) - attack_mess[mess][level].buf3 = strdup (p); + attack_mess[msgnum][level].buf3 = strdup (p); else - attack_mess[mess][level].buf3 = strdup (""); + attack_mess[msgnum][level].buf3 = strdup (""); + mode = 1; level++; total++; - continue; } } - LOG (llevDebug, "got %d messages in %d categories.\n", total, mess + 1); + LOG (llevDebug, "got %d messages in %d categories.\n", total, msgnum + 1); close_and_delete (fp, comp); }