From cdd37ad1bb6dffd28e4acc8e5ca16c61b17ec2a5 Mon Sep 17 00:00:00 2001 From: ghoulslash Date: Fri, 13 May 2022 16:28:23 -0400 Subject: [PATCH] fix stuff cheeks w new consumeberry impl --- asm/macros/battle_script.inc | 3 ++- data/battle_scripts_1.s | 7 ++++--- src/battle_script_commands.c | 11 +++++++++-- 3 files changed, 15 insertions(+), 6 deletions(-) diff --git a/asm/macros/battle_script.inc b/asm/macros/battle_script.inc index 35de2d0ede..405f32be93 100644 --- a/asm/macros/battle_script.inc +++ b/asm/macros/battle_script.inc @@ -1785,8 +1785,9 @@ various \battler, VARIOUS_TRY_ACTIVATE_GRIM_NEIGH .endm - .macro consumeberry battler:req + .macro consumeberry battler:req, frombattler:req various \battler, VARIOUS_CONSUME_BERRY + .byte \frombattler .endm .macro activateitemeffects battler:req diff --git a/data/battle_scripts_1.s b/data/battle_scripts_1.s index d269fd5216..a13b6d90f0 100644 --- a/data/battle_scripts_1.s +++ b/data/battle_scripts_1.s @@ -661,7 +661,7 @@ BattleScript_EffectFlingConsumeBerry: battleritemtolastuseditem BS_TARGET setbyte sBERRY_OVERRIDE, 1 @ override the requirements for eating berries orword gHitMarker, HITMARKER_NO_ANIMATIONS - consumeberry BS_TARGET + consumeberry BS_TARGET, TRUE bicword gHitMarker, HITMARKER_NO_ANIMATIONS setbyte sBERRY_OVERRIDE, 0 restorebattleritem BS_TARGET @@ -1058,9 +1058,10 @@ BattleScript_EffectStuffCheeks:: BattleScript_StuffCheeksEatBerry: setbyte sBERRY_OVERRIDE, TRUE orword gHitMarker, HITMARKER_NO_ANIMATIONS - consumeberry BS_ATTACKER + consumeberry BS_ATTACKER, TRUE bicword gHitMarker, HITMARKER_NO_ANIMATIONS setbyte sBERRY_OVERRIDE, FALSE + removeitem BS_ATTACKER setstatchanger STAT_DEF, 2, FALSE statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_StuffCheeksEnd setgraphicalstatchangevalues @@ -1350,7 +1351,7 @@ BattleScript_MoveEffectBugBite:: waitmessage B_WAIT_TIME_LONG orword gHitMarker, HITMARKER_NO_ANIMATIONS setbyte sBERRY_OVERRIDE, TRUE @ override the requirements for eating berries - consumeberry BS_ATTACKER + consumeberry BS_ATTACKER, FALSE bicword gHitMarker, HITMARKER_NO_ANIMATIONS setbyte sBERRY_OVERRIDE, FALSE return diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index 2009730a7c..4a14d4115e 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -9276,12 +9276,19 @@ static void Cmd_various(void) break; case VARIOUS_CONSUME_BERRY: if (gBattleScripting.overrideBerryRequirements == 2) - break; + { + gBattlescriptCurrInstr += 4; + return; + } + + if (gBattlescriptCurrInstr[3]) + gLastUsedItem = gBattleMons[gActiveBattler].item; gBattleScripting.battler = gEffectBattler = gBattlerTarget = gActiveBattler; // Cover all berry effect battlerId cases. e.g. ChangeStatBuffs uses target ID if (ItemBattleEffects(ITEMEFFECT_USE_LAST_ITEM, gActiveBattler, FALSE)) return; - break; + gBattlescriptCurrInstr += 4; + return; case VARIOUS_JUMP_IF_CANT_REVERT_TO_PRIMAL: { bool8 canDoPrimalReversion = FALSE;