about summary refs log tree commit diff
path: root/src/engine/config.cpp
diff options
context:
space:
mode:
authorJakob Fries <jakob.fries@gmail.com>2007-06-01 12:15:38 +0000
committerJakob Fries <jakob.fries@gmail.com>2007-06-01 12:15:38 +0000
commit2c158f77b7b4853912054ee4a37b9a9253272e8e (patch)
tree886b8b40433beb1cea8a28104d59f92050e92e02 /src/engine/config.cpp
parentc31246a665359173e98bce9e6537e8139361072c (diff)
downloadzcatch-2c158f77b7b4853912054ee4a37b9a9253272e8e.tar.gz
zcatch-2c158f77b7b4853912054ee4a37b9a9253272e8e.zip
Diffstat (limited to 'src/engine/config.cpp')
-rw-r--r--src/engine/config.cpp35
1 files changed, 21 insertions, 14 deletions
diff --git a/src/engine/config.cpp b/src/engine/config.cpp
index c486d1f7..54668c11 100644
--- a/src/engine/config.cpp
+++ b/src/engine/config.cpp
@@ -23,6 +23,26 @@ void config_reset()
     #undef MACRO_CONFIG_STR 
 }
 
+void config_set(const char *line)
+{
+	char var_str[128];
+	char *val_str = strchr(line, '=');
+	if (val_str)
+	{
+		memcpy(var_str, line, val_str - line);
+		var_str[val_str - line] = 0;
+		++val_str;
+
+		#define MACRO_CONFIG_INT(name,def,min,max) { if (strcmp(#name, var_str) == 0) config_set_ ## name (&config, atoi(val_str)); }
+    	#define MACRO_CONFIG_STR(name,len,def) { if (strcmp(#name, var_str) == 0) { config_set_ ## name (&config, val_str); } }
+ 
+    	#include "config_variables.h" 
+ 
+    	#undef MACRO_CONFIG_INT 
+    	#undef MACRO_CONFIG_STR 
+	}
+}
+
 void config_load(const char *filename)
 {
 	dbg_msg("config/load", "loading %s", filename);
@@ -34,20 +54,7 @@ void config_load(const char *filename)
 	{
 		while (getline(file, line))
 		{
-			int eq_index = line.find_first_of('=');
-			if (eq_index != string::npos)
-			{
-				string variable = line.substr(0, eq_index);
-				string value = line.substr(eq_index + 1);
-
-    			#define MACRO_CONFIG_INT(name,def,min,max) { if (strcmp(#name, variable.c_str()) == 0) config_set_ ## name (&config, atoi(value.c_str())); }
-    			#define MACRO_CONFIG_STR(name,len,def) { if (strcmp(#name, variable.c_str()) == 0) { config_set_ ## name (&config, value.c_str()); } }
- 
-    			#include "config_variables.h" 
- 
-    			#undef MACRO_CONFIG_INT 
-    			#undef MACRO_CONFIG_STR 
-			}
+			config_set(line.c_str());
 		}
 
 		file.close();