diff options
author | Rangi <remy.oukaour+rangi42@gmail.com> | 2020-07-07 11:30:10 -0400 |
---|---|---|
committer | Rangi <remy.oukaour+rangi42@gmail.com> | 2020-07-07 11:30:10 -0400 |
commit | 13129459f11e73df8c556f0c02cd4fca7266a346 (patch) | |
tree | f0157c5ba3e66a48eba01fef6ce7283f1dece57a /macros | |
parent | 45ed05decf330faab4503fe8fecadc54698c9724 (diff) |
Sync coordinate macros with pokecrystal
Diffstat (limited to 'macros')
-rw-r--r-- | macros/coords.asm | 96 | ||||
-rwxr-xr-x | macros/data.asm | 2 | ||||
-rw-r--r-- | macros/gfx.asm | 2 | ||||
-rwxr-xr-x | macros/scripts/events.asm | 4 | ||||
-rwxr-xr-x | macros/scripts/text.asm | 2 |
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 |