4 #define ITEM_HANDLE(signal, ...) __Item_Send_##signal(__VA_ARGS__)
5 CLASS(GameItem, Object)
6 ATTRIB(GameItem, m_id, int, 0)
7 METHOD(GameItem, show, void(entity this))
8 void GameItem_show(entity this) { print("A game item\n"); }
9 void ITEM_HANDLE(Show, entity this) { this.show(this); }
14 /** If you register a new item, make sure to add it to all.inc */
15 #define REGISTER_ITEM(id, class, body) \
17 void RegisterItems_##id() { \
18 const entity this = NEW(class); \
20 this.m_id = ITEM_COUNT; \
21 ITEMS[ITEM_COUNT++] = this; \
24 ACCUMULATE_FUNCTION(RegisterItems, RegisterItems_##id)