Use {interpolation} to generate sequences of RAM labels

This makes the table_width/assert_table_length usages unnecessary, and also keeps the labels automatically up to date if the length constants change.
This commit is contained in:
Rangi
2021-04-27 12:11:39 -04:00
committed by GitHub
parent c5f9e25cc4
commit efd1006917
9 changed files with 183 additions and 364 deletions

View File

@@ -100,13 +100,23 @@ battle_struct: MACRO
ENDM
box: MACRO
\1Count:: db
\1Species:: ds MONS_PER_BOX + 1
\1Count:: db
\1Species:: ds MONS_PER_BOX + 1
\1Mons::
\1Mon1:: box_struct \1Mon1
\1Mon2:: ds BOXMON_STRUCT_LENGTH * (MONS_PER_BOX - 1)
\1MonOTs:: ds NAME_LENGTH * MONS_PER_BOX
\1MonNicknames:: ds MON_NAME_LENGTH * MONS_PER_BOX
; \1Mon1 - \1Mon20
for n, 1, MONS_PER_BOX + 1
\1Mon{d:n}:: box_struct \1Mon{d:n}
endr
\1MonOTs::
; \1Mon1OT - \1Mon20OT
for n, 1, MONS_PER_BOX + 1
\1Mon{d:n}OT:: ds NAME_LENGTH
endr
\1MonNicknames::
; \1Mon1Nickname - \1Mon20Nickname
for n, 1, MONS_PER_BOX + 1
\1Mon{d:n}Nickname:: ds MON_NAME_LENGTH
endr
\1MonNicknamesEnd::
\1End::
ds 2 ; padding
@@ -171,15 +181,11 @@ ENDM
battle_tower_struct: MACRO
\1Name:: ds NAME_LENGTH - 1
\1TrainerClass:: db
\1Mon1:: party_struct \1Mon1
\1Mon1Name:: ds MON_NAME_LENGTH
\1Mon1NameEnd::
\1Mon2:: party_struct \1Mon2
\1Mon2Name:: ds MON_NAME_LENGTH
\1Mon2NameEnd::
\1Mon3:: party_struct \1Mon3
\1Mon3Name:: ds MON_NAME_LENGTH
\1Mon3NameEnd::
; \1Mon1 - \1Mon3 and \1Mon1Name - \1Mon3Name
for n, 1, BATTLETOWER_PARTY_LENGTH + 1
\1Mon{d:n}:: party_struct \1Mon{d:n}
\1Mon{d:n}Name:: ds MON_NAME_LENGTH
endr
\1TrainerData:: ds BATTLETOWER_TRAINERDATALENGTH
\1TrainerEnd::
ENDM
@@ -221,12 +227,10 @@ ENDM
hall_of_fame: MACRO
\1WinCount:: db
\1Mon1:: hof_mon \1Mon1
\1Mon2:: hof_mon \1Mon2
\1Mon3:: hof_mon \1Mon3
\1Mon4:: hof_mon \1Mon4
\1Mon5:: hof_mon \1Mon5
\1Mon6:: hof_mon \1Mon6
; \1Mon1 - \1Mon6
for n, 1, PARTY_LENGTH + 1
\1Mon{d:n}:: hof_mon \1Mon{d:n}
endr
\1End:: db
ENDM