2020-07-03 20:37:47 +00:00
|
|
|
; Value macros
|
|
|
|
|
|
|
|
percent EQUS "* $ff / 100"
|
|
|
|
|
|
|
|
bcd2: MACRO
|
|
|
|
dn ((\1) / 1000) % 10, ((\1) / 100) % 10
|
|
|
|
dn ((\1) / 10) % 10, (\1) % 10
|
|
|
|
ENDM
|
|
|
|
|
|
|
|
bcd3: MACRO
|
|
|
|
dn ((\1) / 100000) % 10, ((\1) / 10000) % 10
|
|
|
|
dn ((\1) / 1000) % 10, ((\1) / 100) % 10
|
|
|
|
dn ((\1) / 10) % 10, (\1) % 10
|
|
|
|
ENDM
|
|
|
|
|
2020-07-06 01:59:32 +00:00
|
|
|
; used in data/pokemon/base_stats/*.asm
|
2021-01-06 15:20:37 +00:00
|
|
|
tmhm: MACRO
|
|
|
|
; initialize bytes to 0
|
2021-04-17 23:06:56 +00:00
|
|
|
FOR n, (NUM_TM_HM + 7) / 8
|
|
|
|
_tm{d:n} = 0
|
2021-01-06 15:20:37 +00:00
|
|
|
ENDR
|
|
|
|
; set bits of bytes
|
2020-07-06 16:28:31 +00:00
|
|
|
REPT _NARG
|
2021-01-06 15:20:37 +00:00
|
|
|
IF DEF(\1_TMNUM)
|
|
|
|
n = (\1_TMNUM - 1) / 8
|
|
|
|
i = (\1_TMNUM - 1) % 8
|
2021-04-17 23:06:56 +00:00
|
|
|
_tm{d:n} = _tm{d:n} | (1 << i)
|
2021-01-06 15:20:37 +00:00
|
|
|
ELSE
|
|
|
|
FAIL "\1 is not a TM or HM move"
|
2020-07-06 16:28:31 +00:00
|
|
|
ENDC
|
2020-07-07 15:30:10 +00:00
|
|
|
SHIFT
|
2020-07-06 16:28:31 +00:00
|
|
|
ENDR
|
2021-01-06 15:20:37 +00:00
|
|
|
; output bytes
|
2021-04-17 23:06:56 +00:00
|
|
|
FOR n, (NUM_TM_HM + 7) / 8
|
|
|
|
db _tm{d:n}
|
2020-07-06 16:28:31 +00:00
|
|
|
ENDR
|
2020-07-03 20:37:47 +00:00
|
|
|
ENDM
|
|
|
|
|
|
|
|
|
|
|
|
; Constant data (db, dw, dl) macros
|
|
|
|
|
|
|
|
dn: MACRO ; nybbles
|
|
|
|
db (\1 << 4 | \2)
|
|
|
|
ENDM
|
|
|
|
|
|
|
|
dbw: MACRO
|
|
|
|
db \1
|
|
|
|
dw \2
|
|
|
|
ENDM
|
|
|
|
|
|
|
|
dba: MACRO
|
|
|
|
dbw BANK(\1), \1
|
|
|
|
ENDM
|
|
|
|
|
|
|
|
dwb: MACRO
|
|
|
|
dw \1
|
|
|
|
db \2
|
|
|
|
ENDM
|
|
|
|
|
|
|
|
dab: MACRO
|
|
|
|
dwb \1, BANK(\1)
|
|
|
|
ENDM
|