]> jfr.im git - irc/gameservirc.git/blobdiff - gameserv/config.cpp
Added files to the .cvsignore
[irc/gameservirc.git] / gameserv / config.cpp
index 48e4d9ab22e5098b30af6109e894ae6c4019c6c4..cc04311ee0d90ae5813e4171b999fff466a7664e 100644 (file)
@@ -30,6 +30,9 @@ int maxafightdistance;                // Max levels above a player they can fight player->play
 int maxbfightdistance;         // Max levels below a player they can fight player->player
 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
+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
@@ -40,6 +43,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 +82,8 @@ void unload_config_file()
        delete [] pidfile;
     if (ignoreserverslist)
        delete [] ignoreserverslist;
+    if (newsdata)
+       delete [] newsdata;
 
     configflags = 0;
 }
@@ -86,7 +92,7 @@ int load_config_file(char *config)
 {
     char *buf, *directive, *value;
 
-    #define numdirectives 22
+    #define numdirectives 25
 
     unload_config_file();
 
@@ -112,20 +118,28 @@ 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";
+    directives[22].desc = "REFRESHPERIOD - Period (in seconds) to "\
+                               "refresh players";
+    directives[23].desc = "LEVEL1EXPIRE - Amount of days until a "\
+                       "level 1 player's account is deleted due to "\
+                       "inactivity.";
+    directives[24].desc = "DEFAULTEXPIRE - Amount of days until a "\
+                       "level 2 and above player's account is "\
+                       "deleted due to inactivity";
 
     configflags = 0;
 
@@ -267,43 +281,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 +318,41 @@ 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, "REFRESHPERIOD") == 0)
+       {
+           value = strtok(NULL, " ");
+           refreshperiod = stringtoint(value);
+           directives[22].done = true;
+       }
+       else if (stricmp(directive, "LEVEL1EXPIRE") == 0)
+       {
+           value = strtok(NULL, " ");
+           level1expire = stringtoint(value);
+           directives[23].done = true;
+       }
+       else if (stricmp(directive, "DEFAULTEXPIRE") == 0)
+       {
+           value = strtok(NULL, " ");
+           defaultexpire = stringtoint(value);
+           directives[24].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