diff options
Diffstat (limited to 'macros')
-rw-r--r-- | macros/asserts.asm | 42 | ||||
-rw-r--r-- | macros/data.asm | 20 | ||||
-rw-r--r-- | macros/scripts/events.asm | 8 | ||||
-rw-r--r-- | macros/scripts/maps.asm | 52 | ||||
-rw-r--r-- | macros/scripts/text.asm | 7 |
5 files changed, 45 insertions, 84 deletions
diff --git a/macros/asserts.asm b/macros/asserts.asm index d04c7942..a07bc553 100644 --- a/macros/asserts.asm +++ b/macros/asserts.asm @@ -2,33 +2,27 @@ table_width: MACRO CURRENT_TABLE_WIDTH = \1 -IF DEF(CURRENT_TABLE_START) -PURGE CURRENT_TABLE_START -ENDC IF _NARG == 2 -CURRENT_TABLE_START EQUS "\2" +REDEF CURRENT_TABLE_START EQUS "\2" ELSE -CURRENT_TABLE_START EQUS "._table_width\@" -CURRENT_TABLE_START: +REDEF CURRENT_TABLE_START EQUS "._table_width\@" +{CURRENT_TABLE_START}: ENDC ENDM assert_table_length: MACRO x = \1 - ASSERT x * CURRENT_TABLE_WIDTH == @ - CURRENT_TABLE_START, \ + ASSERT x * CURRENT_TABLE_WIDTH == @ - {CURRENT_TABLE_START}, \ "{CURRENT_TABLE_START}: expected {d:x} entries, each {d:CURRENT_TABLE_WIDTH} bytes" ENDM list_start: MACRO list_index = 0 -IF DEF(CURRENT_LIST_START) -PURGE CURRENT_LIST_START -ENDC IF _NARG == 1 -CURRENT_LIST_START EQUS "\1" +REDEF CURRENT_LIST_START EQUS "\1" ELSE -CURRENT_LIST_START EQUS "._list_start\@" -CURRENT_LIST_START: +REDEF CURRENT_LIST_START EQUS "._list_start\@" +{CURRENT_LIST_START}: ENDC ENDM @@ -46,42 +40,36 @@ ENDM def_grass_wildmons: MACRO ;\1: encounter rate -if DEF(CURRENT_GRASS_WILDMONS_LABEL) -PURGE CURRENT_GRASS_WILDMONS_LABEL -endc CURRENT_GRASS_WILDMONS_RATE = \1 -CURRENT_GRASS_WILDMONS_LABEL EQUS "._def_grass_wildmons_\1" -CURRENT_GRASS_WILDMONS_LABEL: +REDEF CURRENT_GRASS_WILDMONS_LABEL EQUS "._def_grass_wildmons_\1" +{CURRENT_GRASS_WILDMONS_LABEL}: db \1 ENDM end_grass_wildmons: MACRO IF CURRENT_GRASS_WILDMONS_RATE == 0 - assert 1 == @ - CURRENT_GRASS_WILDMONS_LABEL, \ + assert 1 == @ - {CURRENT_GRASS_WILDMONS_LABEL}, \ "def_grass_wildmons {d:CURRENT_GRASS_WILDMONS_RATE}: expected 1 byte" ELSE - assert WILDDATA_LENGTH == @ - CURRENT_GRASS_WILDMONS_LABEL, \ + assert WILDDATA_LENGTH == @ - {CURRENT_GRASS_WILDMONS_LABEL}, \ "def_grass_wildmons {d:CURRENT_GRASS_WILDMONS_RATE}: expected {d:WILDDATA_LENGTH} bytes" ENDC ENDM def_water_wildmons: MACRO ;\1: encounter rate -if DEF(CURRENT_WATER_WILDMONS_LABEL) -PURGE CURRENT_WATER_WILDMONS_LABEL -endc CURRENT_WATER_WILDMONS_RATE = \1 -CURRENT_WATER_WILDMONS_LABEL EQUS "._def_water_wildmons_\1" -CURRENT_WATER_WILDMONS_LABEL: +REDEF CURRENT_WATER_WILDMONS_LABEL EQUS "._def_water_wildmons_\1" +{CURRENT_WATER_WILDMONS_LABEL}: db \1 ENDM end_water_wildmons: MACRO IF CURRENT_WATER_WILDMONS_RATE == 0 - assert 1 == @ - CURRENT_WATER_WILDMONS_LABEL, \ + assert 1 == @ - {CURRENT_WATER_WILDMONS_LABEL}, \ "def_water_wildmons {d:CURRENT_WATER_WILDMONS_RATE}: expected 1 byte" ELSE - assert WILDDATA_LENGTH == @ - CURRENT_WATER_WILDMONS_LABEL, \ + assert WILDDATA_LENGTH == @ - {CURRENT_WATER_WILDMONS_LABEL}, \ "def_water_wildmons {d:CURRENT_WATER_WILDMONS_RATE}: expected {d:WILDDATA_LENGTH} bytes" ENDC ENDM diff --git a/macros/data.asm b/macros/data.asm index 7ea7af2c..fb8ea844 100644 --- a/macros/data.asm +++ b/macros/data.asm @@ -19,33 +19,23 @@ money EQUS "bcd3" ; used in data/pokemon/base_stats/*.asm tmhm: MACRO ; initialize bytes to 0 -n = 0 -REPT (NUM_TM_HM + 7) / 8 -_TM_BYTE EQUS "_tm{d:n}" -_TM_BYTE = 0 -PURGE _TM_BYTE -n = n + 1 +FOR n, (NUM_TM_HM + 7) / 8 +_tm{d:n} = 0 ENDR ; set bits of bytes REPT _NARG IF DEF(\1_TMNUM) n = (\1_TMNUM - 1) / 8 i = (\1_TMNUM - 1) % 8 -_TM_BYTE EQUS "_tm{d:n}" -_TM_BYTE = _TM_BYTE | (1 << i) -PURGE _TM_BYTE +_tm{d:n} = _tm{d:n} | (1 << i) ELSE FAIL "\1 is not a TM or HM move" ENDC SHIFT ENDR ; output bytes -n = 0 -REPT (NUM_TM_HM + 7) / 8 -_TM_BYTE EQUS "_tm{d:n}" - db _TM_BYTE -PURGE _TM_BYTE -n = n + 1 +FOR n, (NUM_TM_HM + 7) / 8 + db _tm{d:n} ENDR ENDM diff --git a/macros/scripts/events.asm b/macros/scripts/events.asm index e55aa00e..c7fdb484 100644 --- a/macros/scripts/events.asm +++ b/macros/scripts/events.asm @@ -184,8 +184,8 @@ ENDM SetEvents: MACRO SetEvent \1 REPT _NARG - 1 - SetEventReuseHL \2 - SHIFT + SetEventReuseHL \2 + SHIFT ENDR ENDM @@ -236,8 +236,8 @@ ENDM ResetEvents: MACRO ResetEvent \1 REPT _NARG - 1 - ResetEventReuseHL \2 - SHIFT + ResetEventReuseHL \2 + SHIFT ENDR ENDM diff --git a/macros/scripts/maps.asm b/macros/scripts/maps.asm index 204098ad..8ab5c46d 100644 --- a/macros/scripts/maps.asm +++ b/macros/scripts/maps.asm @@ -1,10 +1,7 @@ def_objects: MACRO - IF DEF(_NUM_OBJECTS) - PURGE _NUM_OBJECTS - ENDC -_NUM_OBJECTS EQUS "_NUM_OBJECTS_\@" - db _NUM_OBJECTS -_NUM_OBJECTS = 0 +REDEF _NUM_OBJECTS EQUS "_NUM_OBJECTS_\@" + db {_NUM_OBJECTS} +{_NUM_OBJECTS} = 0 ENDM ;\1 sprite id @@ -32,16 +29,13 @@ object: MACRO ELSE db \6 ENDC -_NUM_OBJECTS = _NUM_OBJECTS + 1 +{_NUM_OBJECTS} = {_NUM_OBJECTS} + 1 ENDM def_warps: MACRO - IF DEF(_NUM_WARPS) - PURGE _NUM_WARPS - ENDC -_NUM_WARPS EQUS "_NUM_WARPS_\@" - db _NUM_WARPS -_NUM_WARPS = 0 +REDEF _NUM_WARPS EQUS "_NUM_WARPS_\@" + db {_NUM_WARPS} +{_NUM_WARPS} = 0 ENDM ;\1 x position @@ -50,19 +44,15 @@ ENDM ;\4 destination map (-1 = wLastMap) warp: MACRO db \2, \1, \3, \4 -_TMP EQUS "\n_WARP_{d:{_NUM_WARPS}}_X = \1\n_WARP_{d:{_NUM_WARPS}}_Y = \2" - _TMP - PURGE _TMP -_NUM_WARPS = _NUM_WARPS + 1 +_WARP_{d:{_NUM_WARPS}}_X = \1 +_WARP_{d:{_NUM_WARPS}}_Y = \2 +{_NUM_WARPS} = {_NUM_WARPS} + 1 ENDM def_signs: MACRO - IF DEF(_NUM_SIGNS) - PURGE _NUM_SIGNS - ENDC -_NUM_SIGNS EQUS "_NUM_SIGNS_\@" - db _NUM_SIGNS -_NUM_SIGNS = 0 +REDEF _NUM_SIGNS EQUS "_NUM_SIGNS_\@" + db {_NUM_SIGNS} +{_NUM_SIGNS} = 0 ENDM ;\1 x position @@ -70,17 +60,13 @@ ENDM ;\3 sign id sign: MACRO db \2, \1, \3 -_NUM_SIGNS = _NUM_SIGNS + 1 +{_NUM_SIGNS} = {_NUM_SIGNS} + 1 ENDM ;\1 source map def_warps_to: MACRO -N = 0 - REPT _NUM_WARPS -_TMP EQUS "warp_to _WARP_{d:N}_X, _WARP_{d:N}_Y, \1_WIDTH" - _TMP - PURGE _TMP -N = N + 1 + FOR n, _NUM_WARPS + warp_to _WARP_{d:n}_X, _WARP_{d:n}_Y, \1_WIDTH ENDR ENDM @@ -146,10 +132,8 @@ ENDM ; Comes after map_header and connection macros end_map_header: MACRO - dw CURRENT_MAP_OBJECT - PURGE CURRENT_MAP_WIDTH - PURGE CURRENT_MAP_HEIGHT - PURGE CURRENT_MAP_OBJECT + dw {CURRENT_MAP_OBJECT} + PURGE CURRENT_MAP_WIDTH, CURRENT_MAP_HEIGHT, CURRENT_MAP_OBJECT ENDM ; Connections go in order: north, south, west, east diff --git a/macros/scripts/text.asm b/macros/scripts/text.asm index a947ca2f..c446c6c7 100644 --- a/macros/scripts/text.asm +++ b/macros/scripts/text.asm @@ -169,10 +169,9 @@ ENDM script_mart: MACRO db TX_SCRIPT_MART db _NARG ; number of items -REPT _NARG - db \1 ; item id - SHIFT -ENDR + IF _NARG + db \# ; all item ids + ENDC db -1 ; end ENDM |