mirror of
https://github.com/pret/pokered.git
synced 2024-10-24 15:27:10 +00:00
bd533aa79b
Using 'Coord =' doesn't like using wTileMap So use hlCoord, deCoord, bcCoord, aCoord, Coorda, or dwCoord to avoid static addresses
134 lines
2.4 KiB
NASM
Executable file
134 lines
2.4 KiB
NASM
Executable file
VendingMachineMenu: ; 74ee0 (1d:4ee0)
|
|
ld hl, VendingMachineText1
|
|
call PrintText
|
|
ld a, $13
|
|
ld [wd125], a
|
|
call DisplayTextBoxID
|
|
xor a
|
|
ld [wCurrentMenuItem], a ; wCurrentMenuItem
|
|
ld [wLastMenuItem], a ; wLastMenuItem
|
|
ld a, $3
|
|
ld [wMenuWatchedKeys], a ; wMenuWatchedKeys
|
|
ld a, $3
|
|
ld [wMaxMenuItem], a ; wMaxMenuItem
|
|
ld a, $5
|
|
ld [wTopMenuItemY], a ; wTopMenuItemY
|
|
ld a, $1
|
|
ld [wTopMenuItemX], a ; wTopMenuItemX
|
|
ld hl, wd730
|
|
set 6, [hl]
|
|
hlCoord 0, 3
|
|
ld b, $8
|
|
ld c, $c
|
|
call TextBoxBorder
|
|
call UpdateSprites
|
|
hlCoord 2, 5
|
|
ld de, DrinkText
|
|
call PlaceString
|
|
hlCoord 9, 6
|
|
ld de, DrinkPriceText
|
|
call PlaceString
|
|
ld hl, wd730
|
|
res 6, [hl]
|
|
call HandleMenuInput
|
|
bit 1, a
|
|
jr nz, .asm_74f93
|
|
ld a, [wCurrentMenuItem] ; wCurrentMenuItem
|
|
cp $3
|
|
jr z, .asm_74f93
|
|
xor a
|
|
ld [$ff9f], a
|
|
ld [$ffa1], a
|
|
ld a, $2
|
|
ld [$ffa0], a
|
|
call HasEnoughMoney
|
|
jr nc, .enoughMoney
|
|
ld hl, VendingMachineText4
|
|
jp PrintText
|
|
.enoughMoney
|
|
call Func_74fe7
|
|
ld a, [$ffdb]
|
|
ld b, a
|
|
ld c, 1
|
|
call GiveItem
|
|
jr nc, .BagFull
|
|
ld b, $3c ; number of times to play the "brrrrr" sound
|
|
.playDeliverySound ; 0x74f63
|
|
ld c, $2
|
|
call DelayFrames
|
|
push bc
|
|
ld a, (SFX_02_53 - SFX_Headers_02) / 3
|
|
call PlaySound
|
|
pop bc
|
|
dec b
|
|
jr nz, .playDeliverySound
|
|
.asm_74f72
|
|
ld hl, VendingMachineText5
|
|
call PrintText
|
|
ld hl, $ffde
|
|
ld de, wPlayerMoney + 2 ; wd349
|
|
ld c, $3
|
|
predef SubBCDPredef
|
|
ld a, $13
|
|
ld [wd125], a
|
|
jp DisplayTextBoxID
|
|
.BagFull
|
|
ld hl, VendingMachineText6
|
|
jp PrintText
|
|
.asm_74f93
|
|
ld hl, VendingMachineText7
|
|
jp PrintText
|
|
|
|
VendingMachineText1: ; 74f99 (1d:4f99)
|
|
TX_FAR _VendingMachineText1
|
|
db "@"
|
|
|
|
DrinkText: ; 74f9e (1d:4f9e)
|
|
db "FRESH WATER"
|
|
next "SODA POP"
|
|
next "LEMONADE"
|
|
next "CANCEL@"
|
|
|
|
DrinkPriceText: ; 74fc3 (1d:4fc3)
|
|
db "¥200"
|
|
next "¥300"
|
|
next "¥350",$4E,"@"
|
|
|
|
VendingMachineText4: ; 74fd3 (1d:4fd3)
|
|
TX_FAR _VendingMachineText4
|
|
db "@"
|
|
|
|
VendingMachineText5: ; 74fd8 (1d:4fd8)
|
|
TX_FAR _VendingMachineText5
|
|
db "@"
|
|
|
|
VendingMachineText6: ; 74fdd (1d:4fdd)
|
|
TX_FAR _VendingMachineText6
|
|
db "@"
|
|
|
|
VendingMachineText7: ; 74fe2 (1d:4fe2)
|
|
TX_FAR _VendingMachineText7
|
|
db "@"
|
|
|
|
Func_74fe7: ; 74fe7 (1d:4fe7)
|
|
ld hl, VendingPrices
|
|
ld a, [wCurrentMenuItem]
|
|
add a
|
|
add a
|
|
ld d, $0
|
|
ld e, a
|
|
add hl, de
|
|
ld a, [hli]
|
|
ld [$ffdb], a
|
|
ld a, [hli]
|
|
ld [$ffdc], a
|
|
ld a, [hli]
|
|
ld [$ffdd], a
|
|
ld a, [hl]
|
|
ld [$ffde], a
|
|
ret
|
|
|
|
VendingPrices: ; 75000 (1d:5000)
|
|
db FRESH_WATER,$00,$02,$00
|
|
db SODA_POP, $00,$03,$00
|
|
db LEMONADE, $00,$03,$50
|