diff options
Diffstat (limited to 'macros/scripts')
-rw-r--r-- | macros/scripts/audio.asm | 265 | ||||
-rw-r--r-- | macros/scripts/event.asm | 1069 | ||||
-rw-r--r-- | macros/scripts/gfx_anim.asm | 46 | ||||
-rw-r--r-- | macros/scripts/maps.asm | 104 | ||||
-rw-r--r-- | macros/scripts/move_anim.asm | 294 | ||||
-rw-r--r-- | macros/scripts/movement.asm | 247 | ||||
-rw-r--r-- | macros/scripts/text.asm | 133 | ||||
-rw-r--r-- | macros/scripts/trade_anim.asm | 255 |
8 files changed, 2413 insertions, 0 deletions
diff --git a/macros/scripts/audio.asm b/macros/scripts/audio.asm new file mode 100644 index 000000000..bac979a5f --- /dev/null +++ b/macros/scripts/audio.asm @@ -0,0 +1,265 @@ +note: MACRO + dn (\1), (\2) - 1 + ENDM + +sound: macro + note \1, \2 + db \3 ; intensity + dw \4 ; frequency + endm + +noise: macro + note \1, \2 ; duration + db \3 ; intensity + db \4 ; frequency + endm + +musicheader: macro + ; number of tracks, track idx, address + dbw ((\1 - 1) << 6) + (\2 - 1), \3 + endm + +cry_header: macro + dw \1, \2, \3 + endm + +; MusicCommands indexes (see audio/engine.asm) + enum_start $d8 + + enum notetype_cmd +octave: macro + db notetype_cmd - (\1) + endm + +notetype: macro + db notetype_cmd + db \1 ; note_length + if _NARG >= 2 + db \2 ; intensity + endc + endm + + enum pitchoffset_cmd +pitchoffset: macro + db pitchoffset_cmd + dn \1, \2 - 1 ; octave, key + endm + + enum tempo_cmd +tempo: macro + db tempo_cmd + bigdw \1 ; tempo + endm + + enum dutycycle_cmd +dutycycle: macro + db dutycycle_cmd + db \1 ; duty_cycle + endm + + enum intensity_cmd +intensity: macro + db intensity_cmd + db \1 ; intensity + endm + + enum soundinput_cmd +soundinput: macro + db soundinput_cmd + db \1 ; input + endm + + enum sound_duty_cmd +sound_duty: macro + db sound_duty_cmd + db \1 | (\2 << 2) | (\3 << 4) | (\4 << 6) ; duty sequence + endm + + enum togglesfx_cmd +togglesfx: macro + db togglesfx_cmd + endm + + enum slidepitchto_cmd +slidepitchto: macro + db slidepitchto_cmd + db \1 - 1 ; duration + dn \2, \3 ; octave, pitch + endm + + enum vibrato_cmd +vibrato: macro + db vibrato_cmd + db \1 ; delay + db \2 ; extent + endm + + enum unknownmusic0xe2_cmd +unknownmusic0xe2: macro + db unknownmusic0xe2_cmd + db \1 ; unknown + endm + + enum togglenoise_cmd +togglenoise: macro + db togglenoise_cmd + db \1 ; id + endm + + enum panning_cmd +panning: macro + db panning_cmd + db \1 ; tracks + endm + + enum volume_cmd +volume: macro + db volume_cmd + db \1 ; volume + endm + + enum tone_cmd +tone: macro + db tone_cmd + bigdw \1 ; tone + endm + + enum unknownmusic0xe7_cmd +unknownmusic0xe7: macro + db unknownmusic0xe7_cmd + db \1 ; unknown + endm + + enum unknownmusic0xe8_cmd +unknownmusic0xe8: macro + db unknownmusic0xe8_cmd + db \1 ; unknown + endm + + enum tempo_relative_cmd +tempo_relative: macro + db tempo_relative_cmd + bigdw \1 ; value + endm + + enum restartchannel_cmd +restartchannel: macro + db restartchannel_cmd + dw \1 ; address + endm + + enum newsong_cmd +newsong: macro + db newsong_cmd + bigdw \1 ; id + endm + + enum sfxpriorityon_cmd +sfxpriorityon: macro + db sfxpriorityon_cmd + endm + + enum sfxpriorityoff_cmd +sfxpriorityoff: macro + db sfxpriorityoff_cmd + endm + + enum unknownmusic0xee_cmd +unknownmusic0xee: macro + db unknownmusic0xee_cmd + dw \1 ; address + endm + + enum stereopanning_cmd +stereopanning: macro + db stereopanning_cmd + db \1 ; tracks + endm + + enum sfxtogglenoise_cmd +sfxtogglenoise: macro + db sfxtogglenoise_cmd + db \1 ; id + endm + + enum music0xf1_cmd +music0xf1: macro + db music0xf1_cmd + endm + + enum music0xf2_cmd +music0xf2: macro + db music0xf2_cmd + endm + + enum music0xf3_cmd +music0xf3: macro + db music0xf3_cmd + endm + + enum music0xf4_cmd +music0xf4: macro + db music0xf4_cmd + endm + + enum music0xf5_cmd +music0xf5: macro + db music0xf5_cmd + endm + + enum music0xf6_cmd +music0xf6: macro + db music0xf6_cmd + endm + + enum music0xf7_cmd +music0xf7: macro + db music0xf7_cmd + endm + + enum music0xf8_cmd +music0xf8: macro + db music0xf8_cmd + endm + + enum unknownmusic0xf9_cmd +unknownmusic0xf9: macro + db unknownmusic0xf9_cmd + endm + + enum setcondition_cmd +setcondition: macro + db setcondition_cmd + db \1 ; condition + endm + + enum jumpif_cmd +jumpif: macro + db jumpif_cmd + db \1 ; condition + dw \2 ; address + endm + + enum jumpchannel_cmd +jumpchannel: macro + db jumpchannel_cmd + dw \1 ; address + endm + + enum loopchannel_cmd +loopchannel: macro + db loopchannel_cmd + db \1 ; count + dw \2 ; address + endm + + enum callchannel_cmd +callchannel: macro + db callchannel_cmd + dw \1 ; address + endm + + enum endchannel_cmd +endchannel: macro + db endchannel_cmd + endm diff --git a/macros/scripts/event.asm b/macros/scripts/event.asm new file mode 100644 index 000000000..b00b6a6da --- /dev/null +++ b/macros/scripts/event.asm @@ -0,0 +1,1069 @@ +; ScriptCommandTable indexes (see engine/scripting.asm) + enum_start + + enum scall_command +scall: macro + db scall_command + dw \1 ; pointer + endm + + enum farscall_command +farscall: macro + db farscall_command + dba \1 + endm + + enum ptcall_command +ptcall: macro + db ptcall_command + dw \1 ; pointer + endm + + enum jump_command +jump: macro + db jump_command + dw \1 ; pointer + endm + + enum farjump_command +farjump: macro + db farjump_command + dba \1 + endm + + enum ptjump_command +ptjump: macro + db ptjump_command + dw \1 ; pointer + endm + + enum if_equal_command +if_equal: macro + db if_equal_command + db \1 ; byte + dw \2 ; pointer + endm + + enum if_not_equal_command +if_not_equal: macro + db if_not_equal_command + db \1 ; byte + dw \2 ; pointer + endm + + enum iffalse_command +iffalse: macro + db iffalse_command + dw \1 ; pointer + endm + + enum iftrue_command +iftrue: macro + db iftrue_command + dw \1 ; pointer + endm + + enum if_greater_than_command +if_greater_than: macro + db if_greater_than_command + db \1 ; byte + dw \2 ; pointer + endm + + enum if_less_than_command +if_less_than: macro + db if_less_than_command + db \1 ; byte + dw \2 ; pointer + endm + + enum jumpstd_command +jumpstd: macro + db jumpstd_command + dw \1 ; predefined_script + endm + + enum callstd_command +callstd: macro + db callstd_command + dw \1 ; predefined_script + endm + + enum callasm_command +callasm: macro + db callasm_command + dba \1 + endm + + enum special_command +special: macro + db special_command + dw (\1Special - SpecialsPointers) / 3 + endm + +add_special: MACRO +\1Special:: + dba \1 +ENDM + + enum ptcallasm_command +ptcallasm: macro + db ptcallasm_command + dw \1 ; asm + endm + + enum checkmaptriggers_command +checkmaptriggers: macro + db checkmaptriggers_command + map \1 ; map + endm + + enum domaptrigger_command +domaptrigger: macro + db domaptrigger_command + map \1 ; map + db \2 ; trigger_id + endm + + enum checktriggers_command +checktriggers: macro + db checktriggers_command + endm + + enum dotrigger_command +dotrigger: macro + db dotrigger_command + db \1 ; trigger_id + endm + + enum writebyte_command +writebyte: macro + db writebyte_command + db \1 ; value + endm + + enum addvar_command +addvar: macro + db addvar_command + db \1 ; value + endm + + enum random_command +random: macro + db random_command + db \1 ; input + endm + + enum checkver_command +checkver: macro + db checkver_command + endm + + enum copybytetovar_command +copybytetovar: macro + db copybytetovar_command + dw \1 ; address + endm + + enum copyvartobyte_command +copyvartobyte: macro + db copyvartobyte_command + dw \1 ; address + endm + + enum loadvar_command +loadvar: macro + db loadvar_command + dw \1 ; address + db \2 ; value + endm + + enum checkcode_command +checkcode: macro + db checkcode_command + db \1 ; variable_id + endm + + enum writevarcode_command +writevarcode: macro + db writevarcode_command + db \1 ; variable_id + endm + + enum writecode_command +writecode: macro + db writecode_command + db \1 ; variable_id + db \2 ; value + endm + + enum giveitem_command +giveitem: macro + db giveitem_command + db \1 ; item +if _NARG == 2 + db \2 ; quantity +else + db 1 +endc + endm + + enum takeitem_command +takeitem: macro + db takeitem_command + db \1 ; item +if _NARG == 2 + db \2 ; quantity +else + db 1 +endc + endm + + enum checkitem_command +checkitem: macro + db checkitem_command + db \1 ; item + endm + + enum givemoney_command +givemoney: macro + db givemoney_command + db \1 ; account + dt \2 ; money + endm + + enum takemoney_command +takemoney: macro + db takemoney_command + db \1 ; account + dt \2 ; money + endm + + enum checkmoney_command +checkmoney: macro + db checkmoney_command + db \1 ; account + dt \2 ; money + endm + + enum givecoins_command +givecoins: macro + db givecoins_command + dw \1 ; coins + endm + + enum takecoins_command +takecoins: macro + db takecoins_command + dw \1 ; coins + endm + + enum checkcoins_command +checkcoins: macro + db checkcoins_command + dw \1 ; coins + endm + + enum addcellnum_command +addcellnum: macro + db addcellnum_command + db \1 ; person + endm + + enum delcellnum_command +delcellnum: macro + db delcellnum_command + db \1 ; person + endm + + enum checkcellnum_command +checkcellnum: macro + db checkcellnum_command + db \1 ; person + endm + + enum checktime_command +checktime: macro + db checktime_command + db \1 ; time + endm + +checkmorn EQUS "checktime MORN" +checkday EQUS "checktime DAY" +checknite EQUS "checktime NITE" + + enum checkpoke_command +checkpoke: macro + db checkpoke_command + db \1 ; pkmn + endm + + enum givepoke_command +givepoke: macro + db givepoke_command + db \1 ; pokemon + db \2 ; level + if _NARG >= 3 + db \3 ; item + if _NARG >= 4 + db \4 ; trainer + if \4 + dw \5 ; trainer_name_pointer + dw \6 ; pkmn_nickname + endc + else + db 0 + endc + else + db 0, 0 + endc + endm + + enum giveegg_command +giveegg: macro + db giveegg_command + db \1 ; pkmn + db \2 ; level + endm + + enum givepokeitem_command +givepokeitem: macro + db givepokeitem_command + dw \1 ; pointer + endm + + enum checkpokeitem_command +checkpokeitem: macro + db checkpokeitem_command + dw \1 ; pointer + endm + + enum checkevent_command +checkevent: macro + db checkevent_command + dw \1 ; event_flag + endm + + enum clearevent_command +clearevent: macro + db clearevent_command + dw \1 ; event_flag + endm + + enum setevent_command +setevent: macro + db setevent_command + dw \1 ; event_flag + endm + + enum checkflag_command +checkflag: macro + db checkflag_command + dw \1 ; engine_flag + endm + + enum clearflag_command +clearflag: macro + db clearflag_command + dw \1 ; engine_flag + endm + + enum setflag_command +setflag: macro + db setflag_command + dw \1 ; engine_flag + endm + + enum wildon_command +wildon: macro + db wildon_command + endm + + enum wildoff_command +wildoff: macro + db wildoff_command + endm + + enum xycompare_command +xycompare: macro + db xycompare_command + dw \1 ; pointer + endm + + enum warpmod_command +warpmod: macro + db warpmod_command + db \1 ; warp_id + map \2 ; map + endm + + enum blackoutmod_command +blackoutmod: macro + db blackoutmod_command + map \1 ; map + endm + + enum warp_command +warp: macro + db warp_command + map \1 ; map + db \2 ; x + db \3 ; y + endm + + enum readmoney_command +readmoney: macro + db readmoney_command + db \1 ; account + db \2 ; memory + endm + + enum readcoins_command +readcoins: macro + db readcoins_command + db \1 ; memory + endm + + enum RAM2MEM_command +RAM2MEM: macro + db RAM2MEM_command + db \1 ; memory + endm + + enum pokenamemem_command +pokenamemem: macro + db pokenamemem_command + db \1 ; pokemon + db \2 ; memory + endm + + enum itemtotext_command +itemtotext: macro + db itemtotext_command + db \1 ; item + db \2 ; memory + endm + + enum mapnametotext_command +mapnametotext: macro + db mapnametotext_command + db \1 ; memory + endm + + enum trainertotext_command +trainertotext: macro + db trainertotext_command + db \1 ; trainer_id + db \2 ; trainer_group + db \3 ; memory + endm + + enum stringtotext_command +stringtotext: macro + db stringtotext_command + dw \1 ; text_pointer + db \2 ; memory + endm + + enum itemnotify_command +itemnotify: macro + db itemnotify_command + endm + + enum pocketisfull_command +pocketisfull: macro + db pocketisfull_command + endm + + enum opentext_command +opentext: macro + db opentext_command + endm + + enum refreshscreen_command +refreshscreen: macro + db refreshscreen_command + db \1 ; dummy + endm + + enum closetext_command +closetext: macro + db closetext_command + endm + + enum loadbytec2cf_command +loadbytec2cf: macro + db loadbytec2cf_command + db \1 ; byte + endm + + enum farwritetext_command +farwritetext: macro + db farwritetext_command + dba \1 + endm + + enum writetext_command +writetext: macro + db writetext_command + dw \1 ; text_pointer + endm + + enum repeattext_command +repeattext: macro + db repeattext_command + db \1 ; byte + db \2 ; byte + endm + + enum yesorno_command +yesorno: macro + db yesorno_command + endm + + enum loadmenudata_command +loadmenudata: macro + db loadmenudata_command + dw \1 ; data + endm + + enum closewindow_command +closewindow: macro + db closewindow_command + endm + + enum jumptextfaceplayer_command +jumptextfaceplayer: macro + db jumptextfaceplayer_command + dw \1 ; text_pointer + endm + +; IF _CRYSTAL + enum farjumptext_command +farjumptext: macro + db farjumptext_command + dba \1 + endm +; ENDC + + enum jumptext_command +jumptext: macro + db jumptext_command + dw \1 ; text_pointer + endm + + enum waitbutton_command +waitbutton: macro + db waitbutton_command + endm + + enum buttonsound_command +buttonsound: macro + db buttonsound_command + endm + + enum pokepic_command +pokepic: macro + db pokepic_command + db \1 ; pokemon + endm + + enum closepokepic_command +closepokepic: macro + db closepokepic_command + endm + + enum _2dmenu_command +_2dmenu: macro + db _2dmenu_command + endm + + enum verticalmenu_command +verticalmenu: macro + db verticalmenu_command + endm + + enum loadpikachudata_command +loadpikachudata: macro + db loadpikachudata_command + endm + + enum randomwildmon_command +randomwildmon: macro + db randomwildmon_command + endm + + enum loadmemtrainer_command +loadmemtrainer: macro + db loadmemtrainer_command + endm + + enum loadwildmon_command +loadwildmon: macro + db loadwildmon_command + db \1 ; pokemon + db \2 ; level + endm + + enum loadtrainer_command +loadtrainer: macro + db loadtrainer_command + db \1 ; trainer_group + db \2 ; trainer_id + endm + + enum startbattle_command +startbattle: macro + db startbattle_command + endm + + enum reloadmapafterbattle_command +reloadmapafterbattle: macro + db reloadmapafterbattle_command + endm + + enum catchtutorial_command +catchtutorial: macro + db catchtutorial_command + db \1 ; byte + endm + + enum trainertext_command +trainertext: macro + db trainertext_command + db \1 ; which_text + endm + + enum trainerflagaction_command +trainerflagaction: macro + db trainerflagaction_command + db \1 ; action + endm + + enum winlosstext_command +winlosstext: macro + db winlosstext_command + dw \1 ; win_text_pointer + dw \2 ; loss_text_pointer + endm + + enum scripttalkafter_command +scripttalkafter: macro + db scripttalkafter_command + endm + + enum end_if_just_battled_command +end_if_just_battled: macro + db end_if_just_battled_command + endm + + enum check_just_battled_command +check_just_battled: macro + db check_just_battled_command + endm + + enum setlasttalked_command +setlasttalked: macro + db setlasttalked_command + db \1 ; person + endm + + enum applymovement_command +applymovement: macro + db applymovement_command + db \1 ; person + dw \2 ; data + endm + + enum applymovement2_command +applymovement2: macro + db applymovement2_command + dw \1 ; data + endm + + enum faceplayer_command +faceplayer: macro + db faceplayer_command + endm + + enum faceperson_command +faceperson: macro + db faceperson_command + db \1 ; person1 + db \2 ; person2 + endm + + enum variablesprite_command +variablesprite: macro + db variablesprite_command + db \1 - SPRITE_VARS ; byte + db \2 ; sprite + endm + + enum disappear_command +disappear: macro + db disappear_command + db \1 ; person + endm + + enum appear_command +appear: macro + db appear_command + db \1 ; person + endm + + enum follow_command +follow: macro + db follow_command + db \1 ; person2 + db \2 ; person1 + endm + + enum stopfollow_command +stopfollow: macro + db stopfollow_command + endm + + enum moveperson_command +moveperson: macro + db moveperson_command + db \1 ; person + db \2 ; x + db \3 ; y + endm + + enum writepersonxy_command +writepersonxy: macro + db writepersonxy_command + db \1 ; person + endm + + enum loademote_command +loademote: macro + db loademote_command + db \1 ; bubble + endm + + enum showemote_command +showemote: macro + db showemote_command + db \1 ; bubble + db \2 ; person + db \3 ; time + endm + + enum spriteface_command +spriteface: macro + db spriteface_command + db \1 ; person + db \2 ; facing + endm + + enum follownotexact_command +follownotexact: macro + db follownotexact_command + db \1 ; person2 + db \2 ; person1 + endm + + enum earthquake_command +earthquake: macro + db earthquake_command + db \1 ; param + endm + + enum changemap_command +changemap: macro + db changemap_command + db \1 ; map_bank + dw \2 ; map_data_pointer + endm + + enum changeblock_command +changeblock: macro + db changeblock_command + db \1 ; x + db \2 ; y + db \3 ; block + endm + + enum reloadmap_command +reloadmap: macro + db reloadmap_command + endm + + enum reloadmappart_command +reloadmappart: macro + db reloadmappart_command + endm + + enum writecmdqueue_command +writecmdqueue: macro + db writecmdqueue_command + dw \1 ; queue_pointer + endm + + enum delcmdqueue_command +delcmdqueue: macro + db delcmdqueue_command + db \1 ; byte + endm + + enum playmusic_command +playmusic: macro + db playmusic_command + dw \1 ; music_pointer + endm + + enum encountermusic_command +encountermusic: macro + db encountermusic_command + endm + + enum musicfadeout_command +musicfadeout: macro + db musicfadeout_command + dw \1 ; music + db \2 ; fadetime + endm + + enum playmapmusic_command +playmapmusic: macro + db playmapmusic_command + endm + + enum dontrestartmapmusic_command +dontrestartmapmusic: macro + db dontrestartmapmusic_command + endm + + enum cry_command +cry: macro + db cry_command + dw \1 ; cry_id + endm + + enum playsound_command +playsound: macro + db playsound_command + dw \1 ; sound_pointer + endm + + enum waitsfx_command +waitsfx: macro + db waitsfx_command + endm + + enum warpsound_command +warpsound: macro + db warpsound_command + endm + + enum specialsound_command +specialsound: macro + db specialsound_command + endm + + enum passtoengine_command +passtoengine: macro + db passtoengine_command + db \1 ; data_pointer + endm + + enum newloadmap_command +newloadmap: macro + db newloadmap_command + db \1 ; which_method + endm + + enum pause_command +pause: macro + db pause_command + db \1 ; length + endm + + enum deactivatefacing_command +deactivatefacing: macro + db deactivatefacing_command + db \1 ; time + endm + + enum priorityjump_command +priorityjump: macro + db priorityjump_command + dw \1 ; pointer + endm + + enum warpcheck_command +warpcheck: macro + db warpcheck_command + endm + + enum ptpriorityjump_command +ptpriorityjump: macro + db ptpriorityjump_command + dw \1 ; pointer + endm + + enum return_command +return: macro + db return_command + endm + + enum end_command +end: macro + db end_command + endm + + enum reloadandreturn_command +reloadandreturn: macro + db reloadandreturn_command + db \1 ; which_method + endm + + enum end_all_command +end_all: macro + db end_all_command + endm + + enum pokemart_command +pokemart: macro + db pokemart_command + db \1 ; dialog_id + dw \2 ; mart_id + endm + + enum elevator_command +elevator: macro + db elevator_command + dw \1 ; floor_list_pointer + endm + + enum trade_command +trade: macro + db trade_command + db \1 ; trade_id + endm + + enum askforphonenumber_command +askforphonenumber: macro + db askforphonenumber_command + db \1 ; number + endm + + enum phonecall_command +phonecall: macro + db phonecall_command + dw \1 ; caller_name + endm + + enum hangup_command +hangup: macro + db hangup_command + endm + + enum describedecoration_command +describedecoration: macro + db describedecoration_command + db \1 ; byte + endm + + enum fruittree_command +fruittree: macro + db fruittree_command + db \1 ; tree_id + endm + + enum specialphonecall_command +specialphonecall: macro + db specialphonecall_command + dw \1 ; call_id + endm + + enum checkphonecall_command +checkphonecall: macro + db checkphonecall_command + endm + + enum verbosegiveitem_command +verbosegiveitem: macro + db verbosegiveitem_command + db \1 ; item +if _NARG == 2 + db \2 ; quantity +else + db 1 +endc + endm + + enum verbosegiveitem2_command +verbosegiveitem2: macro + db verbosegiveitem2_command + db \1 ; item + db \2 ; var + endm + + enum swarm_command +swarm: macro + db swarm_command + db \1 ; flag + map \2 ; map + endm + + enum halloffame_command +halloffame: macro + db halloffame_command + endm + + enum credits_command +credits: macro + db credits_command + endm + + enum warpfacing_command +warpfacing: macro + db warpfacing_command + db \1 ; facing + map \2 ; map + db \3 ; x + db \4 ; y + endm + + enum battletowertext_command +battletowertext: macro + db battletowertext_command + db \1 ; memory + endm + + enum landmarktotext_command +landmarktotext: macro + db landmarktotext_command + db \1 ; id + db \2 ; memory + endm + + enum trainerclassname_command +trainerclassname: macro + db trainerclassname_command + db \1 ; id + db \2 ; memory + endm + + enum name_command +name: macro + db name_command + db \1 ; type + db \2 ; id + db \3 ; memory + endm + + enum wait_command +wait: macro + db wait_command + db \1 ; duration + endm + + enum check_save_command +check_save: macro + db check_save_command + endm diff --git a/macros/scripts/gfx_anim.asm b/macros/scripts/gfx_anim.asm new file mode 100644 index 000000000..e0a56cc23 --- /dev/null +++ b/macros/scripts/gfx_anim.asm @@ -0,0 +1,46 @@ +; pic+sprite animations + +frame: macro + db \1 +x = \2 +if _NARG > 2 +rept _NARG +- 2 +x = x | (1 << (\3 + 1)) + shift +endr +endc + db x + endm + + enum_start $fc + +; used for sprites + enum delanim_command ; fc +delanim: macro + db delanim_command + endm + + enum dorepeat_command ; fd +dorepeat: macro + db dorepeat_command + db \1 ; # + endm + + enum setrepeat_command ; fe +setrepeat: macro + db setrepeat_command + db \1 ; # + endm + + enum endanim_command ; ff +endanim: macro + db endanim_command + endm + +__enum__ = $fe + +; used for sprites + enum dorestart_command ; fe +dorestart: macro + db dorestart_command + endm diff --git a/macros/scripts/maps.asm b/macros/scripts/maps.asm new file mode 100644 index 000000000..010506544 --- /dev/null +++ b/macros/scripts/maps.asm @@ -0,0 +1,104 @@ +map: macro +;\1: map id + db GROUP_\1, MAP_\1 +endm + + +maptrigger: macro +;\1: script pointer + dw \1, 0 +endm + +warp_def: macro +;\1: y: top to bottom, starts at 0 +;\2: x: left to right, starts at 0 +;\3: warp destination: starts at 1 +;\4: map id: from constants/map_constants.asm + db \1, \2, \3 + map \4 +endm + +xy_trigger: macro +;\1: number: controlled by dotrigger/domaptrigger +;\2: y: top to bottom, starts at 0 +;\3: x: left to right, starts at 0 +;\4: script pointer + db \1, \2, \3, $0 + dw \4 + db $0, $0 +endm + +signpost: macro +;\1: y: top to bottom, starts at 0 +;\2: x: left to right, starts at 0 +;\3: function: a SIGNPOST_* constant +;\4: script pointer + db \1, \2, \3 + dw \4 +endm + +person_event: macro +;\1: sprite: a SPRITE_* constant +;\2: y: top to bottom, starts at 0 +;\3: x: left to right, starts at 0 +;\4: movement function: a SPRITEMOVEDATA_* constant +;\5, \6: movement radius: y, x +;\7: clock hour: ??? +;\8: clock daytime: sum of MORN, DAY, and/or NITE, or 0 for always +;\9: color: a PAL_NPC_* constant, or 0 for sprite default +;\10: function: a PERSONTYPE_* constant +;\11: sight range: applies to PERSONTYPE_TRAINER +;\12: script pointer +;\13: event flag: an EVENT_* constant, or 0 for always + db \1, \2 + 4, \3 + 4, \4 + dn \5, \6 + db \7, \8 + shift + dn \8, \9 + shift + db \9 + shift + dw \9 + shift + dw \9 +endm + + +trainer: macro +;\1: flag: an EVENT_BEAT_* constant +;\2: trainer group +;\3: trainer id +;\4: seen text +;\5: win text +;\6: loss text +;\7: after-battle text + dw \1 + db \2, \3 + dw \4, \5, \6, \7 +endm + +itemball: macro +;\1: item: from constants/item_constants.asm +;\2: quantity: default 1 +if _NARG == 2 + db \1, \2 +else + db \1, 1 +endc +endm + +elevfloor: macro +;\1: floor: a FLOOR_* constant +;\2: warp destination: starts at 1 +;\3: map id + db \1, \2 + map \3 +ENDM + +stonetable: macro +;\1: warp id +;\2: person_event id +;\3: script pointer + db \1, \2 + dw \3 +endm diff --git a/macros/scripts/move_anim.asm b/macros/scripts/move_anim.asm new file mode 100644 index 000000000..9859fbd50 --- /dev/null +++ b/macros/scripts/move_anim.asm @@ -0,0 +1,294 @@ +anim_wait: macro +if \1 >= $d0 + flip out +endc + db \1 + endm + +; BattleAnimCommands indexes (see battle/anim_commands.asm) + enum_start $d0 + + enum anim_obj_command ; d0 +anim_obj: macro + db anim_obj_command + db \1 ; obj + db (\2 << 3) + \3 ; x + db (\4 << 3) + \5 ; y + db \6 ; param + endm + + enum anim_1gfx_command ; d1 +anim_1gfx: macro + db anim_1gfx_command + db \1 ; gfx1 + endm + + enum anim_2gfx_command ; d2 +anim_2gfx: macro + db anim_2gfx_command + db \1 ; gfx1 + db \2 ; gfx2 + endm + + enum anim_3gfx_command ; d3 +anim_3gfx: macro + db anim_3gfx_command + db \1 ; gfx1 + db \2 ; gfx2 + db \3 ; gfx3 + endm + + enum anim_4gfx_command ; d4 +anim_4gfx: macro + db anim_4gfx_command + db \1 ; gfx1 + db \2 ; gfx2 + db \3 ; gfx3 + db \4 ; gfx4 + endm + + enum anim_5gfx_command ; d5 +anim_5gfx: macro + db anim_5gfx_command + db \1 ; gfx1 + db \2 ; gfx2 + db \3 ; gfx3 + db \4 ; gfx4 + db \5 ; gfx5 + endm + + enum anim_incobj_command ; d6 +anim_incobj: macro + db anim_incobj_command + db \1 ; id + endm + + enum anim_setobj_command ; d7 +anim_setobj: macro + db anim_setobj_command + db \1 ; id + db \2 ; obj + endm + + enum anim_incbgeffect_command ; d8 +anim_incbgeffect: macro + db anim_incbgeffect_command + db \1 ; effect + endm + + enum anim_enemyfeetobj_command ; d9 +anim_enemyfeetobj: macro + db anim_enemyfeetobj_command + endm + + enum anim_playerheadobj_command ; da +anim_playerheadobj: macro + db anim_playerheadobj_command + endm + + enum anim_checkpokeball_command ; db +anim_checkpokeball: macro + db anim_checkpokeball_command + endm + + enum anim_transform_command ; dc +anim_transform: macro + db anim_transform_command + endm + + enum anim_raisesub_command ; dd +anim_raisesub: macro + db anim_raisesub_command + endm + + enum anim_dropsub_command ; de +anim_dropsub: macro + db anim_dropsub_command + endm + + enum anim_resetobp0_command ; df +anim_resetobp0: macro + db anim_resetobp0_command + endm + + enum anim_sound_command ; e0 +anim_sound: macro + db anim_sound_command + db (\1 << 2) | \2 ; duration, tracks + db \3 ; id + endm + + enum anim_cry_command ; e1 +anim_cry: macro + db anim_cry_command + db \1 ; pitch + endm + + enum anim_minimizeopp_command ; e2 +anim_minimizeopp: macro + db anim_minimizeopp_command + endm + + enum anim_oamon_command ; e3 +anim_oamon: macro + db anim_oamon_command + endm + + enum anim_oamoff_command ; e4 +anim_oamoff: macro + db anim_oamoff_command + endm + + enum anim_clearobjs_command ; e5 +anim_clearobjs: macro + db anim_clearobjs_command + endm + + enum anim_beatup_command ; e6 +anim_beatup: macro + db anim_beatup_command + endm + + enum anim_0xe7_command ; e7 +anim_0xe7: macro + db anim_0xe7_command + endm + + enum anim_updateactorpic_command ; e8 +anim_updateactorpic: macro + db anim_updateactorpic_command + endm + + enum anim_minimize_command ; e9 +anim_minimize: macro + db anim_minimize_command + endm + + enum anim_0xea_command ; ea +anim_0xea: macro + db anim_0xea_command + endm + + enum anim_0xeb_command ; eb +anim_0xeb: macro + db anim_0xeb_command + endm + + enum anim_0xec_command ; ec +anim_0xec: macro + db anim_0xec_command + endm + + enum anim_0xed_command ; ed +anim_0xed: macro + db anim_0xed_command + endm + + enum anim_if_param_and_command ; ee +anim_if_param_and: macro + db anim_if_param_and_command + db \1 ; value + dw \2 ; address + endm + + enum anim_jumpuntil_command ; ef +anim_jumpuntil: macro + db anim_jumpuntil_command + dw \1 ; address + endm + + enum anim_bgeffect_command ; f0 +anim_bgeffect: macro + db anim_bgeffect_command + db \1 ; effect + db \2 ; unknown + db \3 ; unknown + db \4 ; unknown + endm + + enum anim_bgp_command ; f1 +anim_bgp: macro + db anim_bgp_command + db \1 ; colors + endm + + enum anim_obp0_command ; f2 +anim_obp0: macro + db anim_obp0_command + db \1 ; colors + endm + + enum anim_obp1_command ; f3 +anim_obp1: macro + db anim_obp1_command + db \1 ; colors + endm + + enum anim_clearsprites_command ; f4 +anim_clearsprites: macro + db anim_clearsprites_command + endm + + enum anim_0xf5_command ; f5 +anim_0xf5: macro + db anim_0xf5_command + endm + + enum anim_0xf6_command ; f6 +anim_0xf6: macro + db anim_0xf6_command + endm + + enum anim_0xf7_command ; f7 +anim_0xf7: macro + db anim_0xf7_command + endm + + enum anim_if_param_equal_command ; f8 +anim_if_param_equal: macro + db anim_if_param_equal_command + db \1 ; value + dw \2 ; address + endm + + enum anim_setvar_command ; f9 +anim_setvar: macro + db anim_setvar_command + db \1 ; value + endm + + enum anim_incvar_command ; fa +anim_incvar: macro + db anim_incvar_command + endm + + enum anim_if_var_equal_command ; fb +anim_if_var_equal: macro + db anim_if_var_equal_command + db \1 ; value + dw \2 ; address + endm + + enum anim_jump_command ; fc +anim_jump: macro + db anim_jump_command + dw \1 ; address + endm + + enum anim_loop_command ; fd +anim_loop: macro + db anim_loop_command + db \1 ; count + dw \2 ; address + endm + + enum anim_call_command ; fe +anim_call: macro + db anim_call_command + dw \1 ; address + endm + + enum anim_ret_command ; ff +anim_ret: macro + db anim_ret_command + endm diff --git a/macros/scripts/movement.asm b/macros/scripts/movement.asm new file mode 100644 index 000000000..a2acf1356 --- /dev/null +++ b/macros/scripts/movement.asm @@ -0,0 +1,247 @@ +; MovementPointers indexes (see engine/movement.asm) + enum_start + +; Directional movements + + enum movement_turn_head +turn_head: macro + db movement_turn_head | \1 ; $00 + endm + +__enum__ = __enum__ + 3 + + enum movement_turn_step +turn_step: macro + db movement_turn_step | \1 ; $04 + endm + +__enum__ = __enum__ + 3 + + enum movement_slow_step +slow_step: macro + db movement_slow_step | \1; $08 + endm + +__enum__ = __enum__ + 3 + + enum movement_step +step: macro + db movement_step | \1 ; $0c + endm + +__enum__ = __enum__ + 3 + + enum movement_big_step +big_step: macro + db movement_big_step | \1 ; $10 + endm + +__enum__ = __enum__ + 3 + + enum movement_slow_slide_step +slow_slide_step: macro + db movement_slow_slide_step | \1 ; $14 + endm + +__enum__ = __enum__ + 3 + + enum movement_slide_step +slide_step: macro + db movement_slide_step | \1 ; $18 + endm + +__enum__ = __enum__ + 3 + + enum movement_fast_slide_step +fast_slide_step: macro + db movement_fast_slide_step | \1 ; $1c + endm + +__enum__ = __enum__ + 3 + + enum movement_turn_away +turn_away: macro + db movement_turn_away | \1 ; $20 + endm + +__enum__ = __enum__ + 3 + + enum movement_turn_in +turn_in: macro + db movement_turn_in | \1 ; $24 + endm + +__enum__ = __enum__ + 3 + + enum movement_turn_waterfall +turn_waterfall: macro + db movement_turn_waterfall | \1 ; $28 + endm + +__enum__ = __enum__ + 3 + + enum movement_slow_jump_step +slow_jump_step: macro + db movement_slow_jump_step | \1 ; $2c + endm + +__enum__ = __enum__ + 3 + + enum movement_jump_step +jump_step: macro + db movement_jump_step | \1 ; $30 + endm + +__enum__ = __enum__ + 3 + + enum movement_fast_jump_step +fast_jump_step: macro + db movement_fast_jump_step | \1 ; $34 + endm + +__enum__ = __enum__ + 3 + +; Control + enum movement_remove_sliding +remove_sliding: macro + db movement_remove_sliding ; $38 + endm + + enum movement_set_sliding +set_sliding: macro + db movement_set_sliding ; $39 + endm + + enum movement_remove_fixed_facing +remove_fixed_facing: macro + db movement_remove_fixed_facing ; $3a + endm + + enum movement_fix_facing +fix_facing: macro + db movement_fix_facing ; $3b + endm + + enum movement_show_person +show_person: macro + db movement_show_person ; $3c + endm + + enum movement_hide_person +hide_person: macro + db movement_hide_person ; $3d + endm + +; Sleep + + enum movement_step_sleep +step_sleep: macro +if \1 <= 8 + db movement_step_sleep + \1 - 1 +else + db movement_step_sleep + 8, \1 +endc +endm + +__enum__ = __enum__ + 8 + + enum movement_step_end +step_end: macro + db movement_step_end ; $47 + endm + +; Whatever Movement_48 is, it takes a one-byte parameter + enum movement_step_48 +step_48: macro + db movement_step_48 + db \1 + endm + + enum movement_remove_person +remove_person: macro + db movement_remove_person ; $49 + endm + + enum movement_step_loop +step_loop: macro + db movement_step_loop ; $4a + endm + + enum movement_step_4b +step_4b: macro + db movement_step_4b ; $4b + endm + + enum movement_teleport_from +teleport_from: macro + db movement_teleport_from ; $4c + endm + + enum movement_teleport_to +teleport_to: macro + db movement_teleport_to ; $4d + endm + + enum movement_skyfall +skyfall: macro + db movement_skyfall ; $4e + endm + + enum movement_step_dig +step_dig: macro + db movement_step_dig ; $4f + db \1 + endm + + enum movement_step_bump +step_bump: macro + db movement_step_bump ; $50 + endm + + enum movement_fish_got_bite +fish_got_bite: macro + db movement_fish_got_bite ; $51 + endm + + enum movement_fish_cast_rod +fish_cast_rod: macro + db movement_fish_cast_rod ; $52 + endm + + enum movement_hide_emote +hide_emote: macro + db movement_hide_emote ; $53 + endm + + enum movement_show_emote +show_emote: macro + db movement_show_emote ; $54 + endm + + enum movement_step_shake +step_shake: macro + db movement_step_shake ; $55 + db \1 ; displacement + endm + + enum movement_tree_shake +tree_shake: macro + db movement_tree_shake + endm + + enum movement_rock_smash +rock_smash: macro + db movement_rock_smash ; $57 + db \1 + endm + + enum movement_return_dig +return_dig: macro + db movement_return_dig ; $58 + db \1 + endm + + enum movement_skyfall_top +skyfall_top: macro + db movement_skyfall_top ; $59 + endm diff --git a/macros/scripts/text.asm b/macros/scripts/text.asm new file mode 100644 index 000000000..e29f8a511 --- /dev/null +++ b/macros/scripts/text.asm @@ -0,0 +1,133 @@ +text EQUS "db $00," ; Start writing text. +next EQUS "db $4e," ; Move a line down. +line EQUS "db $4f," ; Start writing at the bottom line. +page EQUS "db $50," ; Start a new Pokédex page. +para EQUS "db $51," ; Start a new paragraph. +cont EQUS "db $55," ; Scroll to the next line. +done EQUS "db $57" ; End a text box. +prompt EQUS "db $58" ; Prompt the player to end a text box (initiating some other event). + +; TextCommands indexes (see home/text.asm) + enum_start $01 + + enum TX_RAM +text_from_ram: MACRO + db TX_RAM + dw \1 + ENDM + + enum TX_BCD +text_bcd: macro + db TX_BCD + dw \1 + db \2 + ENDM + + enum TX_MOVE +text_move: macro + db TX_MOVE + dw \1 + ENDM + + enum TX_BOX +text_box: macro + db TX_BOX + dw \1 + db \2, \3 + ENDM + + enum TX_LOW +text_low: macro + db TX_LOW + endm + + enum WAIT_BUTTON +text_waitbutton: macro + db WAIT_BUTTON + endm + + enum TX_SCROLL +text_scroll: macro + db TX_SCROLL + endm + + enum START_ASM +start_asm: macro + db START_ASM + endm + + enum TX_NUM +deciram: macro + db TX_NUM + dw \1 ; address + dn \2, \3 ; bytes, digits + endm + + enum TX_EXIT +interpret_data: macro + db TX_EXIT + endm + + enum TX_SOUND_0B +sound_dex_fanfare_50_79: macro + db TX_SOUND_0B + endm + + enum TX_DOTS +limited_interpret_data: macro + db TX_DOTS + db \1 + endm + + enum TX_LINK_WAIT_BUTTON +link_wait_button: macro + db TX_LINK_WAIT_BUTTON + endm + + enum TX_SOUND_0E +sound_dex_fanfare_20_49: macro + db TX_SOUND_0E + endm + + enum TX_SOUND_0F +sound_item: macro + db TX_SOUND_0F + endm + + enum TX_SOUND_10 +sound_caught_mon: macro + db TX_SOUND_10 + endm + + enum TX_SOUND_11 +sound_dex_fanfare_80_109: macro + db TX_SOUND_11 + endm + + enum TX_SOUND_12 +sound_fanfare: macro + db TX_SOUND_12 + endm + + enum TX_SOUND_13 +sound_slot_machine_start: macro + db TX_SOUND_13 + endm + + enum TX_STRINGBUFFER +text_buffer: macro + db TX_STRINGBUFFER + db \1 + endm + + enum TX_DAY +current_day: macro + db TX_DAY + endm + + enum TX_FAR +text_jump: MACRO + db TX_FAR + dw \1 + db BANK(\1) + ENDM diff --git a/macros/scripts/trade_anim.asm b/macros/scripts/trade_anim.asm new file mode 100644 index 000000000..c38dc75d6 --- /dev/null +++ b/macros/scripts/trade_anim.asm @@ -0,0 +1,255 @@ +; DoTradeAnimation.JumpTable indexes (see engine/trade/animation.asm) + enum_start + + enum tradeanim_next_command +tradeanim_next: macro + db tradeanim_next_command ; 00 +endm + + enum tradeanim_show_givemon_data_command +tradeanim_show_givemon_data: macro + db tradeanim_show_givemon_data_command ; 01 +endm + + enum tradeanim_show_getmon_data_command +tradeanim_show_getmon_data: macro + db tradeanim_show_getmon_data_command ; 02 +endm + + enum tradeanim_enter_link_tube_command +tradeanim_enter_link_tube: macro + db tradeanim_enter_link_tube_command ; 03 +endm + +__enum__ set $5 + + enum tradeanim_exit_link_tube_command +tradeanim_exit_link_tube: macro + db tradeanim_exit_link_tube_command ; 05 +endm + + enum tradeanim_tube_to_ot_command +tradeanim_tube_to_ot: macro + db tradeanim_tube_to_ot_command ; 06 +endm + +__enum__ set $e + + enum tradeanim_tube_to_player_command +tradeanim_tube_to_player: macro + db tradeanim_tube_to_player_command ; 0e +endm + +__enum__ set $16 + + enum tradeanim_sent_to_ot_text_command +tradeanim_sent_to_ot_text: macro + db tradeanim_sent_to_ot_text_command ; 16 +endm + + enum tradeanim_ot_bids_farewell_command +tradeanim_ot_bids_farewell: macro + db tradeanim_ot_bids_farewell_command ; 17 +endm + + enum tradeanim_take_care_of_text_command +tradeanim_take_care_of_text: macro + db tradeanim_take_care_of_text_command ; 18 +endm + + enum tradeanim_ot_sends_text_1_command +tradeanim_ot_sends_text_1: macro + db tradeanim_ot_sends_text_1_command ; 19 +endm + + enum tradeanim_ot_sends_text_2_command +tradeanim_ot_sends_text_2: macro + db tradeanim_ot_sends_text_2_command ; 1a +endm + + enum tradeanim_setup_givemon_scroll_command +tradeanim_setup_givemon_scroll: macro + db tradeanim_setup_givemon_scroll_command ; 1b +endm + + enum tradeanim_do_givemon_scroll_command +tradeanim_do_givemon_scroll: macro + db tradeanim_do_givemon_scroll_command ; 1c +endm + + enum tradeanim_frontpic_scroll_command +tradeanim_frontpic_scroll: macro + db tradeanim_frontpic_scroll_command ; 1d +endm + + enum tradeanim_textbox_scroll_command +tradeanim_textbox_scroll: macro + db tradeanim_textbox_scroll_command ; 1e +endm + + enum tradeanim_scroll_out_right_command +tradeanim_scroll_out_right: macro + db tradeanim_scroll_out_right_command ; 1f +endm + +__enum__ set $21 + + enum tradeanim_wait_80_command +tradeanim_wait_80: macro + db tradeanim_wait_80_command ; 21 +endm + + enum tradeanim_wait_40_command +tradeanim_wait_40: macro + db tradeanim_wait_40_command ; 22 +endm + + enum tradeanim_rocking_ball_command +tradeanim_rocking_ball: macro + db tradeanim_rocking_ball_command ; 23 +endm + + enum tradeanim_drop_ball_command +tradeanim_drop_ball: macro + db tradeanim_drop_ball_command ; 24 +endm + + enum tradeanim_wait_anim_command +tradeanim_wait_anim: macro + db tradeanim_wait_anim_command ; 25 +endm + +__enum__ set $27 + + enum tradeanim_poof_command +tradeanim_poof: macro + db tradeanim_poof_command ; 27 +endm + + enum tradeanim_bulge_through_tube_command +tradeanim_bulge_through_tube: macro + db tradeanim_bulge_through_tube_command ; 28 +endm + + enum tradeanim_give_trademon_sfx_command +tradeanim_give_trademon_sfx: macro + db tradeanim_give_trademon_sfx_command ; 29 +endm + + enum tradeanim_get_trademon_sfx_command +tradeanim_get_trademon_sfx: macro + db tradeanim_get_trademon_sfx_command ; 2a +endm + + enum tradeanim_end_command +tradeanim_end: macro + db tradeanim_end_command ; 2b +endm + + enum tradeanim_animate_frontpic_command +tradeanim_animate_frontpic: macro + db tradeanim_animate_frontpic_command ; 2c +endm + + enum tradeanim_wait_96_command +tradeanim_wait_96: macro + db tradeanim_wait_96_command ; 2d +endm + + enum tradeanim_wait_80_if_ot_egg_command +tradeanim_wait_80_if_ot_egg: macro + db tradeanim_wait_80_if_ot_egg_command ; 2e +endm + + enum tradeanim_wait_180_if_ot_egg_command +tradeanim_wait_180_if_ot_egg: macro + db tradeanim_wait_180_if_ot_egg_command ; 2f +endm + + +; Mobile + enum_start 1 + + enum mobiletradeanim_showgivemon_command +mobiletradeanim_showgivemon: macro + db mobiletradeanim_showgivemon_command ; 01 +endm + + enum mobiletradeanim_02_command +mobiletradeanim_02: macro + db mobiletradeanim_02_command ; 02 +endm + + enum mobiletradeanim_sendmon_command +mobiletradeanim_sendmon: macro + db mobiletradeanim_sendmon_command ; 03 +endm + +__enum__ set $05 + + enum mobiletradeanim_05_command +mobiletradeanim_05: macro + db mobiletradeanim_05_command ; 05 +endm + + enum mobiletradeanim_06_command +mobiletradeanim_06: macro + db mobiletradeanim_06_command ; 06 +endm + + enum mobiletradeanim_07_command +mobiletradeanim_07: macro + db mobiletradeanim_07_command ; 07 +endm + + enum mobiletradeanim_receivemon_command +mobiletradeanim_receivemon: macro + db mobiletradeanim_receivemon_command ; 08 +endm + +__enum__ set $0b + + enum mobiletradeanim_showgetmon_command +mobiletradeanim_showgetmon: macro + db mobiletradeanim_showgetmon_command ; 0b +endm + + enum mobiletradeanim_end_command +mobiletradeanim_end: macro + db mobiletradeanim_end_command ; 0c +endm + + enum mobiletradeanim_showgtsgivemon_command +mobiletradeanim_showgtsgivemon: macro + db mobiletradeanim_showgtsgivemon_command ; 0d +endm + + enum mobiletradeanim_showgtsgetmon_command +mobiletradeanim_showgtsgetmon: macro + db mobiletradeanim_showgtsgetmon_command ; 0e +endm + + enum mobiletradeanim_0f_command +mobiletradeanim_0f: macro + db mobiletradeanim_0f_command ; 0f +endm + + enum mobiletradeanim_10_command +mobiletradeanim_10: macro + db mobiletradeanim_10_command ; 10 +endm + + enum mobiletradeanim_11_command +mobiletradeanim_11: macro + db mobiletradeanim_11_command ; 11 +endm + + enum mobiletradeanim_12_command +mobiletradeanim_12: macro + db mobiletradeanim_12_command ; 12 +endm + + enum mobiletradeanim_showoddegg_command +mobiletradeanim_showoddegg: macro + db mobiletradeanim_showoddegg_command ; 13 +endm |