From 7d704a1ce6cbdcd74892c19d64e980b054c39703 Mon Sep 17 00:00:00 2001 From: cawtds <38510667+cawtds@users.noreply.github.com> Date: Sun, 15 Mar 2026 17:36:22 +0100 Subject: [PATCH] fixes for BATTLE_TYPE_POKEDUDE --- include/constants/battle.h | 2 +- src/battle_bg.c | 2 +- src/battle_interface.c | 2 +- src/battle_script_commands.c | 8 ++++---- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/include/constants/battle.h b/include/constants/battle.h index 3f0a4bd37..609979a75 100644 --- a/include/constants/battle.h +++ b/include/constants/battle.h @@ -113,7 +113,7 @@ enum BattleSide #define BATTLE_TYPE_FRONTIER_NO_PYRAMID (BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_DOME | BATTLE_TYPE_PALACE | BATTLE_TYPE_ARENA | BATTLE_TYPE_FACTORY | BATTLE_TYPE_PIKE) #define BATTLE_TYPE_RECORDED_INVALID ((BATTLE_TYPE_LINK | BATTLE_TYPE_SAFARI | BATTLE_TYPE_FIRST_BATTLE \ | BATTLE_TYPE_CATCH_TUTORIAL | BATTLE_TYPE_ROAMER | BATTLE_TYPE_EREADER_TRAINER \ - | BATTLE_TYPE_LEGENDARY \ + | BATTLE_TYPE_LEGENDARY | BATTLE_TYPE_POKEDUDE \ | BATTLE_TYPE_RECORDED | BATTLE_TYPE_TRAINER_HILL | BATTLE_TYPE_SECRET_BASE)) #define WILD_DOUBLE_BATTLE ((gBattleTypeFlags & BATTLE_TYPE_DOUBLE && !(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_TRAINER)))) diff --git a/src/battle_bg.c b/src/battle_bg.c index 71d6279df..e590e25a7 100644 --- a/src/battle_bg.c +++ b/src/battle_bg.c @@ -967,7 +967,7 @@ void BattleInitBgsAndWindows(void) SetBgTilemapBuffer(1, gBattleAnimBgTilemapBuffer); SetBgTilemapBuffer(2, gBattleAnimBgTilemapBuffer); } - else if (gBattleTypeFlags & (BATTLE_TYPE_FIRST_BATTLE | BATTLE_TYPE_CATCH_TUTORIAL)) + else if (gBattleTypeFlags & (BATTLE_TYPE_FIRST_BATTLE | BATTLE_TYPE_CATCH_TUTORIAL | BATTLE_TYPE_POKEDUDE)) { gBattleScripting.windowsType = B_WIN_TYPE_KANTO_TUTORIAL; } diff --git a/src/battle_interface.c b/src/battle_interface.c index 84666fb3b..dbb77ac75 100644 --- a/src/battle_interface.c +++ b/src/battle_interface.c @@ -1731,7 +1731,7 @@ void TryAddPokeballIconToHealthbox(u8 healthboxSpriteId, bool8 noStatus) enum BattlerId battler; u8 healthBarSpriteId; - if (gBattleTypeFlags & BATTLE_TYPE_CATCH_TUTORIAL) + if (gBattleTypeFlags & (BATTLE_TYPE_FIRST_BATTLE | BATTLE_TYPE_CATCH_TUTORIAL | BATTLE_TYPE_POKEDUDE)) return; if (gBattleTypeFlags & BATTLE_TYPE_TRAINER) return; diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index 75a2692dc..2f8f34a51 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -4215,7 +4215,7 @@ static void Cmd_getexp(void) else { // Music change in a wild battle after fainting opposing pokemon. - if (!(gBattleTypeFlags & BATTLE_TYPE_TRAINER) + if (!(gBattleTypeFlags & (BATTLE_TYPE_TRAINER | BATTLE_TYPE_POKEDUDE)) && (gBattleMons[0].hp || (IsDoubleBattle() && gBattleMons[2].hp)) && !IsBattlerAlive(GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT)) && (!IsDoubleBattle() || !IsBattlerAlive(GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT))) @@ -4253,7 +4253,7 @@ static void Cmd_getexp(void) gBattleStruct->battlerExpReward = gExperienceTables[growthRate][levelCap] - currentExp; } - if (IsTradedMon(&gPlayerParty[*expMonId])) + if (IsTradedMon(&gPlayerParty[*expMonId]) && !(gBattleTypeFlags & BATTLE_TYPE_POKEDUDE)) { // check if the Pokémon doesn't belong to the player if (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER && *expMonId >= 3) @@ -10867,7 +10867,7 @@ static void Cmd_handleballthrow(void) MarkBattlerForControllerExec(gBattlerAttacker); gBattlescriptCurrInstr = BattleScript_TrainerBallBlock; } - else if (gBattleTypeFlags & BATTLE_TYPE_CATCH_TUTORIAL) + else if (gBattleTypeFlags & (BATTLE_TYPE_POKEDUDE | BATTLE_TYPE_CATCH_TUTORIAL)) { BtlController_EmitBallThrowAnim(gBattlerAttacker, B_COMM_TO_CONTROLLER, BALL_3_SHAKES_SUCCESS); MarkBattlerForControllerExec(gBattlerAttacker); @@ -11841,7 +11841,7 @@ void ApplyExperienceMultipliers(s32 *expAmount, u8 expGetterMonId, u8 faintedBat { enum HoldEffect holdEffect = GetMonHoldEffect(&gPlayerParty[expGetterMonId]); - if (IsTradedMon(&gPlayerParty[expGetterMonId])) + if (IsTradedMon(&gPlayerParty[expGetterMonId]) && !(gBattleTypeFlags & BATTLE_TYPE_POKEDUDE)) *expAmount = (*expAmount * 150) / 100; if (holdEffect == HOLD_EFFECT_LUCKY_EGG) *expAmount = (*expAmount * 150) / 100;