pokered/engine/menu/vending_machine.asm

139 lines
2.4 KiB
NASM
Raw Normal View History

2014-05-22 22:13:20 +00:00
VendingMachineMenu: ; 74ee0 (1d:4ee0)
ld hl, VendingMachineText1
call PrintText
ld a, $13
ld [$d125], a
call DisplayTextBoxID
xor a
ld [wCurrentMenuItem], a ; $cc26
ld [wLastMenuItem], a ; $cc2a
ld a, $3
ld [wMenuWatchedKeys], a ; $cc29
ld a, $3
ld [wMaxMenuItem], a ; $cc28
ld a, $5
ld [wTopMenuItemY], a ; $cc24
ld a, $1
ld [wTopMenuItemX], a ; $cc25
ld hl, $d730
set 6, [hl]
FuncCoord 0, 3 ; $c3dc
ld hl, Coord
ld b, $8
ld c, $c
call TextBoxBorder
call UpdateSprites
FuncCoord 2, 5 ; $c406
ld hl, Coord
ld de, DrinkText
call PlaceString
FuncCoord 9, 6 ; $c421
ld hl, Coord
ld de, DrinkPriceText
call PlaceString
ld hl, $d730
res 6, [hl]
call HandleMenuInput
bit 1, a
jr nz, .asm_74f93
ld a, [wCurrentMenuItem] ; $cc26
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 ; $d349
ld c, $3
2014-05-26 00:27:02 +00:00
ld a, $c ; SubtractBCDPredef
call Predef
2014-05-22 22:13:20 +00:00
ld a, $13
ld [$d125], 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, [$cc26]
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