You've already forked pokecrystal-board
mirror of
https://gitlab.com/xCrystal/pokecrystal-board.git
synced 2025-09-08 08:13:02 -07:00
Split up bank 2; other relabelings
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 JumbText_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
|
||||
|
||||
JumbText_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
|
||||
339
event/buena.asm
Normal file
339
event/buena.asm
Normal file
@@ -0,0 +1,339 @@
|
||||
SpecialBuenasPassword: ; 8af6b
|
||||
xor a
|
||||
ld [wcf76], a
|
||||
ld hl, MenuDataHeader_0x8afa9
|
||||
call CopyMenuDataHeader
|
||||
ld a, [wdc4a]
|
||||
ld c, a
|
||||
callba GetBuenasPassword
|
||||
ld a, [wcf83]
|
||||
add c
|
||||
add $2
|
||||
ld [wcf85], a
|
||||
call Function1c00
|
||||
call Function1e5d
|
||||
callba Function4ae5e
|
||||
ld b, $0
|
||||
ld a, [MenuSelection]
|
||||
ld c, a
|
||||
ld a, [wdc4a]
|
||||
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, [wdc4a]
|
||||
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 GetBuenaPrize
|
||||
ld a, [hl]
|
||||
ld [wd265], a
|
||||
call GetItemName
|
||||
ld hl, UnknownText_0x8b077
|
||||
call Function105a
|
||||
call YesNoBox
|
||||
jr c, .asm_8afeb
|
||||
ld a, [wcf75]
|
||||
call GetBuenaPrize
|
||||
inc hl
|
||||
ld a, [hld]
|
||||
ld c, a
|
||||
ld a, [wdc4b]
|
||||
cp c
|
||||
jr c, .asm_8b047
|
||||
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, [wdc4b]
|
||||
sub c
|
||||
ld [wdc4b], a
|
||||
call Function8b097
|
||||
jr .asm_8b051
|
||||
|
||||
.asm_8b047
|
||||
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 Functiona36
|
||||
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, wdc4b
|
||||
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, String_8b0ca
|
||||
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
|
||||
|
||||
String_8b0ca:
|
||||
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_0x8b0dd
|
||||
call LoadMenuDataHeader
|
||||
ret
|
||||
; 8b0dd
|
||||
|
||||
MenuDataHeader_0x8b0dd: ; 0x8b0dd
|
||||
db $40 ; flags
|
||||
db 00, 00 ; start coords
|
||||
db 11, 17 ; end coords
|
||||
; 8b0e2
|
||||
|
||||
Function8b0e2: ; 8b0e2
|
||||
ld hl, MenuDataHeader_0x8b113
|
||||
call CopyMenuDataHeader
|
||||
ld a, [MenuSelection]
|
||||
ld [wcf88], 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: ; 0x8b113
|
||||
db $40 ; flags
|
||||
db 01, 01 ; start coords
|
||||
db 09, 16 ; end coords
|
||||
dw MenuData2_0x8b11c
|
||||
db 1 ; default option
|
||||
; 0x8b11b
|
||||
|
||||
db 0
|
||||
|
||||
MenuData2_0x8b11c: ; 0x8b11c
|
||||
db $10 ; flags
|
||||
db 4 ; items
|
||||
db $d, $1
|
||||
dbw BANK(Unknown_8b129), Unknown_8b129
|
||||
dbw BANK(BuenaPrizeItem), BuenaPrizeItem
|
||||
dbw BANK(BuenaPrizePoints), BuenaPrizePoints
|
||||
; 8b129
|
||||
|
||||
Unknown_8b129: ; 8b129
|
||||
db 9
|
||||
db 1, 2, 3, 4, 5, 6, 7, 8, 9, $ff
|
||||
; 8b134
|
||||
|
||||
BuenaPrizeItem: ; 8b134
|
||||
ld a, [MenuSelection]
|
||||
call GetBuenaPrize
|
||||
ld a, [hl]
|
||||
push de
|
||||
ld [wd265], a
|
||||
call GetItemName
|
||||
pop hl
|
||||
call PlaceString
|
||||
ret
|
||||
; 8b147
|
||||
|
||||
BuenaPrizePoints: ; 8b147
|
||||
ld a, [MenuSelection]
|
||||
call GetBuenaPrize
|
||||
inc hl
|
||||
ld a, [hl]
|
||||
ld c, "0"
|
||||
add c
|
||||
ld [de], a
|
||||
ret
|
||||
; 8b154
|
||||
|
||||
GetBuenaPrize: ; 8b154
|
||||
dec a
|
||||
ld hl, BuenaPrizes
|
||||
ld b, 0
|
||||
ld c, a
|
||||
rept 2
|
||||
add hl, bc
|
||||
endr
|
||||
ret
|
||||
; 8b15e
|
||||
|
||||
BuenaPrizes: ; 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 Function1d6e
|
||||
ld c, $1
|
||||
xor a
|
||||
ld [wd0e4], a
|
||||
ld [wdca4], 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 [wdca4], a
|
||||
call Kurt_GiveUpSelectedQuantityOfSelectedApricorn
|
||||
|
||||
.done
|
||||
call Function1d7d
|
||||
ret
|
||||
; 88055
|
||||
|
||||
Kurt_SelectApricorn: ; 88055
|
||||
callba FindApricornsInBag
|
||||
jr c, .nope
|
||||
ld hl, .MenuDataHeader
|
||||
call CopyMenuDataHeader
|
||||
ld a, [MenuSelection]
|
||||
ld [wcf88], 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
|
||||
@@ -1,8 +1,8 @@
|
||||
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
|
||||
.asm_16223
|
||||
@@ -14,7 +14,7 @@ Special_BankOfMom: ; 16218
|
||||
|
||||
.asm_1622f
|
||||
pop af
|
||||
ld [$ffaa], a
|
||||
ld [hInMenu], a
|
||||
ret
|
||||
; 16233
|
||||
|
||||
|
||||
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 Functiona36
|
||||
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