summaryrefslogtreecommitdiff
path: root/macros
diff options
context:
space:
mode:
authorRangi <remy.oukaour+rangi42@gmail.com>2020-07-07 11:30:10 -0400
committerRangi <remy.oukaour+rangi42@gmail.com>2020-07-07 11:30:10 -0400
commit13129459f11e73df8c556f0c02cd4fca7266a346 (patch)
treef0157c5ba3e66a48eba01fef6ce7283f1dece57a /macros
parent45ed05decf330faab4503fe8fecadc54698c9724 (diff)
Sync coordinate macros with pokecrystal
Diffstat (limited to 'macros')
-rw-r--r--macros/coords.asm96
-rwxr-xr-xmacros/data.asm2
-rw-r--r--macros/gfx.asm2
-rwxr-xr-xmacros/scripts/events.asm4
-rwxr-xr-xmacros/scripts/text.asm2
5 files changed, 60 insertions, 46 deletions
diff --git a/macros/coords.asm b/macros/coords.asm
index 302260d7..94808ba5 100644
--- a/macros/coords.asm
+++ b/macros/coords.asm
@@ -1,65 +1,79 @@
-validateCoords: MACRO
- IF \1 >= SCREEN_WIDTH
- fail "x coord out of range"
- ENDC
- IF \2 >= SCREEN_HEIGHT
- fail "y coord out of range"
+validate_coords: MACRO
+ IF _NARG >= 4
+ IF \1 >= \3
+ fail "x coord out of range"
+ ENDC
+ IF \2 >= \4
+ fail "y coord out of range"
+ ENDC
+ ELSE
+ validate_coords \1, \2, SCREEN_WIDTH, SCREEN_HEIGHT
ENDC
ENDM
-;\1 = r
-;\2 = X
-;\3 = Y
-;\4 = which tilemap (optional)
+hlcoord EQUS "coord hl,"
+bccoord EQUS "coord bc,"
+decoord EQUS "coord de,"
+
coord: MACRO
- validateCoords \2, \3
+; register, x, y[, origin]
+ validate_coords \2, \3
IF _NARG >= 4
- ld \1, \4 + SCREEN_WIDTH * \3 + \2
+ ld \1, (\3) * SCREEN_WIDTH + (\2) + \4
ELSE
- ld \1, wTileMap + SCREEN_WIDTH * \3 + \2
+ ld \1, (\3) * SCREEN_WIDTH + (\2) + wTileMap
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]
+hlbgcoord EQUS "bgcoord hl,"
+bcbgcoord EQUS "bgcoord bc,"
+debgcoord EQUS "bgcoord de,"
+
+bgcoord: MACRO
+; register, x, y[, origin]
+ validate_coords \2, \3, BG_MAP_WIDTH, BG_MAP_HEIGHT
+ IF _NARG >= 4
+ ld \1, (\3) * BG_MAP_WIDTH + (\2) + \4
ELSE
- ld a, [wTileMap + SCREEN_WIDTH * \2 + \1]
+ ld \1, (\3) * BG_MAP_WIDTH + (\2) + vBGMap0
ENDC
ENDM
-;\1 = X
-;\2 = Y
-;\3 = which tilemap (optional)
-Coorda: MACRO
- validateCoords \1, \2
+hlowcoord EQUS "owcoord hl,"
+bcowcoord EQUS "owcoord bc,"
+deowcoord EQUS "owcoord de,"
+
+owcoord: MACRO
+; register, x, y, map width
+ ld \1, wOverworldMap + ((\2) + 3) + (((\3) + 3) * ((\4) + (3 * 2)))
+ENDM
+
+dwcoord: MACRO
+; x, y
+ validate_coords \1, \2
IF _NARG >= 3
- ld [\3 + SCREEN_WIDTH * \2 + \1], a
+ dw (\2) * SCREEN_WIDTH + (\1) + \3
ELSE
- ld [wTileMap + SCREEN_WIDTH * \2 + \1], a
+ dw (\2) * SCREEN_WIDTH + (\1) + wTileMap
ENDC
ENDM
-;\1 = X
-;\2 = Y
-;\3 = which tilemap (optional)
-dwCoord: MACRO
- validateCoords \1, \2
+ldcoord_a: MACRO
+; x, y[, origin]
+ validate_coords \1, \2
IF _NARG >= 3
- dw \3 + SCREEN_WIDTH * \2 + \1
+ ld [(\2) * SCREEN_WIDTH + (\1) + \3], a
ELSE
- dw wTileMap + SCREEN_WIDTH * \2 + \1
+ ld [(\2) * SCREEN_WIDTH + (\1) + wTileMap], a
ENDC
ENDM
-;\1 = r
-;\2 = X
-;\3 = Y
-;\4 = map width
-overworldMapCoord: MACRO
- ld \1, wOverworldMap + ((\2) + 3) + (((\3) + 3) * ((\4) + (3 * 2)))
+lda_coord: MACRO
+; x, y[, origin]
+ validate_coords \1, \2
+ IF _NARG >= 3
+ ld a, [(\2) * SCREEN_WIDTH + (\1) + \3]
+ ELSE
+ ld a, [(\2) * SCREEN_WIDTH + (\1) + wTileMap]
+ ENDC
ENDM
diff --git a/macros/data.asm b/macros/data.asm
index 7a813529..16742d53 100755
--- a/macros/data.asm
+++ b/macros/data.asm
@@ -33,7 +33,7 @@ _tms3 = _tms3 | (1 << ((\1_TMNUM) - 1 - 48))
else
fail "\1 is not a TM or HM move"
ENDC
- shift
+ SHIFT
ENDR
REPT 3 ; TM01-TM24 (24/24)
db _tms1 & $ff
diff --git a/macros/gfx.asm b/macros/gfx.asm
index 950daee1..8803dad2 100644
--- a/macros/gfx.asm
+++ b/macros/gfx.asm
@@ -1,7 +1,7 @@
RGB: MACRO
REPT _NARG / 3
dw palred (\1) + palgreen (\2) + palblue (\3)
- shift 3
+ SHIFT 3
ENDR
ENDM
diff --git a/macros/scripts/events.asm b/macros/scripts/events.asm
index 9e84ec62..8087c5c2 100755
--- a/macros/scripts/events.asm
+++ b/macros/scripts/events.asm
@@ -185,7 +185,7 @@ SetEvents: MACRO
SetEvent \1
REPT _NARG - 1
SetEventReuseHL \2
- shift
+ SHIFT
ENDR
ENDM
@@ -237,7 +237,7 @@ ResetEvents: MACRO
ResetEvent \1
REPT _NARG - 1
ResetEventReuseHL \2
- shift
+ SHIFT
ENDR
ENDM
diff --git a/macros/scripts/text.asm b/macros/scripts/text.asm
index efecdd1c..261ab5f4 100755
--- a/macros/scripts/text.asm
+++ b/macros/scripts/text.asm
@@ -200,7 +200,7 @@ script_mart: MACRO
db _NARG ; number of items
REPT _NARG
db \1 ; item id
- shift
+ SHIFT
ENDR
db -1 ; end
ENDM