]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - prvm_cmds.c
patch from esteel making the findkeysforcommand builtin available in
[xonotic/darkplaces.git] / prvm_cmds.c
index 2a4ebc8780a74bccf4fd4a733528b1200a0b8104..6d88a9d664d88d4571a58cfd88adfbab8169b45c 100644 (file)
@@ -3173,6 +3173,40 @@ void VM_keynumtostring (void)
        PRVM_G_INT(OFS_RETURN) = PRVM_SetTempString(Key_KeynumToString((int)PRVM_G_FLOAT(OFS_PARM0)));
 }
 
+/*
+=========
+VM_findkeysforcommand
+
+string findkeysforcommand(string command)
+
+the returned string is an altstring
+=========
+*/
+#define NUMKEYS 5 // TODO: merge the constant in keys.c with this one somewhen
+
+void M_FindKeysForCommand(const char *command, int *keys);
+void VM_findkeysforcommand(void)
+{
+       const char *cmd;
+       char ret[VM_STRINGTEMP_LENGTH];
+       int keys[NUMKEYS];
+       int i;
+
+       VM_SAFEPARMCOUNT(1, VM_findkeysforcommand);
+
+       cmd = PRVM_G_STRING(OFS_PARM0);
+
+       VM_CheckEmptyString(cmd);
+
+       M_FindKeysForCommand(cmd, keys);
+
+       ret[0] = 0;
+       for(i = 0; i < NUMKEYS; i++)
+               strlcat(ret, va(" \'%i\'", keys[i]), sizeof(ret));
+
+       PRVM_G_INT(OFS_RETURN) = PRVM_SetTempString(ret);
+}
+
 /*
 =========
 VM_stringtokeynum