From 34cbb26e5e13240e3055becc2149df3169e39154 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Fri, 8 Mar 2019 10:30:23 +0100 Subject: [PATCH] Synchronoise third type support --- src/battle_util.c | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/src/battle_util.c b/src/battle_util.c index 6de417249c..58826276c7 100644 --- a/src/battle_util.c +++ b/src/battle_util.c @@ -5885,12 +5885,22 @@ void UndoMegaEvolution(u8 monId) bool32 DoBattlersShareType(u32 battler1, u32 battler2) { - if (gBattleMons[battler1].type1 == gBattleMons[battler2].type1 || gBattleMons[battler1].type1 == gBattleMons[battler2].type2) - return TRUE; - else if (gBattleMons[battler1].type2 == gBattleMons[battler2].type1 || gBattleMons[battler1].type2 == gBattleMons[battler2].type2) - return TRUE; - else - return FALSE; + s32 i; + u8 types1[3] = {gBattleMons[battler1].type1, gBattleMons[battler1].type2, gBattleMons[battler1].type3}; + u8 types2[3] = {gBattleMons[battler2].type1, gBattleMons[battler2].type2, gBattleMons[battler2].type3}; + + if (types1[2] == TYPE_MYSTERY) + types1[2] = types1[0]; + if (types2[2] == TYPE_MYSTERY) + types2[2] = types2[0]; + + for (i = 0; i < 3; i++) + { + if (types1[i] == types2[0] || types1[i] == types2[1] || types1[i] == types2[2]) + return TRUE; + } + + return FALSE; } bool32 CanBattlerGetOrLoseItem(u8 battlerId, u16 itemId)