[Add] Some better keybind loading.
This commit is contained in:
		
							parent
							
								
									5b8a9bcbc0
								
							
						
					
					
						commit
						e02f379050
					
				
							
								
								
									
										22
									
								
								src/conf.c
									
									
									
									
									
								
							
							
						
						
									
										22
									
								
								src/conf.c
									
									
									
									
									
								
							| @ -210,17 +210,19 @@ int conf_loadConfig(const char* file) { | ||||
|       lua_remove(L, -1); | ||||
|     } | ||||
| 
 | ||||
|     /* Keybindings. */ | ||||
|     for(i = 0; strcmp(keybindNames[i], "end"); i++) { | ||||
|       lua_getglobal(L, keybindNames[i]); | ||||
|       str = NULL; | ||||
|       key = -1; | ||||
|       reverse = 0; | ||||
|       if(lua_istable(L, -1)) { | ||||
|         /* It's a gawd damn table!! */ | ||||
|         lua_pushstring(L, "type"); | ||||
|         lua_gettable(L, -2); | ||||
|         if(lua_isstring(L, -1)) | ||||
|           str = (char*)lua_tostring(L, -1); | ||||
|         else { | ||||
|           WARN("Found keybind with no type field!"); | ||||
|           str = "null"; | ||||
|         } | ||||
|         lua_remove(L, -1); | ||||
| 
 | ||||
|         /* Get the key. */ | ||||
| @ -228,19 +230,30 @@ int conf_loadConfig(const char* file) { | ||||
|         lua_gettable(L, -2); | ||||
|         if(lua_isnumber(L, -1)) | ||||
|           key = (int)lua_tonumber(L, -1); | ||||
|         else { | ||||
|           WARN("Found keybind with no key field!"); | ||||
|           key = -1; | ||||
|         } | ||||
|         lua_remove(L, -1); | ||||
| 
 | ||||
|         /* Is it reversed? Only used for axis. */ | ||||
|         lua_pushstring(L, "reverse"); | ||||
|         lua_gettable(L, -2); | ||||
|         if(lua_isnumber(L, -1)) | ||||
|           reverse = 1; | ||||
|           reverse = !!(int)lua_tonumber(L, -1); | ||||
|         else if(lua_isboolean(L, -1)) | ||||
|           reverse = lua_toboolean(L, -1); | ||||
|         else | ||||
|           reverse = 0; | ||||
|         lua_remove(L, -1); | ||||
| 
 | ||||
|         /* Get the modifier. */ | ||||
|         lua_pushstring(L, "mod"); | ||||
|         lua_gettable(L, -2); | ||||
|         if(lua_isstring(L, -1)) | ||||
|           mod = (char*)lua_tostring(L, -1); | ||||
|         else | ||||
|           mod = NULL; | ||||
|         lua_remove(L, -1); | ||||
| 
 | ||||
| 
 | ||||
| @ -255,6 +268,7 @@ int conf_loadConfig(const char* file) { | ||||
|             continue; | ||||
|           } | ||||
| 
 | ||||
|           /* Set modifier, probably should be able to handle two at a time. */ | ||||
|           if(mod != NULL) { | ||||
|             if(strcmp(mod, "lctrl")       ==0)  m = KMOD_LCTRL; | ||||
|             else if(strcmp(mod, "rctrl")  ==0)  m = KMOD_RCTRL; | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Allanis
						Allanis