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

  1. DEF ITEM_ATTRF_NONE EQU 0
  2. DEF ITEM_ATTRF_USABLE EQU (1 << 0)
  3. DEF ITEM_ATTRF_WEAPON EQU (1 << 1)
  4. DEF ITEM_ATTRF_ARMOR EQU (1 << 2)
  5. DEF NEXT_ITEM_ID SET 1
  6. ; Declare a new item
  7. ; \1 Display name
  8. ; \2 Attributes
  9. MACRO Item
  10. ASSERT STRLEN("\1") < 16
  11. ; Define item ID symbol
  12. DEF ID_NAME EQUS "\1_ID"
  13. DEF {ID_NAME} EQU NEXT_ITEM_ID
  14. EXPORT {ID_NAME}
  15. REDEF NEXT_ITEM_ID SET NEXT_ITEM_ID + 1
  16. DB \2
  17. ; Display name
  18. DB "\1"
  19. REPT 16 - STRLEN("\1")
  20. DB 0
  21. ENDR
  22. ENDM
  23. SECTION "Item Sprite Data", ROM0
  24. COIN_LEFT:: INCBIN "png/sprite/item/coin_left.2bpp"
  25. COIN_RIGHT:: INCBIN "png/sprite/item/coin_right.2bpp"
  26. SECTION "Item Data", ROM0
  27. ; NOTE: Macro invocation MUST be indented in order to be expanded correctly
  28. Items::
  29. Item COIN, ITEM_ATTRF_NONE
  30. SECTION "Item Code", ROM0