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
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
9 changed files with 183 additions and 364 deletions

View File

@ -4,8 +4,8 @@ BATTLETOWER_STREAK_LENGTH EQU 7
BATTLETOWER_NUM_UNIQUE_MON EQU 21 BATTLETOWER_NUM_UNIQUE_MON EQU 21
BATTLETOWER_NUM_UNIQUE_TRAINERS EQU 70 BATTLETOWER_NUM_UNIQUE_TRAINERS EQU 70
BATTLETOWER_TRAINERDATALENGTH EQU $24 BATTLETOWER_TRAINERDATALENGTH EQU 18 * 2 ; $24
BATTLE_TOWER_STRUCT_LENGTH EQU NAME_LENGTH + BATTLETOWER_PARTY_LENGTH * NICKNAMED_MON_STRUCT_LENGTH + BATTLETOWER_TRAINERDATALENGTH BATTLE_TOWER_STRUCT_LENGTH EQU NAME_LENGTH + BATTLETOWER_PARTY_LENGTH * NICKNAMED_MON_STRUCT_LENGTH + BATTLETOWER_TRAINERDATALENGTH ; $e0
; BattleTowerAction setval arguments (see engine/events/battle_tower/battle_tower.asm) ; BattleTowerAction setval arguments (see engine/events/battle_tower/battle_tower.asm)
const_def const_def

View File

@ -136,11 +136,15 @@ PARTY_LENGTH EQU 6
; boxes ; boxes
MONS_PER_BOX EQU 20 MONS_PER_BOX EQU 20
; box: count, species, mons, OTs, nicknames, padding
BOX_LENGTH EQU 1 + MONS_PER_BOX + 1 + (BOXMON_STRUCT_LENGTH + NAME_LENGTH + MON_NAME_LENGTH) * MONS_PER_BOX + 2 ; $450
NUM_BOXES EQU 14 NUM_BOXES EQU 14
; hall of fame ; hall of fame
HOF_MON_LENGTH EQU 1 + 2 + 2 + 1 + (MON_NAME_LENGTH - 1) ; species, id, dvs, level, nick ; hof_mon: species, id, dvs, level, nicknames
HOF_LENGTH EQU 1 + HOF_MON_LENGTH * PARTY_LENGTH + 1 ; win count, party, terminator HOF_MON_LENGTH EQU 1 + 2 + 2 + 1 + (MON_NAME_LENGTH - 1) ; $10
; hall_of_fame: win count, party, terminator
HOF_LENGTH EQU 1 + HOF_MON_LENGTH * PARTY_LENGTH + 1 ; $62
NUM_HOF_TEAMS EQU 30 NUM_HOF_TEAMS EQU 30
; evolution types (used in data/pokemon/evos_attacks.asm) ; evolution types (used in data/pokemon/evos_attacks.asm)

View File

@ -6392,7 +6392,7 @@ LoadEnemyMon:
and a and a
ret z ret z
; Update enemy nick ; Update enemy nickname
ld hl, wStringBuffer1 ld hl, wStringBuffer1
ld de, wEnemyMonNickname ld de, wEnemyMonNickname
ld bc, MON_NAME_LENGTH ld bc, MON_NAME_LENGTH

View File

@ -2294,7 +2294,7 @@ BattleBGEffect_Rollout:
ldh [hSCY], a ldh [hSCY], a
xor $ff xor $ff
inc a inc a
ld [wAnimObject01YOffset], a ld [wAnimObject1YOffset], a
ret ret
BattleBGEffect_ShakeScreenX: BattleBGEffect_ShakeScreenX:

View File

@ -309,9 +309,9 @@ ReadBTTrainerParty:
.skip_mon_3 .skip_mon_3
; Add the terminator character to each of these names ; Add the terminator character to each of these names
ld a, "@" ld a, "@"
ld [wBT_OTTempMon1NameEnd - 1], a ld [wBT_OTTempMon1Name + MON_NAME_LENGTH - 1], a
ld [wBT_OTTempMon2NameEnd - 1], a ld [wBT_OTTempMon2Name + MON_NAME_LENGTH - 1], a
ld [wBT_OTTempMon3NameEnd - 1], a ld [wBT_OTTempMon3Name + MON_NAME_LENGTH - 1], a
; Fix errors in the movesets ; Fix errors in the movesets
call CheckBTMonMovesForErrors call CheckBTMonMovesForErrors
; Repair the trainer name if needed, then copy it to wOTPlayerName ; Repair the trainer name if needed, then copy it to wOTPlayerName

View File

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

156
sram.asm
View File

