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