diff options
author | Rangi <remy.oukaour+rangi42@gmail.com> | 2021-01-06 10:20:29 -0500 |
---|---|---|
committer | Rangi <remy.oukaour+rangi42@gmail.com> | 2021-01-06 10:20:29 -0500 |
commit | 4c43fa538dd8a48408d34307dc2e428084f2bb2a (patch) | |
tree | 05c0de7e76ef2b74b8b36a231ed465282f92db15 | |
parent | ed133f5c9afac83b9f9ca4f6951c5bdbe4c95fc5 (diff) |
The 'tmhm' macro adjusts to the number of TMs/HMs
-rw-r--r-- | data/pokemon/base_stats.asm | 44 |
1 files changed, 22 insertions, 22 deletions
diff --git a/data/pokemon/base_stats.asm b/data/pokemon/base_stats.asm index fb267336..f3a3ed32 100644 --- a/data/pokemon/base_stats.asm +++ b/data/pokemon/base_stats.asm @@ -1,33 +1,33 @@ -tmhm: MACRO ; used in data/pokemon/base_stats/*.asm -_tms1 = 0 ; TM01-TM24 (24) -_tms2 = 0 ; TM25-TM48 (24) -_tms3 = 0 ; TM49-TM50 + HM01-HM07 (9/24) +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 +endr +; set bits of bytes rept _NARG if DEF(\1_TMNUM) - if \1_TMNUM < 24 + 1 -_tms1 = _tms1 | (1 << ((\1_TMNUM) - 1)) - elif \1_TMNUM < 48 + 1 -_tms2 = _tms2 | (1 << ((\1_TMNUM) - 1 - 24)) - else -_tms3 = _tms3 | (1 << ((\1_TMNUM) - 1 - 48)) - endc +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 else fail "\1 is not a TM or HM move" endc shift endr -rept 3 ; TM01-TM24 (24/24) - db _tms1 & $ff -_tms1 = _tms1 >> 8 -endr -rept 3 ; TM25-TM48 (24/24) - db _tms2 & $ff -_tms2 = _tms2 >> 8 -endr -rept 2 ; TM49-TM50 + HM01-HM07 (9/16) - db _tms3 & $ff -_tms3 = _tms3 >> 8 +; 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 endr ENDM |