]> jfr.im git - irc/gameservirc.git/blob - gameserv/config.cpp
Switched the hybrid contrib files to an updated version for configscript. Thank you...
[irc/gameservirc.git] / gameserv / config.cpp
1 #include <fstream.h>
2 #include <string.h>
3 #include <stdio.h>
4 #include "extern.h"
5
6 void load_config_file(char *config);
7 void unload_config_file();
8
9 /* Random Configuration Stuff Goes Here until I code it to load from a .conf file :)*/
10
11 char *s_GameServ; // GameServ's nickname
12 char *gshost; // GameServ's Hostname
13 char *gsident; // GameServ's ident/username
14 char *servername; // GameServ's Server
15 char *c_Forest; // Forest channel
16 char *c_ForestTopic; // Forest Channel Topic
17 char *adminpass; // Administrator password
18 char *welcomemsg; // Welcome Message
19 int confloadtime; // Welcome Message Delay
20
21 // Remote server stuff. This is used for the outgoing connection gameserv needs to make
22 // to a real ircd.
23 char *remoteserver; // Server to connect to
24 char *remoteport; // Port to connect to on remoteserver
25 char *remotepass; // Password for the server link
26
27 char *playerdata; // File to store player data in
28 char *monsterdata; // File to load monster data from
29
30 void unload_config_file()
31 {
32 if (s_GameServ)
33 delete [] s_GameServ;
34 if (gshost)
35 delete [] gshost;
36 if (gsident)
37 delete [] gsident;
38 if (servername)
39 delete [] servername;
40 if (c_Forest)
41 delete [] c_Forest;
42 if (c_ForestTopic)
43 delete [] c_ForestTopic;
44 if (remoteserver)
45 delete [] remoteserver;
46 if (remoteport)
47 delete [] remoteport;
48 if (remotepass)
49 delete [] remotepass;
50 if (playerdata)
51 delete [] playerdata;
52 if (monsterdata)
53 delete [] monsterdata;
54 if (adminpass)
55 delete [] adminpass;
56 if (welcomemsg)
57 delete [] welcomemsg;
58 }
59
60 void 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 {
71 cout << "Error opening " << config << endl;
72 return;
73 }
74
75 while (infile.getline(buf, 1024, '\n'))
76 {
77 cout << "Buf: " << buf << endl;
78
79 if (buf[0] == '#' || buf[0] == ' ' || buf[0] == '\0' || buf[0] == '\n' || buf[0] == '\r')
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 }
144 else if (stricmp(directive, "MONSTERDATA") == 0)
145 {
146 value = strtok(NULL, "");
147 monsterdata = new char[strlen(value) + 1];
148 strcpy(monsterdata, value);
149 }
150 else if (stricmp(directive, "ADMINPASS") == 0)
151 {
152 value = strtok(NULL, "");
153 adminpass = new char[strlen(value) + 1];
154 strcpy(adminpass, value);
155 }
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 }
167 else
168 {
169 cout << "Unknown Directive. Buffer: " << buf << endl;
170 continue;
171 }
172 }
173 delete [] buf;
174 infile.close();
175 }