mirror of
https://github.com/thornAvery/kep-hack.git
synced 2025-09-17 02:40:50 +12:00

This is mostly because of an rgbasm bug that prevents macro arguments from exceeding 16 characters, but the names were bad anyway.
139 lines
2.5 KiB
NASM
Executable file
139 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
|