diff options
| author | Diegoisawesome <Diegoisawesome@users.noreply.github.com> | 2018-12-02 14:31:19 -0600 | 
|---|---|---|
| committer | GitHub <noreply@github.com> | 2018-12-02 14:31:19 -0600 | 
| commit | 7914220acd9a39e08bc09b70eaef6433a6ba9cd6 (patch) | |
| tree | b5955a26de58feb834007ee84ba036308992e422 /asm/macros | |
| parent | 2912ec0e37360ede1bae882f0ea2457ec336f16f (diff) | |
| parent | a2a99bde115e183267db6bb4b5c1dc73d57284fc (diff) | |
Merge pull request #419 from melthelesbian/trainerbattle_macro_cleanup
cleans up trainer battle scripts
Diffstat (limited to 'asm/macros')
| -rw-r--r-- | asm/macros/event.inc | 71 | 
1 files changed, 56 insertions, 15 deletions
| diff --git a/asm/macros/event.inc b/asm/macros/event.inc index 33afdc3b3..d66992c35 100644 --- a/asm/macros/event.inc +++ b/asm/macros/event.inc @@ -629,60 +629,101 @@  	.endm  	@ If the Trainer flag for Trainer index is not set, this command does absolutely nothing. -	.macro trainerbattle type:req, trainer:req, word:req, pointer1:req, pointer2, pointer3, pointer4 +	.macro trainerbattle type:req, trainer:req, local_id:req, pointer1:req, pointer2, pointer3, pointer4  	.byte 0x5c  	.byte \type  	.2byte \trainer -	.2byte \word -	.if \type == 0 +	.2byte \local_id +	.if \type == TRAINER_BATTLE_SINGLE  		.4byte \pointer1 @ text  		.4byte \pointer2 @ text -	.elseif \type == 1 +	.elseif \type == TRAINER_BATTLE_CONTINUE_SCRIPT_NO_MUSIC  		.4byte \pointer1 @ text  		.4byte \pointer2 @ text  		.4byte \pointer3 @ event script -	.elseif \type == 2 +	.elseif \type == TRAINER_BATTLE_CONTINUE_SCRIPT  		.4byte \pointer1 @ text  		.4byte \pointer2 @ text  		.4byte \pointer3 @ event script -	.elseif \type == 3 +	.elseif \type == TRAINER_BATTLE_SINGLE_NO_INTRO_TEXT  		.4byte \pointer1 @ text -	.elseif \type == 4 +	.elseif \type == TRAINER_BATTLE_DOUBLE  		.4byte \pointer1 @ text  		.4byte \pointer2 @ text  		.4byte \pointer3 @ text -	.elseif \type == 5 +	.elseif \type == TRAINER_BATTLE_REMATCH  		.4byte \pointer1 @ text  		.4byte \pointer2 @ text -	.elseif \type == 6 +	.elseif \type == TRAINER_BATTLE_CONTINUE_SCRIPT_DOUBLE  		.4byte \pointer1 @ text  		.4byte \pointer2 @ text  		.4byte \pointer3 @ text  		.4byte \pointer4 @ event script -	.elseif \type == 7 +	.elseif \type == TRAINER_BATTLE_REMATCH_DOUBLE  		.4byte \pointer1 @ text  		.4byte \pointer2 @ text  		.4byte \pointer3 @ text -	.elseif \type == 8 +	.elseif \type == TRAINER_BATTLE_CONTINUE_SCRIPT_DOUBLE_NO_MUSIC  		.4byte \pointer1 @ text  		.4byte \pointer2 @ text  		.4byte \pointer3 @ text  		.4byte \pointer4 @ event script -	.elseif \type == 9 +	.elseif \type == TRAINER_BATTLE_9  		.4byte \pointer1 @ text  		.4byte \pointer2 @ text -	.elseif \type == 10 +	.elseif \type == TRAINER_BATTLE_SET_TRAINER_A  		.4byte \pointer1 @ text  		.4byte \pointer2 @ text -	.elseif \type == 11 +	.elseif \type == TRAINER_BATTLE_SET_TRAINER_B  		.4byte \pointer1 @ text  		.4byte \pointer2 @ text -	.elseif \type == 12 +	.elseif \type == TRAINER_BATTLE_12  		.4byte \pointer1 @ text  		.4byte \pointer2 @ text  	.endif  	.endm +	NO_MUSIC = FALSE + +	@ Starts a single trainer battle, takes a trainer, intro text, loss text, and an optional event script +	@ when used with an event script, you can also pass in an optional flag to disable music +	.macro trainerbattle_single trainer:req, intro_text:req, lose_text:req, event_script=FALSE, music=TRUE +	.if \event_script == FALSE +	trainerbattle TRAINER_BATTLE_SINGLE, \trainer, 0, \intro_text, \lose_text +	.elseif \music == TRUE +	trainerbattle TRAINER_BATTLE_CONTINUE_SCRIPT, \trainer, 0, \intro_text, \lose_text, \event_script +	.else +	trainerbattle TRAINER_BATTLE_CONTINUE_SCRIPT_NO_MUSIC, \trainer, 0, \intro_text, \lose_text, \event_script +	.endif +	.endm + +	@ Starts a double trainer battle, takes a trainer, intro text, loss text, text for when you have too few pokemon +	@ and an optional event script, when used with an event script you can pass in an optional flag to disable music +	.macro trainerbattle_double trainer:req, intro_text:req, lose_text:req, not_enough_pkmn_text:req, event_script=FALSE, music=TRUE +	.if \event_script == FALSE +	trainerbattle TRAINER_BATTLE_DOUBLE, \trainer, 0, \intro_text, \lose_text, \not_enough_pkmn_text +	.elseif \music == TRUE +	trainerbattle TRAINER_BATTLE_CONTINUE_SCRIPT_DOUBLE, \trainer, 0, \intro_text, \lose_text, \not_enough_pkmn_text, \event_script +	.else +	trainerbattle TRAINER_BATTLE_CONTINUE_SCRIPT_DOUBLE_NO_MUSIC, \trainer, 0, \intro_text, \lose_text, \not_enough_pkmn_text, \event_script +	.endif +	.endm + +	@ Starts a rematch battle, takes a trainer, intro text and loss text +	.macro trainerbattle_rematch trainer:req, intro_text:req, lose_text:req +	trainerbattle TRAINER_BATTLE_REMATCH, \trainer, 0, \intro_text, \lose_text +	.endm + +	@ Starts a rematch double battle, takes a trainer, intro text, loss text, and text for when you have too few pokemon +	.macro trainerbattle_rematch_double trainer:req, intro_text:req, lose_text:req, not_enough_pkmn_text:req +	trainerbattle TRAINER_BATTLE_REMATCH_DOUBLE, \trainer, 0, \intro_text, \lose_text, \not_enough_pkmn_text +	.endm + +	@ Starts a trainer battle, skipping intro text, takes a trainer and loss text +	.macro trainerbattle_no_intro trainer:req, lose_text:req +	trainerbattle TRAINER_BATTLE_SINGLE_NO_INTRO_TEXT, \trainer, 0, \lose_text +	.endm +  	@ Starts a trainer battle using the battle information stored in RAM (usually by trainerbattle, which actually calls this command behind-the-scenes), and blocks script execution until the battle finishes.  	.macro trainerbattlebegin | 
