]> jfr.im git - irc/gameservirc.git/blobdiff - gameserv/config.cpp
New functionality. Loading monsters from a file is finished. Monsters still need...
[irc/gameservirc.git] / gameserv / config.cpp
index 0d00f5a947fd30e7b6f7b3494253062a2dfe6fab..abdb4d2423e6543ca7ac9986c279e711c60b3c20 100644 (file)
@@ -5,8 +5,6 @@
 
 void load_config_file(char *config);
 void unload_config_file();
-int stricmp(const char *s1, const char *s2);
-int strnicmp(const char *s1, const char *s2, size_t len);
 
 /* Random Configuration Stuff Goes Here until I code it to load from a .conf file :)*/
 
@@ -16,7 +14,9 @@ char *gsident;                        // GameServ's ident/username
 char *servername;              // GameServ's Server
 char *c_Forest;                        // Forest channel
 char *c_ForestTopic;           // Forest Channel Topic
-
+char *adminpass;               // Administrator password
+char *welcomemsg;              // Welcome Message
+int confloadtime;              // Welcome Message Delay
 
 // Remote server stuff. This is used for the outgoing connection gameserv needs to make
 // to a real ircd.
@@ -25,30 +25,38 @@ char *remoteport;           // Port to connect to on remoteserver
 char *remotepass;              // Password for the server link
 
 char *playerdata;              // File to store player data in
+char *monsterdata;             // File to load monster data from
 
 void unload_config_file()
 {
     if (s_GameServ)
-       delete s_GameServ;
+       delete [] s_GameServ;
     if (gshost)
-       delete gshost;
+       delete [] gshost;
     if (gsident)
-       delete gsident;
+       delete [] gsident;
     if (servername)
-       delete servername;
+       delete [] servername;
     if (c_Forest)
-       delete c_Forest;
+       delete [] c_Forest;
     if (c_ForestTopic)
-       delete c_ForestTopic;
+       delete [] c_ForestTopic;
     if (remoteserver)
-       delete remoteserver;
+       delete [] remoteserver;
     if (remoteport)
-       delete remoteport;
+       delete [] remoteport;
     if (remotepass)
-       delete remotepass;
+       delete [] remotepass;
     if (playerdata)
-       delete playerdata;
+       delete [] playerdata;
+    if (monsterdata)
+       delete [] monsterdata;
+    if (adminpass)
+       delete [] adminpass;
+    if (welcomemsg)
+       delete [] welcomemsg;
 }
+
 void load_config_file(char *config)
 {
     char *buf, *directive, *value;
@@ -60,7 +68,7 @@ void load_config_file(char *config)
     infile.open(config);
     if (infile.fail())
     {
-       cerr << "Error opening " << config << endl;
+       cout << "Error opening " << config << endl;
        return;
     }
 
@@ -68,7 +76,7 @@ void load_config_file(char *config)
     {
        cout << "Buf: " << buf << endl;
 
-       if (buf[0] == '#' || buf[0] == ' ' || buf[0] == '\0')
+       if (buf[0] == '#' || buf[0] == ' ' || buf[0] == '\0' || buf[0] == '\n' || buf[0] == '\r')
            continue;
        
        directive = strtok(buf, " ");
@@ -133,13 +141,35 @@ void load_config_file(char *config)
            playerdata = new char[strlen(value) + 1];
            strcpy(playerdata, value);
        }
+       else if (stricmp(directive, "MONSTERDATA") == 0)
+       {
+           value = strtok(NULL, "");
+           monsterdata = new char[strlen(value) + 1];
+           strcpy(monsterdata, value);
+       }
+       else if (stricmp(directive, "ADMINPASS") == 0)
+       {
+           value = strtok(NULL, "");
+           adminpass = new char[strlen(value) + 1];
+           strcpy(adminpass, value);
+       }
+       else if (stricmp(directive, "CONFLOADTIME") == 0)
+       {
+           value = strtok(NULL, " ");
+           confloadtime = stringtoint(value);
+       }
+       else if (stricmp(directive, "WELCOMEMSG") == 0)
+       {
+           value = strtok(NULL, "");
+           welcomemsg = new char[strlen(value) + 1];
+           strcpy(welcomemsg, value);
+       }
        else
        {
-           cerr << "Unknown Directive. Buffer: " << buf << endl;
+           cout << "Unknown Directive. Buffer: " << buf << endl;
            continue;
        }
-       //infile.ignore(1);
     }
-delete buf;
+delete [] buf;
 infile.close();
 }