X-Git-Url: https://jfr.im/git/irc/gameservirc.git/blobdiff_plain/d1927afcaa98c1d2a1d46b9593dac76b649fd357..285f72cf4f14b712d92d0fa6a64b649213d954c4:/gameserv/config.cpp diff --git a/gameserv/config.cpp b/gameserv/config.cpp index 711e373..4df3484 100644 --- a/gameserv/config.cpp +++ b/gameserv/config.cpp @@ -35,15 +35,18 @@ int maxidletime; // Max time (in seconds) a player can be idle for int idlecheckperiod; // Period for checking every player's idle time int level1expire; // Days for level 1 players to expire int defaultexpire; // Days for other levels to expire +int maxitems; // Maximum amount of items a player can carry long refreshperiod; // Period for refreshing players long configflags; // Holds the bit representation of some boolean values // Remote server stuff. This is used for the outgoing connection gameserv needs to make // to a real ircd. char *remoteserver; // Server to connect to -char *remoteport; // Port to connect to on remoteserver +char *localhost; // Hostname of the local address to bind to +int remoteport; // Port to connect to on remoteserver char *remotepass; // Password for the server link +char *storeitemdata; // File to store the items available in the store char *tavernitemdata; // File to store the items available in the tavern char *itemdata; // File to store the items in char *playerdata; // File to store player data in @@ -58,57 +61,59 @@ char *pidfile; // Process ID file void unload_config_file() { - if (s_GameServ) - delete [] s_GameServ; - if (gshost) - delete [] gshost; - if (gsident) - delete [] gsident; - if (servername) - delete [] servername; - if (c_Forest) - delete [] c_Forest; - if (c_ForestTopic) - delete [] c_ForestTopic; - if (remoteserver) - delete [] remoteserver; - if (remoteport) - delete [] remoteport; - if (remotepass) - delete [] remotepass; - if (playerdata) - delete [] playerdata; - if (tavernitemdata) - delete [] tavernitemdata; - if (itemdata) - delete [] itemdata; - if (dragondata) - delete [] dragondata; - if (masterdata) - delete [] masterdata; - if (adminpass) - delete [] adminpass; - if (welcomemsg) - delete [] welcomemsg; - if (pidfile) - delete [] pidfile; - if (ignoreserverslist) - delete [] ignoreserverslist; - if (newsdata) - delete [] newsdata; - if (nsname) - delete [] nsname; - if (nspass) - delete [] nspass; + if (s_GameServ) + delete [] s_GameServ; + if (gshost) + delete [] gshost; + if (gsident) + delete [] gsident; + if (servername) + delete [] servername; + if (c_Forest) + delete [] c_Forest; + if (c_ForestTopic) + delete [] c_ForestTopic; + if (remoteserver) + delete [] remoteserver; + if (localhost) + delete [] localhost; + if (remotepass) + delete [] remotepass; + if (playerdata) + delete [] playerdata; + if (storeitemdata) + delete [] storeitemdata; + if (tavernitemdata) + delete [] tavernitemdata; + if (itemdata) + delete [] itemdata; + if (dragondata) + delete [] dragondata; + if (masterdata) + delete [] masterdata; + if (adminpass) + delete [] adminpass; + if (welcomemsg) + delete [] welcomemsg; + if (pidfile) + delete [] pidfile; + if (ignoreserverslist) + delete [] ignoreserverslist; + if (newsdata) + delete [] newsdata; + if (nsname) + delete [] nsname; + if (nspass) + delete [] nspass; - configflags = 0; + configflags = 0; } int load_config_file(char *config) { char *buf, *directive, *value; - #define numdirectives 32 + #define numdirectives 35 unload_config_file(); @@ -166,6 +171,9 @@ int load_config_file(char *config) directives[29].desc = "MASTERDATA - File to store the level master stats in"; directives[30].desc = "ITEMDATA - File to store the items in"; directives[31].desc = "TAVERNITEMDATA - File in which to store the items that are available in the tavern"; + directives[32].desc = "MAXITEMS - Maximum number of items a player can carry"; + directives[33].desc = "STOREITEMDATA - File in which to store the items that are available in the store"; + directives[34].desc = "LOCALHOST - Local hostname or IP to bind to when connecting to the remote server"; configflags = 0; @@ -257,8 +265,7 @@ int load_config_file(char *config) else if (stricmp(directive, "REMOTEPORT") == 0) { value = strtok(NULL, " "); - remoteport = new char[strlen(value) + 1]; - strcpy(remoteport, value); + remoteport = stringtoint(value); directives[7].done = true; } else if (stricmp(directive, "REMOTEPASS") == 0) @@ -423,6 +430,26 @@ int load_config_file(char *config) strcpy(tavernitemdata, value); directives[31].done = true; } + else if (stricmp(directive, "MAXITEMS") == 0) + { + value = strtok(NULL, ""); + maxitems = stringtoint(value); + directives[32].done = true; + } + else if (stricmp(directive, "STOREITEMDATA") == 0) + { + value = strtok(NULL, ""); + storeitemdata = new char[strlen(value) + 1]; + strcpy(storeitemdata, value); + directives[33].done = true; + } + else if (stricmp(directive, "LOCALHOST") == 0) + { + value = strtok(NULL, ""); + localhost = new char[strlen(value) + 1]; + strcpy(localhost, value); + directives[34].done = true; + } else if (stricmp(directive, "WELCOMEMSG") == 0) { // This directive is optional