diff options
-rw-r--r-- | src/engine/bank02.asm | 60 | ||||
-rw-r--r-- | src/engine/bank06.asm | 52 | ||||
-rw-r--r-- | src/wram.asm | 5 |
3 files changed, 66 insertions, 51 deletions
diff --git a/src/engine/bank02.asm b/src/engine/bank02.asm index 66f6f77..5d3814c 100644 --- a/src/engine/bank02.asm +++ b/src/engine/bank02.asm @@ -1295,7 +1295,7 @@ HandleDuelMenuInput_PlayArea: ; 86ac (2:46ac) jr nz, .a_pressed ; B pressed - ld a, $ff + ld a, $ff ; cancel call PlaySFXConfirmOrCancel scf ret @@ -1429,7 +1429,7 @@ Func_8764: ; 8764 (2:4764) call ProcessTextFromID xor a - ld [$ce52], a + ld [wPrizeCardCursorPosition], a lb de, $48, $c2 ld hl, wce53 ld [hl], e @@ -1497,7 +1497,7 @@ Func_8883: ; 8883 (2:4883) call ProcessTextFromID xor a - ld [$ce52], a + ld [wPrizeCardCursorPosition], a ld de, $48fa ld hl, wce53 ld [hl], e @@ -1528,45 +1528,51 @@ LoadCursorTile: ; 8992 (2:4992) Func_89ae: ; 89ae (2:49ae) xor a ld [wcfe3], a + ld hl, wce53 ld e, [hl] inc hl ld d, [hl] - ld a, [$ce52] + + ld a, [wPrizeCardCursorPosition] ld [wce61], a ld l, a - ld h, $07 + ld h, 7 call HtimesL add hl, de +; hl = [wce53] + 7 * wce52 + ldh a, [hDPadHeld] or a jp z, .asm_8a4f + inc hl inc hl inc hl - bit 6, a + bit D_UP_F, a jr z, .asm_89d5 ld a, [hl] jr .asm_89eb + .asm_89d5 inc hl - bit 7, a + bit D_DOWN_F, a jr z, .asm_89dd ld a, [hl] jr .asm_89eb .asm_89dd inc hl - bit 4, a + bit D_RIGHT_F, a jr z, .asm_89e5 ld a, [hl] jr .asm_89eb .asm_89e5 inc hl - bit 5, a + bit D_LEFT_F, a jr z, .asm_8a4f ld a, [hl] .asm_89eb - ld [$ce52], a + ld [wPrizeCardCursorPosition], a cp $08 jr nc, .asm_8a46 ld b, $01 @@ -1592,47 +1598,51 @@ Func_89ae: ; 89ae (2:49ae) ld a, [wDuelInitialPrizes] cp $05 jr nc, .asm_8a46 - ld a, [$ce52] + ld a, [wPrizeCardCursorPosition] cp $05 jr nz, .asm_8a28 ld a, $03 - ld [$ce52], a + ld [wPrizeCardCursorPosition], a jr .asm_8a2d .asm_8a28 ld a, $02 - ld [$ce52], a + ld [wPrizeCardCursorPosition], a .asm_8a2d ld a, [wDuelInitialPrizes] cp $03 jr nc, .asm_8a3c - ld a, [$ce52] + ld a, [wPrizeCardCursorPosition] sub $02 - ld [$ce52], a + ld [wPrizeCardCursorPosition], a .asm_8a3c - ld a, [$ce52] + ld a, [wPrizeCardCursorPosition] ld [wce61], a ld b, $01 jr .asm_89f4 .asm_8a46 ld a, $01 ld [wcfe3], a + +; reset cursor blink xor a ld [wDuelCursorBlinkCounter], a + .asm_8a4f ldh a, [hKeysPressed] - and $03 + and A_BUTTON | B_BUTTON jr z, .asm_8a6d - and $01 + and A_BUTTON jr nz, .asm_8a60 - ld a, $ff + ld a, $ff ; cancel call PlaySFXConfirmOrCancel scf ret + .asm_8a60 call Func_8a82 ld a, $01 call PlaySFXConfirmOrCancel - ld a, [$ce52] + ld a, [wPrizeCardCursorPosition] scf ret .asm_8a6d @@ -1655,11 +1665,13 @@ Func_8a82 ; 8a82 (2:4a82) ld e, [hl] inc hl ld d, [hl] - ld a, [$ce52] + ld a, [wPrizeCardCursorPosition] ld l, a - ld h, $07 + ld h, 7 call HtimesL add hl, de +; hl = [wce53] + 7 * wce52 + ld d, [hl] inc hl ld e, [hl] @@ -1790,7 +1802,7 @@ Func_8dea: ; 8dea (2:4dea) ld [wceb1], a call Func_8ff2 jp nc, Func_8e05 - ld a, $ff + ld a, $ff ; cancel call PlaySFXConfirmOrCancel call Func_8fe8 scf @@ -2162,7 +2174,7 @@ HandleDuelMenuInput_YourPlayArea: ; 9065 (2:5065) jr z, .no_input and A_BUTTON jr nz, .a_press - ld a, $ff + ld a, $ff ; cancel call PlaySFXConfirmOrCancel scf ret diff --git a/src/engine/bank06.asm b/src/engine/bank06.asm index 26c1057..2aa63af 100644 --- a/src/engine/bank06.asm +++ b/src/engine/bank06.asm @@ -149,7 +149,7 @@ Func_18086: ; 18086 (6:4086) Func_180d5: ; 180d5 (6:40d5) ld a, $05 - ld [$ce52], a + ld [wPrizeCardCursorPosition], a .asm_006_40da xor a ld [wDuelCursorBlinkCounter], a @@ -166,7 +166,7 @@ Func_180d5: ; 180d5 (6:40d5) ld [hl], e inc hl ld [hl], d - ld a, [$ce52] + ld a, [wPrizeCardCursorPosition] call .asm_006_4171 .asm_006_40fe ld a, $01 @@ -182,11 +182,11 @@ Func_180d5: ; 180d5 (6:40d5) and $04 jr nz, .asm_006_4148 .asm_006_4118 - ld a, [$ce52] + ld a, [wPrizeCardCursorPosition] ld [$ce58], a call Func_006_43bb jr c, .asm_006_4139 - ld a, [$ce52] + ld a, [wPrizeCardCursorPosition] cp $10 jp z, .asm_006_41f8 cp $11 @@ -213,12 +213,12 @@ Func_180d5: ; 180d5 (6:40d5) call Func_006_44bf lb de, $38, $9f call SetupText - ld a, [$ce52] + ld a, [wPrizeCardCursorPosition] ld [$ce57], a ld hl, .jump_table call JumpToFunctionInTable ld a, [$ce57] - ld [$ce52], a + ld [wPrizeCardCursorPosition], a jp .asm_006_40da .asm_006_4171 ; 18171 (6:4171) push af @@ -249,7 +249,7 @@ Func_180d5: ; 180d5 (6:40d5) ld a, l cp $06 jr nc, .asm_006_41e3 - ld a, [$ce52] + ld a, [wPrizeCardCursorPosition] cp $06 jr nc, .asm_006_41c2 ld a, l @@ -277,7 +277,7 @@ Func_180d5: ; 180d5 (6:40d5) call ProcessText ret .asm_006_41e3 - ld a, [$ce52] + ld a, [wPrizeCardCursorPosition] cp $08 jr nc, .asm_006_41ee call PrintTextNoDelay @@ -296,7 +296,7 @@ Func_180d5: ; 180d5 (6:40d5) pop af ldh [hWhoseTurn], a ld a, [$ce57] - ld [$ce52], a + ld [wPrizeCardCursorPosition], a jp .asm_006_40da .asm_006_4210 lb de, $38, $9f @@ -307,7 +307,7 @@ Func_180d5: ; 180d5 (6:40d5) pop af ldh [hWhoseTurn], a ld a, [$ce57] - ld [$ce52], a + ld [wPrizeCardCursorPosition], a jp .asm_006_40da .jump_table ; (6:4228) dw Func_006_4248 @@ -328,7 +328,7 @@ Func_180d5: ; 180d5 (6:40d5) dw Func_006_426a Func_006_4248: - ld a, [$ce52] + ld a, [wPrizeCardCursorPosition] inc a cp PLAY_AREA_BENCH_5 + $01 jr nz, .asm_006_4251 @@ -347,7 +347,7 @@ Func_006_4248: ret Func_006_426a: - ld a, [$ce52] + ld a, [wPrizeCardCursorPosition] sub $08 or a jr z, .asm_006_4274 @@ -410,7 +410,7 @@ Func_006_43bb: ; 183bb (6:43bb) ld e, [hl] inc hl ld d, [hl] - ld a, [$ce52] + ld a, [wPrizeCardCursorPosition] ld l, a .asm_006_43c9 ld h, $07 @@ -446,10 +446,10 @@ Func_006_43bb: ; 183bb (6:43bb) ld a, [hl] .asm_006_43f5 push af - ld a, [$ce52] + ld a, [wPrizeCardCursorPosition] ld [$ce57], a pop af - ld [$ce52], a + ld [wPrizeCardCursorPosition], a cp $05 jr c, .asm_006_440e cp $0b @@ -463,23 +463,23 @@ Func_006_43bb: ; 183bb (6:43bb) dec a jr nz, .asm_006_441d ld a, $10 - ld [$ce52], a + ld [wPrizeCardCursorPosition], a jr .asm_006_4462 .asm_006_441d ld b, a - ld a, [$ce52] + ld a, [wPrizeCardCursorPosition] cp b jr c, .asm_006_4462 ldh a, [hDPadHeld] bit D_RIGHT_F, a jr z, .asm_006_4430 xor a - ld [$ce52], a + ld [wPrizeCardCursorPosition], a jr .asm_006_4462 .asm_006_4430: ld a, b dec a - ld [$ce52], a + ld [wPrizeCardCursorPosition], a jr .asm_006_4462 .asm_006_4437: ld a, DUELVARS_NUMBER_OF_POKEMON_IN_PLAY_AREA @@ -487,11 +487,11 @@ Func_006_43bb: ; 183bb (6:43bb) dec a jr nz, .asm_006_4446 ld a, $11 - ld [$ce52], a + ld [wPrizeCardCursorPosition], a jr .asm_006_4462 .asm_006_4446 ld b, a - ld a, [$ce52] + ld a, [wPrizeCardCursorPosition] sub $0b cp b jr c, .asm_006_4462 @@ -499,12 +499,12 @@ Func_006_43bb: ; 183bb (6:43bb) bit D_LEFT_F, a jr z, .asm_006_445c ld a, $0b - ld [$ce52], a + ld [wPrizeCardCursorPosition], a jr .asm_006_4462 .asm_006_445c ld a, b add $0a - ld [$ce52], a + ld [wPrizeCardCursorPosition], a .asm_006_4462 ld a, $01 ld [wcfe3], a @@ -524,7 +524,7 @@ Func_006_43bb: ; 183bb (6:43bb) call Func_006_44a0 ld a, $01 farcall PlaySFXConfirmOrCancel - ld a, [$ce52] + ld a, [wPrizeCardCursorPosition] scf ret .asm_006_448b @@ -547,7 +547,7 @@ Func_006_44a0: ; 184a0 (6:44a0) ld e, [hl] inc hl ld d, [hl] - ld a, [$ce52] + ld a, [wPrizeCardCursorPosition] ld l, a ld h, $07 call HtimesL @@ -573,7 +573,7 @@ Func_006_44c8: ; 184c8 (6:44c8) ld [wGlossaryPageNo], a call Func_006_452b xor a - ld [$ce52], a + ld [wPrizeCardCursorPosition], a ld de, $4c8e ld hl, $ce53 ld [hl], e diff --git a/src/wram.asm b/src/wram.asm index 505587f..8708005 100644 --- a/src/wram.asm +++ b/src/wram.asm @@ -1291,9 +1291,12 @@ wTurnHolder1:: ; ce50 wTurnHolder2:: ; ce51 ds $1 +; holds the position of the cursor +; when selecting a prize card +wPrizeCardCursorPosition:: ds $1 -wce53:: ; ce51 +wce53:: ; ce53 ds $2 ; same as wDuelInitialPrizes but |