about summary refs log tree commit diff
path: root/src/engine
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
parentc31246a665359173e98bce9e6537e8139361072c (diff)
downloadzcatch-2c158f77b7b4853912054ee4a37b9a9253272e8e.tar.gz
zcatch-2c158f77b7b4853912054ee4a37b9a9253272e8e.zip
Diffstat (limited to 'src/engine')
-rw-r--r--src/engine/config.cpp35
-rw-r--r--src/engine/config_define.h8
2 files changed, 21 insertions, 22 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();
diff --git a/src/engine/config_define.h b/src/engine/config_define.h
deleted file mode 100644
index 0b1fed7e..00000000
--- a/src/engine/config_define.h
+++ /dev/null
@@ -1,8 +0,0 @@
-MACRO_CONFIG_INT(screen_width, 800, 0, 0)
-MACRO_CONFIG_INT(screen_height, 600, 0, 0)
-MACRO_CONFIG_STR(player_name, 32, "nameless tee")
-MACRO_CONFIG_INT(key_move_left, 65, 32, 127)
-MACRO_CONFIG_INT(key_move_right, 68, 32, 127)
-MACRO_CONFIG_INT(key_jump, 32, 32, 127)
-MACRO_CONFIG_INT(key_fire, 33, 32, 127)
-MACRO_CONFIG_INT(key_hook, 34, 32, 127)