118 lines
2.9 KiB
C++
118 lines
2.9 KiB
C++
.macro map map_id:req
|
|
.byte \map_id >> 8 @ map group
|
|
.byte \map_id & 0xFF @ map num
|
|
.endm
|
|
|
|
.macro map_script type:req, script:req
|
|
.byte \type
|
|
.4byte \script
|
|
.endm
|
|
|
|
.macro map_script_2 var:req, compare:req, script:req
|
|
.2byte \var
|
|
.2byte \compare
|
|
.4byte \script
|
|
.endm
|
|
|
|
.macro object_event index:req, gfx:req, inConnection:req, x:req, y:req, elevation:req, movement_type:req, x_radius:req, y_radius:req, trainer_type:req, sight_radius_tree_etc:req, script:req, event_flag:req
|
|
.byte \index
|
|
.byte \gfx
|
|
.byte \inConnection
|
|
.byte 0 @ Padding
|
|
.2byte \x, \y
|
|
.byte \elevation
|
|
.byte \movement_type
|
|
.byte ((\y_radius << 4) | \x_radius)
|
|
.byte 0 @ Padding
|
|
.2byte \trainer_type
|
|
.2byte \sight_radius_tree_etc
|
|
.4byte \script
|
|
.2byte \event_flag
|
|
.2byte 0 @ Padding
|
|
inc _num_npcs
|
|
.endm
|
|
|
|
.macro warp_def x:req, y:req, elevation:req, warpId:req, map_id:req
|
|
.2byte \x, \y
|
|
.byte \elevation
|
|
.byte \warpId
|
|
.byte \map_id & 0xFF @ map num
|
|
.byte \map_id >> 8 @ map group
|
|
inc _num_warps
|
|
.endm
|
|
|
|
.macro coord_event x:req, y:req, elevation:req, trigger:req, index:req, script:req
|
|
.2byte \x, \y
|
|
.byte \elevation
|
|
.byte 0 @ Padding
|
|
.2byte \trigger
|
|
.2byte \index
|
|
.2byte 0 @ Padding
|
|
.4byte \script
|
|
inc _num_traps
|
|
.endm
|
|
|
|
.macro coord_weather_event x:req, y:req, elevation:req, weather:req
|
|
coord_event \x, \y, \elevation, \weather, 0, NULL
|
|
.endm
|
|
|
|
.macro bg_event x:req, y:req, elevation:req, kind:req, arg6:req, arg7
|
|
.2byte \x, \y
|
|
.byte \elevation
|
|
.byte \kind
|
|
.2byte 0 @ Padding
|
|
.if \kind != BG_EVENT_HIDDEN_ITEM
|
|
.4byte \arg6
|
|
.else
|
|
.2byte \arg6
|
|
.2byte \arg7
|
|
.endif
|
|
inc _num_signs
|
|
.endm
|
|
|
|
.macro bg_sign_event x:req, y:req, elevation:req, facing_dir:req, script:req
|
|
bg_event \x, \y, \elevation, \facing_dir, \script
|
|
.endm
|
|
|
|
.macro bg_hidden_item_event x:req, y:req, elevation:req, item:req, flag:req
|
|
bg_event \x, \y, \elevation, BG_EVENT_HIDDEN_ITEM, \item, ((\flag) - FLAG_HIDDEN_ITEMS_START)
|
|
.endm
|
|
|
|
.macro bg_secret_base_event x:req, y:req, elevation:req, secret_base_id:req
|
|
bg_event \x, \y, \elevation, BG_EVENT_SECRET_BASE, \secret_base_id
|
|
.endm
|
|
|
|
.macro map_events npcs:req, warps:req, traps:req, signs:req
|
|
.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, CONNECTION_SOUTH
|
|
.equiv connection_up, CONNECTION_NORTH
|
|
.equiv connection_left, CONNECTION_WEST
|
|
.equiv connection_right, CONNECTION_EAST
|
|
.equiv connection_dive, CONNECTION_DIVE
|
|
.equiv connection_emerge, CONNECTION_EMERGE
|
|
|
|
.macro connection direction:req, offset:req, map:req
|
|
.4byte connection_\direction
|
|
.4byte \offset
|
|
map \map
|
|
.space 2
|
|
.endm
|
|
|
|
.macro map_header_flags allow_cycling:req, allow_escaping:req, allow_running:req, show_map_name:req
|
|
.byte ((\show_map_name & 1) << 3) | ((\allow_running & 1) << 2) | ((\allow_escaping & 1) << 1) | \allow_cycling
|
|
.endm
|