]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/common/command/all.qh
Registry: use BITS everywhere
[xonotic/xonotic-data.pk3dir.git] / qcsrc / common / command / all.qh
index 7eeb5c3233a5e77ea532206c948d7b4630c29e21..d1164f11ada6029b931fe3f4fddd17391b36a388 100644 (file)
@@ -1,6 +1,23 @@
 #ifndef COMMON_COMMANDS_ALL_H
 #define COMMON_COMMANDS_ALL_H
 
+#include "command.qh"
+REGISTRY(GENERIC_COMMANDS, BITS(7))
+REGISTER_REGISTRY(RegisterGENERIC_COMMANDS)
+REGISTRY_SORT(GENERIC_COMMANDS, m_name, 0)
+
+#define GENERIC_COMMAND(id, description) \
+       CLASS(genericcommand_##id, Command) \
+               ATTRIB(genericcommand_##id, m_name, string, #id); \
+       ATTRIB(genericcommand_##id, m_description, string, description); \
+       ENDCLASS(genericcommand_##id) \
+    REGISTER(RegisterGENERIC_COMMANDS, CMD_G, GENERIC_COMMANDS, id, m_id, NEW(genericcommand_##id)); \
+       METHOD(genericcommand_##id, m_invokecmd, void(int request, int arguments, string command))
+
+STATIC_INIT(GENERIC_COMMANDS_aliases) {
+       FOREACH(GENERIC_COMMANDS, true, LAMBDA(localcmd(sprintf("alias %1$s \"%2$s %1$s ${* ?}\"\n", it.m_name, "qc_cmd_svmenu"))));
+}
+
 #include "generic.qh"
 #include "markup.qh"
 #include "rpn.qh"