From 711cf686cfd1b80bbcbe4e2a3151f79f11c6e8c2 Mon Sep 17 00:00:00 2001 From: cawtds Date: Wed, 1 May 2024 19:11:54 +0200 Subject: [PATCH] updated up to Cmd_endlinkbattle --- include/battle_controllers.h | 4 +- src/battle_controller_link_opponent.c | 2 +- src/battle_controller_link_partner.c | 2 +- src/battle_controller_oak_old_man.c | 2 +- src/battle_controller_opponent.c | 2 +- src/battle_controller_player.c | 2 +- src/battle_controller_pokedude.c | 2 +- src/battle_controller_safari.c | 2 +- src/battle_controllers.c | 6 +-- src/battle_script_commands.c | 63 +++++++++++++++------------ 10 files changed, 47 insertions(+), 40 deletions(-) diff --git a/include/battle_controllers.h b/include/battle_controllers.h index 4cac4d957..9f1e2b258 100644 --- a/include/battle_controllers.h +++ b/include/battle_controllers.h @@ -181,7 +181,7 @@ enum CONTROLLER_HITANIMATION, CONTROLLER_CANTSWITCH, CONTROLLER_PLAYSE, - CONTROLLER_PLAYFANFARE, + CONTROLLER_PLAYFANFAREORBGM, CONTROLLER_FAINTINGCRY, CONTROLLER_INTROSLIDE, CONTROLLER_INTROTRAINERBALLTHROW, @@ -238,7 +238,7 @@ void BtlController_EmitOneReturnValue_Duplicate(u8 bufferId, u16 b); void BtlController_EmitHitAnimation(u8 bufferId); void BtlController_EmitCantSwitch(u8 bufferId); void BtlController_EmitPlaySE(u8 bufferId, u16 songId); -void BtlController_EmitPlayFanfare(u8 bufferId, u16 songId); +void BtlController_EmitPlayFanfareOrBGM(u32 bufferId, u16 songId, bool8 playBGM); void BtlController_EmitFaintingCry(u8 bufferId); void BtlController_EmitIntroSlide(u8 bufferId, u8 terrainId); void BtlController_EmitIntroTrainerBallThrow(u8 bufferId); diff --git a/src/battle_controller_link_opponent.c b/src/battle_controller_link_opponent.c index 1946c674f..7b6f432d6 100644 --- a/src/battle_controller_link_opponent.c +++ b/src/battle_controller_link_opponent.c @@ -132,7 +132,7 @@ static void (*const sLinkOpponentBufferCommands[CONTROLLER_CMDS_COUNT])(void) = [CONTROLLER_HITANIMATION] = LinkOpponentHandleHitAnimation, [CONTROLLER_CANTSWITCH] = LinkOpponentHandleCantSwitch, [CONTROLLER_PLAYSE] = LinkOpponentHandlePlaySE, - [CONTROLLER_PLAYFANFARE] = LinkOpponentHandlePlayFanfare, + [CONTROLLER_PLAYFANFAREORBGM] = LinkOpponentHandlePlayFanfare, [CONTROLLER_FAINTINGCRY] = LinkOpponentHandleFaintingCry, [CONTROLLER_INTROSLIDE] = LinkOpponentHandleIntroSlide, [CONTROLLER_INTROTRAINERBALLTHROW] = LinkOpponentHandleIntroTrainerBallThrow, diff --git a/src/battle_controller_link_partner.c b/src/battle_controller_link_partner.c index 85f9f1dac..3621131c4 100644 --- a/src/battle_controller_link_partner.c +++ b/src/battle_controller_link_partner.c @@ -129,7 +129,7 @@ static void (*const sLinkPartnerBufferCommands[CONTROLLER_CMDS_COUNT])(void) = [CONTROLLER_HITANIMATION] = LinkPartnerHandleHitAnimation, [CONTROLLER_CANTSWITCH] = LinkPartnerHandleCantSwitch, [CONTROLLER_PLAYSE] = LinkPartnerHandlePlaySE, - [CONTROLLER_PLAYFANFARE] = LinkPartnerHandlePlayFanfare, + [CONTROLLER_PLAYFANFAREORBGM] = LinkPartnerHandlePlayFanfare, [CONTROLLER_FAINTINGCRY] = LinkPartnerHandleFaintingCry, [CONTROLLER_INTROSLIDE] = LinkPartnerHandleIntroSlide, [CONTROLLER_INTROTRAINERBALLTHROW] = LinkPartnerHandleIntroTrainerBallThrow, diff --git a/src/battle_controller_oak_old_man.c b/src/battle_controller_oak_old_man.c index e332e60d2..6f5a2de70 100644 --- a/src/battle_controller_oak_old_man.c +++ b/src/battle_controller_oak_old_man.c @@ -142,7 +142,7 @@ static void (*const sOakOldManBufferCommands[CONTROLLER_CMDS_COUNT])(void) = [CONTROLLER_HITANIMATION] = OakOldManHandleHitAnimation, [CONTROLLER_CANTSWITCH] = OakOldManHandleCmd42, [CONTROLLER_PLAYSE] = OakOldManHandlePlaySE, - [CONTROLLER_PLAYFANFARE] = OakOldManHandlePlayFanfare, + [CONTROLLER_PLAYFANFAREORBGM] = OakOldManHandlePlayFanfare, [CONTROLLER_FAINTINGCRY] = OakOldManHandleFaintingCry, [CONTROLLER_INTROSLIDE] = OakOldManHandleIntroSlide, [CONTROLLER_INTROTRAINERBALLTHROW] = OakOldManHandleIntroTrainerBallThrow, diff --git a/src/battle_controller_opponent.c b/src/battle_controller_opponent.c index 5203c85f2..2c889e9d9 100644 --- a/src/battle_controller_opponent.c +++ b/src/battle_controller_opponent.c @@ -136,7 +136,7 @@ static void (*const sOpponentBufferCommands[CONTROLLER_CMDS_COUNT])(void) = [CONTROLLER_HITANIMATION] = OpponentHandleHitAnimation, [CONTROLLER_CANTSWITCH] = OpponentHandleCmd42, [CONTROLLER_PLAYSE] = OpponentHandlePlaySE, - [CONTROLLER_PLAYFANFARE] = OpponentHandlePlayFanfare, + [CONTROLLER_PLAYFANFAREORBGM] = OpponentHandlePlayFanfare, [CONTROLLER_FAINTINGCRY] = OpponentHandleFaintingCry, [CONTROLLER_INTROSLIDE] = OpponentHandleIntroSlide, [CONTROLLER_INTROTRAINERBALLTHROW] = OpponentHandleIntroTrainerBallThrow, diff --git a/src/battle_controller_player.c b/src/battle_controller_player.c index 5265fcda0..38f866868 100644 --- a/src/battle_controller_player.c +++ b/src/battle_controller_player.c @@ -153,7 +153,7 @@ static void (*const sPlayerBufferCommands[CONTROLLER_CMDS_COUNT])(void) = [CONTROLLER_HITANIMATION] = PlayerHandleHitAnimation, [CONTROLLER_CANTSWITCH] = PlayerHandleCmd42, [CONTROLLER_PLAYSE] = PlayerHandlePlaySE, - [CONTROLLER_PLAYFANFARE] = PlayerHandlePlayFanfare, + [CONTROLLER_PLAYFANFAREORBGM] = PlayerHandlePlayFanfare, [CONTROLLER_FAINTINGCRY] = PlayerHandleFaintingCry, [CONTROLLER_INTROSLIDE] = PlayerHandleIntroSlide, [CONTROLLER_INTROTRAINERBALLTHROW] = PlayerHandleIntroTrainerBallThrow, diff --git a/src/battle_controller_pokedude.c b/src/battle_controller_pokedude.c index 9b65a215b..f3d61516f 100644 --- a/src/battle_controller_pokedude.c +++ b/src/battle_controller_pokedude.c @@ -166,7 +166,7 @@ static void (*const sPokedudeBufferCommands[CONTROLLER_CMDS_COUNT])(void) = [CONTROLLER_HITANIMATION] = PokedudeHandleHitAnimation, [CONTROLLER_CANTSWITCH] = PokedudeHandleCmd42, [CONTROLLER_PLAYSE] = PokedudeHandlePlaySE, - [CONTROLLER_PLAYFANFARE] = PokedudeHandlePlayFanfare, + [CONTROLLER_PLAYFANFAREORBGM] = PokedudeHandlePlayFanfare, [CONTROLLER_FAINTINGCRY] = PokedudeHandleFaintingCry, [CONTROLLER_INTROSLIDE] = PokedudeHandleIntroSlide, [CONTROLLER_INTROTRAINERBALLTHROW] = PokedudeHandleIntroTrainerBallThrow, diff --git a/src/battle_controller_safari.c b/src/battle_controller_safari.c index 4337dd723..9622899bf 100644 --- a/src/battle_controller_safari.c +++ b/src/battle_controller_safari.c @@ -123,7 +123,7 @@ static void (*const sSafariBufferCommands[CONTROLLER_CMDS_COUNT])(void) = [CONTROLLER_HITANIMATION] = SafariHandleHitAnimation, [CONTROLLER_CANTSWITCH] = SafariHandleCmd42, [CONTROLLER_PLAYSE] = SafariHandlePlaySE, - [CONTROLLER_PLAYFANFARE] = SafariHandlePlayFanfareOrBGM, + [CONTROLLER_PLAYFANFAREORBGM] = SafariHandlePlayFanfareOrBGM, [CONTROLLER_FAINTINGCRY] = SafariHandleFaintingCry, [CONTROLLER_INTROSLIDE] = SafariHandleIntroSlide, [CONTROLLER_INTROTRAINERBALLTHROW] = SafariHandleIntroTrainerBallThrow, diff --git a/src/battle_controllers.c b/src/battle_controllers.c index 959842dda..22d0e7128 100644 --- a/src/battle_controllers.c +++ b/src/battle_controllers.c @@ -1117,12 +1117,12 @@ void BtlController_EmitPlaySE(u8 bufferId, u16 songId) PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4); } -void BtlController_EmitPlayFanfare(u8 bufferId, u16 songId) +void BtlController_EmitPlayFanfareOrBGM(u32 bufferId, u16 songId, bool8 playBGM) { - sBattleBuffersTransferData[0] = CONTROLLER_PLAYFANFARE; + sBattleBuffersTransferData[0] = CONTROLLER_PLAYFANFAREORBGM; sBattleBuffersTransferData[1] = songId; sBattleBuffersTransferData[2] = (songId & 0xFF00) >> 8; - sBattleBuffersTransferData[3] = 0; + sBattleBuffersTransferData[3] = playBGM; PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4); } diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index d94067bf7..7bec0b678 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -670,11 +670,11 @@ void (* const gBattleScriptingCommandsTable[])(void) = Cmd_openpartyscreen, //0x50 // done Cmd_switchhandleorder, //0x51 // done Cmd_switchineffects, //0x52 // done - Cmd_trainerslidein, //0x53 - Cmd_playse, //0x54 - Cmd_fanfare, //0x55 - Cmd_playfaintcry, //0x56 - Cmd_endlinkbattle, //0x57 + Cmd_trainerslidein, //0x53 // done + Cmd_playse, //0x54 // done + Cmd_fanfare, //0x55 // done + Cmd_playfaintcry, //0x56 // done + Cmd_endlinkbattle, //0x57 // done Cmd_returntoball, //0x58 // done Cmd_handlelearnnewmove, //0x59 Cmd_yesnoboxlearnmove, //0x5A @@ -7519,50 +7519,57 @@ static void Cmd_switchineffects(void) static void Cmd_trainerslidein(void) { - if (!gBattlescriptCurrInstr[1]) - gActiveBattler = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT); - else - gActiveBattler = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); - BtlController_EmitTrainerSlide(BUFFER_A); - MarkBattlerForControllerExec(gActiveBattler); + CMD_ARGS(u8 battler); - gBattlescriptCurrInstr += 2; + u32 battler = gActiveBattler = GetBattlerAtPosition(cmd->battler); + BtlController_EmitTrainerSlide(BUFFER_A); + MarkBattlerForControllerExec(battler); + + gBattlescriptCurrInstr = cmd->nextInstr; } static void Cmd_playse(void) { - gActiveBattler = gBattlerAttacker; - BtlController_EmitPlaySE(BUFFER_A, T2_READ_16(gBattlescriptCurrInstr + 1)); - MarkBattlerForControllerExec(gActiveBattler); + CMD_ARGS(u16 song); - gBattlescriptCurrInstr += 3; + gActiveBattler = gBattlerAttacker; + BtlController_EmitPlaySE(BUFFER_A, cmd->song); + MarkBattlerForControllerExec(gBattlerAttacker); + + gBattlescriptCurrInstr = cmd->nextInstr; } static void Cmd_fanfare(void) { - gActiveBattler = gBattlerAttacker; - BtlController_EmitPlayFanfare(BUFFER_A, T2_READ_16(gBattlescriptCurrInstr + 1)); - MarkBattlerForControllerExec(gActiveBattler); + CMD_ARGS(u16 song); - gBattlescriptCurrInstr += 3; + gActiveBattler = gBattlerAttacker; + BtlController_EmitPlayFanfareOrBGM(BUFFER_A, cmd->song, FALSE); + MarkBattlerForControllerExec(gBattlerAttacker); + + gBattlescriptCurrInstr = cmd->nextInstr; } static void Cmd_playfaintcry(void) { - gActiveBattler = GetBattlerForBattleScript(gBattlescriptCurrInstr[1]); - BtlController_EmitFaintingCry(BUFFER_A); - MarkBattlerForControllerExec(gActiveBattler); + CMD_ARGS(u8 battler); - gBattlescriptCurrInstr += 2; + u32 battler = gActiveBattler = GetBattlerForBattleScript(cmd->battler); + BtlController_EmitFaintingCry(BUFFER_A); + MarkBattlerForControllerExec(battler); + + gBattlescriptCurrInstr = cmd->nextInstr; } static void Cmd_endlinkbattle(void) { - gActiveBattler = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT); - BtlController_EmitEndLinkBattle(BUFFER_A, gBattleOutcome); - MarkBattlerForControllerExec(gActiveBattler); + CMD_ARGS(); - gBattlescriptCurrInstr += 1; + u32 battler = gActiveBattler = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT); + BtlController_EmitEndLinkBattle(BUFFER_A, gBattleOutcome); + MarkBattlerForControllerExec(battler); + + gBattlescriptCurrInstr = cmd->nextInstr; } static void Cmd_returntoball(void)