Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
pret
GitHub Repository: pret/pokered
Path: blob/master/engine/events/vending_machine.asm
1271 views
1
VendingMachineMenu::
2
ld hl, VendingMachineText1
3
call PrintText
4
ld a, MONEY_BOX
5
ld [wTextBoxID], a
6
call DisplayTextBoxID
7
xor a
8
ld [wCurrentMenuItem], a
9
ld [wLastMenuItem], a
10
ld a, PAD_A | PAD_B
11
ld [wMenuWatchedKeys], a
12
ld a, 3
13
ld [wMaxMenuItem], a
14
ld a, 5
15
ld [wTopMenuItemY], a
16
ld a, 1
17
ld [wTopMenuItemX], a
18
ld hl, wStatusFlags5
19
set BIT_NO_TEXT_DELAY, [hl]
20
hlcoord 0, 3
21
ld b, 8
22
ld c, 12
23
call TextBoxBorder
24
call UpdateSprites
25
hlcoord 2, 5
26
ld de, DrinkText
27
call PlaceString
28
hlcoord 9, 6
29
ld de, DrinkPriceText
30
call PlaceString
31
ld hl, wStatusFlags5
32
res BIT_NO_TEXT_DELAY, [hl]
33
call HandleMenuInput
34
bit B_PAD_B, a
35
jr nz, .notThirsty
36
ld a, [wCurrentMenuItem]
37
cp 3 ; chose Cancel?
38
jr z, .notThirsty
39
xor a
40
ldh [hMoney], a
41
ldh [hMoney + 2], a
42
ld a, $2
43
ldh [hMoney + 1], a
44
call HasEnoughMoney
45
jr nc, .enoughMoney
46
ld hl, VendingMachineText4
47
jp PrintText
48
.enoughMoney
49
call LoadVendingMachineItem
50
ldh a, [hVendingMachineItem]
51
ld b, a
52
ld c, 1
53
call GiveItem
54
jr nc, .BagFull
55
56
ld b, 60 ; number of times to play the "brrrrr" sound
57
.playDeliverySound
58
ld c, 2
59
call DelayFrames
60
push bc
61
ld a, SFX_PUSH_BOULDER
62
call PlaySound
63
pop bc
64
dec b
65
jr nz, .playDeliverySound
66
67
ld hl, VendingMachineText5
68
call PrintText
69
ld hl, hVendingMachinePrice + 2
70
ld de, wPlayerMoney + 2
71
ld c, $3
72
predef SubBCDPredef
73
ld a, MONEY_BOX
74
ld [wTextBoxID], a
75
jp DisplayTextBoxID
76
.BagFull
77
ld hl, VendingMachineText6
78
jp PrintText
79
.notThirsty
80
ld hl, VendingMachineText7
81
jp PrintText
82
83
VendingMachineText1:
84
text_far _VendingMachineText1
85
text_end
86
87
DrinkText:
88
db "FRESH WATER"
89
next "SODA POP"
90
next "LEMONADE"
91
next "CANCEL@"
92
93
DrinkPriceText:
94
db "¥200"
95
next "¥300"
96
next "¥350"
97
next "@"
98
99
VendingMachineText4:
100
text_far _VendingMachineText4
101
text_end
102
103
VendingMachineText5:
104
text_far _VendingMachineText5
105
text_end
106
107
VendingMachineText6:
108
text_far _VendingMachineText6
109
text_end
110
111
VendingMachineText7:
112
text_far _VendingMachineText7
113
text_end
114
115
LoadVendingMachineItem:
116
ld hl, VendingPrices
117
ld a, [wCurrentMenuItem]
118
add a
119
add a
120
ld d, 0
121
ld e, a
122
add hl, de
123
ld a, [hli]
124
ldh [hVendingMachineItem], a
125
ld a, [hli]
126
ldh [hVendingMachinePrice], a
127
ld a, [hli]
128
ldh [hVendingMachinePrice + 1], a
129
ld a, [hl]
130
ldh [hVendingMachinePrice + 2], a
131
ret
132
133
INCLUDE "data/items/vending_prices.asm"
134
135