updated up to Cmd_endlinkbattle

This commit is contained in:
cawtds 2024-05-01 19:11:54 +02:00
parent 6a84c1a901
commit 711cf686cf
10 changed files with 47 additions and 40 deletions

View File

@ -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);

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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);
}

View File

@ -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)