pokecrystal-board/event/buena.asm

341 lines
4.8 KiB
NASM
Raw Normal View History

2015-10-16 10:35:43 -07:00
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
2015-10-17 14:18:52 -07:00
call Buena_getprize
2015-10-16 10:35:43 -07:00
ld a, [hl]
ld [wd265], a
call GetItemName
ld hl, UnknownText_0x8b077
call Function105a
call YesNoBox
jr c, .asm_8afeb
ld a, [wcf75]
2015-10-17 14:18:52 -07:00
call Buena_getprize
2015-10-16 10:35:43 -07:00
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 JoyWaitAorB
2015-10-16 10:35:43 -07:00
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
2015-10-17 14:18:52 -07:00
ld de, .Points_string
2015-10-16 10:35:43 -07:00
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
2015-10-17 14:18:52 -07:00
.Points_string:
2015-10-16 10:35:43 -07:00
db "Points@"
; 8b0d1
MenuDataHeader_0x8b0d1: ; 0x8b0d1
db $40 ; flags
db 11, 00 ; start coords
db 13, 11 ; end coords
; 8b0d6
Function8b0d6: ; 8b0d6
2015-10-17 14:18:52 -07:00
ld hl, .menudataheader
2015-10-16 10:35:43 -07:00
call LoadMenuDataHeader
ret
; 8b0dd
2015-10-17 14:18:52 -07:00
.menudataheader: ; 0x8b0dd
2015-10-16 10:35:43 -07:00
db $40 ; flags
db 00, 00 ; start coords
db 11, 17 ; end coords
; 8b0e2
Function8b0e2: ; 8b0e2
2015-10-17 14:18:52 -07:00
ld hl, .MenuDataHeader
2015-10-16 10:35:43 -07:00
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
2015-10-17 14:18:52 -07:00
.MenuDataHeader: ; 0x8b113
2015-10-16 10:35:43 -07:00
db $40 ; flags
db 01, 01 ; start coords
db 09, 16 ; end coords
2015-10-17 14:18:52 -07:00
dw .MenuData2
2015-10-16 10:35:43 -07:00
db 1 ; default option
; 0x8b11b
db 0
2015-10-17 14:18:52 -07:00
.MenuData2: ; 0x8b11c
2015-10-16 10:35:43 -07:00
db $10 ; flags
db 4 ; items
db $d, $1
2015-10-17 14:18:52 -07:00
dba .indices
dba .prizeitem
dba .prizepoints
2015-10-16 10:35:43 -07:00
; 8b129
2015-10-17 14:18:52 -07:00
.indices: ; 8b129
2015-10-16 10:35:43 -07:00
db 9
2015-10-17 14:18:52 -07:00
db 1, 2, 3, 4, 5, 6, 7, 8, 9
db -1
2015-10-16 10:35:43 -07:00
; 8b134
2015-10-17 14:18:52 -07:00
.prizeitem: ; 8b134
2015-10-16 10:35:43 -07:00
ld a, [MenuSelection]
2015-10-17 14:18:52 -07:00
call Buena_getprize
2015-10-16 10:35:43 -07:00
ld a, [hl]
push de
2015-10-17 14:18:52 -07:00
ld [wNamedObjectIndexBuffer], a
2015-10-16 10:35:43 -07:00
call GetItemName
pop hl
call PlaceString
ret
; 8b147
2015-10-17 14:18:52 -07:00
.prizepoints: ; 8b147
2015-10-16 10:35:43 -07:00
ld a, [MenuSelection]
2015-10-17 14:18:52 -07:00
call Buena_getprize
2015-10-16 10:35:43 -07:00
inc hl
ld a, [hl]
ld c, "0"
add c
ld [de], a
ret
; 8b154
2015-10-17 14:18:52 -07:00
Buena_getprize: ; 8b154
2015-10-16 10:35:43 -07:00
dec a
2015-10-17 14:18:52 -07:00
ld hl, .prizes
2015-10-16 10:35:43 -07:00
ld b, 0
ld c, a
rept 2
add hl, bc
endr
ret
; 8b15e
2015-10-17 14:18:52 -07:00
.prizes: ; 8b15e
2015-10-16 10:35:43 -07:00
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