diff options
author | PikalaxALT <PikalaxALT@gmail.com> | 2015-11-11 16:11:08 -0500 |
---|---|---|
committer | PikalaxALT <PikalaxALT@gmail.com> | 2015-11-11 16:15:06 -0500 |
commit | 91068077f05afbbfd6571ceadada2c03ac7c8038 (patch) | |
tree | 5d3ff368c3a31c99cd1967a589403a37ee1377ff /engine/selectmenu.asm | |
parent | b522b0f165b6aae278ca9b4b18bada606d4ae737 (diff) |
Further split bank 4
Diffstat (limited to 'engine/selectmenu.asm')
-rwxr-xr-x | engine/selectmenu.asm | 191 |
1 files changed, 191 insertions, 0 deletions
diff --git a/engine/selectmenu.asm b/engine/selectmenu.asm new file mode 100755 index 000000000..e73f397a5 --- /dev/null +++ b/engine/selectmenu.asm @@ -0,0 +1,191 @@ +SelectMenu:: ; 13327 + + call CheckRegisteredItem + jr c, .NotRegistered + jp UseRegisteredItem + +.NotRegistered + call LoadFont + ld b, BANK(ItemMayBeRegisteredText) + ld hl, ItemMayBeRegisteredText + call MapTextbox + call CloseText + jp LoadMoveSprites +; 13340 + + +ItemMayBeRegisteredText: ; 13340 + text_jump UnknownText_0x1c1cf3 + db "@" +; 13345 + + +CheckRegisteredItem: ; 13345 + + ld a, [WhichRegisteredItem] + and a + jr z, .NoRegisteredItem + and REGISTERED_POCKET + rlca + rlca + ld hl, .Pockets + rst JumpTable + ret + +.Pockets + dw .CheckItem + dw .CheckBall + dw .CheckKeyItem + dw .CheckTMHM + +.CheckItem + ld hl, NumItems + call .CheckRegisteredNo + jr c, .NoRegisteredItem + inc hl + ld e, a + ld d, 0 +rept 2 + add hl, de +endr + call .IsSameItem + jr c, .NoRegisteredItem + and a + ret + +.CheckKeyItem + ld a, [RegisteredItem] + ld hl, KeyItems + ld de, 1 + call IsInArray + jr nc, .NoRegisteredItem + ld a, [RegisteredItem] + ld [CurItem], a + and a + ret + +.CheckBall + ld hl, NumBalls + call .CheckRegisteredNo + jr nc, .NoRegisteredItem + inc hl + ld e, a + ld d, 0 +rept 2 + add hl, de +endr + call .IsSameItem + jr c, .NoRegisteredItem + ret + +.CheckTMHM + jr .NoRegisteredItem + +.NoRegisteredItem + xor a + ld [WhichRegisteredItem], a + ld [RegisteredItem], a + scf + ret +; 133a6 + + +.CheckRegisteredNo ; 133a6 + ld a, [WhichRegisteredItem] + and REGISTERED_NUMBER + dec a + cp [hl] + jr nc, .NotEnoughItems + ld [wd107], a + and a + ret + +.NotEnoughItems + scf + ret +; 133b6 + + +.IsSameItem ; 133b6 + ld a, [RegisteredItem] + cp [hl] + jr nz, .NotSameItem + ld [CurItem], a + and a + ret + +.NotSameItem + scf + ret +; 133c3 + + +UseRegisteredItem: ; 133c3 + + callba CheckItemMenu + ld a, [wItemAttributeParamBuffer] + ld hl, .SwitchTo + rst JumpTable + ret + +.SwitchTo + dw .CantUse + dw .NoFunction + dw .NoFunction + dw .NoFunction + dw .Current + dw .Party + dw .Overworld +; 133df + +.NoFunction ; 133df + call LoadFont + call CantUseItem + call LoadMoveSprites + and a + ret +; 133ea + +.Current ; 133ea + call LoadFont + call DoItemEffect + call LoadMoveSprites + and a + ret +; 133f5 + +.Party ; 133f5 + call ResetWindow + call FadeToMenu + call DoItemEffect + call Function2b3c + call LoadMoveSprites + and a + ret +; 13406 + +.Overworld ; 13406 + call ResetWindow + ld a, 1 + ld [wd0ef], a + call DoItemEffect + xor a + ld [wd0ef], a + ld a, [wd0ec] + cp 1 + jr nz, ._cantuse + scf + ld a, HMENURETURN_SCRIPT + ld [hMenuReturn], a + ret +; 13422 + +.CantUse ; 13422 + call ResetWindow + +._cantuse + call CantUseItem + call LoadMoveSprites + and a + ret +; 1342d |