@ -6,54 +6,30 @@ sScratch:: ds $60 tiles
SECTION "SRAM Bank 0", SRAM SECTION "SRAM Bank 0", SRAM
sPartyMail:: sPartyMail::
table_width MAIL_STRUCT_LENGTH, sPartyMail ; sPartyMon1Mail - sPartyMon6Mail
sPartyMon1Mail:: mailmsg sPartyMon1Mail for n, 1, PARTY_LENGTH + 1
sPartyMon2Mail:: mailmsg sPartyMon2Mail sPartyMon{d:n}Mail:: mailmsg sPartyMon{d:n}Mail
sPartyMon3Mail:: mailmsg sPartyMon3Mail endr
sPartyMon4Mail:: mailmsg sPartyMon4Mail
sPartyMon5Mail:: mailmsg sPartyMon5Mail
sPartyMon6Mail:: mailmsg sPartyMon6Mail
assert_table_length PARTY_LENGTH
sPartyMailBackup:: sPartyMailBackup::
table_width MAIL_STRUCT_LENGTH, sPartyMailBackup ; sPartyMon1MailBackup - sPartyMon6MailBackup
sPartyMon1MailBackup:: mailmsg sPartyMon1MailBackup for n, 1, PARTY_LENGTH + 1
sPartyMon2MailBackup:: mailmsg sPartyMon2MailBackup sPartyMon{d:n}MailBackup:: mailmsg sPartyMon{d:n}MailBackup
sPartyMon3MailBackup:: mailmsg sPartyMon3MailBackup endr
sPartyMon4MailBackup:: mailmsg sPartyMon4MailBackup
sPartyMon5MailBackup:: mailmsg sPartyMon5MailBackup
sPartyMon6MailBackup:: mailmsg sPartyMon6MailBackup
assert_table_length PARTY_LENGTH
sMailboxCount:: db sMailboxCount:: db
sMailboxes:: sMailboxes::
table_width MAIL_STRUCT_LENGTH, sMailboxes ; sMailbox1 - sMailbox10
sMailbox1:: mailmsg sMailbox1 for n, 1, MAILBOX_CAPACITY + 1
sMailbox2:: mailmsg sMailbox2 sMailbox{d:n}:: mailmsg sMailbox{d:n}
sMailbox3:: mailmsg sMailbox3 endr
sMailbox4:: mailmsg sMailbox4
sMailbox5:: mailmsg sMailbox5
sMailbox6:: mailmsg sMailbox6
sMailbox7:: mailmsg sMailbox7
sMailbox8:: mailmsg sMailbox8
sMailbox9:: mailmsg sMailbox9
sMailbox10:: mailmsg sMailbox10
assert_table_length MAILBOX_CAPACITY
sMailboxCountBackup:: db sMailboxCountBackup:: db
sMailboxesBackup:: sMailboxesBackup::
table_width MAIL_STRUCT_LENGTH, sMailboxesBackup ; sMailbox1Backup - sMailbox10Backup
sMailbox1Backup:: mailmsg sMailbox1Backup for n, 1, MAILBOX_CAPACITY + 1
sMailbox2Backup:: mailmsg sMailbox2Backup sMailbox{d:n}Backup:: mailmsg sMailbox{d:n}Backup
sMailbox3Backup:: mailmsg sMailbox3Backup endr
sMailbox4Backup:: mailmsg sMailbox4Backup
sMailbox5Backup:: mailmsg sMailbox5Backup
sMailbox6Backup:: mailmsg sMailbox6Backup
sMailbox7Backup:: mailmsg sMailbox7Backup
sMailbox8Backup:: mailmsg sMailbox8Backup
sMailbox9Backup:: mailmsg sMailbox9Backup
sMailbox10Backup:: mailmsg sMailbox10Backup
assert_table_length MAILBOX_CAPACITY
sMysteryGiftData:: sMysteryGiftData::
sMysteryGiftItem:: db sMysteryGiftItem:: db
@ -142,51 +118,20 @@ sLinkBattleLosses:: dw
sLinkBattleDraws:: dw sLinkBattleDraws:: dw
sLinkBattleRecord:: sLinkBattleRecord::
table_width LINK_BATTLE_RECORD_LENGTH, sLinkBattleRecord ; sLinkBattleRecord1 - sLinkBattleRecord5
sLinkBattleRecord1:: link_battle_record sLinkBattleRecord1 for n, 1, NUM_LINK_BATTLE_RECORDS + 1
sLinkBattleRecord2:: link_battle_record sLinkBattleRecord2 sLinkBattleRecord{d:n}:: link_battle_record sLinkBattleRecord{d:n}
sLinkBattleRecord3:: link_battle_record sLinkBattleRecord3 endr
sLinkBattleRecord4:: link_battle_record sLinkBattleRecord4
sLinkBattleRecord5:: link_battle_record sLinkBattleRecord5
assert_table_length NUM_LINK_BATTLE_RECORDS
sLinkBattleStatsEnd:: sLinkBattleStatsEnd::
SECTION "SRAM Hall of Fame", SRAM SECTION "SRAM Hall of Fame", SRAM
sHallOfFame:: sHallOfFame::
table_width HOF_LENGTH, sHallOfFame ; sHallOfFame1 - sHallOfFame30
sHallOfFame01:: hall_of_fame sHallOfFame01 for n, 1, NUM_HOF_TEAMS + 1
sHallOfFame02:: hall_of_fame sHallOfFame02 sHallOfFame{d:n}:: hall_of_fame sHallOfFame{d:n}
sHallOfFame03:: hall_of_fame sHallOfFame03 endr
sHallOfFame04:: hall_of_fame sHallOfFame04
sHallOfFame05:: hall_of_fame sHallOfFame05
sHallOfFame06:: hall_of_fame sHallOfFame06
sHallOfFame07:: hall_of_fame sHallOfFame07
sHallOfFame08:: hall_of_fame sHallOfFame08
sHallOfFame09:: hall_of_fame sHallOfFame09
sHallOfFame10:: hall_of_fame sHallOfFame10
sHallOfFame11:: hall_of_fame sHallOfFame11
sHallOfFame12:: hall_of_fame sHallOfFame12
sHallOfFame13:: hall_of_fame sHallOfFame13
sHallOfFame14:: hall_of_fame sHallOfFame14
sHallOfFame15:: hall_of_fame sHallOfFame15
sHallOfFame16:: hall_of_fame sHallOfFame16
sHallOfFame17:: hall_of_fame sHallOfFame17
sHallOfFame18:: hall_of_fame sHallOfFame18
sHallOfFame19:: hall_of_fame sHallOfFame19
sHallOfFame20:: hall_of_fame sHallOfFame20
sHallOfFame21:: hall_of_fame sHallOfFame21
sHallOfFame22:: hall_of_fame sHallOfFame22
sHallOfFame23:: hall_of_fame sHallOfFame23
sHallOfFame24:: hall_of_fame sHallOfFame24
sHallOfFame25:: hall_of_fame sHallOfFame25
sHallOfFame26:: hall_of_fame sHallOfFame26
sHallOfFame27:: hall_of_fame sHallOfFame27
sHallOfFame28:: hall_of_fame sHallOfFame28
sHallOfFame29:: hall_of_fame sHallOfFame29
sHallOfFame30:: hall_of_fame sHallOfFame30
assert_table_length NUM_HOF_TEAMS
sHallOfFameEnd:: sHallOfFameEnd::
@ -214,37 +159,42 @@ sBTTrainers:: ds BATTLETOWER_STREAK_LENGTH ; sbe48
sBattleTowerSaveFileFlags:: db sBattleTowerSaveFileFlags:: db
sBattleTowerReward:: db sBattleTowerReward:: db
; team of previous trainer
sBTMonOfTrainers:: sBTMonOfTrainers::
sBTMonPrevTrainer1:: db ; team of previous trainer
sBTMonPrevTrainer2:: db ; sBTMonPrevTrainer1 - sBTMonPrevTrainer3
sBTMonPrevTrainer3:: db for n, 1, BATTLETOWER_PARTY_LENGTH + 1
sBTMonPrevTrainer{d:n}:: db
endr
; team of preprevious trainer ; team of preprevious trainer
sBTMonPrevPrevTrainer1:: db ; sBTMonPrevPrevTrainer1 - sBTMonPrevPrevTrainer3
sBTMonPrevPrevTrainer2:: db for n, 1, BATTLETOWER_PARTY_LENGTH + 1
sBTMonPrevPrevTrainer3:: db sBTMonPrevPrevTrainer{d:n}:: db
endr
; The PC boxes will not fit into one SRAM bank,
; so they use multiple SECTIONs
box_n = 0
boxes: MACRO
rept \1
box_n = box_n + 1
sBox{d:box_n}:: box sBox{d:box_n}
endr
ENDM
SECTION "Boxes 1-7", SRAM SECTION "Boxes 1-7", SRAM
sBox1:: box sBox1 ; sBox1 - sBox7
sBox2:: box sBox2 boxes 7
sBox3:: box sBox3
sBox4:: box sBox4
sBox5:: box sBox5
sBox6:: box sBox6
sBox7:: box sBox7
SECTION "Boxes 8-14", SRAM SECTION "Boxes 8-14", SRAM
sBox8:: box sBox8 ; sBox8 - sBox14
sBox9:: box sBox9 boxes 7
sBox10:: box sBox10
sBox11:: box sBox11 ; All 14 boxes fit exactly within 2 SRAM banks
sBox12:: box sBox12 assert box_n == NUM_BOXES, \
sBox13:: box sBox13 "boxes: Expected {d:NUM_BOXES} total boxes, got {d:box_n}"
sBox14:: box sBox14
SECTION "SRAM Mobile 1", SRAM SECTION "SRAM Mobile 1", SRAM
@ -280,7 +230,7 @@ s4_b000:: db
SECTION "SRAM Mobile 2", SRAM SECTION "SRAM Mobile 2", SRAM
ds 1 ; former location for sMobileEventIndex, moved to 1:BE3C in English ds 1 ; JP: location of sMobileEventIndex
sTrainerRankings:: sTrainerRankings::
sTrainerRankingGameTimeHOF:: ds 4 sTrainerRankingGameTimeHOF:: ds 4
@ -328,7 +278,7 @@ sTrainerRankingBugContestScore:: ds 2
sTrainerRankingsChecksum:: ds 2 sTrainerRankingsChecksum:: ds 2
sTrainerRankingsEnd:: sTrainerRankingsEnd::
ds 1 ; Former location for sMobileEventIndexBackup, moved to 1:BE44 in English ds 1 ; JP: location of sMobileEventIndexBackup
sTrainerRankingsBackup:: ds sTrainerRankingsEnd - sTrainerRankings sTrainerRankingsBackup:: ds sTrainerRankingsEnd - sTrainerRankings

