Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
pret
GitHub Repository: pret/pokered
Path: blob/master/engine/events/hidden_items.asm
1271 views
1
HiddenItems:
2
ld hl, HiddenItemCoords
3
call FindHiddenItemOrCoinsIndex
4
ld [wHiddenItemOrCoinsIndex], a
5
ld hl, wObtainedHiddenItemsFlags
6
ld a, [wHiddenItemOrCoinsIndex]
7
ld c, a
8
ld b, FLAG_TEST
9
predef FlagActionPredef
10
ld a, c
11
and a
12
ret nz
13
call EnableAutoTextBoxDrawing
14
ld a, 1
15
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
16
ld a, [wHiddenObjectFunctionArgument] ; item ID
17
ld [wNamedObjectIndex], a
18
call GetItemName
19
tx_pre_jump FoundHiddenItemText
20
21
INCLUDE "data/events/hidden_item_coords.asm"
22
23
FoundHiddenItemText::
24
text_far _FoundHiddenItemText
25
text_asm
26
ld a, [wHiddenObjectFunctionArgument] ; item ID
27
ld b, a
28
ld c, 1
29
call GiveItem
30
jr nc, .bagFull
31
ld hl, wObtainedHiddenItemsFlags
32
ld a, [wHiddenItemOrCoinsIndex]
33
ld c, a
34
ld b, FLAG_SET
35
predef FlagActionPredef
36
ld a, SFX_GET_ITEM_2
37
call PlaySoundWaitForCurrent
38
call WaitForSoundToFinish
39
jp TextScriptEnd
40
.bagFull
41
call WaitForTextScrollButtonPress ; wait for button press
42
xor a
43
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
44
ld hl, HiddenItemBagFullText
45
call PrintText
46
jp TextScriptEnd
47
48
HiddenItemBagFullText::
49
text_far _HiddenItemBagFullText
50
text_end
51
52
HiddenCoins:
53
ld b, COIN_CASE
54
predef GetQuantityOfItemInBag
55
ld a, b
56
and a
57
ret z
58
ld hl, HiddenCoinCoords
59
call FindHiddenItemOrCoinsIndex
60
ld [wHiddenItemOrCoinsIndex], a
61
ld hl, wObtainedHiddenCoinsFlags
62
ld a, [wHiddenItemOrCoinsIndex]
63
ld c, a
64
ld b, FLAG_TEST
65
predef FlagActionPredef
66
ld a, c
67
and a
68
ret nz
69
xor a
70
ldh [hUnusedCoinsByte], a
71
ldh [hCoins], a
72
ldh [hCoins + 1], a
73
ld a, [wHiddenObjectFunctionArgument]
74
sub COIN
75
cp 10
76
jr z, .bcd10
77
cp 20
78
jr z, .bcd20
79
cp 40
80
jr z, .bcd20 ; should be bcd40
81
jr .bcd100
82
.bcd10
83
ld a, $10
84
ldh [hCoins + 1], a
85
jr .bcdDone
86
.bcd20
87
ld a, $20
88
ldh [hCoins + 1], a
89
jr .bcdDone
90
.bcd40 ; due to a typo, this is never used
91
ld a, $40
92
ldh [hCoins + 1], a
93
jr .bcdDone
94
.bcd100
95
ld a, $1
96
ldh [hCoins], a
97
.bcdDone
98
ld de, wPlayerCoins + 1
99
ld hl, hCoins + 1
100
ld c, $2
101
predef AddBCDPredef
102
ld hl, wObtainedHiddenCoinsFlags
103
ld a, [wHiddenItemOrCoinsIndex]
104
ld c, a
105
ld b, FLAG_SET
106
predef FlagActionPredef
107
call EnableAutoTextBoxDrawing
108
ld a, [wPlayerCoins]
109
cp $99
110
jr nz, .roomInCoinCase
111
ld a, [wPlayerCoins + 1]
112
cp $99
113
jr nz, .roomInCoinCase
114
tx_pre_id DroppedHiddenCoinsText
115
jr .done
116
.roomInCoinCase
117
tx_pre_id FoundHiddenCoinsText
118
.done
119
jp PrintPredefTextID
120
121
INCLUDE "data/events/hidden_coins.asm"
122
123
FoundHiddenCoinsText::
124
text_far _FoundHiddenCoinsText
125
sound_get_item_2
126
text_end
127
128
DroppedHiddenCoinsText::
129
text_far _FoundHiddenCoins2Text
130
sound_get_item_2
131
text_far _DroppedHiddenCoinsText
132
text_end
133
134
FindHiddenItemOrCoinsIndex:
135
ld a, [wHiddenObjectY]
136
ld d, a
137
ld a, [wHiddenObjectX]
138
ld e, a
139
ld a, [wCurMap]
140
ld b, a
141
ld c, -1
142
.loop
143
inc c
144
ld a, [hli]
145
cp -1 ; end of the list?
146
ret z ; if so, we're done here
147
cp b
148
jr nz, .next1
149
ld a, [hli]
150
cp d
151
jr nz, .next2
152
ld a, [hli]
153
cp e
154
jr nz, .loop
155
ld a, c
156
ret
157
.next1
158
inc hl
159
.next2
160
inc hl
161
jr .loop
162
163