summaryrefslogtreecommitdiff
path: root/macros/coords.asm
diff options
context:
space:
mode:
authorISSOtm <eldredhabert0@gmail.com>2018-05-27 11:18:14 +0200
committerISSOtm <eldredhabert0@gmail.com>2018-05-27 11:18:14 +0200
commit6bd6e25eef4a57d1898d7aae0b3b09e6dc5f2695 (patch)
tree214d4e433770231e3067e069426beb449af74dd1 /macros/coords.asm
parent83afa8a12dfe450c378ca11743a2291501ec19a8 (diff)
Import more macros from pokecrystal
Diffstat (limited to 'macros/coords.asm')
-rw-r--r--macros/coords.asm52
1 files changed, 52 insertions, 0 deletions
diff --git a/macros/coords.asm b/macros/coords.asm
new file mode 100644
index 0000000..0833c24
--- /dev/null
+++ b/macros/coords.asm
@@ -0,0 +1,52 @@
+hlcoord EQUS "coord hl,"
+bccoord EQUS "coord bc,"
+decoord EQUS "coord de,"
+
+coord: MACRO
+; register, x, y[, origin]
+ if _NARG < 4
+ ld \1, (\3) * SCREEN_WIDTH + (\2) + wTileMap
+ else
+ ld \1, (\3) * SCREEN_WIDTH + (\2) + \4
+ endc
+ENDM
+
+hlbgcoord EQUS "bgcoord hl,"
+bcbgcoord EQUS "bgcoord bc,"
+debgcoord EQUS "bgcoord de,"
+
+bgcoord: MACRO
+; register, x, y[, origin]
+ if _NARG < 4
+ ld \1, (\3) * BG_MAP_WIDTH + (\2) + vBGMap0
+ else
+ ld \1, (\3) * BG_MAP_WIDTH + (\2) + \4
+ endc
+ENDM
+
+dwcoord: MACRO
+; x, y
+rept _NARG / 2
+ dw (\2) * SCREEN_WIDTH + (\1) + wTileMap
+ shift
+ shift
+endr
+ENDM
+
+ldcoord_a: MACRO
+; x, y[, origin]
+ if _NARG < 3
+ ld [(\2) * SCREEN_WIDTH + (\1) + wTileMap], a
+ else
+ ld [(\2) * SCREEN_WIDTH + (\1) + \3], a
+ endc
+ENDM
+
+lda_coord: MACRO
+; x, y[, origin]
+ if _NARG < 3
+ ld a, [(\2) * SCREEN_WIDTH + (\1) + wTileMap]
+ else
+ ld a, [(\2) * SCREEN_WIDTH + (\1) + \3]
+ endc
+ENDM