shithub: pokered

ref: 7911bc130943392a9aa901139c924aa9658e015f
dir: /engine/menu/vending_machine.asm/

View raw version
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
	ld a, $c
	call Predef ; indirect jump to Func_f836 (f836 (3:7836))
	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