DEF ITEM_ATTRF_NONE EQU 0 DEF ITEM_ATTRF_USABLE EQU (1 << 0) DEF ITEM_ATTRF_WEAPON EQU (1 << 1) DEF ITEM_ATTRF_ARMOR EQU (1 << 2) DEF NEXT_ITEM_ID SET 1 ; Declare a new item ; \1 Display name ; \2 Attributes ; \3 Sprite data filename MACRO Item ASSERT STRLEN("\1") < 16 ; Define item ID symbol DEF ID_NAME EQUS "\1_ID" DEF {ID_NAME} EQU NEXT_ITEM_ID EXPORT {ID_NAME} REDEF NEXT_ITEM_ID SET NEXT_ITEM_ID + 1 DB \2 ; Display name DB "\1" REPT 16 - STRLEN("\1") DB 0 ENDR ; Sprite data INCBIN \3 ENDM SECTION "Item Data", ROM0 ; NOTE: Macro invocation MUST be indented in order to be expanded correctly Items:: Item COIN, ITEM_ATTRF_NONE, "png/sprite/item/coin.2bpp"