blob: 302260d7beeeffa6cd4e912e01d14b6018faf524 (
plain)
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
|
validateCoords: MACRO
IF \1 >= SCREEN_WIDTH
fail "x coord out of range"
ENDC
IF \2 >= SCREEN_HEIGHT
fail "y coord out of range"
ENDC
ENDM
;\1 = r
;\2 = X
;\3 = Y
;\4 = which tilemap (optional)
coord: MACRO
validateCoords \2, \3
IF _NARG >= 4
ld \1, \4 + SCREEN_WIDTH * \3 + \2
ELSE
ld \1, wTileMap + SCREEN_WIDTH * \3 + \2
ENDC
ENDM
;\1 = X
;\2 = Y
;\3 = which tilemap (optional)
aCoord: MACRO
validateCoords \1, \2
IF _NARG >= 3
ld a, [\3 + SCREEN_WIDTH * \2 + \1]
ELSE
ld a, [wTileMap + SCREEN_WIDTH * \2 + \1]
ENDC
ENDM
;\1 = X
;\2 = Y
;\3 = which tilemap (optional)
Coorda: MACRO
validateCoords \1, \2
IF _NARG >= 3
ld [\3 + SCREEN_WIDTH * \2 + \1], a
ELSE
ld [wTileMap + SCREEN_WIDTH * \2 + \1], a
ENDC
ENDM
;\1 = X
;\2 = Y
;\3 = which tilemap (optional)
dwCoord: MACRO
validateCoords \1, \2
IF _NARG >= 3
dw \3 + SCREEN_WIDTH * \2 + \1
ELSE
dw wTileMap + SCREEN_WIDTH * \2 + \1
ENDC
ENDM
;\1 = r
;\2 = X
;\3 = Y
;\4 = map width
overworldMapCoord: MACRO
ld \1, wOverworldMap + ((\2) + 3) + (((\3) + 3) * ((\4) + (3 * 2)))
ENDM
|