This repository has been archived by the owner on Aug 26, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1
/
bikeshop.asm
147 lines (130 loc) · 2.33 KB
/
bikeshop.asm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
BikeShopScript:
jp EnableAutoTextBoxDrawing
BikeShopTextPointers:
dw BikeShopText1
dw BikeShopText2
dw BikeShopText3
BikeShopText1:
TX_ASM
CheckEvent EVENT_GOT_BICYCLE
jr z, .asm_260d4
ld hl, BikeShopText_1d82f
call PrintText
jp .Done
.asm_260d4
ld b, BIKE_VOUCHER
call IsItemInBag
jr z, .asm_41190
ld hl, BikeShopText_1d81f
call PrintText
lb bc, BICYCLE, 1
call GiveItem
jr nc, .BagFull
ld a, BIKE_VOUCHER
ld [$ffdb], a
callba RemoveItemByID
SetEvent EVENT_GOT_BICYCLE
ld hl, BikeShopText_1d824
call PrintText
jr .Done
.BagFull
ld hl, BikeShopText_1d834
call PrintText
jr .Done
.asm_41190
ld hl, BikeShopText_1d810
call PrintText
xor a
ld [wCurrentMenuItem], a
ld [wLastMenuItem], a
ld a, A_BUTTON | B_BUTTON
ld [wMenuWatchedKeys], a
ld a, $1
ld [wMaxMenuItem], a
ld a, $2
ld [wTopMenuItemY], a
ld a, $1
ld [wTopMenuItemX], a
ld hl, wd730
set 6, [hl]
coord hl, 0, 0
ld b, $4
ld c, $f
call TextBoxBorder
call UpdateSprites
coord hl, 2, 2
ld de, BikeShopMenuText
call PlaceString
coord hl, 8, 3
ld de, BikeShopMenuPrice
call PlaceString
ld hl, BikeShopText_1d815
call PrintText
call HandleMenuInput
bit 1, a
jr nz, .cancel
ld hl, wd730
res 6, [hl]
ld a, [wCurrentMenuItem]
and a
jr nz, .cancel
ld hl, BikeShopCantAffordText
call PrintText
.cancel
ld hl, BikeShopComeAgainText
call PrintText
.Done
jp TextScriptEnd
BikeShopMenuText:
db "BICYCLE"
next "CANCEL@"
BikeShopMenuPrice:
db "¥1000000@"
BikeShopText_1d810:
TX_FAR _BikeShopText_1d810
db "@"
BikeShopText_1d815:
TX_FAR _BikeShopText_1d815
db "@"
BikeShopCantAffordText:
TX_FAR _BikeShopCantAffordText
db "@"
BikeShopText_1d81f:
TX_FAR _BikeShopText_1d81f
db "@"
BikeShopText_1d824:
TX_FAR _BikeShopText_1d824
TX_SFX_KEY_ITEM
db "@"
BikeShopComeAgainText:
TX_FAR _BikeShopComeAgainText
db "@"
BikeShopText_1d82f:
TX_FAR _BikeShopText_1d82f
db "@"
BikeShopText_1d834:
TX_FAR _BikeShopText_1d834
db "@"
BikeShopText2:
TX_ASM
ld hl, BikeShopText_1d843
call PrintText
jp TextScriptEnd
BikeShopText_1d843:
TX_FAR _BikeShopText_1d843
db "@"
BikeShopText3:
TX_ASM
CheckEvent EVENT_GOT_BICYCLE
ld hl, BikeShopText_1d861
jr nz, .asm_34d2d
ld hl, BikeShopText_1d85c
.asm_34d2d
call PrintText
jp TextScriptEnd
BikeShopText_1d85c:
TX_FAR _BikeShopText_1d85c
db "@"
BikeShopText_1d861:
TX_FAR _BikeShopText_1d861
db "@"