summaryrefslogtreecommitdiff
path: root/macros/scripts/maps.asm
diff options
context:
space:
mode:
authorRangi <35663410+Rangi42@users.noreply.github.com>2020-07-15 12:26:16 -0400
committerGitHub <noreply@github.com>2020-07-15 12:26:16 -0400
commite18e5d50b5e154c1a7c94a2a1f39a3a99daa689a (patch)
treed8a157ae5aa323a00873efe79eb4693327b8bb70 /macros/scripts/maps.asm
parentaa97e196dd5b37e89db5ddf154dc7aea9b02a045 (diff)
parent93d0697f37aca8ed7a21298a980876af6d43268b (diff)
Merge pull request #273 from Rangi42/master
Clean up some data, using macros for multiline list entries
Diffstat (limited to 'macros/scripts/maps.asm')
-rw-r--r--macros/scripts/maps.asm79
1 files changed, 31 insertions, 48 deletions
diff --git a/macros/scripts/maps.asm b/macros/scripts/maps.asm
index 37da8c58..f2009209 100644
--- a/macros/scripts/maps.asm
+++ b/macros/scripts/maps.asm
@@ -1,39 +1,3 @@
-;\1 map width
-;\2 Rows above (Y-blocks)
-;\3 X movement (X-blocks)
-EVENT_DISP: MACRO
- dw (wOverworldMap + 7 + (\1) + ((\1) + 6) * ((\2) >> 1) + ((\3) >> 1)) ; Ev.Disp
- db \2,\3 ;Y,X
-ENDM
-
-FLYWARP_DATA: MACRO
- EVENT_DISP \1,\2,\3
- db ((\2) & $01) ;sub-block Y
- db ((\3) & $01) ;sub-block X
-ENDM
-
-; external map entry macro
-EMAP: MACRO ; emap x-coordinate,y-coordinate,textpointer
-; the appearance of towns and routes in the town map, indexed by map id
- ; nybble: y-coordinate
- ; nybble: x-coordinate
- ; word : pointer to map name
- dn \2, \1
- dw \3
-ENDM
-
-; internal map entry macro
-IMAP: MACRO ; imap mapid_less_than,x-coordinate,y-coordinate,textpointer
-; the appearance of buildings and dungeons in the town map
- ; byte : maximum map id subject to this rule
- ; nybble: y-coordinate
- ; nybble: x-coordinate
- ; word : pointer to map name
- db \1 + 1
- dn \3, \2
- dw \4
-ENDM
-
;\1 sprite id
;\2 x position
;\3 y position
@@ -49,17 +13,15 @@ object: MACRO
db \2 + 4
db \4
db \5
- IF (_NARG > 7)
+ IF _NARG > 7
db TRAINER | \6
db \7
db \8
+ ELIF _NARG > 6
+ db ITEM | \6
+ db \7
ELSE
- IF (_NARG > 6)
- db ITEM | \6
- db \7
- ELSE
- db \6
- ENDC
+ db \6
ENDC
ENDM
@@ -82,9 +44,30 @@ ENDM
;\2 y position
;\3 map width
warp_to: MACRO
- EVENT_DISP \3, \2, \1
+ event_displacement \3, \1, \2
ENDM
+
+;\1 event flag
+;\2 view range
+;\3 TextBeforeBattle
+;\4 TextAfterBattle
+;\5 TextEndBattle
+trainer: MACRO
+ IF _NARG > 5
+ dbEventFlagBit \1, \2
+ db (\3 << 4)
+ dwEventFlagAddress \1, \2
+ SHIFT
+ ELSE
+ dbEventFlagBit \1
+ db (\2 << 4)
+ dwEventFlagAddress \1
+ ENDC
+ dw \3, \5, \4, \4
+ENDM
+
+
;\1 map name
;\2 map id
;\3 tileset
@@ -126,7 +109,7 @@ _src = -_tgt
_tgt = 0
ENDC
-IF "\1" == "north"
+IF !STRCMP("\1", "north")
_blk = \3_WIDTH * (\3_HEIGHT - 3) + _src
_map = _tgt
_win = (\3_WIDTH + 6) * \3_HEIGHT + 1
@@ -137,7 +120,7 @@ IF _len > \3_WIDTH
_len = \3_WIDTH
ENDC
-ELIF "\1" == "south"
+ELIF !STRCMP("\1", "south")
_blk = _src
_map = (CURRENT_MAP_WIDTH + 6) * (CURRENT_MAP_HEIGHT + 3) + _tgt
_win = \3_WIDTH + 7
@@ -148,7 +131,7 @@ IF _len > \3_WIDTH
_len = \3_WIDTH
ENDC
-ELIF "\1" == "west"
+ELIF !STRCMP("\1", "west")
_blk = (\3_WIDTH * _src) + \3_WIDTH - 3
_map = (CURRENT_MAP_WIDTH + 6) * _tgt
_win = (\3_WIDTH + 6) * 2 - 6
@@ -159,7 +142,7 @@ IF _len > \3_HEIGHT
_len = \3_HEIGHT
ENDC
-ELIF "\1" == "east"
+ELIF !STRCMP("\1", "east")
_blk = (\3_WIDTH * _src)
_map = (CURRENT_MAP_WIDTH + 6) * _tgt + CURRENT_MAP_WIDTH + 3
_win = \3_WIDTH + 7