summaryrefslogtreecommitdiff
path: root/macros/data.asm
diff options
context:
space:
mode:
Diffstat (limited to 'macros/data.asm')
-rwxr-xr-xmacros/data.asm40
1 files changed, 31 insertions, 9 deletions
diff --git a/macros/data.asm b/macros/data.asm
index 46fb866d..333bf937 100755
--- a/macros/data.asm
+++ b/macros/data.asm
@@ -16,15 +16,37 @@ ENDM
coins equs "bcd2"
money equs "bcd3"
-tmlearn: MACRO
-x = 0
- REPT _NARG
-IF \1 != 0
-x = x | (1 << ((\1 - 1) % 8))
-ENDC
- SHIFT
- ENDR
- db x
+tmhm: MACRO
+; used in data/pokemon/base_stats/*.asm
+_tms1 = 0 ; TM01-TM24 (24)
+_tms2 = 0 ; TM25-TM48 (24)
+_tms3 = 0 ; TM49-TM50 + HM01-HM05 (7/24)
+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
+ 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 1 ; TM49-TM50 + HM01-HM05 (7/8)
+ db _tms3 & $ff
+_tms3 = _tms3 >> 8
+endr
ENDM