summaryrefslogtreecommitdiff
path: root/asm/macros/map.inc
diff options
context:
space:
mode:
Diffstat (limited to 'asm/macros/map.inc')
-rw-r--r--asm/macros/map.inc104
1 files changed, 102 insertions, 2 deletions
diff --git a/asm/macros/map.inc b/asm/macros/map.inc
index 452f9b714..5367ad712 100644
--- a/asm/macros/map.inc
+++ b/asm/macros/map.inc
@@ -1,15 +1,115 @@
.macro new_map_group
- .set cur_map_group, cur_map_group + 1
+ inc cur_map_group
.set cur_map_num, 0
.endm
.macro map_group map_name
.set GROUP_\map_name, cur_map_group
.set MAP_\map_name, cur_map_num
- .set cur_map_num, cur_map_num + 1
+ inc cur_map_num
.endm
.macro map map_name
.byte GROUP_\map_name
.byte MAP_\map_name
.endm
+
+ .macro warp_map map_name
+ .byte MAP_\map_name
+ .byte GROUP_\map_name
+ .endm
+
+ .macro heal_location map_name, x, y
+ .byte GROUP_\map_name
+ .byte MAP_\map_name
+ .2byte \x
+ .2byte \y
+ .space 2
+ .endm
+
+ .equiv GROUP_NONE, 0x7f
+ .equiv MAP_NONE, 0x7f
+
+ .equiv GROUP_UNDEFINED, 0xff
+ .equiv MAP_UNDEFINED, 0xff
+
+ .macro map_script type, address
+ .byte \type
+ .4byte \address
+ .endm
+
+ .macro map_script_2 word1, word2, address
+ .2byte \word1
+ .2byte \word2
+ .4byte \address
+ .endm
+
+ .macro object_event index, gfx, replacement, filler1, x, y, elevation, movement_type, radius, filler2, trainer_type, sight_radius_tree_etc, script, event_flag, filler3, filler4
+ .byte \index, \gfx, \replacement, \filler1
+ .2byte \x
+ .2byte \y
+ .byte \elevation, \movement_type, \radius, \filler2
+ .2byte \trainer_type, \sight_radius_tree_etc
+ .4byte \script
+ .2byte \event_flag
+ .byte \filler3, \filler4
+ inc _num_npcs
+ .endm
+
+ .macro warp_def x, y, byte, warp, map
+ .2byte \x, \y
+ .byte \byte, \warp
+ warp_map \map
+ inc _num_warps
+ .endm
+
+ .macro coord_event x, y, byte1, byte2, word1, word2, word3, script
+ .2byte \x, \y
+ .byte \byte1, \byte2
+ .2byte \word1, \word2, \word3
+ .4byte \script
+ inc _num_traps
+ .endm
+
+ .macro bg_event x, y, byte, kind, word, arg6, arg7, arg8
+ .2byte \x, \y
+ .byte \byte, \kind
+ .2byte \word
+ .if \kind < 5
+ .4byte \arg6
+ .else
+ .2byte \arg6
+ .byte \arg7, \arg8
+ .endif
+ inc _num_signs
+ .endm
+
+ .macro map_events npcs, warps, traps, signs
+ .byte _num_npcs, _num_warps, _num_traps, _num_signs
+ .4byte \npcs, \warps, \traps, \signs
+ reset_map_events
+ .endm
+
+ .macro reset_map_events
+ .set _num_npcs, 0
+ .set _num_warps, 0
+ .set _num_traps, 0
+ .set _num_signs, 0
+ .endm
+
+ reset_map_events
+
+
+ .equiv connection_down, 1
+ .equiv connection_up, 2
+ .equiv connection_left, 3
+ .equiv connection_right, 4
+ .equiv connection_dive, 5
+ .equiv connection_emerge, 6
+
+ .macro connection direction, offset, map, filler
+ .4byte connection_\direction
+ .4byte \offset
+ map \map
+ .space 2
+ .endm