]> git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/common/items/item.qh
Adjust item definition syntax
[xonotic/xonotic-data.pk3dir.git] / qcsrc / common / items / item.qh
index da4e7a4537d1130d7cfc45058a28f6afe7c85ad6..43231cc1f10b8426b0a5cb2bb9b5040de99472ae 100644 (file)
@@ -11,15 +11,17 @@ ENDCLASS(GameItem)
 
 
 int ITEM_COUNT;
+/** If you register a new item, make sure to add it to all.inc */
 #define REGISTER_ITEM(id, class, body)          \
     entity ITEM_##id;                           \
+    void RegisterItems_init_##id(entity this) { body } \
     void RegisterItems_##id() {                 \
-        const entity this = NEW(class);         \
+        entity this = NEW(class);               \
         ITEM_##id = this;                       \
         this.m_id = ITEM_COUNT;                 \
         ITEMS[ITEM_COUNT++] = this;             \
-        body                                    \
+        RegisterItems_init_##id(this);          \
     }                                           \
-    ACCUMULATE_FUNCTION(RegisterItems, RegisterItems_##id)
-
+    ACCUMULATE_FUNCTION(RegisterItems, RegisterItems_##id) \
+    [[accumulate]] void RegisterItems_init_##id(entity this)
 #endif