You've already forked pokecrystal-board
mirror of
https://gitlab.com/xCrystal/pokecrystal-board.git
synced 2025-09-08 08:13:02 -07:00
merge with newest update
This commit is contained in:
344
event/battle_tower.asm
Normal file
344
event/battle_tower.asm
Normal file
@@ -0,0 +1,344 @@
|
||||
Function8b1e1: ; 8b1e1
|
||||
ld de, Unknown_8b1ed
|
||||
call Function8b25b
|
||||
ret z
|
||||
call Function8b231
|
||||
scf
|
||||
ret
|
||||
; 8b1ed
|
||||
|
||||
Unknown_8b1ed: ; 8b1ed
|
||||
db 2
|
||||
dw Unknown_8b1f2
|
||||
dw Unknown_8b1f6
|
||||
|
||||
Unknown_8b1f2: ; 8b1f2
|
||||
dw Function8b2bb
|
||||
dw Function8b2c1
|
||||
; 8b1f6
|
||||
|
||||
Unknown_8b1f6: ; 8b1f6
|
||||
dw UnknownText_0x8b1fc
|
||||
dw UnknownText_0x8b23d
|
||||
dw UnknownText_0x8b242
|
||||
; 8b1fc
|
||||
|
||||
UnknownText_0x8b1fc: ; 0x8b1fc
|
||||
; Excuse me!
|
||||
text_jump UnknownText_0x1c5937
|
||||
db "@"
|
||||
; 0x8b201
|
||||
|
||||
CheckForBattleTowerRules: ; 8b201
|
||||
ld hl, StringBuffer2
|
||||
ld [hl], "3"
|
||||
inc hl
|
||||
ld [hl], "@"
|
||||
ld de, CheckForBattleTowerRules_FunctionsText
|
||||
call Function8b25b
|
||||
ret z
|
||||
call Function8b231
|
||||
scf
|
||||
ret
|
||||
; 8b215
|
||||
|
||||
CheckForBattleTowerRules_FunctionsText: ; 8b215
|
||||
db 4
|
||||
dw CheckForBattleTowerRules_Functions
|
||||
dw CheckForBattleTowerRules_Text
|
||||
|
||||
CheckForBattleTowerRules_Functions: ; 8b21a
|
||||
dw Function_PartyCountEq3
|
||||
dw Function_PartySpeciesAreUnique
|
||||
dw Function_PartyItemsAreUnique
|
||||
dw Function_HasPartyAnEgg
|
||||
; 8b222
|
||||
|
||||
CheckForBattleTowerRules_Text: ; 8b222
|
||||
dw JumpText_ExcuseMeYoureNotReady
|
||||
dw JumpText_OnlyThreePkmnMayBeEntered
|
||||
dw JumpText_ThePkmnMustAllBeDifferentKinds
|
||||
dw JumpText_ThePkmnMustNotHoldTheSameItems
|
||||
dw JumpText_YouCantTakeAnEgg
|
||||
; 8b22c
|
||||
|
||||
JumpText_ExcuseMeYoureNotReady: ; 0x8b22c
|
||||
; Excuse me. You're not ready.
|
||||
text_jump Text_ExcuseMeYoureNotReady
|
||||
db "@"
|
||||
; 0x8b231
|
||||
|
||||
Function8b231: ; 8b231
|
||||
ld hl, UnknownText_0x8b238
|
||||
call PrintText
|
||||
ret
|
||||
; 8b238
|
||||
|
||||
UnknownText_0x8b238: ; 0x8b238
|
||||
; Please return when you're ready.
|
||||
text_jump UnknownText_0x1c5962
|
||||
db "@"
|
||||
; 0x8b23d
|
||||
|
||||
UnknownText_0x8b23d: ; 0x8b23d
|
||||
; You need at least three #MON.
|
||||
text_jump UnknownText_0x1c5983
|
||||
db "@"
|
||||
; 0x8b242
|
||||
|
||||
UnknownText_0x8b242: ; 0x8b242
|
||||
; Sorry, an EGG doesn't qualify.
|
||||
text_jump UnknownText_0x1c59a3
|
||||
db "@"
|
||||
; 0x8b247
|
||||
|
||||
JumpText_OnlyThreePkmnMayBeEntered: ; 0x8b247
|
||||
; Only three #MON may be entered.
|
||||
text_jump Text_OnlyThreePkmnMayBeEntered
|
||||
db "@"
|
||||
; 0x8b24c
|
||||
|
||||
JumpText_ThePkmnMustAllBeDifferentKinds: ; 0x8b24c
|
||||
; The @ #MON must all be different kinds.
|
||||
text_jump Text_ThePkmnMustAllBeDifferentKinds
|
||||
db "@"
|
||||
; 0x8b251
|
||||
|
||||
JumpText_ThePkmnMustNotHoldTheSameItems: ; 0x8b251
|
||||
; The @ #MON must not hold the same items.
|
||||
text_jump Text_ThePkmnMustNotHoldTheSameItems
|
||||
db "@"
|
||||
; 0x8b256
|
||||
|
||||
JumpText_YouCantTakeAnEgg: ; 0x8b256
|
||||
; You can't take an EGG!
|
||||
text_jump Text_YouCantTakeAnEgg
|
||||
db "@"
|
||||
; 0x8b25b
|
||||
|
||||
Function8b25b: ; 8b25b
|
||||
ld bc, $0000
|
||||
.asm_8b25e
|
||||
call Function8b26c
|
||||
call c, Function8b28e
|
||||
call Function8b276
|
||||
jr nz, .asm_8b25e
|
||||
ld a, b
|
||||
and a
|
||||
ret
|
||||
; 8b26c
|
||||
|
||||
Function8b26c: ; 8b26c
|
||||
push de
|
||||
push bc
|
||||
call Function8b27a
|
||||
ld a, c
|
||||
rst JumpTable
|
||||
pop bc
|
||||
pop de
|
||||
ret
|
||||
; 8b276
|
||||
|
||||
Function8b276: ; 8b276
|
||||
inc c
|
||||
ld a, [de]
|
||||
cp c
|
||||
ret
|
||||
; 8b27a
|
||||
|
||||
Function8b27a: ; 8b27a
|
||||
inc de
|
||||
ld a, [de]
|
||||
ld l, a
|
||||
inc de
|
||||
ld a, [de]
|
||||
ld h, a
|
||||
ret
|
||||
; 8b281
|
||||
|
||||
Function8b281: ; 8b281
|
||||
rept 3
|
||||
inc de
|
||||
endr
|
||||
ld a, [de]
|
||||
ld l, a
|
||||
inc de
|
||||
ld a, [de]
|
||||
ld h, a
|
||||
ret
|
||||
; 8b28a
|
||||
|
||||
Function8b28a: ; 8b28a
|
||||
ld a, [hli]
|
||||
ld h, [hl]
|
||||
ld l, a
|
||||
ret
|
||||
; 8b28e
|
||||
|
||||
Function8b28e: ; 8b28e
|
||||
push de
|
||||
push bc
|
||||
ld a, b
|
||||
and a
|
||||
call z, Function8b29d
|
||||
pop bc
|
||||
call Function8b2a9
|
||||
ld b, $1
|
||||
pop de
|
||||
ret
|
||||
; 8b29d
|
||||
|
||||
Function8b29d: ; 8b29d
|
||||
push de
|
||||
call Function8b281
|
||||
call Function8b28a
|
||||
call PrintText
|
||||
pop de
|
||||
ret
|
||||
; 8b2a9
|
||||
|
||||
Function8b2a9: ; 8b2a9
|
||||
push bc
|
||||
call Function8b281
|
||||
rept 2
|
||||
inc hl
|
||||
endr
|
||||
ld b, $0
|
||||
rept 2
|
||||
add hl, bc
|
||||
endr
|
||||
call Function8b28a
|
||||
call PrintText
|
||||
pop bc
|
||||
ret
|
||||
; 8b2bb
|
||||
|
||||
Function8b2bb: ; 8b2bb
|
||||
ld a, [PartyCount]
|
||||
cp 3
|
||||
ret
|
||||
; 8b2c1
|
||||
|
||||
Function8b2c1: ; 8b2c1
|
||||
ld hl, PartyCount
|
||||
ld a, [hli]
|
||||
ld b, $0
|
||||
ld c, a
|
||||
.asm_8b2c8
|
||||
ld a, [hli]
|
||||
cp EGG
|
||||
jr z, .asm_8b2ce
|
||||
inc b
|
||||
|
||||
.asm_8b2ce
|
||||
dec c
|
||||
jr nz, .asm_8b2c8
|
||||
ld a, [PartyCount]
|
||||
cp b
|
||||
ret z
|
||||
ld a, b
|
||||
cp 3
|
||||
ret
|
||||
; 8b2da
|
||||
|
||||
Function_PartyCountEq3: ; 8b2da
|
||||
ld a, [PartyCount]
|
||||
cp 3
|
||||
ret z
|
||||
scf
|
||||
ret
|
||||
; 8b2e2
|
||||
|
||||
Function_PartySpeciesAreUnique: ; 8b2e2
|
||||
ld hl, PartyMon1Species
|
||||
call VerifyUniqueness
|
||||
ret
|
||||
; 8b2e9
|
||||
|
||||
VerifyUniqueness: ; 8b2e9
|
||||
ld de, PartyCount
|
||||
ld a, [de]
|
||||
inc de
|
||||
dec a
|
||||
jr z, .done
|
||||
ld b, a
|
||||
.loop
|
||||
push hl
|
||||
push de
|
||||
ld c, b
|
||||
call .isegg
|
||||
jr z, .next
|
||||
ld a, [hl]
|
||||
and a
|
||||
jr z, .next
|
||||
.loop2
|
||||
call .nextmon
|
||||
call .isegg
|
||||
jr z, .next2
|
||||
cp [hl]
|
||||
jr z, .gotcha
|
||||
|
||||
.next2
|
||||
dec c
|
||||
jr nz, .loop2
|
||||
|
||||
.next
|
||||
pop de
|
||||
pop hl
|
||||
call .nextmon
|
||||
dec b
|
||||
jr nz, .loop
|
||||
|
||||
.done
|
||||
and a
|
||||
ret
|
||||
|
||||
.gotcha
|
||||
pop de
|
||||
pop hl
|
||||
scf
|
||||
ret
|
||||
; 8b31a
|
||||
|
||||
.nextmon: ; 8b31a
|
||||
push bc
|
||||
ld bc, PartyMon2 - PartyMon1
|
||||
add hl, bc
|
||||
inc de
|
||||
pop bc
|
||||
ret
|
||||
; 8b322
|
||||
|
||||
.isegg: ; 8b322
|
||||
push bc
|
||||
ld b, a
|
||||
ld a, [de]
|
||||
cp EGG
|
||||
ld a, b
|
||||
pop bc
|
||||
ret
|
||||
; 8b32a
|
||||
|
||||
Function_PartyItemsAreUnique: ; 8b32a
|
||||
ld hl, PartyMon1Item
|
||||
call VerifyUniqueness
|
||||
ret
|
||||
; 8b331
|
||||
|
||||
Function_HasPartyAnEgg: ; 8b331
|
||||
ld hl, PartyCount
|
||||
ld a, [hli]
|
||||
ld c, a
|
||||
.loop
|
||||
ld a, [hli]
|
||||
cp EGG
|
||||
jr z, .found
|
||||
dec c
|
||||
jr nz, .loop
|
||||
and a
|
||||
ret
|
||||
|
||||
.found
|
||||
scf
|
||||
ret
|
||||
; 8b342
|
||||
342
event/buena.asm
Normal file
342
event/buena.asm
Normal file
@@ -0,0 +1,342 @@
|
||||
SpecialBuenasPassword: ; 8af6b
|
||||
xor a
|
||||
ld [wcf76], a
|
||||
ld hl, MenuDataHeader_0x8afa9
|
||||
call CopyMenuDataHeader
|
||||
ld a, [wBuenasPassword]
|
||||
ld c, a
|
||||
callba GetBuenasPassword
|
||||
ld a, [wMenuBorderLeftCoord]
|
||||
add c
|
||||
add $2
|
||||
ld [wMenuBorderRightCoord], a
|
||||
call BackUpTiles
|
||||
call Function1e5d
|
||||
callba Function4ae5e
|
||||
ld b, $0
|
||||
ld a, [MenuSelection]
|
||||
ld c, a
|
||||
ld a, [wBuenasPassword]
|
||||
and $3
|
||||
cp c
|
||||
jr nz, .asm_8afa4
|
||||
ld b, $1
|
||||
|
||||
.asm_8afa4
|
||||
ld a, b
|
||||
ld [ScriptVar], a
|
||||
ret
|
||||
; 8afa9
|
||||
|
||||
MenuDataHeader_0x8afa9: ; 0x8afa9
|
||||
db $40 ; flags
|
||||
db 00, 00 ; start coords
|
||||
db 07, 10 ; end coords
|
||||
dw MenuData2_0x8afb2
|
||||
db 1 ; default option
|
||||
; 0x8afb1
|
||||
|
||||
db 0
|
||||
|
||||
MenuData2_0x8afb2: ; 0x8afb2
|
||||
db $81 ; flags
|
||||
db 0 ; items
|
||||
dw Unknown_8afb8
|
||||
dw Function8afbd
|
||||
; 0x8afb4
|
||||
|
||||
Unknown_8afb8: ; 8afb8
|
||||
db 3
|
||||
db 0, 1, 2
|
||||
db -1
|
||||
|
||||
Function8afbd: ; 8afbd
|
||||
push de
|
||||
ld a, [wBuenasPassword]
|
||||
and $f0
|
||||
ld c, a
|
||||
ld a, [MenuSelection]
|
||||
add c
|
||||
ld c, a
|
||||
callba GetBuenasPassword
|
||||
pop hl
|
||||
call PlaceString
|
||||
ret
|
||||
; 8afd4
|
||||
|
||||
SpecialBuenaPrize: ; 8afd4
|
||||
xor a
|
||||
ld [wd0e4], a
|
||||
ld a, $1
|
||||
ld [MenuSelection], a
|
||||
call Function8b0d6
|
||||
call Function8b090
|
||||
ld hl, UnknownText_0x8b072
|
||||
call PrintText
|
||||
jr .asm_8aff1
|
||||
|
||||
.asm_8afeb
|
||||
ld hl, UnknownText_0x8b072
|
||||
call Function105a
|
||||
|
||||
.asm_8aff1
|
||||
call DelayFrame
|
||||
call UpdateSprites
|
||||
call Function8b097
|
||||
call Function8b0e2
|
||||
jr z, .asm_8b05f
|
||||
ld [wcf75], a
|
||||
call Buena_getprize
|
||||
ld a, [hl]
|
||||
ld [wd265], a
|
||||
call GetItemName
|
||||
ld hl, UnknownText_0x8b077
|
||||
call Function105a
|
||||
call YesNoBox
|
||||
jr c, .asm_8afeb
|
||||
|
||||
ld a, [wcf75]
|
||||
call Buena_getprize
|
||||
inc hl
|
||||
ld a, [hld]
|
||||
ld c, a
|
||||
ld a, [wBlueCardBalance]
|
||||
cp c
|
||||
jr c, .InsufficientBalance
|
||||
|
||||
ld a, [hli]
|
||||
push hl
|
||||
ld [CurItem], a
|
||||
ld a, $1
|
||||
ld [wd10c], a
|
||||
ld hl, NumItems
|
||||
call ReceiveItem
|
||||
pop hl
|
||||
jr nc, .asm_8b04c
|
||||
ld a, [hl]
|
||||
ld c, a
|
||||
ld a, [wBlueCardBalance]
|
||||
sub c
|
||||
ld [wBlueCardBalance], a
|
||||
call Function8b097
|
||||
jr .asm_8b051
|
||||
|
||||
.InsufficientBalance
|
||||
ld hl, UnknownText_0x8b081
|
||||
jr .asm_8b05a
|
||||
|
||||
.asm_8b04c
|
||||
ld hl, UnknownText_0x8b086
|
||||
jr .asm_8b05a
|
||||
|
||||
.asm_8b051
|
||||
ld de, SFX_TRANSACTION
|
||||
call PlaySFX
|
||||
ld hl, UnknownText_0x8b07c
|
||||
|
||||
.asm_8b05a
|
||||
call Function105a
|
||||
jr .asm_8afeb
|
||||
|
||||
.asm_8b05f
|
||||
call WriteBackup
|
||||
call WriteBackup
|
||||
ld hl, UnknownText_0x8b08b
|
||||
call PrintText
|
||||
call JoyWaitAorB
|
||||
call PlayClickSFX
|
||||
ret
|
||||
; 8b072
|
||||
|
||||
UnknownText_0x8b072: ; 0x8b072
|
||||
; Which prize would you like?
|
||||
text_jump UnknownText_0x1c589f
|
||||
db "@"
|
||||
; 0x8b077
|
||||
|
||||
UnknownText_0x8b077: ; 0x8b077
|
||||
; ? Is that right?
|
||||
text_jump UnknownText_0x1c58bc
|
||||
db "@"
|
||||
; 0x8b07c
|
||||
|
||||
UnknownText_0x8b07c: ; 0x8b07c
|
||||
; Here you go!
|
||||
text_jump UnknownText_0x1c58d1
|
||||
db "@"
|
||||
; 0x8b081
|
||||
|
||||
UnknownText_0x8b081: ; 0x8b081
|
||||
; You don't have enough points.
|
||||
text_jump UnknownText_0x1c58e0
|
||||
db "@"
|
||||
; 0x8b086
|
||||
|
||||
UnknownText_0x8b086: ; 0x8b086
|
||||
; You have no room for it.
|
||||
text_jump UnknownText_0x1c58ff
|
||||
db "@"
|
||||
; 0x8b08b
|
||||
|
||||
UnknownText_0x8b08b: ; 0x8b08b
|
||||
; Oh. Please come back again!
|
||||
text_jump UnknownText_0x1c591a
|
||||
db "@"
|
||||
; 0x8b090
|
||||
|
||||
Function8b090: ; 8b090
|
||||
ld hl, MenuDataHeader_0x8b0d1
|
||||
call LoadMenuDataHeader
|
||||
ret
|
||||
; 8b097
|
||||
|
||||
Function8b097: ; 8b097
|
||||
ld de, wBlueCardBalance
|
||||
call Function8b09e
|
||||
ret
|
||||
; 8b09e
|
||||
|
||||
Function8b09e: ; 8b09e
|
||||
push de
|
||||
xor a
|
||||
ld [hBGMapMode], a
|
||||
ld hl, MenuDataHeader_0x8b0d1
|
||||
call CopyMenuDataHeader
|
||||
call Function1cbb
|
||||
call UpdateSprites
|
||||
call GetMemTileCoord
|
||||
ld bc, $0015
|
||||
add hl, bc
|
||||
ld de, .Points_string
|
||||
call PlaceString
|
||||
ld h, b
|
||||
ld l, c
|
||||
inc hl
|
||||
ld a, $7f
|
||||
ld [hli], a
|
||||
ld [hld], a
|
||||
pop de
|
||||
lb bc, 1, 2
|
||||
call PrintNum
|
||||
ret
|
||||
; 8b0ca
|
||||
|
||||
.Points_string:
|
||||
db "Points@"
|
||||
; 8b0d1
|
||||
|
||||
MenuDataHeader_0x8b0d1: ; 0x8b0d1
|
||||
db $40 ; flags
|
||||
db 11, 00 ; start coords
|
||||
db 13, 11 ; end coords
|
||||
; 8b0d6
|
||||
|
||||
Function8b0d6: ; 8b0d6
|
||||
ld hl, .menudataheader
|
||||
call LoadMenuDataHeader
|
||||
ret
|
||||
; 8b0dd
|
||||
|
||||
.menudataheader: ; 0x8b0dd
|
||||
db $40 ; flags
|
||||
db 00, 00 ; start coords
|
||||
db 11, 17 ; end coords
|
||||
; 8b0e2
|
||||
|
||||
Function8b0e2: ; 8b0e2
|
||||
ld hl, .MenuDataHeader
|
||||
call CopyMenuDataHeader
|
||||
ld a, [MenuSelection]
|
||||
ld [wPocketCursorBuffer], a
|
||||
xor a
|
||||
ld [wcf76], a
|
||||
ld [hBGMapMode], a
|
||||
call Function352f
|
||||
call UpdateSprites
|
||||
call Function350c
|
||||
ld a, [MenuSelection]
|
||||
ld c, a
|
||||
ld a, [wcfa9]
|
||||
ld [MenuSelection], a
|
||||
ld a, [wcf73]
|
||||
cp $2
|
||||
jr z, .asm_8b111
|
||||
ld a, c
|
||||
and a
|
||||
ret nz
|
||||
|
||||
.asm_8b111
|
||||
xor a
|
||||
ret
|
||||
; 8b113
|
||||
|
||||
.MenuDataHeader: ; 0x8b113
|
||||
db $40 ; flags
|
||||
db 01, 01 ; start coords
|
||||
db 09, 16 ; end coords
|
||||
dw .MenuData2
|
||||
db 1 ; default option
|
||||
; 0x8b11b
|
||||
|
||||
db 0
|
||||
|
||||
.MenuData2: ; 0x8b11c
|
||||
db $10 ; flags
|
||||
db 4 ; items
|
||||
db $d, $1
|
||||
dba .indices
|
||||
dba .prizeitem
|
||||
dba .prizepoints
|
||||
; 8b129
|
||||
|
||||
.indices: ; 8b129
|
||||
db 9
|
||||
db 1, 2, 3, 4, 5, 6, 7, 8, 9
|
||||
db -1
|
||||
; 8b134
|
||||
|
||||
.prizeitem: ; 8b134
|
||||
ld a, [MenuSelection]
|
||||
call Buena_getprize
|
||||
ld a, [hl]
|
||||
push de
|
||||
ld [wNamedObjectIndexBuffer], a
|
||||
call GetItemName
|
||||
pop hl
|
||||
call PlaceString
|
||||
ret
|
||||
; 8b147
|
||||
|
||||
.prizepoints: ; 8b147
|
||||
ld a, [MenuSelection]
|
||||
call Buena_getprize
|
||||
inc hl
|
||||
ld a, [hl]
|
||||
ld c, "0"
|
||||
add c
|
||||
ld [de], a
|
||||
ret
|
||||
; 8b154
|
||||
|
||||
Buena_getprize: ; 8b154
|
||||
dec a
|
||||
ld hl, .prizes
|
||||
ld b, 0
|
||||
ld c, a
|
||||
rept 2
|
||||
add hl, bc
|
||||
endr
|
||||
ret
|
||||
; 8b15e
|
||||
|
||||
.prizes: ; 8b15e
|
||||
db ULTRA_BALL, 2
|
||||
db FULL_RESTORE, 2
|
||||
db NUGGET, 3
|
||||
db RARE_CANDY, 3
|
||||
db PROTEIN, 5
|
||||
db IRON, 5
|
||||
db CARBOS, 5
|
||||
db CALCIUM, 5
|
||||
db HP_UP, 5
|
||||
; 8b170
|
||||
415
event/kurt.asm
Normal file
415
event/kurt.asm
Normal file
@@ -0,0 +1,415 @@
|
||||
Kurt_PrintTextWhichApricorn: ; 88000
|
||||
ld hl, UnknownText_0x88007
|
||||
call PrintText
|
||||
ret
|
||||
; 88007
|
||||
|
||||
UnknownText_0x88007: ; 0x88007
|
||||
; Which APRICORN should I use?
|
||||
text_jump UnknownText_0x1bc06b
|
||||
db "@"
|
||||
; 0x8800c
|
||||
|
||||
Kurt_PrintTextHowMany: ; 8800c
|
||||
ld hl, UnknownText_0x88013
|
||||
call PrintText
|
||||
ret
|
||||
; 88013
|
||||
|
||||
UnknownText_0x88013: ; 0x88013
|
||||
; How many should I make?
|
||||
text_jump UnknownText_0x1bc089
|
||||
db "@"
|
||||
; 0x88018
|
||||
|
||||
Special_SelectApricornForKurt: ; 88018
|
||||
call LoadMenuDataHeader_0x1d75
|
||||
ld c, $1
|
||||
xor a
|
||||
ld [wd0e4], a
|
||||
ld [wKurtApricornQuantity], a
|
||||
.loop
|
||||
push bc
|
||||
call Kurt_PrintTextWhichApricorn
|
||||
pop bc
|
||||
ld a, c
|
||||
ld [MenuSelection], a
|
||||
call Kurt_SelectApricorn
|
||||
ld a, c
|
||||
ld [ScriptVar], a
|
||||
and a
|
||||
jr z, .done
|
||||
ld [CurItem], a
|
||||
ld a, [wcfa9]
|
||||
ld c, a
|
||||
push bc
|
||||
call Kurt_PrintTextHowMany
|
||||
call Kurt_SelectQuantity
|
||||
pop bc
|
||||
jr nc, .loop
|
||||
ld a, [wd10c]
|
||||
ld [wKurtApricornQuantity], a
|
||||
call Kurt_GiveUpSelectedQuantityOfSelectedApricorn
|
||||
|
||||
.done
|
||||
call Call_ExitMenu
|
||||
ret
|
||||
; 88055
|
||||
|
||||
Kurt_SelectApricorn: ; 88055
|
||||
callba FindApricornsInBag
|
||||
jr c, .nope
|
||||
ld hl, .MenuDataHeader
|
||||
call CopyMenuDataHeader
|
||||
ld a, [MenuSelection]
|
||||
ld [wPocketCursorBuffer], a
|
||||
xor a
|
||||
ld [hBGMapMode], a
|
||||
call Function352f
|
||||
call UpdateSprites
|
||||
call Function350c
|
||||
ld a, [wcf73]
|
||||
cp $2
|
||||
jr z, .nope
|
||||
ld a, [MenuSelection]
|
||||
cp -1
|
||||
jr nz, .done
|
||||
|
||||
.nope
|
||||
xor a
|
||||
|
||||
.done
|
||||
ld c, a
|
||||
ret
|
||||
; 88086
|
||||
|
||||
.MenuDataHeader: ; 0x88086
|
||||
db $40 ; flags
|
||||
db 01, 01 ; start coords
|
||||
db 10, 13 ; end coords
|
||||
dw .MenuData2
|
||||
db 1 ; default option
|
||||
; 0x8808e
|
||||
|
||||
db 0
|
||||
|
||||
.MenuData2: ; 0x8808f
|
||||
db $10 ; flags
|
||||
db 4, 7
|
||||
db 1
|
||||
dbw 0, Buffer1
|
||||
dbw BANK(.Name), .Name
|
||||
dbw BANK(.Quantity), .Quantity
|
||||
dbw BANK(NULL), NULL
|
||||
|
||||
.Name: ; 8809f
|
||||
ld a, [MenuSelection]
|
||||
and a
|
||||
ret z
|
||||
callba PlaceMenuItemName
|
||||
ret
|
||||
; 880ab
|
||||
|
||||
.Quantity: ; 880ab
|
||||
ld a, [MenuSelection]
|
||||
ld [CurItem], a
|
||||
call Kurt_GetQuantityOfApricorn
|
||||
ret z
|
||||
ld a, [wd10c]
|
||||
ld [wcf75], a
|
||||
callba PlaceMenuItemQuantity
|
||||
ret
|
||||
; 880c2
|
||||
|
||||
Kurt_SelectQuantity: ; 880c2
|
||||
ld a, [CurItem]
|
||||
ld [MenuSelection], a
|
||||
call Kurt_GetQuantityOfApricorn
|
||||
jr z, .done
|
||||
ld a, [wd10c]
|
||||
ld [wd10d], a
|
||||
ld a, $1
|
||||
ld [wd10c], a
|
||||
ld hl, .MenuDataHeader
|
||||
call LoadMenuDataHeader
|
||||
.loop
|
||||
xor a
|
||||
ld [hBGMapMode], a
|
||||
call Function1cbb
|
||||
call UpdateSprites
|
||||
call .PlaceApricornName
|
||||
call PlaceApricornQuantity
|
||||
call Function321c
|
||||
callba Function27a28
|
||||
jr nc, .loop
|
||||
|
||||
push bc
|
||||
call PlayClickSFX
|
||||
pop bc
|
||||
ld a, b
|
||||
cp -1
|
||||
jr z, .done
|
||||
ld a, [wd10c]
|
||||
ld [wd10c], a ; What is the point of this operation?
|
||||
scf
|
||||
|
||||
.done
|
||||
call WriteBackup
|
||||
ret
|
||||
; 8810d
|
||||
|
||||
.MenuDataHeader: ; 0x8810d
|
||||
db $40 ; flags
|
||||
db 09, 06 ; start coords
|
||||
db 12, 19 ; end coords
|
||||
|
||||
db 0, 0, -1, 0 ; XXX
|
||||
|
||||
.PlaceApricornName: ; 88116
|
||||
call GetMemTileCoord
|
||||
ld de, $0015
|
||||
add hl, de
|
||||
ld d, h
|
||||
ld e, l
|
||||
callba PlaceMenuItemName
|
||||
ret
|
||||
; 88126
|
||||
|
||||
PlaceApricornQuantity: ; 88126
|
||||
call GetMemTileCoord
|
||||
ld de, $0032
|
||||
add hl, de
|
||||
ld [hl], "×"
|
||||
inc hl
|
||||
ld de, wd10c
|
||||
lb bc, PRINTNUM_LEADINGZEROS | 1, 2
|
||||
jp PrintNum
|
||||
; 88139
|
||||
|
||||
Kurt_GetQuantityOfApricorn: ; 88139
|
||||
push bc
|
||||
ld hl, NumItems
|
||||
ld a, [CurItem]
|
||||
ld c, a
|
||||
ld b, $0
|
||||
.loop
|
||||
inc hl
|
||||
ld a, [hli]
|
||||
cp -1
|
||||
jr z, .done
|
||||
cp c
|
||||
jr nz, .loop
|
||||
ld a, [hl]
|
||||
add b
|
||||
ld b, a
|
||||
jr nc, .loop
|
||||
ld b, -1
|
||||
|
||||
.done
|
||||
ld a, b
|
||||
sub 99
|
||||
jr c, .done2
|
||||
ld b, 99
|
||||
|
||||
.done2
|
||||
ld a, b
|
||||
ld [wd10c], a
|
||||
and a
|
||||
pop bc
|
||||
ret
|
||||
; 88161
|
||||
|
||||
Kurt_GiveUpSelectedQuantityOfSelectedApricorn: ; 88161
|
||||
; Get the quantity of Apricorns of type [CurItem]
|
||||
; in the bag. Compatible with multiple stacks.
|
||||
|
||||
; Initialize the search.
|
||||
push de
|
||||
push bc
|
||||
ld hl, NumItems
|
||||
ld a, [CurItem]
|
||||
ld c, a
|
||||
ld e, $0
|
||||
xor a
|
||||
ld [ItemCountBuffer], a
|
||||
ld a, -1
|
||||
ld [MiscBuffer2], a
|
||||
|
||||
; Search for [CurItem] in the bag.
|
||||
.loop1
|
||||
; Increase the total count.
|
||||
ld a, [ItemCountBuffer]
|
||||
inc a
|
||||
ld [ItemCountBuffer], a
|
||||
; Get the index of the next item.
|
||||
inc hl
|
||||
ld a, [hli]
|
||||
; If we've reached the end of the pocket, break.
|
||||
cp -1
|
||||
jr z, .okay1
|
||||
; If we haven't found what we're looking for, continue.
|
||||
cp c
|
||||
jr nz, .loop1
|
||||
; Increment the result counter and store the bag index of the match.
|
||||
ld d, $0
|
||||
push hl
|
||||
ld hl, MiscBuffer2
|
||||
add hl, de
|
||||
inc e
|
||||
ld a, [ItemCountBuffer]
|
||||
dec a
|
||||
ld [hli], a
|
||||
ld a, -1
|
||||
ld [hl], a
|
||||
pop hl
|
||||
jr .loop1
|
||||
|
||||
.okay1
|
||||
; How many stacks have we found?
|
||||
ld a, e
|
||||
and a
|
||||
jr z, .done
|
||||
dec a
|
||||
jr z, .OnlyOne
|
||||
ld hl, MiscBuffer2
|
||||
|
||||
.loop2
|
||||
ld a, [hl]
|
||||
ld c, a
|
||||
push hl
|
||||
.loop3
|
||||
inc hl
|
||||
ld a, [hl]
|
||||
cp -1
|
||||
jr z, .okay2
|
||||
ld b, a
|
||||
ld a, c
|
||||
call Kurt_GetAddressOfApricornQuantity
|
||||
ld e, a
|
||||
ld a, b
|
||||
call Kurt_GetAddressOfApricornQuantity
|
||||
sub e
|
||||
jr z, .equal
|
||||
jr c, .less
|
||||
jr .loop3
|
||||
|
||||
.equal
|
||||
ld a, c
|
||||
sub b
|
||||
jr nc, .loop3
|
||||
|
||||
.less
|
||||
ld a, c
|
||||
ld c, b
|
||||
ld [hl], a
|
||||
ld a, c
|
||||
pop hl
|
||||
ld [hl], a
|
||||
push hl
|
||||
jr .loop3
|
||||
|
||||
.okay2
|
||||
pop hl
|
||||
inc hl
|
||||
ld a, [hl]
|
||||
cp -1
|
||||
jr nz, .loop2
|
||||
|
||||
.OnlyOne
|
||||
ld hl, MiscBuffer2
|
||||
.loop4
|
||||
ld a, [hl]
|
||||
cp -1
|
||||
jr z, .done
|
||||
push hl
|
||||
ld [ItemCountBuffer], a
|
||||
call Kurt_GetRidOfItem
|
||||
pop hl
|
||||
ld a, [wd10c]
|
||||
and a
|
||||
jr z, .done
|
||||
push hl
|
||||
ld a, [hli]
|
||||
ld c, a
|
||||
.loop5
|
||||
ld a, [hli]
|
||||
cp -1
|
||||
jr z, .okay3
|
||||
cp c
|
||||
jr c, .loop5
|
||||
dec a
|
||||
dec hl
|
||||
ld [hli], a
|
||||
jr .loop5
|
||||
|
||||
.okay3
|
||||
pop hl
|
||||
inc hl
|
||||
jr .loop4
|
||||
|
||||
.done
|
||||
ld a, [wd10c]
|
||||
and a
|
||||
pop bc
|
||||
pop de
|
||||
ret
|
||||
; 88201
|
||||
|
||||
Kurt_GetAddressOfApricornQuantity: ; 88201
|
||||
push hl
|
||||
push bc
|
||||
ld hl, NumItems
|
||||
inc hl
|
||||
ld c, a
|
||||
ld b, $0
|
||||
rept 2
|
||||
add hl, bc
|
||||
endr
|
||||
inc hl
|
||||
ld a, [hl]
|
||||
pop bc
|
||||
pop hl
|
||||
ret
|
||||
; 88211
|
||||
|
||||
Kurt_GetRidOfItem: ; 88211
|
||||
push bc
|
||||
ld hl, NumItems
|
||||
ld a, [ItemCountBuffer]
|
||||
ld c, a
|
||||
ld b, $0
|
||||
inc hl
|
||||
rept 2
|
||||
add hl, bc
|
||||
endr
|
||||
ld a, [CurItem]
|
||||
ld c, a
|
||||
ld a, [hli]
|
||||
cp -1
|
||||
jr z, .done
|
||||
cp c
|
||||
jr nz, .done
|
||||
ld a, [wd10c]
|
||||
ld c, a
|
||||
ld a, [hl]
|
||||
sub c
|
||||
ld b, c
|
||||
jr nc, .okay
|
||||
add c
|
||||
ld b, a
|
||||
|
||||
.okay
|
||||
push bc
|
||||
ld hl, NumItems
|
||||
ld a, b
|
||||
ld [wd10c], a
|
||||
call TossItem
|
||||
pop bc
|
||||
ld a, c
|
||||
sub b
|
||||
|
||||
.done
|
||||
ld [wd10c], a
|
||||
pop bc
|
||||
ret
|
||||
; 88248
|
||||
180
event/mom.asm
180
event/mom.asm
@@ -1,12 +1,12 @@
|
||||
Special_BankOfMom: ; 16218
|
||||
ld a, [$ffaa]
|
||||
ld a, [hInMenu]
|
||||
push af
|
||||
ld a, $1
|
||||
ld [$ffaa], a
|
||||
ld [hInMenu], a
|
||||
xor a
|
||||
ld [wcf63], a
|
||||
ld [wJumptableIndex], a
|
||||
.asm_16223
|
||||
ld a, [wcf63]
|
||||
ld a, [wJumptableIndex]
|
||||
bit 7, a
|
||||
jr nz, .asm_1622f
|
||||
call Function16233
|
||||
@@ -14,15 +14,15 @@ Special_BankOfMom: ; 16218
|
||||
|
||||
.asm_1622f
|
||||
pop af
|
||||
ld [$ffaa], a
|
||||
ld [hInMenu], a
|
||||
ret
|
||||
; 16233
|
||||
|
||||
Function16233: ; 16233
|
||||
ld a, [wcf63]
|
||||
ld a, [wJumptableIndex]
|
||||
ld e, a
|
||||
ld d, 0
|
||||
ld hl, Jumptable_16242
|
||||
ld hl, .jumptable
|
||||
rept 2
|
||||
add hl, de
|
||||
endr
|
||||
@@ -32,75 +32,75 @@ endr
|
||||
jp [hl]
|
||||
; 16242
|
||||
|
||||
Jumptable_16242: ; 16242
|
||||
dw Function16254
|
||||
dw Function1626a
|
||||
dw Function16290
|
||||
dw Function162a8
|
||||
dw Function162e0
|
||||
dw Function16373
|
||||
dw Function16406
|
||||
dw Function1642d
|
||||
dw Function16433
|
||||
.jumptable: ; 16242
|
||||
dw .CheckIfBankInitialized
|
||||
dw .InitializeBank
|
||||
dw .IsThisAboutYourMoney
|
||||
dw .AccessBankOfMom
|
||||
dw .StoreMoney
|
||||
dw .TakeMoney
|
||||
dw .StopOrStartSavingMoney
|
||||
dw .AskDST
|
||||
dw .JustDoWhatYouCan
|
||||
; 16254
|
||||
|
||||
Function16254: ; 16254
|
||||
ld a, [wd854]
|
||||
.CheckIfBankInitialized: ; 16254
|
||||
ld a, [wBankOfMomMode]
|
||||
bit 7, a
|
||||
jr nz, .asm_16264
|
||||
jr nz, .savingmoneyalready
|
||||
set 7, a
|
||||
ld [wd854], a
|
||||
ld [wBankOfMomMode], a
|
||||
ld a, $1
|
||||
jr .asm_16266
|
||||
jr .done_0
|
||||
|
||||
.asm_16264
|
||||
.savingmoneyalready
|
||||
ld a, $2
|
||||
|
||||
.asm_16266
|
||||
ld [wcf63], a
|
||||
.done_0
|
||||
ld [wJumptableIndex], a
|
||||
ret
|
||||
; 1626a
|
||||
|
||||
Function1626a: ; 1626a
|
||||
.InitializeBank: ; 1626a
|
||||
ld hl, UnknownText_0x16649
|
||||
call PrintText
|
||||
call YesNoBox
|
||||
jr c, .asm_1627f
|
||||
jr c, .DontSaveMoney
|
||||
ld hl, UnknownText_0x1664e
|
||||
call PrintText
|
||||
ld a, $81
|
||||
jr .asm_16281
|
||||
ld a, %10000001
|
||||
jr .done_1
|
||||
|
||||
.asm_1627f
|
||||
ld a, $80
|
||||
.DontSaveMoney
|
||||
ld a, %10000000
|
||||
|
||||
.asm_16281
|
||||
ld [wd854], a
|
||||
.done_1
|
||||
ld [wBankOfMomMode], a
|
||||
ld hl, UnknownText_0x16653
|
||||
call PrintText
|
||||
ld a, $8
|
||||
ld [wcf63], a
|
||||
ld [wJumptableIndex], a
|
||||
ret
|
||||
; 16290
|
||||
|
||||
Function16290: ; 16290
|
||||
.IsThisAboutYourMoney: ; 16290
|
||||
ld hl, UnknownText_0x16658
|
||||
call PrintText
|
||||
call YesNoBox
|
||||
jr c, .asm_1629f
|
||||
jr c, .nope
|
||||
ld a, $3
|
||||
jr .asm_162a4
|
||||
jr .done_2
|
||||
|
||||
.asm_1629f
|
||||
.nope
|
||||
call DSTChecks
|
||||
ld a, $7
|
||||
|
||||
.asm_162a4
|
||||
ld [wcf63], a
|
||||
.done_2
|
||||
ld [wJumptableIndex], a
|
||||
ret
|
||||
; 162a8
|
||||
|
||||
Function162a8: ; 162a8
|
||||
.AccessBankOfMom: ; 162a8
|
||||
ld hl, UnknownText_0x1665d
|
||||
call PrintText
|
||||
call LoadMenuDataHeader_0x1d75
|
||||
@@ -108,36 +108,36 @@ Function162a8: ; 162a8
|
||||
call CopyMenuDataHeader
|
||||
call InterpretMenu2
|
||||
call WriteBackup
|
||||
jr c, .asm_162ce
|
||||
jr c, .cancel
|
||||
ld a, [wcfa9]
|
||||
cp $1
|
||||
jr z, .asm_162d2
|
||||
jr z, .withdraw
|
||||
cp $2
|
||||
jr z, .asm_162d6
|
||||
jr z, .deposit
|
||||
cp $3
|
||||
jr z, .asm_162da
|
||||
jr z, .stopsaving
|
||||
|
||||
.asm_162ce
|
||||
.cancel
|
||||
ld a, $7
|
||||
jr .asm_162dc
|
||||
jr .done_3
|
||||
|
||||
.asm_162d2
|
||||
.withdraw
|
||||
ld a, $5
|
||||
jr .asm_162dc
|
||||
jr .done_3
|
||||
|
||||
.asm_162d6
|
||||
.deposit
|
||||
ld a, $4
|
||||
jr .asm_162dc
|
||||
jr .done_3
|
||||
|
||||
.asm_162da
|
||||
.stopsaving
|
||||
ld a, $6
|
||||
|
||||
.asm_162dc
|
||||
ld [wcf63], a
|
||||
.done_3
|
||||
ld [wJumptableIndex], a
|
||||
ret
|
||||
; 162e0
|
||||
|
||||
Function162e0: ; 162e0
|
||||
.StoreMoney: ; 162e0
|
||||
ld hl, UnknownText_0x16662
|
||||
call PrintText
|
||||
xor a
|
||||
@@ -153,31 +153,31 @@ endr
|
||||
call Function1656b
|
||||
call Function16571
|
||||
call WriteBackup
|
||||
jr c, .asm_1636d
|
||||
jr c, .CancelDeposit
|
||||
ld hl, StringBuffer2
|
||||
ld a, [hli]
|
||||
or [hl]
|
||||
inc hl
|
||||
or [hl]
|
||||
jr z, .asm_1636d
|
||||
jr z, .CancelDeposit
|
||||
ld de, Money
|
||||
ld bc, StringBuffer2
|
||||
callba CheckMoney
|
||||
jr c, .asm_1635f
|
||||
jr c, .DontHaveThatMuchToDeposit
|
||||
ld hl, StringBuffer2
|
||||
ld de, StringBuffer2 + 3
|
||||
ld bc, $0003
|
||||
ld bc, 3
|
||||
call CopyBytes
|
||||
ld bc, wd851
|
||||
ld de, StringBuffer2
|
||||
callba GiveMoney
|
||||
jr c, .asm_16366
|
||||
jr c, .CantDepositThatMuch
|
||||
ld bc, StringBuffer2 + 3
|
||||
ld de, Money
|
||||
callba TakeMoney
|
||||
ld hl, StringBuffer2
|
||||
ld de, wd851
|
||||
ld bc, $0003
|
||||
ld bc, 3
|
||||
call CopyBytes
|
||||
ld de, SFX_TRANSACTION
|
||||
call PlaySFX
|
||||
@@ -185,27 +185,27 @@ endr
|
||||
ld hl, UnknownText_0x1668a
|
||||
call PrintText
|
||||
ld a, $8
|
||||
jr .asm_1636f
|
||||
jr .done_4
|
||||
|
||||
.asm_1635f
|
||||
.DontHaveThatMuchToDeposit
|
||||
ld hl, UnknownText_0x1667b
|
||||
call PrintText
|
||||
ret
|
||||
|
||||
.asm_16366
|
||||
.CantDepositThatMuch
|
||||
ld hl, UnknownText_0x16680
|
||||
call PrintText
|
||||
ret
|
||||
|
||||
.asm_1636d
|
||||
.CancelDeposit
|
||||
ld a, $7
|
||||
|
||||
.asm_1636f
|
||||
ld [wcf63], a
|
||||
.done_4
|
||||
ld [wJumptableIndex], a
|
||||
ret
|
||||
; 16373
|
||||
|
||||
Function16373: ; 16373
|
||||
.TakeMoney: ; 16373
|
||||
ld hl, UnknownText_0x16667
|
||||
call PrintText
|
||||
xor a
|
||||
@@ -221,13 +221,13 @@ endr
|
||||
call Function1656b
|
||||
call Function16571
|
||||
call WriteBackup
|
||||
jr c, .asm_16400
|
||||
jr c, .CancelWithdraw
|
||||
ld hl, StringBuffer2
|
||||
ld a, [hli]
|
||||
or [hl]
|
||||
inc hl
|
||||
or [hl]
|
||||
jr z, .asm_16400
|
||||
jr z, .CancelWithdraw
|
||||
ld hl, StringBuffer2
|
||||
ld de, StringBuffer2 + 3
|
||||
ld bc, 3
|
||||
@@ -235,11 +235,11 @@ endr
|
||||
ld de, wd851
|
||||
ld bc, StringBuffer2
|
||||
callba CheckMoney
|
||||
jr c, .asm_163f2
|
||||
jr c, .InsufficientFundsInBank
|
||||
ld bc, Money
|
||||
ld de, StringBuffer2
|
||||
callba GiveMoney
|
||||
jr c, .asm_163f9
|
||||
jr c, .NotEnoughRoomInWallet
|
||||
ld bc, StringBuffer2 + 3
|
||||
ld de, wd851
|
||||
callba TakeMoney
|
||||
@@ -253,53 +253,53 @@ endr
|
||||
ld hl, UnknownText_0x1668f
|
||||
call PrintText
|
||||
ld a, $8
|
||||
jr .asm_16402
|
||||
jr .done_5
|
||||
|
||||
.asm_163f2
|
||||
.InsufficientFundsInBank
|
||||
ld hl, UnknownText_0x16671
|
||||
call PrintText
|
||||
ret
|
||||
|
||||
.asm_163f9
|
||||
.NotEnoughRoomInWallet
|
||||
ld hl, UnknownText_0x16676
|
||||
call PrintText
|
||||
ret
|
||||
|
||||
.asm_16400
|
||||
ld a, 7
|
||||
.CancelWithdraw
|
||||
ld a, $7
|
||||
|
||||
.asm_16402
|
||||
ld [wcf63], a
|
||||
.done_5
|
||||
ld [wJumptableIndex], a
|
||||
ret
|
||||
; 16406
|
||||
|
||||
Function16406: ; 16406
|
||||
.StopOrStartSavingMoney: ; 16406
|
||||
ld hl, UnknownText_0x1666c
|
||||
call PrintText
|
||||
call YesNoBox
|
||||
jr c, .asm_16422
|
||||
jr c, .StopSavingMoney
|
||||
ld a, $81
|
||||
ld [wd854], a
|
||||
ld [wBankOfMomMode], a
|
||||
ld hl, UnknownText_0x16685
|
||||
call PrintText
|
||||
ld a, $8
|
||||
ld [wcf63], a
|
||||
ld [wJumptableIndex], a
|
||||
ret
|
||||
|
||||
.asm_16422
|
||||
.StopSavingMoney
|
||||
ld a, $80
|
||||
ld [wd854], a
|
||||
ld [wBankOfMomMode], a
|
||||
ld a, $7
|
||||
ld [wcf63], a
|
||||
ld [wJumptableIndex], a
|
||||
ret
|
||||
; 1642d
|
||||
|
||||
Function1642d: ; 1642d
|
||||
.AskDST: ; 1642d
|
||||
ld hl, UnknownText_0x16694
|
||||
call PrintText
|
||||
|
||||
Function16433: ; 16433
|
||||
ld hl, wcf63
|
||||
.JustDoWhatYouCan: ; 16433
|
||||
ld hl, wJumptableIndex
|
||||
set 7, [hl]
|
||||
ret
|
||||
; 16439
|
||||
@@ -491,7 +491,7 @@ Function1656b: ; 1656b
|
||||
|
||||
Function16571: ; 16571
|
||||
.loop
|
||||
call Functiona57
|
||||
call JoyTextDelay
|
||||
ld hl, hJoyPressed
|
||||
ld a, [hl]
|
||||
and B_BUTTON
|
||||
|
||||
@@ -11,7 +11,7 @@ SEER_LEVEL_ONLY EQU 7
|
||||
SpecialPokeSeer: ; 4f0bc
|
||||
ld a, SEER_INTRO
|
||||
call PrintSeerText
|
||||
call Functiona36
|
||||
call JoyWaitAorB
|
||||
|
||||
ld b, $6
|
||||
callba SelectMonFromParty
|
||||
|
||||
300
event/unown.asm
Normal file
300
event/unown.asm
Normal file
@@ -0,0 +1,300 @@
|
||||
|
||||
|
||||
SpecialHoOhChamber: ; 0x8addb
|
||||
ld hl, PartySpecies
|
||||
ld a, [hl]
|
||||
cp HO_OH ; is Ho-oh the first Pokémon in the party?
|
||||
jr nz, .done ; if not, we're done
|
||||
call GetSecondaryMapHeaderPointer
|
||||
ld de, EVENT_WALL_OPENED_IN_HO_OH_CHAMBER
|
||||
ld b, SET_FLAG
|
||||
call EventFlagAction
|
||||
.done
|
||||
ret
|
||||
; 0x8adef
|
||||
|
||||
SpecialOmanyteChamber: ; 8adef
|
||||
call GetSecondaryMapHeaderPointer
|
||||
ld de, EVENT_WALL_OPENED_IN_OMANYTE_CHAMBER
|
||||
ld b, CHECK_FLAG
|
||||
call EventFlagAction
|
||||
ld a, c
|
||||
and a
|
||||
jr nz, .nope
|
||||
|
||||
ld a, WATER_STONE
|
||||
ld [CurItem], a
|
||||
ld hl, NumItems
|
||||
call CheckItem
|
||||
jr c, .open
|
||||
|
||||
ld a, [PartyCount]
|
||||
ld b, a
|
||||
inc b
|
||||
.loop
|
||||
dec b
|
||||
jr z, .nope
|
||||
ld a, b
|
||||
dec a
|
||||
ld [CurPartyMon], a
|
||||
push bc
|
||||
ld a, PartyMon1Item - PartyMon1
|
||||
call GetPartyParamLocation
|
||||
pop bc
|
||||
ld a, [hl]
|
||||
cp WATER_STONE
|
||||
jr nz, .loop
|
||||
|
||||
.open
|
||||
call GetSecondaryMapHeaderPointer
|
||||
ld de, EVENT_WALL_OPENED_IN_OMANYTE_CHAMBER
|
||||
ld b, SET_FLAG
|
||||
call EventFlagAction
|
||||
|
||||
.nope
|
||||
ret
|
||||
; 8ae30
|
||||
|
||||
SpecialAerodactylChamber: ; 8ae30
|
||||
push de
|
||||
push bc
|
||||
|
||||
call GetSecondaryMapHeaderPointer
|
||||
ld a, h
|
||||
cp RuinsofAlphAerodactylChamber_SecondMapHeader / $100
|
||||
jr nz, .nope
|
||||
ld a, l
|
||||
cp RuinsofAlphAerodactylChamber_SecondMapHeader % $100
|
||||
jr nz, .nope
|
||||
|
||||
ld de, EVENT_WALL_OPENED_IN_AERODACTYL_CHAMBER
|
||||
ld b, SET_FLAG
|
||||
call EventFlagAction
|
||||
|
||||
scf
|
||||
jr .done
|
||||
|
||||
.nope
|
||||
and a
|
||||
|
||||
.done
|
||||
pop bc
|
||||
pop de
|
||||
ret
|
||||
; 8ae4e
|
||||
|
||||
SpecialKabutoChamber: ; 8ae4e
|
||||
push hl
|
||||
push de
|
||||
|
||||
call GetSecondaryMapHeaderPointer
|
||||
ld a, h
|
||||
cp RuinsofAlphKabutoChamber_SecondMapHeader / $100
|
||||
jr nz, .done
|
||||
ld a, l
|
||||
cp RuinsofAlphKabutoChamber_SecondMapHeader % $100
|
||||
jr nz, .done
|
||||
|
||||
ld de, EVENT_WALL_OPENED_IN_KABUTO_CHAMBER
|
||||
ld b, SET_FLAG
|
||||
call EventFlagAction
|
||||
|
||||
.done
|
||||
pop de
|
||||
pop hl
|
||||
ret
|
||||
; 8ae68
|
||||
|
||||
Special_DisplayUnownWords: ; 8ae68
|
||||
ld a, [ScriptVar]
|
||||
ld hl, MenuDataHeader_0x8aed5
|
||||
and a
|
||||
jr z, .asm_8ae79
|
||||
|
||||
ld d, $0
|
||||
ld e, $5
|
||||
.asm_8ae75
|
||||
add hl, de
|
||||
dec a
|
||||
jr nz, .asm_8ae75
|
||||
|
||||
.asm_8ae79
|
||||
call LoadMenuDataHeader
|
||||
xor a
|
||||
ld [hBGMapMode], a
|
||||
call Function1cbb
|
||||
call UpdateSprites
|
||||
call Function321c
|
||||
call GetMemTileCoord
|
||||
inc hl
|
||||
ld d, $0
|
||||
ld e, $14
|
||||
rept 2
|
||||
add hl, de
|
||||
endr
|
||||
ld a, [ScriptVar]
|
||||
ld c, a
|
||||
ld de, Unknown_8aebc
|
||||
and a
|
||||
jr z, .asm_8aea5
|
||||
.asm_8ae9c
|
||||
ld a, [de]
|
||||
inc de
|
||||
cp $ff
|
||||
jr nz, .asm_8ae9c
|
||||
dec c
|
||||
jr nz, .asm_8ae9c
|
||||
|
||||
.asm_8aea5
|
||||
call Function8af09
|
||||
ld bc, AttrMap - TileMap
|
||||
add hl, bc
|
||||
call Function8aee9
|
||||
call Function3200
|
||||
call JoyWaitAorB
|
||||
call PlayClickSFX
|
||||
call WriteBackup
|
||||
ret
|
||||
; 8aebc
|
||||
|
||||
Unknown_8aebc: ; 8aebc
|
||||
db $08, $44, $04, $00, $2e, $08, $ff
|
||||
db $26, $20, $0c, $0e, $46, $ff
|
||||
db $4c, $00, $46, $08, $42, $ff
|
||||
db $0e, $2c, $64, $2c, $0e, $ff
|
||||
; 8aed5
|
||||
|
||||
MenuDataHeader_0x8aed5: ; 0x8aed5
|
||||
db $40 ; flags
|
||||
db 04, 03 ; start coords
|
||||
db 09, 16 ; end coords
|
||||
|
||||
MenuDataHeader_0x8aeda: ; 0x8aeda
|
||||
db $40 ; flags
|
||||
db 04, 04 ; start coords
|
||||
db 09, 15 ; end coords
|
||||
|
||||
MenuDataHeader_0x8aedf: ; 0x8aedf
|
||||
db $40 ; flags
|
||||
db 04, 04 ; start coords
|
||||
db 09, 15 ; end coords
|
||||
|
||||
MenuDataHeader_0x8aee4: ; 0x8aee4
|
||||
db $40 ; flags
|
||||
db 04, 04 ; start coords
|
||||
db 09, 15 ; end coords
|
||||
; 8aee9
|
||||
|
||||
Function8aee9: ; 8aee9
|
||||
.asm_8aee9
|
||||
ld a, [de]
|
||||
cp $ff
|
||||
ret z
|
||||
cp $60
|
||||
ld a, $d
|
||||
jr c, .asm_8aef5
|
||||
ld a, $5
|
||||
|
||||
.asm_8aef5
|
||||
call Function8aefd
|
||||
rept 2
|
||||
inc hl
|
||||
endr
|
||||
inc de
|
||||
jr .asm_8aee9
|
||||
; 8aefd
|
||||
|
||||
Function8aefd: ; 8aefd
|
||||
push hl
|
||||
ld [hli], a
|
||||
ld [hld], a
|
||||
ld b, $0
|
||||
ld c, $14
|
||||
add hl, bc
|
||||
ld [hli], a
|
||||
ld [hl], a
|
||||
pop hl
|
||||
ret
|
||||
; 8af09
|
||||
|
||||
Function8af09: ; 8af09
|
||||
push hl
|
||||
push de
|
||||
.asm_8af0b
|
||||
ld a, [de]
|
||||
cp $ff
|
||||
jr z, .asm_8af19
|
||||
ld c, a
|
||||
call Function8af1c
|
||||
rept 2
|
||||
inc hl
|
||||
endr
|
||||
inc de
|
||||
jr .asm_8af0b
|
||||
|
||||
.asm_8af19
|
||||
pop de
|
||||
pop hl
|
||||
ret
|
||||
; 8af1c
|
||||
|
||||
Function8af1c: ; 8af1c
|
||||
push hl
|
||||
ld a, c
|
||||
cp $60
|
||||
jr z, .asm_8af3b
|
||||
cp $62
|
||||
jr z, .asm_8af4b
|
||||
cp $64
|
||||
jr z, .asm_8af5b
|
||||
ld [hli], a
|
||||
inc a
|
||||
ld [hld], a
|
||||
dec a
|
||||
ld b, $0
|
||||
ld c, $14
|
||||
add hl, bc
|
||||
ld c, $10
|
||||
add c
|
||||
ld [hli], a
|
||||
inc a
|
||||
ld [hl], a
|
||||
pop hl
|
||||
ret
|
||||
|
||||
.asm_8af3b
|
||||
ld [hl], $5b
|
||||
inc hl
|
||||
ld [hl], $5c
|
||||
ld bc, $0013
|
||||
add hl, bc
|
||||
ld [hl], $4d
|
||||
inc hl
|
||||
ld [hl], $5d
|
||||
pop hl
|
||||
ret
|
||||
|
||||
.asm_8af4b
|
||||
ld [hl], $4e
|
||||
inc hl
|
||||
ld [hl], $4f
|
||||
ld bc, $0013
|
||||
add hl, bc
|
||||
ld [hl], $5e
|
||||
inc hl
|
||||
ld [hl], $5f
|
||||
pop hl
|
||||
ret
|
||||
|
||||
.asm_8af5b
|
||||
ld [hl], $2
|
||||
inc hl
|
||||
ld [hl], $3
|
||||
ld bc, $0013
|
||||
add hl, bc
|
||||
ld [hl], $3
|
||||
inc hl
|
||||
ld [hl], $2
|
||||
pop hl
|
||||
ret
|
||||
; 8af6b
|
||||
Reference in New Issue
Block a user