View File

@ -1,16 +1,16 @@
SECTION "VRAM0", VRAM SECTION "VRAM0", VRAM
vTiles0:: ds $800 vTiles0:: ds $80 tiles
vTiles1:: ds $800 vTiles1:: ds $80 tiles
vTiles2:: ds $800 vTiles2:: ds $80 tiles
vBGMap0:: ds $400 vBGMap0:: ds BG_MAP_WIDTH * BG_MAP_HEIGHT
vBGMap1:: ds $400 vBGMap1:: ds BG_MAP_WIDTH * BG_MAP_HEIGHT
SECTION "VRAM1", VRAM SECTION "VRAM1", VRAM
vTiles3:: ds $800 vTiles3:: ds $80 tiles
vTiles4:: ds $800 vTiles4:: ds $80 tiles
vTiles5:: ds $800 vTiles5:: ds $80 tiles
vBGMap2:: ds $400 vBGMap2:: ds BG_MAP_WIDTH * BG_MAP_HEIGHT
vBGMap3:: ds $400 vBGMap3:: ds BG_MAP_WIDTH * BG_MAP_HEIGHT

303
wram.asm
View File

@ -20,17 +20,10 @@ SECTION "Audio RAM", WRAM0
wMusicPlaying:: db wMusicPlaying:: db
wAudio:: wAudio::
table_width CHANNEL_STRUCT_LENGTH, wAudio ; wChannel1 - wChannel8
wChannel1:: channel_struct wChannel1 for n, 1, NUM_CHANNELS + 1
wChannel2:: channel_struct wChannel2 wChannel{d:n}:: channel_struct wChannel{d:n}
wChannel3:: channel_struct wChannel3 endr
wChannel4:: channel_struct wChannel4
assert_table_length NUM_MUSIC_CHANS
wChannel5:: channel_struct wChannel5
wChannel6:: channel_struct wChannel6
wChannel7:: channel_struct wChannel7
wChannel8:: channel_struct wChannel8
assert_table_length NUM_CHANNELS
ds 1 ds 1
@ -223,20 +216,12 @@ wSpriteAnimDict::
ds NUM_SPRITEANIMDICT_ENTRIES * 2 ds NUM_SPRITEANIMDICT_ENTRIES * 2
wSpriteAnimationStructs:: wSpriteAnimationStructs::
table_width SPRITEANIMSTRUCT_LENGTH, wSpriteAnimationStructs ; wSpriteAnim1 - wSpriteAnim10
for n, 1, NUM_SPRITE_ANIM_STRUCTS + 1
; field 0: index ; field 0: index
; fields 1-3: loaded from SpriteAnimSeqData ; fields 1-3: loaded from SpriteAnimSeqData
wSpriteAnim1:: sprite_anim_struct wSpriteAnim1 wSpriteAnim{d:n}:: sprite_anim_struct wSpriteAnim{d:n}
wSpriteAnim2:: sprite_anim_struct wSpriteAnim2 endr
wSpriteAnim3:: sprite_anim_struct wSpriteAnim3
wSpriteAnim4:: sprite_anim_struct wSpriteAnim4
wSpriteAnim5:: sprite_anim_struct wSpriteAnim5
wSpriteAnim6:: sprite_anim_struct wSpriteAnim6
wSpriteAnim7:: sprite_anim_struct wSpriteAnim7
wSpriteAnim8:: sprite_anim_struct wSpriteAnim8
wSpriteAnim9:: sprite_anim_struct wSpriteAnim9
wSpriteAnim10:: sprite_anim_struct wSpriteAnim10
assert_table_length NUM_SPRITE_ANIM_STRUCTS
wSpriteAnimationStructsEnd:: wSpriteAnimationStructsEnd::
NEXTU NEXTU
@ -323,48 +308,10 @@ wMobileWRAMEnd::
SECTION "Sprites", WRAM0 SECTION "Sprites", WRAM0
wVirtualOAM:: wVirtualOAM::
table_width SPRITEOAMSTRUCT_LENGTH, wVirtualOAM ; wVirtualOAMSprite00 - wVirtualOAMSprite39
wVirtualOAMSprite00:: sprite_oam_struct wVirtualOAMSprite00 for n, NUM_SPRITE_OAM_STRUCTS
wVirtualOAMSprite01:: sprite_oam_struct wVirtualOAMSprite01 wVirtualOAMSprite{02d:n}:: sprite_oam_struct wVirtualOAMSprite{02d:n}
wVirtualOAMSprite02:: sprite_oam_struct wVirtualOAMSprite02 endr
wVirtualOAMSprite03:: sprite_oam_struct wVirtualOAMSprite03
wVirtualOAMSprite04:: sprite_oam_struct wVirtualOAMSprite04
wVirtualOAMSprite05:: sprite_oam_struct wVirtualOAMSprite05
wVirtualOAMSprite06:: sprite_oam_struct wVirtualOAMSprite06
wVirtualOAMSprite07:: sprite_oam_struct wVirtualOAMSprite07
wVirtualOAMSprite08:: sprite_oam_struct wVirtualOAMSprite08
wVirtualOAMSprite09:: sprite_oam_struct wVirtualOAMSprite09
wVirtualOAMSprite10:: sprite_oam_struct wVirtualOAMSprite10
wVirtualOAMSprite11:: sprite_oam_struct wVirtualOAMSprite11
wVirtualOAMSprite12:: sprite_oam_struct wVirtualOAMSprite12
wVirtualOAMSprite13:: sprite_oam_struct wVirtualOAMSprite13
wVirtualOAMSprite14:: sprite_oam_struct wVirtualOAMSprite14
wVirtualOAMSprite15:: sprite_oam_struct wVirtualOAMSprite15
wVirtualOAMSprite16:: sprite_oam_struct wVirtualOAMSprite16
wVirtualOAMSprite17:: sprite_oam_struct wVirtualOAMSprite17
wVirtualOAMSprite18:: sprite_oam_struct wVirtualOAMSprite18
wVirtualOAMSprite19:: sprite_oam_struct wVirtualOAMSprite19
wVirtualOAMSprite20:: sprite_oam_struct wVirtualOAMSprite20
wVirtualOAMSprite21:: sprite_oam_struct wVirtualOAMSprite21
wVirtualOAMSprite22:: sprite_oam_struct wVirtualOAMSprite22
wVirtualOAMSprite23:: sprite_oam_struct wVirtualOAMSprite23
wVirtualOAMSprite24:: sprite_oam_struct wVirtualOAMSprite24
wVirtualOAMSprite25:: sprite_oam_struct wVirtualOAMSprite25
wVirtualOAMSprite26:: sprite_oam_struct wVirtualOAMSprite26
wVirtualOAMSprite27:: sprite_oam_struct wVirtualOAMSprite27
wVirtualOAMSprite28:: sprite_oam_struct wVirtualOAMSprite28
wVirtualOAMSprite29:: sprite_oam_struct wVirtualOAMSprite29
wVirtualOAMSprite30:: sprite_oam_struct wVirtualOAMSprite30
wVirtualOAMSprite31:: sprite_oam_struct wVirtualOAMSprite31
wVirtualOAMSprite32:: sprite_oam_struct wVirtualOAMSprite32
wVirtualOAMSprite33:: sprite_oam_struct wVirtualOAMSprite33
wVirtualOAMSprite34:: sprite_oam_struct wVirtualOAMSprite34
wVirtualOAMSprite35:: sprite_oam_struct wVirtualOAMSprite35
wVirtualOAMSprite36:: sprite_oam_struct wVirtualOAMSprite36
wVirtualOAMSprite37:: sprite_oam_struct wVirtualOAMSprite37
wVirtualOAMSprite38:: sprite_oam_struct wVirtualOAMSprite38
wVirtualOAMSprite39:: sprite_oam_struct wVirtualOAMSprite39
assert_table_length NUM_SPRITE_OAM_STRUCTS
wVirtualOAMEnd:: wVirtualOAMEnd::
@ -984,66 +931,42 @@ wLinkPartyEnd:: db ; older code doesn't check PartyCount
UNION UNION
; link player data ; link player data
wLinkPlayerData:: wLinkPlayerData::
table_width PARTYMON_STRUCT_LENGTH, wLinkPlayerData ; wLinkPlayerPartyMon1 - wLinkPlayerPartyMon6
wLinkPlayerPartyMon1:: party_struct wLinkPlayerPartyMon1 for n, 1, PARTY_LENGTH + 1
wLinkPlayerPartyMon2:: party_struct wLinkPlayerPartyMon2 wLinkPlayerPartyMon{d:n}:: party_struct wLinkPlayerPartyMon{d:n}
wLinkPlayerPartyMon3:: party_struct wLinkPlayerPartyMon3 endr
wLinkPlayerPartyMon4:: party_struct wLinkPlayerPartyMon4
wLinkPlayerPartyMon5:: party_struct wLinkPlayerPartyMon5
wLinkPlayerPartyMon6:: party_struct wLinkPlayerPartyMon6
assert_table_length PARTY_LENGTH
wLinkPlayerPartyMonOTs:: wLinkPlayerPartyMonOTs::
table_width NAME_LENGTH, wLinkPlayerPartyMonOTs ; wLinkPlayerPartyMon1OT - wLinkPlayerPartyMon6OT
wLinkPlayerPartyMon1OT:: ds NAME_LENGTH for n, 1, PARTY_LENGTH + 1
wLinkPlayerPartyMon2OT:: ds NAME_LENGTH wLinkPlayerPartyMon{d:n}OT:: ds NAME_LENGTH
wLinkPlayerPartyMon3OT:: ds NAME_LENGTH endr
wLinkPlayerPartyMon4OT:: ds NAME_LENGTH
wLinkPlayerPartyMon5OT:: ds NAME_LENGTH
wLinkPlayerPartyMon6OT:: ds NAME_LENGTH
assert_table_length PARTY_LENGTH
wLinkPlayerPartyMonNicknames:: wLinkPlayerPartyMonNicknames::
table_width MON_NAME_LENGTH, wLinkPlayerPartyMonNicknames ; wLinkPlayerPartyMon1Nickname - wLinkPlayerPartyMon6Nickname
wLinkPlayerPartyMon1Nickname:: ds MON_NAME_LENGTH for n, 1, PARTY_LENGTH + 1
wLinkPlayerPartyMon2Nickname:: ds MON_NAME_LENGTH wLinkPlayerPartyMon{d:n}Nickname:: ds MON_NAME_LENGTH
wLinkPlayerPartyMon3Nickname:: ds MON_NAME_LENGTH endr
wLinkPlayerPartyMon4Nickname:: ds MON_NAME_LENGTH
wLinkPlayerPartyMon5Nickname:: ds MON_NAME_LENGTH
wLinkPlayerPartyMon6Nickname:: ds MON_NAME_LENGTH
assert_table_length PARTY_LENGTH
NEXTU NEXTU
; time capsule party data ; time capsule party data
wTimeCapsulePlayerData:: wTimeCapsulePlayerData::
table_width REDMON_STRUCT_LENGTH, wTimeCapsulePlayerData ; wTimeCapsulePartyMon1 - wTimeCapsulePartyMon6
wTimeCapsulePartyMon1:: red_party_struct wTimeCapsulePartyMon1 for n, 1, PARTY_LENGTH + 1
wTimeCapsulePartyMon2:: red_party_struct wTimeCapsulePartyMon2 wTimeCapsulePartyMon{d:n}:: red_party_struct wTimeCapsulePartyMon{d:n}
wTimeCapsulePartyMon3:: red_party_struct wTimeCapsulePartyMon3 endr
wTimeCapsulePartyMon4:: red_party_struct wTimeCapsulePartyMon4
wTimeCapsulePartyMon5:: red_party_struct wTimeCapsulePartyMon5
wTimeCapsulePartyMon6:: red_party_struct wTimeCapsulePartyMon6
assert_table_length PARTY_LENGTH
wTimeCapsulePartyMonOTs:: wTimeCapsulePartyMonOTs::
table_width NAME_LENGTH, wTimeCapsulePartyMonOTs ; wTimeCapsulePartyMon1OT - wTimeCapsulePartyMon6OT
wTimeCapsulePartyMon1OT:: ds NAME_LENGTH for n, 1, PARTY_LENGTH + 1
wTimeCapsulePartyMon2OT:: ds NAME_LENGTH wTimeCapsulePartyMon{d:n}OT:: ds NAME_LENGTH
wTimeCapsulePartyMon3OT:: ds NAME_LENGTH endr
wTimeCapsulePartyMon4OT:: ds NAME_LENGTH
wTimeCapsulePartyMon5OT:: ds NAME_LENGTH
wTimeCapsulePartyMon6OT:: ds NAME_LENGTH
assert_table_length PARTY_LENGTH
wTimeCapsulePartyMonNicknames:: wTimeCapsulePartyMonNicknames::
table_width MON_NAME_LENGTH, wTimeCapsulePartyMonNicknames ; wTimeCapsulePartyMon1Nickname - wTimeCapsulePartyMon6Nickname
wTimeCapsulePartyMon1Nickname:: ds MON_NAME_LENGTH for n, 1, PARTY_LENGTH + 1
wTimeCapsulePartyMon2Nickname:: ds MON_NAME_LENGTH wTimeCapsulePartyMon{d:n}Nickname:: ds MON_NAME_LENGTH
wTimeCapsulePartyMon3Nickname:: ds MON_NAME_LENGTH endr
wTimeCapsulePartyMon4Nickname:: ds MON_NAME_LENGTH
wTimeCapsulePartyMon5Nickname:: ds MON_NAME_LENGTH
wTimeCapsulePartyMon6Nickname:: ds MON_NAME_LENGTH
assert_table_length PARTY_LENGTH
NEXTU NEXTU
; link patch lists ; link patch lists
@ -1057,14 +980,10 @@ NEXTU
wCurLinkOTPartyMonTypePointer:: dw wCurLinkOTPartyMonTypePointer:: dw
wLinkOTPartyMonTypes:: wLinkOTPartyMonTypes::
table_width 2, wLinkOTPartyMonTypes ; wLinkOTPartyMon1Type - wLinkOTPartyMon6Type
wLinkOTPartyMon1Type:: dw for n, 1, PARTY_LENGTH + 1
wLinkOTPartyMon2Type:: dw wLinkOTPartyMon{d:n}Type:: dw
wLinkOTPartyMon3Type:: dw endr
wLinkOTPartyMon4Type:: dw
wLinkOTPartyMon5Type:: dw
wLinkOTPartyMon6Type:: dw
assert_table_length PARTY_LENGTH
NEXTU NEXTU
; link mail data ; link mail data
@ -2612,34 +2531,22 @@ ENDU
UNION UNION
; ot party mons ; ot party mons
wOTPartyMons:: wOTPartyMons::
table_width PARTYMON_STRUCT_LENGTH, wOTPartyMons ; wOTPartyMon1 - wOTPartyMon6
wOTPartyMon1:: party_struct wOTPartyMon1 for n, 1, PARTY_LENGTH + 1
wOTPartyMon2:: party_struct wOTPartyMon2 wOTPartyMon{d:n}:: party_struct wOTPartyMon{d:n}
wOTPartyMon3:: party_struct wOTPartyMon3 endr
wOTPartyMon4:: party_struct wOTPartyMon4
wOTPartyMon5:: party_struct wOTPartyMon5
wOTPartyMon6:: party_struct wOTPartyMon6
assert_table_length PARTY_LENGTH
wOTPartyMonOTs:: wOTPartyMonOTs::
table_width NAME_LENGTH, wOTPartyMonOTs ; wOTPartyMon1OT - wOTPartyMon6OT
wOTPartyMon1OT:: ds NAME_LENGTH for n, 1, PARTY_LENGTH + 1
wOTPartyMon2OT:: ds NAME_LENGTH wOTPartyMon{d:n}OT:: ds NAME_LENGTH
wOTPartyMon3OT:: ds NAME_LENGTH endr
wOTPartyMon4OT:: ds NAME_LENGTH
wOTPartyMon5OT:: ds NAME_LENGTH
wOTPartyMon6OT:: ds NAME_LENGTH
assert_table_length PARTY_LENGTH
wOTPartyMonNicknames:: wOTPartyMonNicknames::
table_width MON_NAME_LENGTH, wOTPartyMonNicknames ; wOTPartyMon1Nickname - wOTPartyMon6Nickname
wOTPartyMon1Nickname:: ds MON_NAME_LENGTH for n, 1, PARTY_LENGTH + 1
wOTPartyMon2Nickname:: ds MON_NAME_LENGTH wOTPartyMon{d:n}Nickname:: ds MON_NAME_LENGTH
wOTPartyMon3Nickname:: ds MON_NAME_LENGTH endr
wOTPartyMon4Nickname:: ds MON_NAME_LENGTH
wOTPartyMon5Nickname:: ds MON_NAME_LENGTH
wOTPartyMon6Nickname:: ds MON_NAME_LENGTH
assert_table_length PARTY_LENGTH
wOTPartyDataEnd:: wOTPartyDataEnd::
NEXTU NEXTU
@ -2791,45 +2698,22 @@ wFollowerMovementQueueLength:: db
wFollowMovementQueue:: ds 5 wFollowMovementQueue:: ds 5
wObjectStructs:: wObjectStructs::
table_width OBJECT_LENGTH, wObjectStructs wPlayerStruct:: object_struct wPlayer ; player is object struct 0
wPlayerStruct:: object_struct wPlayer ; wObjectStruct1 - wObjectStruct12
wObject1Struct:: object_struct wObject1 for n, 1, NUM_OBJECT_STRUCTS
wObject2Struct:: object_struct wObject2 wObject{d:n}Struct:: object_struct wObject{d:n}
wObject3Struct:: object_struct wObject3 endr
wObject4Struct:: object_struct wObject4
wObject5Struct:: object_struct wObject5
wObject6Struct:: object_struct wObject6
wObject7Struct:: object_struct wObject7
wObject8Struct:: object_struct wObject8
wObject9Struct:: object_struct wObject9
wObject10Struct:: object_struct wObject10
wObject11Struct:: object_struct wObject11
wObject12Struct:: object_struct wObject12
assert_table_length NUM_OBJECT_STRUCTS
wCmdQueue:: ds CMDQUEUE_CAPACITY * CMDQUEUE_ENTRY_SIZE wCmdQueue:: ds CMDQUEUE_CAPACITY * CMDQUEUE_ENTRY_SIZE
ds 40 ds 40
wMapObjects:: wMapObjects::
table_width MAPOBJECT_LENGTH, wMapObjects wPlayerObject:: map_object wPlayer ; player is map object 0
wPlayerObject:: map_object wPlayer ; wMap1Object - wMap15Object
wMap1Object:: map_object wMap1 for n, 1, NUM_OBJECTS
wMap2Object:: map_object wMap2 wMap{d:n}Object:: map_object wMap{d:n}
wMap3Object:: map_object wMap3 endr
wMap4Object:: map_object wMap4
wMap5Object:: map_object wMap5
wMap6Object:: map_object wMap6
wMap7Object:: map_object wMap7
wMap8Object:: map_object wMap8
wMap9Object:: map_object wMap9
wMap10Object:: map_object wMap10
wMap11Object:: map_object wMap11
wMap12Object:: map_object wMap12
wMap13Object:: map_object wMap13
wMap14Object:: map_object wMap14
wMap15Object:: map_object wMap15
assert_table_length NUM_OBJECTS
wObjectMasks:: ds NUM_OBJECTS wObjectMasks:: ds NUM_OBJECTS
@ -3193,34 +3077,22 @@ wPartySpecies:: ds PARTY_LENGTH
wPartyEnd:: db ; older code doesn't check wPartyCount wPartyEnd:: db ; older code doesn't check wPartyCount
wPartyMons:: wPartyMons::
table_width PARTYMON_STRUCT_LENGTH, wPartyMons ; wPartyMon1 - wPartyMon6
wPartyMon1:: party_struct wPartyMon1 for n, 1, PARTY_LENGTH + 1
wPartyMon2:: party_struct wPartyMon2 wPartyMon{d:n}:: party_struct wPartyMon{d:n}
wPartyMon3:: party_struct wPartyMon3 endr
wPartyMon4:: party_struct wPartyMon4
wPartyMon5:: party_struct wPartyMon5
wPartyMon6:: party_struct wPartyMon6
assert_table_length PARTY_LENGTH
wPartyMonOTs:: wPartyMonOTs::
table_width NAME_LENGTH, wPartyMonOTs ; wPartyMon1OT - wPartyMon6OT
wPartyMon1OT:: ds NAME_LENGTH for n, 1, PARTY_LENGTH + 1
wPartyMon2OT:: ds NAME_LENGTH wPartyMon{d:n}OT:: ds NAME_LENGTH
wPartyMon3OT:: ds NAME_LENGTH endr
wPartyMon4OT:: ds NAME_LENGTH
wPartyMon5OT:: ds NAME_LENGTH
wPartyMon6OT:: ds NAME_LENGTH
assert_table_length PARTY_LENGTH
wPartyMonNicknames:: wPartyMonNicknames::
table_width MON_NAME_LENGTH, wPartyMonNicknames ; wPartyMon1Nickname - wPartyMon6Nickname
wPartyMon1Nickname:: ds MON_NAME_LENGTH for n, 1, PARTY_LENGTH + 1
wPartyMon2Nickname:: ds MON_NAME_LENGTH wPartyMon{d:n}Nickname:: ds MON_NAME_LENGTH
wPartyMon3Nickname:: ds MON_NAME_LENGTH endr
wPartyMon4Nickname:: ds MON_NAME_LENGTH
wPartyMon5Nickname:: ds MON_NAME_LENGTH
wPartyMon6Nickname:: ds MON_NAME_LENGTH
assert_table_length PARTY_LENGTH
wPartyMonNicknamesEnd:: wPartyMonNicknamesEnd::
ds 22 ds 22
@ -3437,27 +3309,16 @@ wBattleAnimTileDict::
ds NUM_BATTLEANIMTILEDICT_ENTRIES * 2 ds NUM_BATTLEANIMTILEDICT_ENTRIES * 2
wActiveAnimObjects:: wActiveAnimObjects::
table_width BATTLEANIMSTRUCT_LENGTH, wActiveAnimObjects ; wAnimObject1 - wAnimObject10
wAnimObject01:: battle_anim_struct wAnimObject01 for n, 1, NUM_ANIM_OBJECTS + 1
wAnimObject02:: battle_anim_struct wAnimObject02 wAnimObject{d:n}:: battle_anim_struct wAnimObject{d:n}
wAnimObject03:: battle_anim_struct wAnimObject03 endr
wAnimObject04:: battle_anim_struct wAnimObject04
wAnimObject05:: battle_anim_struct wAnimObject05
wAnimObject06:: battle_anim_struct wAnimObject06
wAnimObject07:: battle_anim_struct wAnimObject07
wAnimObject08:: battle_anim_struct wAnimObject08
wAnimObject09:: battle_anim_struct wAnimObject09
wAnimObject10:: battle_anim_struct wAnimObject10
assert_table_length NUM_ANIM_OBJECTS
wActiveBGEffects:: wActiveBGEffects::
table_width BG_EFFECT_STRUCT_LENGTH, wActiveBGEffects ; wBGEffect1 - wBGEffect5
wBGEffect1:: battle_bg_effect wBGEffect1 for n, 1, NUM_BG_EFFECTS + 1
wBGEffect2:: battle_bg_effect wBGEffect2 wBGEffect{d:n}:: battle_bg_effect wBGEffect{d:n}
wBGEffect3:: battle_bg_effect wBGEffect3 endr
wBGEffect4:: battle_bg_effect wBGEffect4
wBGEffect5:: battle_bg_effect wBGEffect5
assert_table_length NUM_BG_EFFECTS
wLastAnimObjectIndex:: db wLastAnimObjectIndex:: db