diff options
author | Rangi <remy.oukaour+rangi42@gmail.com> | 2021-03-09 20:43:32 -0500 |
---|---|---|
committer | Rangi <remy.oukaour+rangi42@gmail.com> | 2021-03-09 20:43:32 -0500 |
commit | f6ce38114f66619d683b9d8c2079b8ce6d40216a (patch) | |
tree | 162a42c3115594923637ea52409358ac3ae09444 | |
parent | f9431c6aab479601ee0229a109154fa4f8b8b889 (diff) |
Verify RAM table lengths
-rw-r--r-- | constants/map_object_constants.asm | 2 | ||||
-rw-r--r-- | constants/wram_constants.asm | 4 | ||||
-rw-r--r-- | sram.asm | 10 | ||||
-rw-r--r-- | wram.asm | 25 |
4 files changed, 35 insertions, 6 deletions
diff --git a/constants/map_object_constants.asm b/constants/map_object_constants.asm index e387c647..4499b854 100644 --- a/constants/map_object_constants.asm +++ b/constants/map_object_constants.asm @@ -112,6 +112,8 @@ MAPOBJECT_SCRIPT_POINTER rw ; a MAPOBJECT_EVENT_FLAG rw ; c rb_skip 2 MAPOBJECT_LENGTH EQU _RS +NUM_OBJECTS EQU 16 +PLAYER_OBJECT EQU 0 ; SpriteMovementData struct members (see data/sprites/map_objects.asm) rsreset diff --git a/constants/wram_constants.asm b/constants/wram_constants.asm index 131621d3..9a44b493 100644 --- a/constants/wram_constants.asm +++ b/constants/wram_constants.asm @@ -180,10 +180,6 @@ SPAWN_RED EQU 2 const FRIDAY ; 5 const SATURDAY ; 6 -; wMapObjects:: -PLAYER_OBJECT EQU 0 -NUM_OBJECTS EQU 16 - ; wStatusFlags:: const_def const STATUSFLAGS_POKEDEX_F ; 0 @@ -14,23 +14,28 @@ ENDU SECTION "SRAM Bank 0", SRAM sPartyMail:: + table_width MAIL_STRUCT_LENGTH, sPartyMail sPartyMon1Mail:: mailmsg sPartyMon1Mail sPartyMon2Mail:: mailmsg sPartyMon2Mail sPartyMon3Mail:: mailmsg sPartyMon3Mail sPartyMon4Mail:: mailmsg sPartyMon4Mail sPartyMon5Mail:: mailmsg sPartyMon5Mail sPartyMon6Mail:: mailmsg sPartyMon6Mail + assert_table_length PARTY_LENGTH sPartyMailBackup:: + table_width MAIL_STRUCT_LENGTH, sPartyMailBackup sPartyMon1MailBackup:: mailmsg sPartyMon1MailBackup sPartyMon2MailBackup:: mailmsg sPartyMon2MailBackup sPartyMon3MailBackup:: mailmsg sPartyMon3MailBackup sPartyMon4MailBackup:: mailmsg sPartyMon4MailBackup sPartyMon5MailBackup:: mailmsg sPartyMon5MailBackup sPartyMon6MailBackup:: mailmsg sPartyMon6MailBackup + assert_table_length PARTY_LENGTH sMailboxCount:: db sMailboxes:: + table_width MAIL_STRUCT_LENGTH, sMailboxes sMailbox1:: mailmsg sMailbox1 sMailbox2:: mailmsg sMailbox2 sMailbox3:: mailmsg sMailbox3 @@ -41,9 +46,11 @@ sMailbox7:: mailmsg sMailbox7 sMailbox8:: mailmsg sMailbox8 sMailbox9:: mailmsg sMailbox9 sMailbox10:: mailmsg sMailbox10 + assert_table_length MAILBOX_CAPACITY sMailboxCountBackup:: db sMailboxesBackup:: + table_width MAIL_STRUCT_LENGTH, sMailboxesBackup sMailbox1Backup:: mailmsg sMailbox1Backup sMailbox2Backup:: mailmsg sMailbox2Backup sMailbox3Backup:: mailmsg sMailbox3Backup @@ -54,6 +61,7 @@ sMailbox7Backup:: mailmsg sMailbox7Backup sMailbox8Backup:: mailmsg sMailbox8Backup sMailbox9Backup:: mailmsg sMailbox9Backup sMailbox10Backup:: mailmsg sMailbox10Backup + assert_table_length MAILBOX_CAPACITY sMysteryGiftData:: sMysteryGiftItem:: db @@ -144,6 +152,7 @@ sLinkBattleStatsEnd:: SECTION "SRAM Hall of Fame", SRAM sHallOfFame:: + table_width HOF_LENGTH, sHallOfFame sHallOfFame01:: hall_of_fame sHallOfFame01 sHallOfFame02:: hall_of_fame sHallOfFame02 sHallOfFame03:: hall_of_fame sHallOfFame03 @@ -174,6 +183,7 @@ 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:: @@ -12,16 +12,17 @@ SECTION "Audio RAM", WRAM0 wMusicPlaying:: db wAudio:: - + table_width CHANNEL_STRUCT_LENGTH, wAudio wChannel1:: channel_struct wChannel1 wChannel2:: channel_struct wChannel2 wChannel3:: channel_struct wChannel3 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 @@ -159,6 +160,7 @@ wOBPals2:: ds 8 palettes SECTION "Sprites", WRAM0 wVirtualOAM:: + table_width SPRITEOAMSTRUCT_LENGTH, wVirtualOAM wVirtualOAMSprite00:: sprite_oam_struct wVirtualOAMSprite00 wVirtualOAMSprite01:: sprite_oam_struct wVirtualOAMSprite01 wVirtualOAMSprite02:: sprite_oam_struct wVirtualOAMSprite02 @@ -199,6 +201,7 @@ 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:: @@ -257,6 +260,7 @@ wSpriteAnimDict:: ds NUM_SPRITEANIMDICT_ENTRIES * 2 wSpriteAnimationStructs:: + table_width SPRITEANIMSTRUCT_LENGTH, wSpriteAnimationStructs ; field 0: index ; fields 1-3: loaded from SpriteAnimSeqData wSpriteAnim1:: sprite_anim_struct wSpriteAnim1 @@ -269,6 +273,7 @@ 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:: wSpriteAnimCount:: db @@ -551,24 +556,28 @@ wLinkPartyEnd:: db ; older code doesn't check PartyCount UNION ; link player data wLinkPlayerData:: + table_width PARTYMON_STRUCT_LENGTH, wLinkPlayerData wLinkPlayerPartyMon1:: party_struct wLinkPlayerPartyMon1 wLinkPlayerPartyMon2:: party_struct wLinkPlayerPartyMon2 wLinkPlayerPartyMon3:: party_struct wLinkPlayerPartyMon3 wLinkPlayerPartyMon4:: party_struct wLinkPlayerPartyMon4 wLinkPlayerPartyMon5:: party_struct wLinkPlayerPartyMon5 wLinkPlayerPartyMon6:: party_struct wLinkPlayerPartyMon6 + assert_table_length PARTY_LENGTH wLinkPlayerPartyMonOTNames:: ds NAME_LENGTH * PARTY_LENGTH wLinkPlayerPartyMonNicks:: ds MON_NAME_LENGTH * PARTY_LENGTH NEXTU ; time capsule party data wTimeCapsulePlayerData:: + table_width REDMON_STRUCT_LENGTH, wTimeCapsulePlayerData wTimeCapsulePartyMon1:: red_party_struct wTimeCapsulePartyMon1 wTimeCapsulePartyMon2:: red_party_struct wTimeCapsulePartyMon2 wTimeCapsulePartyMon3:: red_party_struct wTimeCapsulePartyMon3 wTimeCapsulePartyMon4:: red_party_struct wTimeCapsulePartyMon4 wTimeCapsulePartyMon5:: red_party_struct wTimeCapsulePartyMon5 wTimeCapsulePartyMon6:: red_party_struct wTimeCapsulePartyMon6 + assert_table_length PARTY_LENGTH wTimeCapsulePartyMonOTNames:: ds NAME_LENGTH * PARTY_LENGTH wTimeCapsulePartyMonNicks:: ds MON_NAME_LENGTH * PARTY_LENGTH @@ -678,6 +687,7 @@ wBattleAnimTileDict:: ds NUM_BATTLEANIMTILEDICT_ENTRIES * 2 wActiveAnimObjects:: + table_width BATTLEANIMSTRUCT_LENGTH, wActiveAnimObjects wAnimObject01:: battle_anim_struct wAnimObject01 wAnimObject02:: battle_anim_struct wAnimObject02 wAnimObject03:: battle_anim_struct wAnimObject03 @@ -688,13 +698,16 @@ 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:: + table_width BG_EFFECT_STRUCT_LENGTH, wActiveBGEffects wBGEffect1:: battle_bg_effect wBGEffect1 wBGEffect2:: battle_bg_effect wBGEffect2 wBGEffect3:: battle_bg_effect wBGEffect3 wBGEffect4:: battle_bg_effect wBGEffect4 wBGEffect5:: battle_bg_effect wBGEffect5 + assert_table_length NUM_BG_EFFECTS wLastAnimObjectIndex:: db @@ -2362,6 +2375,7 @@ wFollowerMovementQueueLength:: db wFollowMovementQueue:: ds 5 wObjectStructs:: + table_width OBJECT_LENGTH, wObjectStructs wPlayerStruct:: object_struct wPlayer wObject1Struct:: object_struct wObject1 wObject2Struct:: object_struct wObject2 @@ -2380,6 +2394,7 @@ wPlayerData2:: NEXTU wObject11Struct:: object_struct wObject11 wObject12Struct:: object_struct wObject12 + assert_table_length NUM_OBJECT_STRUCTS ENDU wCmdQueue:: ds CMDQUEUE_CAPACITY * CMDQUEUE_ENTRY_SIZE @@ -2387,6 +2402,7 @@ wCmdQueue:: ds CMDQUEUE_CAPACITY * CMDQUEUE_ENTRY_SIZE ds 40 wMapObjects:: + table_width MAPOBJECT_LENGTH, wMapObjects wPlayerObject:: map_object wPlayer wMap1Object:: map_object wMap1 wMap2Object:: map_object wMap2 @@ -2403,6 +2419,7 @@ 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 @@ -2695,12 +2712,14 @@ wPartySpecies:: ds PARTY_LENGTH wPartyEnd:: db ; older code doesn't check wPartyCount wPartyMons:: + table_width PARTYMON_STRUCT_LENGTH, wPartyMons wPartyMon1:: party_struct wPartyMon1 wPartyMon2:: party_struct wPartyMon2 wPartyMon3:: party_struct wPartyMon3 wPartyMon4:: party_struct wPartyMon4 wPartyMon5:: party_struct wPartyMon5 wPartyMon6:: party_struct wPartyMon6 + assert_table_length PARTY_LENGTH wPartyMonOT:: ds NAME_LENGTH * PARTY_LENGTH @@ -2792,12 +2811,14 @@ ENDU UNION ; ot party mons wOTPartyMons:: + table_width PARTYMON_STRUCT_LENGTH, wOTPartyMons wOTPartyMon1:: party_struct wOTPartyMon1 wOTPartyMon2:: party_struct wOTPartyMon2 wOTPartyMon3:: party_struct wOTPartyMon3 wOTPartyMon4:: party_struct wOTPartyMon4 wOTPartyMon5:: party_struct wOTPartyMon5 wOTPartyMon6:: party_struct wOTPartyMon6 + assert_table_length PARTY_LENGTH wOTPartyMonsEnd:: wOTPartyMonOT:: ds NAME_LENGTH * PARTY_LENGTH |