diff options
Diffstat (limited to 'engine/pokedex.asm')
-rw-r--r-- | engine/pokedex.asm | 332 |
1 files changed, 150 insertions, 182 deletions
diff --git a/engine/pokedex.asm b/engine/pokedex.asm index 5dc3dc2a7..fb16f83d1 100644 --- a/engine/pokedex.asm +++ b/engine/pokedex.asm @@ -1,3 +1,4 @@ +; Pokedex_RunJumptable.Jumptable indexes const_def const DEXSTATE_MAIN_SCR const DEXSTATE_UPDATE_MAIN_SCR @@ -86,8 +87,8 @@ InitPokedex: ; 40063 xor a ld [wJumptableIndex], a - ld [wDexEntryPrevJumptableIndex], a - ld [wcf65], a + ld [wPrevDexEntryJumptableIndex], a + ld [wPrevDexEntryBackup], a ld [wcf66], a call Pokedex_CheckUnlockedUnownMode @@ -118,7 +119,7 @@ Pokedex_CheckUnlockedUnownMode: ; 400a2 Pokedex_InitCursorPosition: ; 400b4 ld hl, wPokedexOrder - ld a, [wLastDexEntry] + ld a, [wPrevDexEntry] and a jr z, .done cp NUM_POKEMON + 1 @@ -185,6 +186,7 @@ Pokedex_RunJumptable: ; 4010b jp hl .Jumptable: ; 40115 (10:4115) +; entries correspond to DEXSTATE_* constants dw Pokedex_InitMainScreen dw Pokedex_UpdateMainScreen dw Pokedex_InitDexEntryScreen @@ -289,7 +291,7 @@ Pokedex_UpdateMainScreen: ; 401ae (10:41ae) ld a, DEXSTATE_DEX_ENTRY_SCR ld [wJumptableIndex], a ld a, DEXSTATE_MAIN_SCR - ld [wDexEntryPrevJumptableIndex], a + ld [wPrevDexEntryJumptableIndex], a ret .select @@ -330,7 +332,7 @@ Pokedex_InitDexEntryScreen: ; 40217 (10:4217) call Pokedex_DrawDexEntryScreenBG call Pokedex_InitArrowCursor call Pokedex_GetSelectedMon - ld [wLastDexEntry], a + ld [wPrevDexEntry], a farcall DisplayDexEntry call Pokedex_DrawFootprint call WaitBGMap @@ -375,7 +377,7 @@ Pokedex_UpdateDexEntryScreen: ; 40258 (10:4258) .max_volume call MaxVolume - ld a, [wDexEntryPrevJumptableIndex] + ld a, [wPrevDexEntryJumptableIndex] ld [wJumptableIndex], a ret @@ -384,7 +386,7 @@ Pokedex_Page: ; 40292 xor $1 ld [wPokedexStatus], a call Pokedex_GetSelectedMon - ld [wLastDexEntry], a + ld [wPrevDexEntry], a farcall DisplayDexEntry call WaitBGMap ret @@ -400,7 +402,7 @@ Pokedex_ReinitDexEntryScreen: ; 402aa (10:42aa) call Pokedex_InitArrowCursor call Pokedex_LoadCurrentFootprint call Pokedex_GetSelectedMon - ld [wLastDexEntry], a + ld [wPrevDexEntry], a farcall DisplayDexEntry call Pokedex_DrawFootprint call Pokedex_LoadSelectedMonTiles @@ -441,7 +443,7 @@ DexEntryScreen_MenuActionJumptable: ; 402f2 call Pokedex_GetSelectedMon ld a, [wDexCurrentLocation] ld e, a - predef _Area + predef Predef_Pokedex_GetArea call Pokedex_BlackOutBG call DelayFrame xor a @@ -473,9 +475,9 @@ DexEntryScreen_MenuActionJumptable: ; 402f2 call Pokedex_ApplyPrintPals xor a ld [hSCX], a - ld a, [wcf65] + ld a, [wPrevDexEntryBackup] push af - ld a, [wDexEntryPrevJumptableIndex] + ld a, [wPrevDexEntryJumptableIndex] push af ld a, [wJumptableIndex] push af @@ -483,9 +485,9 @@ DexEntryScreen_MenuActionJumptable: ; 402f2 pop af ld [wJumptableIndex], a pop af - ld [wDexEntryPrevJumptableIndex], a + ld [wPrevDexEntryJumptableIndex], a pop af - ld [wcf65], a + ld [wPrevDexEntryBackup], a call ClearBGPalettes call DisableLCD call Pokedex_LoadInvertedFont @@ -695,8 +697,8 @@ Pokedex_UpdateSearchScreen: ; 40471 (10:4471) ld [wDexListingScrollOffsetBackup], a ld a, [wDexListingCursor] ld [wDexListingCursorBackup], a - ld a, [wLastDexEntry] - ld [wcf65], a + ld a, [wPrevDexEntry] + ld [wPrevDexEntryBackup], a xor a ld [wDexListingScrollOffset], a ld [wDexListingCursor], a @@ -739,7 +741,7 @@ Pokedex_InitSearchResultsScreen: ; 4050a (10:450a) farcall DrawPokedexSearchResultsWindow call Pokedex_PlaceSearchResultsTypeStrings call Pokedex_UpdateSearchResultsCursorOAM - ld a, $ff + ld a, -1 ld [CurPartySpecies], a ld a, SCGB_POKEDEX call Pokedex_GetSGBLayout @@ -771,7 +773,7 @@ Pokedex_UpdateSearchResultsScreen: ; 40562 (10:4562) ld a, DEXSTATE_DEX_ENTRY_SCR ld [wJumptableIndex], a ld a, DEXSTATE_SEARCH_RESULTS_SCR - ld [wDexEntryPrevJumptableIndex], a + ld [wPrevDexEntryJumptableIndex], a ret .return_to_search_screen @@ -779,8 +781,8 @@ Pokedex_UpdateSearchResultsScreen: ; 40562 (10:4562) ld [wDexListingScrollOffset], a ld a, [wDexListingCursorBackup] ld [wDexListingCursor], a - ld a, [wcf65] - ld [wLastDexEntry], a + ld a, [wPrevDexEntryBackup] + ld [wPrevDexEntry], a call Pokedex_BlackOutBG call ClearSprites call Pokedex_OrderMonsByMode @@ -827,7 +829,7 @@ Pokedex_UpdateUnownMode: ; 405df (10:45df) .decompress ld hl, PokedexLZ ld de, vTiles2 tile $31 - lb bc, BANK(PokedexLZ), $3a + lb bc, BANK(PokedexLZ), 58 call DecompressRequest2bpp .done @@ -1123,13 +1125,14 @@ Pokedex_DrawMainScreenBG: ; 4074c (10:474c) ret String_SEEN: ; 407e1 - db "SEEN", $ff + db "SEEN", -1 String_OWN: ; 407e6 - db "OWN", $ff + db "OWN", -1 String_SELECT_OPTION: ; 407ea db $3b, $48, $49, $4a, $44, $45, $46, $47 ; SELECT > OPTION + ; fallthrough String_START_SEARCH: ; 407f2 - db $3c, $3b, $41, $42, $43, $4b, $4c, $4d, $4e, $3c, $ff ; START > SEARCH + db $3c, $3b, $41, $42, $43, $4b, $4c, $4d, $4e, $3c, -1 ; START > SEARCH Pokedex_DrawDexEntryScreenBG: ; 407fd call Pokedex_FillBackgroundColor2 @@ -1164,13 +1167,13 @@ Pokedex_DrawDexEntryScreenBG: ; 407fd ret .Unused: ; 4084f - db $5c, $5d, $ff ; No. + db $5c, $5d, -1 ; No. .Height: ; 40852 - db "HT ?", $5e, "??", $5f, $ff ; HT ?'??" + db "HT ?", $5e, "??", $5f, -1 ; HT ?'??" .Weight: ; 4085c - db "WT ???lb", $ff ; WT ???lb + db "WT ???lb", -1 ; WT ???lb .MenuItems: ; 40867 - db $3b, " PAGE AREA CRY PRNT", $ff + db $3b, " PAGE AREA CRY PRNT", -1 Pokedex_DrawOptionScreenBG: ; 4087c (10:487c) call Pokedex_FillBackgroundColor2 @@ -1195,7 +1198,7 @@ Pokedex_DrawOptionScreenBG: ; 4087c (10:487c) ret .Title: ; 408b2 - db $3b, " OPTION ", $3c, $ff + db $3b, " OPTION ", $3c, -1 .Modes: ; 408bd db "NEW #DEX MODE" @@ -1229,10 +1232,10 @@ Pokedex_DrawSearchScreenBG: ; 408f0 (10:48f0) ret .Title: ; 4092a - db $3b, " SEARCH ", $3c, $ff + db $3b, " SEARCH ", $3c, -1 .TypeLeftRightArrows: ; 40935 - db $3d, " ", $3e, $ff + db $3d, " ", $3e, -1 .Types: ; 40940 db "TYPE1" @@ -1794,7 +1797,7 @@ Pokedex_PrevSearchMonType: ; 40f65 ld hl, wDexSearchMonType1 ld a, [hl] - cp $1 + cp 1 jr z, .wrap_around dec [hl] jr .done @@ -1808,7 +1811,7 @@ Pokedex_PrevSearchMonType: ; 40f65 jr .done .wrap_around - ld [hl], $11 + ld [hl], NUM_TYPES - 1 .done scf @@ -1821,18 +1824,18 @@ Pokedex_NextSearchMonType: ; 40f84 ld hl, wDexSearchMonType1 ld a, [hl] - cp $11 + cp NUM_TYPES - 1 jr nc, .type1_wrap_around inc [hl] jr .done .type1_wrap_around - ld [hl], $1 + ld [hl], 1 jr .done .type2 ld hl, wDexSearchMonType2 ld a, [hl] - cp $11 + cp NUM_TYPES - 1 jr nc, .type2_wrap_around inc [hl] jr .done @@ -1864,7 +1867,7 @@ Pokedex_PlaceTypeString: ; 40fcd (10:4fcd) push hl ld e, a ld d, 0 - ld hl, .TypeStrings + ld hl, PokedexTypeSearchStrings rept 9 add hl, de endr @@ -1874,25 +1877,7 @@ endr call PlaceString ret -.TypeStrings: ; 40fe4 - db " ---- @" - db " NORMAL @" - db " FIRE @" - db " WATER @" - db " GRASS @" - db "ELECTRIC@" - db " ICE @" - db "FIGHTING@" - db " POISON @" - db " GROUND @" - db " FLYING @" - db "PSYCHIC @" - db " BUG @" - db " ROCK @" - db " GHOST @" - db " DRAGON @" - db " DARK @" - db " STEEL @" +INCLUDE "data/types/search_strings.asm" Pokedex_SearchForMons: ; 41086 ld a, [wDexSearchMonType2] @@ -1907,7 +1892,7 @@ Pokedex_SearchForMons: ; 41086 dec a ld e, a ld d, 0 - ld hl, .TypeConversionTable + ld hl, PokedexTypeSearchConversionTable add hl, de ld a, [hl] ld [wDexConvertedMonType], a @@ -1969,24 +1954,7 @@ Pokedex_SearchForMons: ; 41086 .done ret -.TypeConversionTable: ; 410f6 - db NORMAL - db FIRE - db WATER - db GRASS - db ELECTRIC - db ICE - db FIGHTING - db POISON - db GROUND - db FLYING - db PSYCHIC - db BUG - db ROCK - db GHOST - db DRAGON - db DARK - db STEEL +INCLUDE "data/types/search_types.asm" Pokedex_DisplayTypeNotFoundMessage: ; 41107 xor a @@ -2026,60 +1994,60 @@ Pokedex_PutOldModeCursorOAM: ; 41157 (10:5157) ret .CursorOAM: ; 41167 - db $18, $47, $30, $07 - db $10, $47, $31, $07 - db $10, $4f, $32, $07 - db $10, $57, $32, $07 - db $10, $5f, $32, $07 - db $10, $67, $33, $07 - db $10, $7e, $33, $27 - db $10, $86, $32, $27 - db $10, $8e, $32, $27 - db $10, $96, $32, $27 - db $10, $9e, $31, $27 - db $18, $9e, $30, $27 - db $20, $47, $30, $47 - db $28, $47, $31, $47 - db $28, $4f, $32, $47 - db $28, $57, $32, $47 - db $28, $5f, $32, $47 - db $28, $67, $33, $47 - db $28, $7e, $33, $67 - db $28, $86, $32, $67 - db $28, $8e, $32, $67 - db $28, $96, $32, $67 - db $28, $9e, $31, $67 - db $20, $9e, $30, $67 - db $ff + dsprite 3, 0, 9, -1, $30, 7 + dsprite 2, 0, 9, -1, $31, 7 + dsprite 2, 0, 10, -1, $32, 7 + dsprite 2, 0, 11, -1, $32, 7 + dsprite 2, 0, 12, -1, $32, 7 + dsprite 2, 0, 13, -1, $33, 7 + dsprite 2, 0, 16, -2, $33, 7 | X_FLIP + dsprite 2, 0, 17, -2, $32, 7 | X_FLIP + dsprite 2, 0, 18, -2, $32, 7 | X_FLIP + dsprite 2, 0, 19, -2, $32, 7 | X_FLIP + dsprite 2, 0, 20, -2, $31, 7 | X_FLIP + dsprite 3, 0, 20, -2, $30, 7 | X_FLIP + dsprite 4, 0, 9, -1, $30, 7 | Y_FLIP + dsprite 5, 0, 9, -1, $31, 7 | Y_FLIP + dsprite 5, 0, 10, -1, $32, 7 | Y_FLIP + dsprite 5, 0, 11, -1, $32, 7 | Y_FLIP + dsprite 5, 0, 12, -1, $32, 7 | Y_FLIP + dsprite 5, 0, 13, -1, $33, 7 | Y_FLIP + dsprite 5, 0, 16, -2, $33, 7 | X_FLIP | Y_FLIP + dsprite 5, 0, 17, -2, $32, 7 | X_FLIP | Y_FLIP + dsprite 5, 0, 18, -2, $32, 7 | X_FLIP | Y_FLIP + dsprite 5, 0, 19, -2, $32, 7 | X_FLIP | Y_FLIP + dsprite 5, 0, 20, -2, $31, 7 | X_FLIP | Y_FLIP + dsprite 4, 0, 20, -2, $30, 7 | X_FLIP | Y_FLIP + db -1 .CursorAtTopOAM: ; 411c8 ; OAM data for when the cursor is at the top of the list. The tiles at the top ; are cut off so they don't show up outside the list area. - db $18, $47, $30, $07 - db $10, $47, $34, $07 - db $10, $4f, $35, $07 - db $10, $57, $35, $07 - db $10, $5f, $35, $07 - db $10, $67, $36, $07 - db $10, $7e, $36, $27 - db $10, $86, $35, $27 - db $10, $8e, $35, $27 - db $10, $96, $35, $27 - db $10, $9e, $34, $27 - db $18, $9e, $30, $27 - db $20, $47, $30, $47 - db $28, $47, $31, $47 - db $28, $4f, $32, $47 - db $28, $57, $32, $47 - db $28, $5f, $32, $47 - db $28, $67, $33, $47 - db $28, $7e, $33, $67 - db $28, $86, $32, $67 - db $28, $8e, $32, $67 - db $28, $96, $32, $67 - db $28, $9e, $31, $67 - db $20, $9e, $30, $67 - db $ff + dsprite 3, 0, 9, -1, $30, 7 + dsprite 2, 0, 9, -1, $34, 7 + dsprite 2, 0, 10, -1, $35, 7 + dsprite 2, 0, 11, -1, $35, 7 + dsprite 2, 0, 12, -1, $35, 7 + dsprite 2, 0, 13, -1, $36, 7 + dsprite 2, 0, 16, -2, $36, 7 | X_FLIP + dsprite 2, 0, 17, -2, $35, 7 | X_FLIP + dsprite 2, 0, 18, -2, $35, 7 | X_FLIP + dsprite 2, 0, 19, -2, $35, 7 | X_FLIP + dsprite 2, 0, 20, -2, $34, 7 | X_FLIP + dsprite 3, 0, 20, -2, $30, 7 | X_FLIP + dsprite 4, 0, 9, -1, $30, 7 | Y_FLIP + dsprite 5, 0, 9, -1, $31, 7 | Y_FLIP + dsprite 5, 0, 10, -1, $32, 7 | Y_FLIP + dsprite 5, 0, 11, -1, $32, 7 | Y_FLIP + dsprite 5, 0, 12, -1, $32, 7 | Y_FLIP + dsprite 5, 0, 13, -1, $33, 7 | Y_FLIP + dsprite 5, 0, 16, -2, $33, 7 | X_FLIP | Y_FLIP + dsprite 5, 0, 17, -2, $32, 7 | X_FLIP | Y_FLIP + dsprite 5, 0, 18, -2, $32, 7 | X_FLIP | Y_FLIP + dsprite 5, 0, 19, -2, $32, 7 | X_FLIP | Y_FLIP + dsprite 5, 0, 20, -2, $31, 7 | X_FLIP | Y_FLIP + dsprite 4, 0, 20, -2, $30, 7 | X_FLIP | Y_FLIP + db -1 Pokedex_PutNewModeABCModeCursorOAM: ; 41229 (10:5229) ld hl, .CursorOAM @@ -2087,27 +2055,27 @@ Pokedex_PutNewModeABCModeCursorOAM: ; 41229 (10:5229) ret .CursorOAM: ; 41230 - db $1b, $47, $30, $07 - db $13, $47, $31, $07 - db $13, $4f, $32, $07 - db $13, $57, $32, $07 - db $13, $5f, $33, $07 - db $13, $80, $33, $27 - db $13, $88, $32, $27 - db $13, $90, $32, $27 - db $13, $98, $31, $27 - db $1b, $98, $30, $27 - db $23, $47, $30, $47 - db $2b, $47, $31, $47 - db $2b, $4f, $32, $47 - db $2b, $57, $32, $47 - db $2b, $5f, $33, $47 - db $2b, $80, $33, $67 - db $2b, $88, $32, $67 - db $2b, $90, $32, $67 - db $2b, $98, $31, $67 - db $23, $98, $30, $67 - db $ff + dsprite 3, 3, 9, -1, $30, 7 + dsprite 2, 3, 9, -1, $31, 7 + dsprite 2, 3, 10, -1, $32, 7 + dsprite 2, 3, 11, -1, $32, 7 + dsprite 2, 3, 12, -1, $33, 7 + dsprite 2, 3, 16, 0, $33, 7 | X_FLIP + dsprite 2, 3, 17, 0, $32, 7 | X_FLIP + dsprite 2, 3, 18, 0, $32, 7 | X_FLIP + dsprite 2, 3, 19, 0, $31, 7 | X_FLIP + dsprite 3, 3, 19, 0, $30, 7 | X_FLIP + dsprite 4, 3, 9, -1, $30, 7 | Y_FLIP + dsprite 5, 3, 9, -1, $31, 7 | Y_FLIP + dsprite 5, 3, 10, -1, $32, 7 | Y_FLIP + dsprite 5, 3, 11, -1, $32, 7 | Y_FLIP + dsprite 5, 3, 12, -1, $33, 7 | Y_FLIP + dsprite 5, 3, 16, 0, $33, 7 | X_FLIP | Y_FLIP + dsprite 5, 3, 17, 0, $32, 7 | X_FLIP | Y_FLIP + dsprite 5, 3, 18, 0, $32, 7 | X_FLIP | Y_FLIP + dsprite 5, 3, 19, 0, $31, 7 | X_FLIP | Y_FLIP + dsprite 4, 3, 19, 0, $30, 7 | X_FLIP | Y_FLIP + db -1 Pokedex_UpdateSearchResultsCursorOAM: ; 41281 (10:5281) ld a, [wCurrentDexMode] @@ -2118,52 +2086,52 @@ Pokedex_UpdateSearchResultsCursorOAM: ; 41281 (10:5281) ret .CursorOAM: ; 41290 - db $1b, $47, $30, $07 - db $13, $47, $31, $07 - db $13, $4f, $32, $07 - db $13, $57, $32, $07 - db $13, $5f, $32, $07 - db $13, $67, $33, $07 - db $13, $7e, $33, $27 - db $13, $86, $32, $27 - db $13, $8e, $32, $27 - db $13, $96, $32, $27 - db $13, $9e, $31, $27 - db $1b, $9e, $30, $27 - db $23, $47, $30, $47 - db $2b, $47, $31, $47 - db $2b, $4f, $32, $47 - db $2b, $57, $32, $47 - db $2b, $5f, $32, $47 - db $2b, $67, $33, $47 - db $2b, $7e, $33, $67 - db $2b, $86, $32, $67 - db $2b, $8e, $32, $67 - db $2b, $96, $32, $67 - db $2b, $9e, $31, $67 - db $23, $9e, $30, $67 - db $ff + dsprite 3, 3, 9, -1, $30, 7 + dsprite 2, 3, 9, -1, $31, 7 + dsprite 2, 3, 10, -1, $32, 7 + dsprite 2, 3, 11, -1, $32, 7 + dsprite 2, 3, 12, -1, $32, 7 + dsprite 2, 3, 13, -1, $33, 7 + dsprite 2, 3, 16, -2, $33, 7 | X_FLIP + dsprite 2, 3, 17, -2, $32, 7 | X_FLIP + dsprite 2, 3, 18, -2, $32, 7 | X_FLIP + dsprite 2, 3, 19, -2, $32, 7 | X_FLIP + dsprite 2, 3, 20, -2, $31, 7 | X_FLIP + dsprite 3, 3, 20, -2, $30, 7 | X_FLIP + dsprite 4, 3, 9, -1, $30, 7 | Y_FLIP + dsprite 5, 3, 9, -1, $31, 7 | Y_FLIP + dsprite 5, 3, 10, -1, $32, 7 | Y_FLIP + dsprite 5, 3, 11, -1, $32, 7 | Y_FLIP + dsprite 5, 3, 12, -1, $32, 7 | Y_FLIP + dsprite 5, 3, 13, -1, $33, 7 | Y_FLIP + dsprite 5, 3, 16, -2, $33, 7 | X_FLIP | Y_FLIP + dsprite 5, 3, 17, -2, $32, 7 | X_FLIP | Y_FLIP + dsprite 5, 3, 18, -2, $32, 7 | X_FLIP | Y_FLIP + dsprite 5, 3, 19, -2, $32, 7 | X_FLIP | Y_FLIP + dsprite 5, 3, 20, -2, $31, 7 | X_FLIP | Y_FLIP + dsprite 4, 3, 20, -2, $30, 7 | X_FLIP | Y_FLIP + db -1 Pokedex_LoadCursorOAM: ; 412f1 (10:52f1) - ld de, Sprites + ld de, Sprite01 .loop ld a, [hl] - cp $ff + cp -1 ret z ld a, [wDexListingCursor] and $7 swap a - add [hl] + add [hl] ; y inc hl ld [de], a inc de - ld a, [hli] + ld a, [hli] ; x ld [de], a inc de - ld a, [hli] + ld a, [hli] ; tile id ld [de], a inc de - ld a, [hli] + ld a, [hli] ; attributes ld [de], a inc de jr .loop @@ -2348,7 +2316,7 @@ Pokedex_BlackOutBG: ; 41401 (10:5401) ; Make BG palettes black so that the BG becomes all black. ld a, [rSVBK] push af - ld a, $5 + ld a, BANK(wBGPals1) ld [rSVBK], a ld hl, wBGPals1 ld bc, 8 palettes @@ -2399,7 +2367,7 @@ Pokedex_LoadSelectedMonTiles: ; 4143b ld [CurPartySpecies], a call GetBaseData ld de, vTiles2 - predef GetMonFrontpic + predef Predef_GetMonFrontpic ret .QuestionMark: @@ -2422,7 +2390,7 @@ Pokedex_LoadCurrentFootprint: ; 41478 (10:5478) Pokedex_LoadAnyFootprint: ; 4147b ld a, [wd265] dec a - and ($ff ^ $07) ; $f8 ; $1f << 3 + and %11111000 srl a srl a srl a @@ -2430,7 +2398,7 @@ Pokedex_LoadAnyFootprint: ; 4147b ld d, a ld a, [wd265] dec a - and 7 + and %111 swap a ; * $10 ld l, a ld h, 0 @@ -2552,7 +2520,7 @@ Pokedex_LoadUnownFrontpicTiles: ; 41a58 (10:5a58) ld [CurPartySpecies], a call GetBaseData ld de, vTiles2 tile $00 - predef GetMonFrontpic + predef Predef_GetMonFrontpic pop af ld [UnownLetter], a ret @@ -2582,7 +2550,7 @@ _NewPokedexEntry: ; 41a7f call WaitBGMap call GetBaseData ld de, vTiles2 - predef GetMonFrontpic + predef Predef_GetMonFrontpic ld a, SCGB_POKEDEX call Pokedex_GetSGBLayout ld a, [CurPartySpecies] |