X-Git-Url: https://jfr.im/git/irc/gameservirc.git/blobdiff_plain/6f727d4c9eb5c886f14598577f40da583577444e..c260a8d7699447c74d9a9ee8912582cc8814cec2:/gameserv/config.cpp diff --git a/gameserv/config.cpp b/gameserv/config.cpp index 48e4d9a..9796938 100644 --- a/gameserv/config.cpp +++ b/gameserv/config.cpp @@ -40,6 +40,7 @@ char *remotepass; // Password for the server link char *playerdata; // File to store player data in char *monsterdata; // File to load monster data from +char *newsdata; // File to store news data in char *pidfile; // Process ID file #if defined(P10) @@ -78,6 +79,8 @@ void unload_config_file() delete [] pidfile; if (ignoreserverslist) delete [] ignoreserverslist; + if (newsdata) + delete [] newsdata; configflags = 0; } @@ -112,20 +115,20 @@ int load_config_file(char *config) directives[12].desc = "WELCOMEDELAY - Delay (in seconds) to wait before welcoming new users to the network"; directives[13].desc = "FORESTFIGHTS - Number of forest fights players get every day"; directives[14].desc = "UPDATEPERIOD - Number of seconds between every player data save"; - directives[15].desc = "WELCOMEMSG - Message to send to new users on the network"; - directives[16].desc = "PIDFILE - Filename to store the gameserv process ID in"; - directives[17].desc = "MAXAFIGHTDISTANCE - The maximum number of levels above you "\ + directives[15].desc = "PIDFILE - Filename to store the gameserv process ID in"; + directives[16].desc = "MAXAFIGHTDISTANCE - The maximum number of levels above you "\ "that you can fight player->player"; - directives[18].desc = "MAXBFIGHTDISTANCE - The maximum number of levels below you "\ + directives[17].desc = "MAXBFIGHTDISTANCE - The maximum number of levels below you "\ "that you can fight player->player"; - directives[19].desc = "MAXIDLETIME - The maximum amount of time (in seconds) "\ + directives[18].desc = "MAXIDLETIME - The maximum amount of time (in seconds) "\ "that a player can be idle before something happens"; - directives[20].desc = "IDLECHECKPERIOD - The period (in seconds) in which the entire "\ + directives[19].desc = "IDLECHECKPERIOD - The period (in seconds) in which the entire "\ "players list will be checked for idlers. See also: "\ "MAXIDLETIME"; - directives[21].desc = "LISTENONC_FOREST - True/False as to "\ + directives[20].desc = "LISTENONC_FOREST - True/False as to "\ "whether or not to listen for forest "\ "commands on the forest channel"; + directives[21].desc = "NEWSDATA - File to store daily news in"; configflags = 0; @@ -267,43 +270,36 @@ int load_config_file(char *config) updateperiod = stringtoint(value); directives[14].done = true; } - else if (stricmp(directive, "WELCOMEMSG") == 0) - { - value = strtok(NULL, ""); - welcomemsg = new char[strlen(value) + 1]; - strcpy(welcomemsg, value); - directives[15].done = true; - } else if (stricmp(directive, "PIDFILE") == 0) { value = strtok(NULL, " "); pidfile = new char[strlen(value) + 1]; strcpy(pidfile, value); - directives[16].done = true; + directives[15].done = true; } else if (stricmp(directive, "MAXAFIGHTDISTANCE") == 0) { value = strtok(NULL, " "); maxafightdistance = stringtoint(value); - directives[17].done = true;; + directives[16].done = true;; } else if (stricmp(directive, "MAXBFIGHTDISTANCE") == 0) { value = strtok(NULL, " "); maxbfightdistance = stringtoint(value); - directives[18].done = true; + directives[17].done = true; } else if (stricmp(directive, "MAXIDLETIME") == 0) { value = strtok(NULL, " "); maxidletime = stringtoint(value); - directives[19].done = true; + directives[18].done = true; } else if (stricmp(directive, "IDLECHECKPERIOD") == 0) { value = strtok(NULL, " "); idlecheckperiod = stringtoint(value); - directives[20].done = true; + directives[19].done = true; } else if (stricmp(directive, "LISTENONC_FOREST") == 0) { @@ -311,8 +307,23 @@ int load_config_file(char *config) if (stricmp(value, "TRUE") == 0) setListenOnCF(); + directives[20].done = true; + } + else if (stricmp(directive, "NEWSDATA") == 0) + { + value = strtok(NULL, " "); + newsdata = new char [strlen(value) + 1]; + strcpy(newsdata, value); directives[21].done = true; } + else if (stricmp(directive, "WELCOMEMSG") == 0) + { + // This directive is optional + value = strtok(NULL, ""); + welcomemsg = new char[strlen(value) + 1]; + strcpy(welcomemsg, value); + setWelcome(); + } else if (stricmp(directive, "USEPRIVMSG") == 0) { // This directive is optional