]> jfr.im git - irc/gameservirc.git/blame - gameserv/config.cpp
New functionality. Loading monsters from a file is finished. Monsters still need...
[irc/gameservirc.git] / gameserv / config.cpp
CommitLineData
85ce9d3e 1#include <fstream.h>
2#include <string.h>
3#include <stdio.h>
4#include "extern.h"
5
6void load_config_file(char *config);
7void unload_config_file();
85ce9d3e 8
9/* Random Configuration Stuff Goes Here until I code it to load from a .conf file :)*/
10
11char *s_GameServ; // GameServ's nickname
12char *gshost; // GameServ's Hostname
13char *gsident; // GameServ's ident/username
14char *servername; // GameServ's Server
15char *c_Forest; // Forest channel
16char *c_ForestTopic; // Forest Channel Topic
45a84400 17char *adminpass; // Administrator password
bf2cabcd 18char *welcomemsg; // Welcome Message
19int confloadtime; // Welcome Message Delay
85ce9d3e 20
21// Remote server stuff. This is used for the outgoing connection gameserv needs to make
22// to a real ircd.
23char *remoteserver; // Server to connect to
24char *remoteport; // Port to connect to on remoteserver
25char *remotepass; // Password for the server link
26
27char *playerdata; // File to store player data in
4dde2ed9 28char *monsterdata; // File to load monster data from
85ce9d3e 29
30void unload_config_file()
31{
32 if (s_GameServ)
1cf88153 33 delete [] s_GameServ;
85ce9d3e 34 if (gshost)
1cf88153 35 delete [] gshost;
85ce9d3e 36 if (gsident)
1cf88153 37 delete [] gsident;
85ce9d3e 38 if (servername)
1cf88153 39 delete [] servername;
85ce9d3e 40 if (c_Forest)
1cf88153 41 delete [] c_Forest;
85ce9d3e 42 if (c_ForestTopic)
1cf88153 43 delete [] c_ForestTopic;
85ce9d3e 44 if (remoteserver)
1cf88153 45 delete [] remoteserver;
85ce9d3e 46 if (remoteport)
1cf88153 47 delete [] remoteport;
85ce9d3e 48 if (remotepass)
1cf88153 49 delete [] remotepass;
85ce9d3e 50 if (playerdata)
1cf88153 51 delete [] playerdata;
4dde2ed9 52 if (monsterdata)
53 delete [] monsterdata;
45a84400 54 if (adminpass)
55 delete [] adminpass;
bf2cabcd 56 if (welcomemsg)
57 delete [] welcomemsg;
85ce9d3e 58}
bf2cabcd 59
85ce9d3e 60void load_config_file(char *config)
61{
62 char *buf, *directive, *value;
63 buf = new char[1024];
64
65 unload_config_file();
66
67 ifstream infile;
68 infile.open(config);
69 if (infile.fail())
70 {
9cc5ab57 71 cout << "Error opening " << config << endl;
85ce9d3e 72 return;
73 }
74
75 while (infile.getline(buf, 1024, '\n'))
76 {
77 cout << "Buf: " << buf << endl;
78
9cc5ab57 79 if (buf[0] == '#' || buf[0] == ' ' || buf[0] == '\0' || buf[0] == '\n' || buf[0] == '\r')
85ce9d3e 80 continue;
81
82 directive = strtok(buf, " ");
83
84 if (stricmp(directive, "S_GAMESERV") == 0)
85 {
86 value = strtok(NULL, " ");
87 s_GameServ = new char[strlen(value) + 1];
88 strcpy(s_GameServ, value);
89 }
90 else if (stricmp(directive, "GSHOST") == 0)
91 {
92 value = strtok(NULL, " ");
93 gshost = new char[strlen(value) + 1];
94 strcpy(gshost, value);
95 }
96 else if (stricmp(directive, "GSIDENT") == 0)
97 {
98 value = strtok(NULL, " ");
99 gsident = new char[strlen(value) + 1];
100 strcpy(gsident, value);
101 }
102 else if (stricmp(directive, "SERVERNAME") == 0)
103 {
104 value = strtok(NULL, " ");
105 servername = new char[strlen(value) + 1];
106 strcpy(servername, value);
107 }
108 else if (stricmp(directive, "C_FOREST") == 0)
109 {
110 value = strtok(NULL, " ");
111 c_Forest = new char[strlen(value) + 1];
112 strcpy(c_Forest, value);
113 }
114 else if (stricmp(directive, "C_FORESTTOPIC") == 0)
115 {
116 value = strtok(NULL, "");
117 c_ForestTopic = new char[strlen(value) + 1];
118 strcpy(c_ForestTopic, value);
119 }
120 else if (stricmp(directive, "REMOTESERVER") == 0)
121 {
122 value = strtok(NULL, " ");
123 remoteserver = new char[strlen(value) + 1];
124 strcpy(remoteserver, value);
125 }
126 else if (stricmp(directive, "REMOTEPORT") == 0)
127 {
128 value = strtok(NULL, " ");
129 remoteport = new char[strlen(value) + 1];
130 strcpy(remoteport, value);
131 }
132 else if (stricmp(directive, "REMOTEPASS") == 0)
133 {
134 value = strtok(NULL, "");
135 remotepass = new char[strlen(value) + 1];
136 strcpy(remotepass, value);
137 }
138 else if (stricmp(directive, "PLAYERDATA") == 0)
139 {
140 value = strtok(NULL, "");
141 playerdata = new char[strlen(value) + 1];
142 strcpy(playerdata, value);
143 }
4dde2ed9 144 else if (stricmp(directive, "MONSTERDATA") == 0)
145 {
146 value = strtok(NULL, "");
147 monsterdata = new char[strlen(value) + 1];
148 strcpy(monsterdata, value);
149 }
45a84400 150 else if (stricmp(directive, "ADMINPASS") == 0)
151 {
152 value = strtok(NULL, "");
153 adminpass = new char[strlen(value) + 1];
154 strcpy(adminpass, value);
155 }
bf2cabcd 156 else if (stricmp(directive, "CONFLOADTIME") == 0)
157 {
158 value = strtok(NULL, " ");
159 confloadtime = stringtoint(value);
160 }
161 else if (stricmp(directive, "WELCOMEMSG") == 0)
162 {
163 value = strtok(NULL, "");
164 welcomemsg = new char[strlen(value) + 1];
165 strcpy(welcomemsg, value);
166 }
85ce9d3e 167 else
168 {
9cc5ab57 169 cout << "Unknown Directive. Buffer: " << buf << endl;
85ce9d3e 170 continue;
171 }
85ce9d3e 172 }
1cf88153 173delete [] buf;
85ce9d3e 174infile.close();
175}