about summary refs log tree commit diff
path: root/scripts/gen_keys.py
diff options
context:
space:
mode:
authorMagnus Auvinen <magnus.auvinen@gmail.com>2008-10-20 17:47:42 +0000
committerMagnus Auvinen <magnus.auvinen@gmail.com>2008-10-20 17:47:42 +0000
commit8404143afe48c04e0c84a9bbde08ebf400b7f7fb (patch)
tree555522478fb9ea05bbd4a9dd65c5124874252f13 /scripts/gen_keys.py
parent2b9688f3c3085e4fb07906a71bbedb8a6b916a59 (diff)
downloadzcatch-8404143afe48c04e0c84a9bbde08ebf400b7f7fb.tar.gz
zcatch-8404143afe48c04e0c84a9bbde08ebf400b7f7fb.zip
added SDL support
Diffstat (limited to 'scripts/gen_keys.py')
-rw-r--r--scripts/gen_keys.py49
1 files changed, 46 insertions, 3 deletions
diff --git a/scripts/gen_keys.py b/scripts/gen_keys.py
index 5a2e8f7f..e8f206c3 100644
--- a/scripts/gen_keys.py
+++ b/scripts/gen_keys.py
@@ -7,6 +7,10 @@ lines = [line.strip() for line in file(glfw).readlines()]
 # genereate keys.h file
 f = file("src/engine/e_keys.h", "w")
 
+keynames_sdl = []
+for i in range(0, 512):
+	keynames_sdl += ["&%d"%i]
+	
 keynames = {}
 KEY_MOUSE_FIRST = 256+128
 KEY_MOUSE_WHEEL_DOWN = KEY_MOUSE_FIRST-2
@@ -15,9 +19,9 @@ KEY_MOUSE_WHEEL_UP = KEY_MOUSE_FIRST-1
 print >>f, "#ifndef ENGINE_KEYS_H"
 print >>f, "#define ENGINE_KEYS_H"
 print >>f, '/* AUTO GENERATED! DO NOT EDIT MANUALLY! */'
-print >>f, ""
 print >>f, "enum"
 print >>f, "{"
+print >>f, "#ifdef CONFIG_NO_SDL"
 
 # do keys
 for line in lines:
@@ -60,12 +64,45 @@ for line in lines:
 			# add to keynames
 			exec("%s = %s" % (key, value))
 			exec("keynames[%s] = '%s'" % (value, key))
-
 print >>f, "\tKEY_LAST"
+
+print >>f, "#else"
+
+highestid = 0
+for line in open("scripts/SDL_keysym.h"):
+	l = line.strip().split("=")
+	if len(l) == 2 and "SDLK_" in line:
+		key = l[0].strip().replace("SDLK_", "KEY_")
+		value = int(l[1].split(",")[0].strip())
+		print >>f, "\t%s = %d,"%(key, value)
+		
+		keynames_sdl[value] = key.replace("KEY_", "").lower()
+		
+		if value > highestid:
+			highestid =value
+
+print >>f, "\tKEY_MOUSE_1 = %d,"%(highestid+1); keynames_sdl[highestid+1] = "mouse1"
+print >>f, "\tKEY_MOUSE_2 = %d,"%(highestid+2); keynames_sdl[highestid+2] = "mouse2"
+print >>f, "\tKEY_MOUSE_3 = %d,"%(highestid+3); keynames_sdl[highestid+3] = "mouse3"
+print >>f, "\tKEY_MOUSE_4 = %d,"%(highestid+4); keynames_sdl[highestid+4] = "mouse4"
+print >>f, "\tKEY_MOUSE_5 = %d,"%(highestid+5); keynames_sdl[highestid+5] = "mouse5"
+print >>f, "\tKEY_MOUSE_6 = %d,"%(highestid+6); keynames_sdl[highestid+6] = "mouse6"
+print >>f, "\tKEY_MOUSE_7 = %d,"%(highestid+7); keynames_sdl[highestid+7] = "mouse7"
+print >>f, "\tKEY_MOUSE_8 = %d,"%(highestid+8); keynames_sdl[highestid+8] = "mouse8"
+print >>f, "\tKEY_MOUSE_WHEEL_UP = %d,"%(highestid+9); keynames_sdl[highestid+9] = "mousewheelup"
+print >>f, "\tKEY_MOUSE_WHEEL_DOWN = %d,"%(highestid+10); keynames_sdl[highestid+10] = "mousewheeldown"
+print >>f, "\tKEY_LAST,"
+
+print >>f, "\tKEY_DEL=KEY_DELETE,"
+print >>f, "\tKEY_ENTER=KEY_RETURN,"
+print >>f, "\tKEY_KP_SUBTRACT=KEY_KP_MINUS,"
+print >>f, "\tKEY_KP_ADD=KEY_KP_PLUS,"
+print >>f, "\tKEY_ESC=KEY_ESCAPE"
+
+print >>f, "#endif"
 print >>f, "};"
 print >>f, ""
 print >>f, "#endif"
-f.close()
 
 
 # generate keynames.c file
@@ -76,6 +113,7 @@ print >>f, "#include <string.h>"
 print >>f, ""
 print >>f, "static const char key_strings[512][16] ="
 print >>f, "{"
+print >>f, "#ifdef CONFIG_NO_SDL"
 for i in range(0, 512):
 	n = "&%d"%i
 	if i >= 48 and i <= 57 or i >= 65 and i <= 90:
@@ -83,7 +121,12 @@ for i in range(0, 512):
 	elif i in keynames:
 		n = keynames[i][4:].lower().replace("_", "")
 	print >>f, "\t\"%s\"," % n
+print >>f, "#else"
+print >>f, ""
+for n in keynames_sdl:
+	print >>f, '\t"%s",'%n
 
+print >>f, "#endif"
 print >>f, "};"
 print >>f, ""
 print >>f, "const char *inp_key_name(int k) { if (k >= 0 && k < 512) return key_strings[k]; else return key_strings[0]; }"