summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorElectroDeoxys <ElectroDeoxys@gmail.com>2019-09-18 07:45:12 +0100
committerElectroDeoxys <ElectroDeoxys@gmail.com>2019-09-18 07:45:12 +0100
commit64f6e5a34a56c597f6ba846fd17281092f18aef8 (patch)
tree1dc1c39ea830fbd143cab7f21c990baa94a30769 /src
parentfbeee52c8f7e0679b440bc9cb35d335a79f9cfd5 (diff)
parent061a4bdc5a0ece89a5fad6279529d71926074084 (diff)
Merge branch 'master' of https://github.com/pret/poketcg
Diffstat (limited to 'src')
-rw-r--r--src/engine/bank02.asm160
-rw-r--r--src/engine/bank06.asm109
-rw-r--r--src/macros/data.asm11
-rw-r--r--src/wram.asm4
4 files changed, 174 insertions, 110 deletions
diff --git a/src/engine/bank02.asm b/src/engine/bank02.asm
index be38fad..51127a2 100644
--- a/src/engine/bank02.asm
+++ b/src/engine/bank02.asm
@@ -41,7 +41,7 @@ DuelCheckMenu_InPlayArea: ; 8039 (2:4039)
; opens the Glossary submenu
DuelCheckMenu_Glossary: ; 8042 (2:4042)
- farcall Func_184c8
+ farcall OpenGlossaryScreen
ret
; opens the Your Play Area submenu
@@ -1442,7 +1442,7 @@ Func_8764: ; 8764 (2:4764)
xor a
ld [wPrizeCardCursorPosition], a
- ld de, Func_88c2
+ ld de, Func_8764_TransitionTable
ld hl, wce53
ld [hl], e
inc hl
@@ -1458,7 +1458,7 @@ Func_8764: ; 8764 (2:4764)
.asm_87e7
cp $ff
jr nz, .asm_87f0
- call Func_8aa1
+ call ZeroObjectPositionsWithCopyToggleOn
jr .swap
.asm_87f0
ld hl, .asm_87f8
@@ -1590,7 +1590,7 @@ Func_8883: ; 8883 (2:4883)
xor a
ld [wPrizeCardCursorPosition], a
- ld de, $48fa
+ ld de, Func_8883_TransitionTable
ld hl, wce53
ld [hl], e
inc hl
@@ -1601,8 +1601,25 @@ Func_8883: ; 8883 (2:4883)
ld [$ce56], a
jp Func_8764.loop_2
-Func_88c2: ; 88c2 (2:48c2)
- INCROM $88c2, $8932
+Func_8764_TransitionTable: ; 88c2 (2:48c2)
+ cursor_transition $08, $28, $00, $04, $02, $01, $07
+ cursor_transition $30, $28, $20, $05, $03, $07, $00
+ cursor_transition $08, $38, $00, $00, $04, $03, $07
+ cursor_transition $30, $38, $20, $01, $05, $07, $02
+ cursor_transition $08, $48, $00, $02, $00, $05, $07
+ cursor_transition $30, $48, $20, $03, $01, $07, $04
+ cursor_transition $78, $50, $00, $07, $07, $00, $01
+ cursor_transition $78, $28, $00, $07, $07, $00, $01
+
+Func_8883_TransitionTable:
+ cursor_transition $a0, $60, $20, $02, $04, $07, $01
+ cursor_transition $78, $60, $00, $03, $05, $00, $07
+ cursor_transition $a0, $50, $20, $04, $00, $06, $03
+ cursor_transition $78, $50, $00, $05, $01, $02, $06
+ cursor_transition $a0, $40, $20, $00, $02, $06, $05
+ cursor_transition $78, $40, $00, $01, $03, $04, $06
+ cursor_transition $08, $38, $00, $07, $07, $05, $04
+ cursor_transition $08, $60, $00, $06, $06, $01, $00
Func_8932: ; 8932 (2:4932)
INCROM $8932, $8992
@@ -1618,6 +1635,7 @@ LoadCursorTile: ; 8992 (2:4992)
db $e0, $c0, $98, $b0, $84, $8c, $83, $82
db $86, $8f, $9d, $be, $f4, $f8, $50, $60
+; similar to OpenInPlayAreaScreen_HandleInput
Func_89ae: ; 89ae (2:49ae)
xor a
ld [wcfe3], a
@@ -1628,7 +1646,7 @@ Func_89ae: ; 89ae (2:49ae)
ld d, [hl]
ld a, [wPrizeCardCursorPosition]
- ld [wce61], a
+ ld [wPrizeCardCursorTemporaryPosition], a
ld l, a
ld h, 7
call HtimesL
@@ -1637,66 +1655,90 @@ Func_89ae: ; 89ae (2:49ae)
ldh a, [hDPadHeld]
or a
- jp z, .asm_8a4f
-
+ jp z, .check_button
inc hl
inc hl
inc hl
+
bit D_UP_F, a
- jr z, .asm_89d5
+ jr z, .else_if_down
+
+ ; up
ld a, [hl]
- jr .asm_89eb
+ jr .process_dpad
-.asm_89d5
+.else_if_down
inc hl
bit D_DOWN_F, a
- jr z, .asm_89dd
+ jr z, .else_if_right
+
+ ; down
ld a, [hl]
- jr .asm_89eb
-.asm_89dd
+ jr .process_dpad
+
+.else_if_right
inc hl
bit D_RIGHT_F, a
- jr z, .asm_89e5
+ jr z, .else_if_left
+
+ ; right
ld a, [hl]
- jr .asm_89eb
-.asm_89e5
+ jr .process_dpad
+
+.else_if_left
inc hl
bit D_LEFT_F, a
- jr z, .asm_8a4f
+ jr z, .check_button
+
+ ; left
ld a, [hl]
-.asm_89eb
+.process_dpad
ld [wPrizeCardCursorPosition], a
- cp $08
- jr nc, .asm_8a46
+ cp $08 ; if a >= 0x8
+ jr nc, .next
ld b, $01
-.asm_89f4
+
+; this loop equals to
+; b = (1 << a)
+.make_bitmask_loop
or a
- jr z, .asm_89fc
+ jr z, .make_bitmask_done
sla b
dec a
- jr .asm_89f4
-.asm_89fc
+ jr .make_bitmask_loop
+
+.make_bitmask_done
+; check if the moved cursor refers to an existing item.
+; it's always true when this function was called from the glossary procedure.
ld a, [wDuelInitialPrizesUpperBitsSet]
and b
- jr nz, .asm_8a46
- ld a, [wce61]
+ jr nz, .next
+
+; when no cards exist at the cursor,
+ ld a, [wPrizeCardCursorTemporaryPosition]
cp $06
jr nz, Func_89ae
+ ; move once more in the direction (recursively) until it reaches an existing item.
+
+; check if one of the dpad, left or right, is pressed.
+; if not, just go back to the start.
ldh a, [hDPadHeld]
- bit 4, a
- jr nz, .asm_8a13
- bit 5, a
+ bit D_RIGHT_F, a
+ jr nz, .left_or_right
+ bit D_LEFT_F, a
jr z, Func_89ae
-.asm_8a13
+
+.left_or_right
ld a, [wDuelInitialPrizes]
cp $05
- jr nc, .asm_8a46
+ jr nc, .next
ld a, [wPrizeCardCursorPosition]
cp $05
jr nz, .asm_8a28
ld a, $03
ld [wPrizeCardCursorPosition], a
jr .asm_8a2d
+
.asm_8a28
ld a, $02
ld [wPrizeCardCursorPosition], a
@@ -1709,50 +1751,53 @@ Func_89ae: ; 89ae (2:49ae)
ld [wPrizeCardCursorPosition], a
.asm_8a3c
ld a, [wPrizeCardCursorPosition]
- ld [wce61], a
+ ld [wPrizeCardCursorTemporaryPosition], a
ld b, $01
- jr .asm_89f4
-.asm_8a46
+ jr .make_bitmask_loop
+
+.next
ld a, $01
ld [wcfe3], a
; reset cursor blink
xor a
ld [wCheckMenuCursorBlinkCounter], a
-
-.asm_8a4f
+.check_button
ldh a, [hKeysPressed]
and A_BUTTON | B_BUTTON
- jr z, .asm_8a6d
+ jr z, .return
+
and A_BUTTON
- jr nz, .asm_8a60
- ld a, $ff ; cancel
+ jr nz, .a_button
+
+ ld a, -1 ; cancel
call PlaySFXConfirmOrCancel
scf
ret
-.asm_8a60
- call Func_8a82
+.a_button
+ call .draw_cursor
ld a, $01
call PlaySFXConfirmOrCancel
ld a, [wPrizeCardCursorPosition]
scf
ret
-.asm_8a6d
+
+.return
ld a, [wcfe3]
or a
- jr z, .asm_8a76
+ jr z, .skip_sfx
call PlaySFX
-.asm_8a76
+.skip_sfx
ld hl, wCheckMenuCursorBlinkCounter
ld a, [hl]
inc [hl]
- and $0f
+ and (1 << 4) - 1
ret nz
bit 4, [hl]
- jr nz, Func_8aa1
+ jr nz, ZeroObjectPositionsWithCopyToggleOn
-Func_8a82 ; 8a82 (2:4a82)
+.draw_cursor
call ZeroObjectPositions
ld hl, wce53
ld e, [hl]
@@ -1775,8 +1820,9 @@ Func_8a82 ; 8a82 (2:4a82)
or a
ret
-Func_8aa1: ; 8aa1 (2:4aa1)
+ZeroObjectPositionsWithCopyToggleOn: ; 8aa1 (2:4aa1)
call ZeroObjectPositions
+
ld a, $01
ld [wVBlankOAMCopyToggle], a
ret
@@ -1786,7 +1832,19 @@ Func_8aaa: ; 8aaa (2:4aaa)
INCROM $8aaa, $8b85
Func_8b85: ; 8b85 (2:4b85)
- INCROM $8b85, $8cd4
+ INCROM $8b85, $8c8e
+
+OpenGlossaryScreen_TransitionTable:
+ cursor_transition $08, $28, $00, $04, $01, $05, $05
+ cursor_transition $08, $38, $00, $00, $02, $06, $06
+ cursor_transition $08, $48, $00, $01, $03, $07, $07
+ cursor_transition $08, $58, $00, $02, $04, $08, $08
+ cursor_transition $08, $68, $00, $03, $00, $09, $09
+ cursor_transition $58, $28, $00, $09, $06, $00, $00
+ cursor_transition $58, $38, $00, $05, $07, $01, $01
+ cursor_transition $58, $48, $00, $06, $08, $02, $02
+ cursor_transition $58, $58, $00, $07, $09, $03, $03
+ cursor_transition $58, $68, $00, $08, $05, $04, $04
Func_8cd4: ; 8cd4 (2:4cd4)
push bc
diff --git a/src/engine/bank06.asm b/src/engine/bank06.asm
index bb9d872..e3ee426 100644
--- a/src/engine/bank06.asm
+++ b/src/engine/bank06.asm
@@ -478,55 +478,48 @@ OpenInPlayAreaScreen_TextTable:
tx PKMNPowerText ; INPLAYAREA_OPP_BENCH_4
tx DoneText ; INPLAYAREA_OPP_BENCH_5
-; cursor x / cursor y / attribute / idx-up / idx-down / idx-right / idx-left
-in_play_area_transition: MACRO
- db \1, \2, \3
- rept 4
- db INPLAYAREA_\4
- shift
- endr
+in_play_area_cursor_transition: MACRO
+ cursor_transition \1, \2, \3, INPLAYAREA_\4, INPLAYAREA_\5, INPLAYAREA_\6, INPLAYAREA_\7
ENDM
; it's related to wInPlayAreaInputTablePointer.
; with this table, the cursor moves into the proper location by the input.
; note that the unit of the position is not a 8x8 tile.
-; idx-[direction] means the index to get when the input is in the direction.
-; its attribute is used for drawing a flipped cursor.
OpenInPlayAreaScreen_TransitionTable1:
- in_play_area_transition $18, $8c, $00, PLAYER_ACTIVE, PLAYER_PLAY_AREA, PLAYER_BENCH_2, PLAYER_BENCH_5
- in_play_area_transition $30, $8c, $00, PLAYER_ACTIVE, PLAYER_PLAY_AREA, PLAYER_BENCH_3, PLAYER_BENCH_1
- in_play_area_transition $48, $8c, $00, PLAYER_ACTIVE, PLAYER_PLAY_AREA, PLAYER_BENCH_4, PLAYER_BENCH_2
- in_play_area_transition $60, $8c, $00, PLAYER_ACTIVE, PLAYER_PLAY_AREA, PLAYER_BENCH_5, PLAYER_BENCH_3
- in_play_area_transition $78, $8c, $00, PLAYER_ACTIVE, PLAYER_PLAY_AREA, PLAYER_BENCH_1, PLAYER_BENCH_4
- in_play_area_transition $30, $6c, $00, OPP_ACTIVE, PLAYER_BENCH_1, PLAYER_DISCARD_PILE, PLAYER_DISCARD_PILE
- in_play_area_transition $78, $80, $00, PLAYER_DISCARD_PILE, PLAYER_BENCH_1, PLAYER_ACTIVE, PLAYER_ACTIVE
- in_play_area_transition $78, $70, $00, OPP_ACTIVE, PLAYER_HAND, PLAYER_ACTIVE, PLAYER_ACTIVE
- in_play_area_transition $78, $34, 1 << OAM_X_FLIP, OPP_BENCH_1, PLAYER_ACTIVE, OPP_DISCARD_PILE, OPP_DISCARD_PILE
- in_play_area_transition $30, $20, 1 << OAM_X_FLIP, OPP_BENCH_1, OPP_DISCARD_PILE, OPP_ACTIVE, OPP_ACTIVE
- in_play_area_transition $30, $38, 1 << OAM_X_FLIP, OPP_BENCH_1, PLAYER_ACTIVE, OPP_ACTIVE, OPP_ACTIVE
- in_play_area_transition $90, $14, 1 << OAM_X_FLIP, OPP_PLAY_AREA, OPP_ACTIVE, OPP_BENCH_5, OPP_BENCH_2
- in_play_area_transition $78, $14, 1 << OAM_X_FLIP, OPP_PLAY_AREA, OPP_ACTIVE, OPP_BENCH_1, OPP_BENCH_3
- in_play_area_transition $60, $14, 1 << OAM_X_FLIP, OPP_PLAY_AREA, OPP_ACTIVE, OPP_BENCH_2, OPP_BENCH_4
- in_play_area_transition $48, $14, 1 << OAM_X_FLIP, OPP_PLAY_AREA, OPP_ACTIVE, OPP_BENCH_3, OPP_BENCH_5
- in_play_area_transition $30, $14, 1 << OAM_X_FLIP, OPP_PLAY_AREA, OPP_ACTIVE, OPP_BENCH_4, OPP_BENCH_1
+ in_play_area_cursor_transition $18, $8c, $00, PLAYER_ACTIVE, PLAYER_PLAY_AREA, PLAYER_BENCH_2, PLAYER_BENCH_5
+ in_play_area_cursor_transition $30, $8c, $00, PLAYER_ACTIVE, PLAYER_PLAY_AREA, PLAYER_BENCH_3, PLAYER_BENCH_1
+ in_play_area_cursor_transition $48, $8c, $00, PLAYER_ACTIVE, PLAYER_PLAY_AREA, PLAYER_BENCH_4, PLAYER_BENCH_2
+ in_play_area_cursor_transition $60, $8c, $00, PLAYER_ACTIVE, PLAYER_PLAY_AREA, PLAYER_BENCH_5, PLAYER_BENCH_3
+ in_play_area_cursor_transition $78, $8c, $00, PLAYER_ACTIVE, PLAYER_PLAY_AREA, PLAYER_BENCH_1, PLAYER_BENCH_4
+ in_play_area_cursor_transition $30, $6c, $00, OPP_ACTIVE, PLAYER_BENCH_1, PLAYER_DISCARD_PILE, PLAYER_DISCARD_PILE
+ in_play_area_cursor_transition $78, $80, $00, PLAYER_DISCARD_PILE, PLAYER_BENCH_1, PLAYER_ACTIVE, PLAYER_ACTIVE
+ in_play_area_cursor_transition $78, $70, $00, OPP_ACTIVE, PLAYER_HAND, PLAYER_ACTIVE, PLAYER_ACTIVE
+ in_play_area_cursor_transition $78, $34, 1 << OAM_X_FLIP, OPP_BENCH_1, PLAYER_ACTIVE, OPP_DISCARD_PILE, OPP_DISCARD_PILE
+ in_play_area_cursor_transition $30, $20, 1 << OAM_X_FLIP, OPP_BENCH_1, OPP_DISCARD_PILE, OPP_ACTIVE, OPP_ACTIVE
+ in_play_area_cursor_transition $30, $38, 1 << OAM_X_FLIP, OPP_BENCH_1, PLAYER_ACTIVE, OPP_ACTIVE, OPP_ACTIVE
+ in_play_area_cursor_transition $90, $14, 1 << OAM_X_FLIP, OPP_PLAY_AREA, OPP_ACTIVE, OPP_BENCH_5, OPP_BENCH_2
+ in_play_area_cursor_transition $78, $14, 1 << OAM_X_FLIP, OPP_PLAY_AREA, OPP_ACTIVE, OPP_BENCH_1, OPP_BENCH_3
+ in_play_area_cursor_transition $60, $14, 1 << OAM_X_FLIP, OPP_PLAY_AREA, OPP_ACTIVE, OPP_BENCH_2, OPP_BENCH_4
+ in_play_area_cursor_transition $48, $14, 1 << OAM_X_FLIP, OPP_PLAY_AREA, OPP_ACTIVE, OPP_BENCH_3, OPP_BENCH_5
+ in_play_area_cursor_transition $30, $14, 1 << OAM_X_FLIP, OPP_PLAY_AREA, OPP_ACTIVE, OPP_BENCH_4, OPP_BENCH_1
OpenInPlayAreaScreen_TransitionTable2:
- in_play_area_transition $18, $8c, $00, PLAYER_ACTIVE, PLAYER_PLAY_AREA, PLAYER_BENCH_2, PLAYER_BENCH_5
- in_play_area_transition $30, $8c, $00, PLAYER_ACTIVE, PLAYER_PLAY_AREA, PLAYER_BENCH_3, PLAYER_BENCH_1
- in_play_area_transition $48, $8c, $00, PLAYER_ACTIVE, PLAYER_PLAY_AREA, PLAYER_BENCH_4, PLAYER_BENCH_2
- in_play_area_transition $60, $8c, $00, PLAYER_ACTIVE, PLAYER_PLAY_AREA, PLAYER_BENCH_5, PLAYER_BENCH_3
- in_play_area_transition $78, $8c, $00, PLAYER_ACTIVE, PLAYER_PLAY_AREA, PLAYER_BENCH_1, PLAYER_BENCH_4
- in_play_area_transition $30, $6c, $00, OPP_ACTIVE, PLAYER_BENCH_1, PLAYER_DISCARD_PILE, PLAYER_DISCARD_PILE
- in_play_area_transition $78, $80, $00, PLAYER_DISCARD_PILE, PLAYER_BENCH_1, PLAYER_ACTIVE, PLAYER_ACTIVE
- in_play_area_transition $78, $70, $00, OPP_ACTIVE, PLAYER_HAND, PLAYER_ACTIVE, PLAYER_ACTIVE
- in_play_area_transition $78, $34, 1 << OAM_X_FLIP, OPP_BENCH_1, PLAYER_ACTIVE, OPP_DISCARD_PILE, OPP_DISCARD_PILE
- in_play_area_transition $30, $20, 1 << OAM_X_FLIP, OPP_BENCH_1, OPP_DISCARD_PILE, OPP_ACTIVE, OPP_ACTIVE
- in_play_area_transition $30, $38, 1 << OAM_X_FLIP, OPP_HAND, PLAYER_ACTIVE, OPP_ACTIVE, OPP_ACTIVE
- in_play_area_transition $90, $14, 1 << OAM_X_FLIP, OPP_PLAY_AREA, OPP_ACTIVE, OPP_BENCH_5, OPP_BENCH_2
- in_play_area_transition $78, $14, 1 << OAM_X_FLIP, OPP_PLAY_AREA, OPP_ACTIVE, OPP_BENCH_1, OPP_BENCH_3
- in_play_area_transition $60, $14, 1 << OAM_X_FLIP, OPP_PLAY_AREA, OPP_ACTIVE, OPP_BENCH_2, OPP_BENCH_4
- in_play_area_transition $48, $14, 1 << OAM_X_FLIP, OPP_PLAY_AREA, OPP_ACTIVE, OPP_BENCH_3, OPP_BENCH_5
- in_play_area_transition $30, $14, 1 << OAM_X_FLIP, OPP_PLAY_AREA, OPP_ACTIVE, OPP_BENCH_4, OPP_BENCH_1
+ in_play_area_cursor_transition $18, $8c, $00, PLAYER_ACTIVE, PLAYER_PLAY_AREA, PLAYER_BENCH_2, PLAYER_BENCH_5
+ in_play_area_cursor_transition $30, $8c, $00, PLAYER_ACTIVE, PLAYER_PLAY_AREA, PLAYER_BENCH_3, PLAYER_BENCH_1
+ in_play_area_cursor_transition $48, $8c, $00, PLAYER_ACTIVE, PLAYER_PLAY_AREA, PLAYER_BENCH_4, PLAYER_BENCH_2
+ in_play_area_cursor_transition $60, $8c, $00, PLAYER_ACTIVE, PLAYER_PLAY_AREA, PLAYER_BENCH_5, PLAYER_BENCH_3
+ in_play_area_cursor_transition $78, $8c, $00, PLAYER_ACTIVE, PLAYER_PLAY_AREA, PLAYER_BENCH_1, PLAYER_BENCH_4
+ in_play_area_cursor_transition $30, $6c, $00, OPP_ACTIVE, PLAYER_BENCH_1, PLAYER_DISCARD_PILE, PLAYER_DISCARD_PILE
+ in_play_area_cursor_transition $78, $80, $00, PLAYER_DISCARD_PILE, PLAYER_BENCH_1, PLAYER_ACTIVE, PLAYER_ACTIVE
+ in_play_area_cursor_transition $78, $70, $00, OPP_ACTIVE, PLAYER_HAND, PLAYER_ACTIVE, PLAYER_ACTIVE
+ in_play_area_cursor_transition $78, $34, 1 << OAM_X_FLIP, OPP_BENCH_1, PLAYER_ACTIVE, OPP_DISCARD_PILE, OPP_DISCARD_PILE
+ in_play_area_cursor_transition $30, $20, 1 << OAM_X_FLIP, OPP_BENCH_1, OPP_DISCARD_PILE, OPP_ACTIVE, OPP_ACTIVE
+ in_play_area_cursor_transition $30, $38, 1 << OAM_X_FLIP, OPP_HAND, PLAYER_ACTIVE, OPP_ACTIVE, OPP_ACTIVE
+ in_play_area_cursor_transition $90, $14, 1 << OAM_X_FLIP, OPP_PLAY_AREA, OPP_ACTIVE, OPP_BENCH_5, OPP_BENCH_2
+ in_play_area_cursor_transition $78, $14, 1 << OAM_X_FLIP, OPP_PLAY_AREA, OPP_ACTIVE, OPP_BENCH_1, OPP_BENCH_3
+ in_play_area_cursor_transition $60, $14, 1 << OAM_X_FLIP, OPP_PLAY_AREA, OPP_ACTIVE, OPP_BENCH_2, OPP_BENCH_4
+ in_play_area_cursor_transition $48, $14, 1 << OAM_X_FLIP, OPP_PLAY_AREA, OPP_ACTIVE, OPP_BENCH_3, OPP_BENCH_5
+ in_play_area_cursor_transition $30, $14, 1 << OAM_X_FLIP, OPP_PLAY_AREA, OPP_ACTIVE, OPP_BENCH_4, OPP_BENCH_1
OpenInPlayAreaScreen_HandleInput: ; 183bb (6:43bb)
xor a
@@ -730,14 +723,14 @@ ZeroObjectPositionsAndToggleOAMCopy_Bank6 ; 184bf (6:44bf)
ld [wVBlankOAMCopyToggle], a
ret
-Func_184c8: ; 184c8 (6:44c8)
+OpenGlossaryScreen: ; 184c8 (6:44c8)
xor a
ld [wGlossaryPageNo], a
- call Func_1852b
+ call .display_menu
xor a
ld [wInPlayAreaCurPosition], a
- ld de, $4c8e ; this data is stored in bank 2.
+ ld de, OpenGlossaryScreen_TransitionTable ; this data is stored in bank 2.
ld hl, wInPlayAreaInputTablePointer
ld [hl], e
inc hl
@@ -760,19 +753,19 @@ Func_184c8: ; 184c8 (6:44c8)
cp -1 ; b button
jr nz, .check_button
- farcall $2, $4aa1
+ farcall ZeroObjectPositionsWithCopyToggleOn
ret
.check_button
push af
- farcall Func_8aa1
+ farcall ZeroObjectPositionsWithCopyToggleOn
pop af
cp $09 ; $09: next page or prev page
jr z, .change_page
- call Func_18598
- call Func_1852b
+ call .print_description
+ call .display_menu
xor a
ld [wCheckMenuCursorBlinkCounter], a
jr .next
@@ -784,11 +777,11 @@ Func_184c8: ; 184c8 (6:44c8)
ld a, [wGlossaryPageNo]
xor $01 ; swap page
ld [wGlossaryPageNo], a
- call Func_1855a
+ call .print_menu
jr .next
; display glossary menu.
-Func_1852b: ; 1852b (6:452b)
+.display_menu ; 1852b (6:452b)
xor a
ld [wTileMapFill], a
call ZeroObjectPositions
@@ -797,19 +790,19 @@ Func_1852b: ; 1852b (6:452b)
call DoFrame
call EmptyScreen
call Set_OBJ_8x8
- farcall $2, $4992
+ farcall LoadCursorTile
lb de, 5, 0
call InitTextPrinting
ldtx hl, PokemonCardGlossaryText
call ProcessTextFromID
- call Func_1855a
+ call .print_menu
ldtx hl, ChooseWordAndPressAButtonText
call DrawWideTextBox_PrintText
ret
; print texts in glossary menu.
-Func_1855a: ; 1855a (6:455a)
+.print_menu ; 1855a (6:455a)
ld hl, wDefaultText
ld a, TX_SYMBOL
@@ -854,7 +847,7 @@ Func_1855a: ; 1855a (6:455a)
ret
; display glossary description.
-Func_18598: ; 18598 (6:4598)
+.print_description ; 18598 (6:4598)
push af
xor a
ld [wTileMapFill], a
@@ -871,11 +864,11 @@ Func_18598: ; 18598 (6:4598)
or a
jr nz, .back_page
- ld hl, GlossaryData_1
+ ld hl, GlossaryData1
jr .front_page
.back_page
- ld hl, GlossaryData_2
+ ld hl, GlossaryData2
.front_page
pop af
; hl += (a + (a << 2)).
@@ -930,7 +923,7 @@ glossary_entry: MACRO
tx \3
ENDM
-GlossaryData_1:
+GlossaryData1:
glossary_entry 7, Text02fa, Text030c
glossary_entry 5, Text02fb, Text030d
glossary_entry 7, Text02fc, Text030e
@@ -941,7 +934,7 @@ GlossaryData_1:
glossary_entry 7, Text0301, Text0313
glossary_entry 5, Text0302, Text0314
-GlossaryData_2:
+GlossaryData2:
glossary_entry 5, Text0303, Text0315
glossary_entry 5, Text0304, Text0316
glossary_entry 5, Text0305, Text0317
diff --git a/src/macros/data.asm b/src/macros/data.asm
index a7ac93d..f2a2210 100644
--- a/src/macros/data.asm
+++ b/src/macros/data.asm
@@ -88,4 +88,15 @@ ENDM
textitem: MACRO
db \1, \2
tx \3
+ENDM
+
+; cursor x / cursor y / attribute / idx-up / idx-down / idx-right / idx-left
+; idx-[direction] means the index to get when the input is in the direction.
+; its attribute is used for drawing a flipped cursor.
+cursor_transition: MACRO
+ db \1, \2, \3
+ rept 4
+ db \4
+ shift
+ endr
ENDM \ No newline at end of file
diff --git a/src/wram.asm b/src/wram.asm
index 42e008d..be77e77 100644
--- a/src/wram.asm
+++ b/src/wram.asm
@@ -1506,7 +1506,9 @@ wYourOrOppPlayAreaLastCursorPosition:: ; ce5f
wInPlayAreaFromSelectButton:: ; ce60
ds $1
-wce61:: ; ce61
+; it's used only in one function,
+; which means that it's a kind of local variable, but defined in wram.
+wPrizeCardCursorTemporaryPosition:: ; ce61
ds $1
wGlossaryPageNo:: ; ce62