ref: 418c84dc0c0808559e1ad8605f9346369861588b
parent: e033ea3a37f594d04b7132ad54765a8fee312ae5
author: YamaArashi <shadow962@live.com>
date: Sat Jan 9 14:03:38 EST 2016
pokedex 2
--- a/engine/pokedex.asm
+++ b/engine/pokedex.asm
@@ -71,7 +71,7 @@
xor a
ld [wJumptableIndex], a
- ld [wcf64], a
+ ld [wDexEntryPrevJumptableIndex], a
ld [wcf65], a
ld [wcf66], a
@@ -80,7 +80,7 @@
ld a, [wLastDexMode]
ld [wCurrentDexMode], a
- call Pokedex_ChangeMode
+ call Pokedex_OrderMonsByMode
call Pokedex_InitCursorPosition
call Pokedex_GetLandmark
callba Function1de247
@@ -214,7 +214,7 @@
call Pokedex_PrintListing
call Pokedex_SetBGMapMode_3ifDMG_4ifCGB
call Pokedex_ResetBGMapMode
- call Pokedex_DrawMainScreenLeftSideAndBottom
+ call Pokedex_DrawMainScreenBG
ld a, $5
ld [hSCX], a
@@ -276,7 +276,7 @@
ld a, $2
ld [wJumptableIndex], a
ld a, $0
- ld [wcf64], a
+ ld [wDexEntryPrevJumptableIndex], a
ret
.select
@@ -338,22 +338,22 @@
ld hl, hJoyPressed
ld a, [hl]
and B_BUTTON
- jr nz, .b
+ jr nz, .return_to_prev_screen
ld a, [hl]
and A_BUTTON
- jr nz, .a
+ jr nz, .do_menu_action
call Pokedex_NextOrPreviousDexEntry
ret nc
call Pokedex_IncrementDexPointer
ret
-.a
+.do_menu_action
ld a, [wDexArrowCursorPosIndex]
- ld hl, DexEntryPage_Jumptable
+ ld hl, DexEntryScreen_MenuActionJumptable
call Pokedex_LoadPointer
jp [hl]
-.b
+.return_to_prev_screen
ld a, [LastVolume]
and a
jr z, .max_volume
@@ -362,7 +362,7 @@
.max_volume
call MaxVolume
- ld a, [wcf64]
+ ld a, [wDexEntryPrevJumptableIndex]
ld [wJumptableIndex], a
ret
@@ -410,7 +410,7 @@
dwcoord 15, 17
-DexEntryPage_Jumptable: ; 402f2
+DexEntryScreen_MenuActionJumptable: ; 402f2
dw Pokedex_Page
dw .Area
dw .Cry
@@ -438,7 +438,7 @@
ld a, $5
ld [hSCX], a
call DelayFrame
- call Function4038d
+ call Pokedex_RedisplayDexEntry
call Pokedex_LoadSelectedMonTiles
call WaitBGMap
call Pokedex_GetSelectedMon
@@ -457,12 +457,12 @@
ret
.Print: ; 4034f
- call Function41415
+ call Pokedex_ApplyPrintPals
xor a
ld [hSCX], a
ld a, [wcf65]
push af
- ld a, [wcf64]
+ ld a, [wDexEntryPrevJumptableIndex]
push af
ld a, [wJumptableIndex]
push af
@@ -470,21 +470,21 @@
pop af
ld [wJumptableIndex], a
pop af
- ld [wcf64], a
+ ld [wDexEntryPrevJumptableIndex], a
pop af
ld [wcf65], a
call ClearBGPalettes
call DisableLCD
call Pokedex_LoadInvertedFont
- call Function4038d
+ call Pokedex_RedisplayDexEntry
call EnableLCD
call WaitBGMap
ld a, $5
ld [hSCX], a
- call Function41427
+ call Pokedex_ApplyUsualPals
ret
-Function4038d: ; 4038d
+Pokedex_RedisplayDexEntry: ; 4038d
call Pokedex_DrawDexEntryScreenBG
call Pokedex_GetSelectedMon
callba DisplayDexEntry
@@ -499,7 +499,7 @@
call Pokedex_InitArrowCursor
ld a, [wCurrentDexMode]
ld [wDexArrowCursorPosIndex], a
- call Function40e5b
+ call Pokedex_DisplayModeDescription
call WaitBGMap
ld a, $10
call Pokedex_GetSGBLayout
@@ -509,43 +509,42 @@
Pokedex_UpdateOptionScreen: ; 403be (10:43be)
ld a, [wUnlockedUnownMode]
and a
- jr nz, .asm_403c9
- ld de, Unknown_403f3
- jr .asm_403cc
-
-.asm_403c9
- ld de, Unknown_403fb
-.asm_403cc
+ jr nz, .okay
+ ld de, .NoUnownModeArrowCursorData
+ jr .okay2
+.okay
+ ld de, .ArrowCursorData
+.okay2
call Pokedex_MoveArrowCursor
- call c, Function40e5b
- ld hl, hJoyPressed ; $ffa7
+ call c, Pokedex_DisplayModeDescription
+ ld hl, hJoyPressed
ld a, [hl]
- and $6
- jr nz, .asm_403ea
+ and SELECT | B_BUTTON
+ jr nz, .return_to_main_screen
ld a, [hl]
- and $1
- jr nz, .asm_403e0
+ and A_BUTTON
+ jr nz, .do_menu_action
ret
-.asm_403e0
+.do_menu_action
ld a, [wDexArrowCursorPosIndex]
- ld hl, Jumptable_40405
+ ld hl, .MenuActionJumptable
call Pokedex_LoadPointer
jp [hl]
-.asm_403ea
+.return_to_main_screen
call Pokedex_BlackOutBG
ld a, $0
ld [wJumptableIndex], a
ret
-Unknown_403f3: ; 403f3
+.NoUnownModeArrowCursorData: ; 403f3
db D_UP | D_DOWN, 3
dwcoord 2, 4
dwcoord 2, 6
dwcoord 2, 8
-Unknown_403fb: ; 403fb
+.ArrowCursorData: ; 403fb
db D_UP | D_DOWN, 4
dwcoord 2, 4
dwcoord 2, 6
@@ -552,42 +551,44 @@
dwcoord 2, 8
dwcoord 2, 10
-Jumptable_40405: ; 40405 (10:4405)
- dw Function4040d
- dw Function40411
- dw Function40415
- dw Function4043a
+.MenuActionJumptable: ; 40405 (10:4405)
+ dw .MenuAction_NewMode
+ dw .MenuAction_OldMode
+ dw .MenuAction_ABCMode
+ dw .MenuAction_UnownMode
-Function4040d: ; 4040d (10:440d)
+.MenuAction_NewMode: ; 4040d (10:440d)
ld b, DEXMODE_NEW
- jr Function40417
+ jr .ChangeMode
-Function40411: ; 40411 (10:4411)
+.MenuAction_OldMode: ; 40411 (10:4411)
ld b, DEXMODE_OLD
- jr Function40417
+ jr .ChangeMode
-Function40415: ; 40415 (10:4415)
+.MenuAction_ABCMode: ; 40415 (10:4415)
ld b, DEXMODE_ABC
-Function40417: ; 40417 (10:4417)
+
+.ChangeMode: ; 40417 (10:4417)
ld a, [wCurrentDexMode]
cp b
- jr z, .asm_40431
+ jr z, .skip_changing_mode ; Skip if new mode is same as current.
+
ld a, b
ld [wCurrentDexMode], a
- call Pokedex_ChangeMode
- call Function40f08
+ call Pokedex_OrderMonsByMode
+ call Pokedex_DisplayChangingModesMessage
xor a
ld [wDexListingScrollOffset], a
ld [wDexListingCursor], a
call Pokedex_InitCursorPosition
-.asm_40431
+.skip_changing_mode
call Pokedex_BlackOutBG
ld a, $0
ld [wJumptableIndex], a
ret
-Function4043a: ; 4043a (10:443a)
+.MenuAction_UnownMode: ; 4043a (10:443a)
call Pokedex_BlackOutBG
ld a, $b
ld [wJumptableIndex], a
@@ -621,19 +622,19 @@
ld hl, hJoyPressed
ld a, [hl]
and START | B_BUTTON
- jr nz, .asm_40495
+ jr nz, .cancel
ld a, [hl]
and A_BUTTON
- jr nz, .asm_4048b
+ jr nz, .do_menu_action
ret
-.asm_4048b
+.do_menu_action
ld a, [wDexArrowCursorPosIndex]
ld hl, .MenuActionJumptable
call Pokedex_LoadPointer
jp [hl]
-.asm_40495
+.cancel
call Pokedex_BlackOutBG
ld a, $0
ld [wJumptableIndex], a
@@ -663,8 +664,10 @@
ld a, [wDexSearchResultCount]
and a
jr nz, .show_search_results
- call Pokedex_ChangeMode
- call Function41107
+
+; No mon with matching types was found.
+ call Pokedex_OrderMonsByMode
+ call Pokedex_DisplayTypeNotFoundMessage
xor a
ld [hBGMapMode], a
call Pokedex_DrawSearchScreenBG
@@ -731,13 +734,13 @@
ret
Pokedex_UpdateSearchResultsScreen: ; 40562 (10:4562)
- ld hl, hJoyPressed ; $ffa7
+ ld hl, hJoyPressed
ld a, [hl]
and B_BUTTON
- jr nz, .asm_40595
+ jr nz, .return_to_search_screen
ld a, [hl]
and A_BUTTON
- jr nz, .asm_40583
+ jr nz, .go_to_dex_entry
call Pokedex_ListingHandleDPadInput
ret nc
call Pokedex_UpdateSearchResultsCursorOAM
@@ -748,7 +751,7 @@
call Pokedex_ResetBGMapMode
ret
-.asm_40583
+.go_to_dex_entry
call Pokedex_GetSelectedMon
call Pokedex_CheckSeen
ret z
@@ -755,10 +758,10 @@
ld a, $2
ld [wJumptableIndex], a
ld a, $9
- ld [wcf64], a
+ ld [wDexEntryPrevJumptableIndex], a
ret
-.asm_40595
+.return_to_search_screen
ld a, [wc7e0]
ld [wDexListingScrollOffset], a
ld a, [wc7e1]
@@ -767,7 +770,7 @@
ld [wLastDexEntry], a
call Pokedex_BlackOutBG
call ClearSprites
- call Pokedex_ChangeMode
+ call Pokedex_OrderMonsByMode
ld a, $5
ld [wJumptableIndex], a
xor a
@@ -795,7 +798,7 @@
ld a, [hl]
and A_BUTTON | B_BUTTON
jr nz, .a_b
- call Function40610
+ call Pokedex_UnownModeHandleDPadInput
ret
.a_b
@@ -817,7 +820,7 @@
.done
ret
-Function40610: ; 40610 (10:4610)
+Pokedex_UnownModeHandleDPadInput: ; 40610 (10:4610)
ld hl, hJoyLast
ld a, [hl]
and D_RIGHT
@@ -1047,7 +1050,7 @@
ret
-Pokedex_DrawMainScreenLeftSideAndBottom: ; 4074c (10:474c)
+Pokedex_DrawMainScreenBG: ; 4074c (10:474c)
; Draws the left sidebar and the bottom bar on the main screen.
hlcoord 0, 17
ld de, String_START_SEARCH
@@ -1593,7 +1596,7 @@
-Pokedex_ChangeMode: ; 40bdc
+Pokedex_OrderMonsByMode: ; 40bdc
ld hl, wPokedexDataStart
ld bc, wPokedexMetadata - wPokedexDataStart
xor a
@@ -1694,7 +1697,7 @@
NewPokedexOrder: ; 0x40d60
INCLUDE "data/pokedex/order_new.asm"
-Function40e5b: ; 40e5b
+Pokedex_DisplayModeDescription: ; 40e5b
xor a
ld [hBGMapMode], a
hlcoord 0, 12
@@ -1701,7 +1704,7 @@
lb bc, 4, SCREEN_WIDTH - 2
call Pokedex_PlaceBorder
ld a, [wDexArrowCursorPosIndex]
- ld hl, Unknown_40e7d
+ ld hl, .Modes
call Pokedex_LoadPointer
ld e, l
ld d, h
@@ -1711,7 +1714,7 @@
ld [hBGMapMode], a
ret
-Unknown_40e7d: ; 40e7d
+.Modes: ; 40e7d
dw .NewMode
dw .OldMode
dw .ABCMode
@@ -1733,7 +1736,7 @@
db "UNOWN are listed"
next "in catching order.@"
-Function40f08: ; 40f08 (10:4f08)
+Pokedex_DisplayChangingModesMessage: ; 40f08 (10:4f08)
xor a
ld [hBGMapMode], a
hlcoord 0, 12
@@ -1759,7 +1762,7 @@
Pokedex_UpdateSearchMonType: ; 40f4f (10:4f4f)
ld a, [wDexArrowCursorPosIndex]
cp 2
- jr nc, .NoChange
+ jr nc, .no_change
ld hl, hJoyLast
ld a, [hl]
and D_LEFT
@@ -1767,7 +1770,7 @@
ld a, [hl]
and D_RIGHT
jr nz, Pokedex_NextSearchMonType
-.NoChange
+.no_change
and a
ret
@@ -1774,23 +1777,27 @@
Pokedex_PrevSearchMonType: ; 40f65
ld a, [wDexArrowCursorPosIndex]
and a
- jr nz, .asm_40f76
+ jr nz, .type2
+
ld hl, wDexSearchMonType1
ld a, [hl]
cp $1
- jr z, .asm_40f80
+ jr z, .wrap_around
dec [hl]
- jr .asm_40f82
-.asm_40f76
+ jr .done
+
+.type2
ld hl, wDexSearchMonType2
ld a, [hl]
and a
- jr z, .asm_40f80
+ jr z, .wrap_around
dec [hl]
- jr .asm_40f82
-.asm_40f80
+ jr .done
+
+.wrap_around
ld [hl], $11
-.asm_40f82
+
+.done
scf
ret
@@ -1797,26 +1804,29 @@
Pokedex_NextSearchMonType: ; 40f84
ld a, [wDexArrowCursorPosIndex]
and a
- jr nz, .asm_40f99
+ jr nz, .type2
+
ld hl, wDexSearchMonType1
ld a, [hl]
cp $11
- jr nc, .asm_40f95
+ jr nc, .type1_wrap_around
inc [hl]
- jr .asm_40fa6
-.asm_40f95
+ jr .done
+.type1_wrap_around
ld [hl], $1
- jr .asm_40fa6
-.asm_40f99
+ jr .done
+
+.type2
ld hl, wDexSearchMonType2
ld a, [hl]
cp $11
- jr nc, .asm_40fa4
+ jr nc, .type2_wrap_around
inc [hl]
- jr .asm_40fa6
-.asm_40fa4
- ld [hl], $0
-.asm_40fa6
+ jr .done
+.type2_wrap_around
+ ld [hl], 0
+
+.done
scf
ret
@@ -1965,13 +1975,13 @@
db DARK
db STEEL
-Function41107: ; 41107
+Pokedex_DisplayTypeNotFoundMessage: ; 41107
xor a
ld [hBGMapMode], a
hlcoord 0, 12
ld bc, $0412
call Pokedex_PlaceBorder
- ld de, String_41126
+ ld de, .TypeNotFound
hlcoord 1, 14
call PlaceString
ld a, $1
@@ -1980,7 +1990,7 @@
call DelayFrames
ret
-String_41126: ; 41126
+.TypeNotFound: ; 41126
db "The specified type"
next "was not found.@"
@@ -2213,48 +2223,48 @@
ld a, [hl]
and D_LEFT | D_UP
and b
- jr nz, .MoveCursorLeftOrUp
+ jr nz, .move_left_or_up
ld a, [hl]
and D_RIGHT | D_DOWN
and b
- jr nz, .MoveCursorRightOrDown
+ jr nz, .move_right_or_down
ld a, [hl]
and SELECT
and b
- jr nz, .Select
+ jr nz, .select
call Pokedex_ArrowCursorDelay
- jr c, .NoAction
+ jr c, .no_action
ld hl, hJoyLast
ld a, [hl]
and D_LEFT | D_UP
and b
- jr nz, .MoveCursorLeftOrUp
+ jr nz, .move_left_or_up
ld a, [hl]
and D_RIGHT | D_DOWN
and b
- jr nz, .MoveCursorRightOrDown
- jr .NoAction
+ jr nz, .move_right_or_down
+ jr .no_action
-.MoveCursorLeftOrUp
+.move_left_or_up
ld a, [wDexArrowCursorPosIndex]
and a
- jr z, .NoAction
+ jr z, .no_action
call Pokedex_GetArrowCursorPos
ld [hl], " "
ld hl, wDexArrowCursorPosIndex
dec [hl]
- jr .UpdateCursorPosition
+ jr .update_cursor_pos
-.MoveCursorRightOrDown
+.move_right_or_down
ld a, [wDexArrowCursorPosIndex]
cp c
- jr nc, .NoAction
+ jr nc, .no_action
call Pokedex_GetArrowCursorPos
ld [hl], " "
ld hl, wDexArrowCursorPosIndex
inc [hl]
-.UpdateCursorPosition
+.update_cursor_pos
call Pokedex_GetArrowCursorPos
ld [hl], "▶"
ld a, 12
@@ -2264,21 +2274,21 @@
scf
ret
-.NoAction
+.no_action
and a
ret
-.Select
+.select
call Pokedex_GetArrowCursorPos
ld [hl], " "
ld a, [wDexArrowCursorPosIndex]
cp c
- jr c, .Update
+ jr c, .update
ld a, -1
-.Update
+.update
inc a
ld [wDexArrowCursorPosIndex], a
- jr .UpdateCursorPosition
+ jr .update_cursor_pos
Pokedex_GetArrowCursorPos: ; 413d4 (10:53d4)
ld a, [wDexArrowCursorPosIndex]
@@ -2334,7 +2344,7 @@
pop af
ld [rSVBK], a
-Function41415: ; 41415
+Pokedex_ApplyPrintPals: ; 41415
ld a, $ff
call DmgToCgbBGPals
ld a, $ff
@@ -2346,7 +2356,8 @@
ld b, a
call GetSGBLayout
-Function41427: ; 41427
+Pokedex_ApplyUsualPals: ; 41427
+; This applies the palettes used for most Pokédex screens.
ld a, $e4
call DmgToCgbBGPals
ld a, $e0
--- a/misc/mobile_46.asm
+++ b/misc/mobile_46.asm
@@ -5864,7 +5864,7 @@
ld [wcd30], a
ld a, $2
ld [wc7d4], a
- callba Pokedex_ChangeMode
+ callba Pokedex_OrderMonsByMode
ret
; 11ad6e
--- a/wram.asm
+++ b/wram.asm
@@ -1348,6 +1348,7 @@
wHoldingUnownPuzzlePiece::
wCardFlipCursorY::
wCreditsBorderFrame::
+wDexEntryPrevJumptableIndex::
wcf64:: ds 1
IF !DEF(CRYSTAL11)
wPokedexStatus::