pokecrystal-board/macros/scripts/maps.asm

178 lines
3.7 KiB
NASM
Raw Normal View History

map_id: MACRO
2017-12-13 21:36:24 -08:00
;\1: map id
assert DEF(GROUP_\1) && DEF(MAP_\1), \
"Missing 'map_const \1' in constants/map_constants.asm"
2017-12-13 21:36:24 -08:00
db GROUP_\1, MAP_\1
2017-12-28 13:31:16 -08:00
ENDM
2017-12-13 21:36:24 -08:00
object_const_def EQUS "const_def 2"
def_scene_scripts: MACRO
2021-04-19 13:31:37 -07:00
REDEF _NUM_SCENE_SCRIPTS EQUS "_NUM_SCENE_SCRIPTS_\@"
db {_NUM_SCENE_SCRIPTS}
{_NUM_SCENE_SCRIPTS} = 0
ENDM
scene_script: MACRO
2017-12-13 21:36:24 -08:00
;\1: script pointer
2018-02-01 12:19:27 -08:00
dw \1
dw 0 ; filler
2021-04-19 13:31:37 -07:00
{_NUM_SCENE_SCRIPTS} = {_NUM_SCENE_SCRIPTS} + 1
ENDM
def_callbacks: MACRO
2021-04-19 13:31:37 -07:00
REDEF _NUM_CALLBACKS EQUS "_NUM_CALLBACKS_\@"
db {_NUM_CALLBACKS}
{_NUM_CALLBACKS} = 0
2017-12-28 13:31:16 -08:00
ENDM
2017-12-13 21:36:24 -08:00
callback: MACRO
;\1: type: a MAPCALLBACK_* constant
;\2: script pointer
dbw \1, \2
2021-04-19 13:31:37 -07:00
{_NUM_CALLBACKS} = {_NUM_CALLBACKS} + 1
ENDM
def_warp_events: MACRO
2021-04-19 13:31:37 -07:00
REDEF _NUM_WARP_EVENTS EQUS "_NUM_WARP_EVENTS_\@"
db {_NUM_WARP_EVENTS}
{_NUM_WARP_EVENTS} = 0
ENDM
warp_event: MACRO
;\1: x: left to right, starts at 0
;\2: y: top to bottom, starts at 0
2018-02-01 18:54:00 -08:00
;\3: map id: from constants/map_constants.asm
;\4: warp destination: starts at 1
db \2, \1, \4
map_id \3
2021-04-19 13:31:37 -07:00
{_NUM_WARP_EVENTS} = {_NUM_WARP_EVENTS} + 1
ENDM
def_coord_events: MACRO
2021-04-19 13:31:37 -07:00
REDEF _NUM_COORD_EVENTS EQUS "_NUM_COORD_EVENTS_\@"
db {_NUM_COORD_EVENTS}
{_NUM_COORD_EVENTS} = 0
2017-12-28 13:31:16 -08:00
ENDM
2017-12-13 21:36:24 -08:00
coord_event: MACRO
;\1: x: left to right, starts at 0
2017-12-13 21:36:24 -08:00
;\2: y: top to bottom, starts at 0
2018-02-01 12:19:27 -08:00
;\3: scene id: a SCENE_* constant; controlled by setscene/setmapscene
2017-12-13 21:36:24 -08:00
;\4: script pointer
db \3, \2, \1
db 0 ; filler
2017-12-13 21:36:24 -08:00
dw \4
2019-03-03 11:19:16 -08:00
dw 0 ; filler
2021-04-19 13:31:37 -07:00
{_NUM_COORD_EVENTS} = {_NUM_COORD_EVENTS} + 1
ENDM
def_bg_events: MACRO
2021-04-19 13:31:37 -07:00
REDEF _NUM_BG_EVENTS EQUS "_NUM_BG_EVENTS_\@"
db {_NUM_BG_EVENTS}
{_NUM_BG_EVENTS} = 0
2017-12-28 13:31:16 -08:00
ENDM
2017-12-13 21:36:24 -08:00
bg_event: MACRO
;\1: x: left to right, starts at 0
;\2: y: top to bottom, starts at 0
;\3: function: a BGEVENT_* constant
2017-12-13 21:36:24 -08:00
;\4: script pointer
db \2, \1, \3
2017-12-13 21:36:24 -08:00
dw \4
2021-04-19 13:31:37 -07:00
{_NUM_BG_EVENTS} = {_NUM_BG_EVENTS} + 1
ENDM
def_object_events: MACRO
2021-04-19 13:31:37 -07:00
REDEF _NUM_OBJECT_EVENTS EQUS "_NUM_OBJECT_EVENTS_\@"
db {_NUM_OBJECT_EVENTS}
{_NUM_OBJECT_EVENTS} = 0
2017-12-28 13:31:16 -08:00
ENDM
2017-12-13 21:36:24 -08:00
object_event: MACRO
;\1: x: left to right, starts at 0
2017-12-13 21:36:24 -08:00
;\2: y: top to bottom, starts at 0
;\3: sprite: a SPRITE_* constant
2017-12-13 21:36:24 -08:00
;\4: movement function: a SPRITEMOVEDATA_* constant
;\5, \6: movement radius: x, y
;\7, \8: hour limits: h1, h2 (0-23)
; * if h1 < h2, the object_event will only appear from h1 to h2
; * if h1 > h2, the object_event will not appear from h2 to h1
; * if h1 == h2, the object_event will always appear
; * if h1 == -1, h2 is treated as a time-of-day value:
; a combo of MORN, DAY, and/or NITE, or -1 to always appear
2017-12-13 21:36:24 -08:00
;\9: color: a PAL_NPC_* constant, or 0 for sprite default
;\<10>: function: a OBJECTTYPE_* constant
;\<11>: sight range: applies to OBJECTTYPE_TRAINER
;\<12>: script pointer
;\<13>: event flag: an EVENT_* constant, or -1 to always appear
db \3, \2 + 4, \1 + 4, \4
dn \6, \5
2017-12-13 21:36:24 -08:00
db \7, \8
dn \9, \<10>
db \<11>
dw \<12>, \<13>
2021-04-19 13:31:37 -07:00
; the dummy PlayerObjectTemplate object_event has no def_object_events
if DEF(_NUM_OBJECT_EVENTS)
{_NUM_OBJECT_EVENTS} = {_NUM_OBJECT_EVENTS} + 1
endc
2017-12-28 13:31:16 -08:00
ENDM
2017-12-13 21:36:24 -08:00
trainer: MACRO
;\1: trainer group
;\2: trainer id
;\3: flag: an EVENT_BEAT_* constant
2017-12-13 21:36:24 -08:00
;\4: seen text
;\5: win text
;\6: loss text
;\7: after-battle text
dw \3
db \1, \2
2017-12-13 21:36:24 -08:00
dw \4, \5, \6, \7
2017-12-28 13:31:16 -08:00
ENDM
2017-12-13 21:36:24 -08:00
itemball: MACRO
2017-12-13 21:36:24 -08:00
;\1: item: from constants/item_constants.asm
;\2: quantity: default 1
if _NARG == 1
itemball \1, 1
2017-12-13 21:36:24 -08:00
else
db \1, \2
2017-12-13 21:36:24 -08:00
endc
2017-12-28 13:31:16 -08:00
ENDM
2017-12-13 21:36:24 -08:00
hiddenitem: MACRO
;\1: item: from constants/item_constants.asm
;\2: flag: an EVENT_* constant
dwb \2, \1
ENDM
elevfloor: MACRO
2017-12-13 21:36:24 -08:00
;\1: floor: a FLOOR_* constant
;\2: warp destination: starts at 1
;\3: map id
db \1, \2
map_id \3
2017-12-13 21:36:24 -08:00
ENDM
conditional_event: MACRO
;\1: flag: an EVENT_* constant
;\2: script pointer
dw \1, \2
ENDM
cmdqueue: MACRO
;\1: type: a CMDQUEUE_* constant
;\2: data pointer
dbw \1, \2
dw 0 ; filler
ENDM
stonetable: MACRO
2017-12-13 21:36:24 -08:00
;\1: warp id
;\2: object_event id
2017-12-13 21:36:24 -08:00
;\3: script pointer
db \1, \2
dw \3
2017-12-28 13:31:16 -08:00
ENDM