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
|
HiddenItemNear: ; 7481f (1d:481f)
ld hl, HiddenItemCoords
ld b, 0
.loop
ld de, 3
ld a, [wCurMap]
call IsInRestOfArray
ret nc ; return if current map has no hidden items
push bc
push hl
ld hl, wObtainedHiddenItemsFlags
ld c, b
ld b, FLAG_TEST
predef FlagActionPredef
ld a, c
pop hl
pop bc
inc b
and a
inc hl
ld d, [hl]
inc hl
ld e, [hl]
inc hl
jr nz, .loop ; if the item has already been obtained
; check if the item is within 4-5 tiles (depending on the direction of item)
ld a, [wYCoord]
call Sub5ClampTo0
cp d
jr nc, .loop
ld a, [wYCoord]
add 4
cp d
jr c, .loop
ld a, [wXCoord]
call Sub5ClampTo0
cp e
jr nc, .loop
ld a, [wXCoord]
add 5
cp e
jr c, .loop
scf
ret
Sub5ClampTo0: ; 7486b (1d:486b)
; subtract 5 but clamp to 0
sub 5
cp $f0
ret c
xor a
ret
|