123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140 |
- VendingMachineMenu:
- ld hl, VendingMachineText1
- call PrintText
- ld a, MONEY_BOX
- ld [wTextBoxID], a
- call DisplayTextBoxID
- xor a
- ld [wCurrentMenuItem], a
- ld [wLastMenuItem], a
- ld a, A_BUTTON | B_BUTTON
- ld [wMenuWatchedKeys], a
- ld a, 3
- ld [wMaxMenuItem], a
- ld a, 5
- ld [wTopMenuItemY], a
- ld a, 1
- ld [wTopMenuItemX], a
- ld hl, wd730
- set 6, [hl]
- coord hl, 0, 3
- ld b, 8
- ld c, 12
- call TextBoxBorder
- call UpdateSprites
- coord hl, 2, 5
- ld de, DrinkText
- call PlaceString
- coord hl, 9, 6
- ld de, DrinkPriceText
- call PlaceString
- ld hl, wd730
- res 6, [hl]
- call HandleMenuInput
- bit 1, a ; pressed B?
- jr nz, .notThirsty
- ld a, [wCurrentMenuItem]
- cp 3 ; chose Cancel?
- jr z, .notThirsty
- xor a
- ld [hMoney], a
- ld [hMoney + 2], a
- ld a, $2
- ld [hMoney + 1], a
- call HasEnoughMoney
- jr nc, .enoughMoney
- ld hl, VendingMachineText4
- jp PrintText
- .enoughMoney
- call LoadVendingMachineItem
- ld a, [hVendingMachineItem]
- ld b, a
- ld c, 1
- call GiveItem
- jr nc, .BagFull
- ld b, 60 ; number of times to play the "brrrrr" sound
- .playDeliverySound
- ld c, 2
- call DelayFrames
- push bc
- ld a, SFX_PUSH_BOULDER
- call PlaySound
- pop bc
- dec b
- jr nz, .playDeliverySound
- ld hl, VendingMachineText5
- call PrintText
- ld hl, hVendingMachinePrice + 2
- ld de, wPlayerMoney + 2
- ld c, $3
- predef SubBCDPredef
- ld a, MONEY_BOX
- ld [wTextBoxID], a
- jp DisplayTextBoxID
- .BagFull
- ld hl, VendingMachineText6
- jp PrintText
- .notThirsty
- ld hl, VendingMachineText7
- jp PrintText
- VendingMachineText1:
- TX_FAR _VendingMachineText1
- db "@"
- DrinkText:
- db "FRESH WATER"
- next "SODA POP"
- next "LEMONADE"
- next "CANCEL@"
- DrinkPriceText:
- db "¥200"
- next "¥300"
- next "¥350"
- next "@"
- VendingMachineText4:
- TX_FAR _VendingMachineText4
- db "@"
- VendingMachineText5:
- TX_FAR _VendingMachineText5
- db "@"
- VendingMachineText6:
- TX_FAR _VendingMachineText6
- db "@"
- VendingMachineText7:
- TX_FAR _VendingMachineText7
- db "@"
- LoadVendingMachineItem:
- ld hl, VendingPrices
- ld a, [wCurrentMenuItem]
- add a
- add a
- ld d, 0
- ld e, a
- add hl, de
- ld a, [hli]
- ld [hVendingMachineItem], a
- ld a, [hli]
- ld [hVendingMachinePrice], a
- ld a, [hli]
- ld [hVendingMachinePrice + 1], a
- ld a, [hl]
- ld [hVendingMachinePrice + 2], a
- ret
- VendingPrices:
- db FRESH_WATER
- money 200
- db SODA_POP
- money 300
- db LEMONADE
- money 350
|