mirror of
https://github.com/pret/pokered.git
synced 2024-10-24 15:27:10 +00:00
35f2bb90d4
This is mostly because of an rgbasm bug that prevents macro arguments from exceeding 16 characters, but the names were bad anyway.
138 lines
2.5 KiB
NASM
Executable file
138 lines
2.5 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]
|
|
FuncCoord 0, 3
|
|
ld hl, Coord
|
|
ld b, $8
|
|
ld c, $c
|
|
call TextBoxBorder
|
|
call UpdateSprites
|
|
FuncCoord 2, 5
|
|
ld hl, Coord
|
|
ld de, DrinkText
|
|
call PlaceString
|
|
FuncCoord 9, 6
|
|
ld hl, Coord
|
|
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
|
|
ld a, $c ; SubBCDPredef
|
|
call Predef
|
|
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
|