|
|
- 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
- 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
- ENDM
-
- SECTION "Item Sprite Data", ROM0
-
- COIN_LEFT:: INCBIN "png/sprite/item/coin_left.2bpp"
- COIN_RIGHT:: INCBIN "png/sprite/item/coin_right.2bpp"
-
- SECTION "Item Data", ROM0
-
- ; NOTE: Macro invocation MUST be indented in order to be expanded correctly
- Items::
- Item COIN, ITEM_ATTRF_NONE
-
- SECTION "Item Code", ROM0
|