You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

40 lines
816 B

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