mirror of https://github.com/pret/pokecrystal.git
67 lines
749 B
NASM
67 lines
749 B
NASM
|
define: macro
|
||
|
if !def(\1)
|
||
|
\1 equs \2
|
||
|
endc
|
||
|
endm
|
||
|
|
||
|
const_value = 0
|
||
|
|
||
|
add_tm: MACRO
|
||
|
if !def(TM01)
|
||
|
TM01 = const_value
|
||
|
enum_start 1
|
||
|
endc
|
||
|
define _\@_1, "TM_\1"
|
||
|
const _\@_1
|
||
|
enum \1_TMNUM
|
||
|
ENDM
|
||
|
|
||
|
add_hm: MACRO
|
||
|
if !def(HM01)
|
||
|
HM01 = const_value
|
||
|
endc
|
||
|
define _\@_1, "HM_\1"
|
||
|
const _\@_1
|
||
|
enum \1_TMNUM
|
||
|
ENDM
|
||
|
|
||
|
add_mt: MACRO
|
||
|
enum \1_TMNUM
|
||
|
ENDM
|
||
|
|
||
|
tmhm: MACRO
|
||
|
x = 0
|
||
|
y = 0
|
||
|
w = 0
|
||
|
rept _NARG
|
||
|
if def(\1_TMNUM)
|
||
|
if \1_TMNUM < 25
|
||
|
x = x | (1 << ((\1_TMNUM) - 1))
|
||
|
else
|
||
|
if \1_TMNUM < 49
|
||
|
y = y | (1 << ((\1_TMNUM) - 1 - 24))
|
||
|
else
|
||
|
w = w | (1 << ((\1_TMNUM) - 1 - 48))
|
||
|
endc
|
||
|
endc
|
||
|
else
|
||
|
fail "\1 is not a TM, HM, or move tutor move"
|
||
|
endc
|
||
|
|
||
|
shift
|
||
|
endr
|
||
|
|
||
|
rept 3
|
||
|
db x & $ff
|
||
|
x = x >> 8
|
||
|
endr
|
||
|
rept 3
|
||
|
db y & $ff
|
||
|
y = y >> 8
|
||
|
endr
|
||
|
rept 2
|
||
|
db w & $ff
|
||
|
w = w >> 8
|
||
|
endr
|
||
|
ENDM
|