]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/common/items/all.qh
Merge branch 'master' into Lyberta/KillSound
[xonotic/xonotic-data.pk3dir.git] / qcsrc / common / items / all.qh
index b2b0dc1e411f59616a9f198902e6c3f3f17ad0dc..623f71b3904ab7654d9e9e88e23291c45d84bb09 100644 (file)
@@ -1,20 +1,37 @@
-#ifndef ITEMS_ALL_H
-#define ITEMS_ALL_H
+#pragma once
+
+#include <common/command/_mod.qh>
 
 #include "item.qh"
 
-REGISTRY(Items, 24)
-REGISTER_REGISTRY(RegisterItems)
-/** If you register a new item, make sure to add it to all.inc */
-#define REGISTER_ITEM(id, class) REGISTER(RegisterItems, ITEM, Items, Items_COUNT, id, m_id, NEW(class))
-REGISTER_REGISTRY(RegisterItems)
+REGISTRY(Items, BITS(7))
+#define Items_from(i) _Items_from(i, NULL)
+#ifdef GAMEQC
+REGISTRY_DEPENDS(Items, Models)
+#endif
+REGISTER_REGISTRY(Items)
+#define REGISTER_ITEM(id, class) REGISTER(Items, ITEM, id, m_id, NEW(class))
+
+REGISTRY_SORT(Items)
+REGISTRY_CHECK(Items)
+STATIC_INIT(Items) { FOREACH(Items, true, it.m_id = i); }
 
 void Dump_Items();
 
-#ifndef MENUQC
-string Item_Model(string item_mdl);
-#endif
+GENERIC_COMMAND(dumpitems, "Dump all items to the console") {
+    switch (request) {
+        case CMD_REQUEST_COMMAND: {
+            Dump_Items();
+            return;
+        }
+        default:
+        case CMD_REQUEST_USAGE: {
+            LOG_INFOF("Usage:^3 %s dumpitems", GetProgramCommandPrefix());
+            return;
+        }
+    }
+}
 
+#ifdef GAMEQC
+string Item_Model(string item_mdl);
 #endif
-
-#include "inventory.qh"