battle 4 up to a8
This commit is contained in:
+26
-26
@@ -831,7 +831,7 @@ u8 TurnBasedEffects(void)
|
||||
gBattleCommunication[MULTISTRING_CHOOSER] = 1;
|
||||
b_call_bc_move_exec(gUnknown_082DB234);
|
||||
gActiveBank = gBankAttacker;
|
||||
EmitSetAttributes(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBank].status1);
|
||||
EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBank].status1);
|
||||
MarkBufferBankForExecution(gActiveBank);
|
||||
break;
|
||||
}
|
||||
@@ -956,7 +956,7 @@ u8 TurnBasedEffects(void)
|
||||
{
|
||||
CancelMultiTurnMoves(gActiveBank);
|
||||
gBattleMons[gActiveBank].status1 |= (Random() & 3) + 2;
|
||||
EmitSetAttributes(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBank].status1);
|
||||
EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBank].status1);
|
||||
MarkBufferBankForExecution(gActiveBank);
|
||||
gEffectBank = gActiveBank;
|
||||
b_call_bc_move_exec(BattleScript_YawnMakesAsleep);
|
||||
@@ -1446,7 +1446,7 @@ u8 AtkCanceller_UnableToUseMove(void)
|
||||
if (effect == 2)
|
||||
{
|
||||
gActiveBank = gBankAttacker;
|
||||
EmitSetAttributes(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBank].status1);
|
||||
EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBank].status1);
|
||||
MarkBufferBankForExecution(gActiveBank);
|
||||
}
|
||||
return effect;
|
||||
@@ -1539,14 +1539,14 @@ bool8 sub_80423F4(u8 bank, u8 r1, u8 r2)
|
||||
{
|
||||
if (GetBankSide(bank) == SIDE_OPPONENT)
|
||||
{
|
||||
r7 = GetBankByPlayerAI(1);
|
||||
r6 = GetBankByPlayerAI(3);
|
||||
r7 = GetBankByIdentity(1);
|
||||
r6 = GetBankByIdentity(3);
|
||||
party = gEnemyParty;
|
||||
}
|
||||
else
|
||||
{
|
||||
r7 = GetBankByPlayerAI(0);
|
||||
r6 = GetBankByPlayerAI(2);
|
||||
r7 = GetBankByIdentity(0);
|
||||
r6 = GetBankByIdentity(2);
|
||||
party = gPlayerParty;
|
||||
}
|
||||
if (r1 == 6)
|
||||
@@ -1835,7 +1835,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
|
||||
gBattleMons[bank].status2 &= ~(STATUS2_NIGHTMARE); // fix nighmare glitch
|
||||
gBattleScripting.bank = gActiveBank = bank;
|
||||
b_push_move_exec(BattleScript_ShedSkinActivates);
|
||||
EmitSetAttributes(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[bank].status1);
|
||||
EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[bank].status1);
|
||||
MarkBufferBankForExecution(gActiveBank);
|
||||
effect++;
|
||||
}
|
||||
@@ -2156,7 +2156,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
|
||||
gBattlescriptCurrInstr = gUnknown_082DB68C;
|
||||
gBattleScripting.bank = i;
|
||||
gActiveBank = i;
|
||||
EmitSetAttributes(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBank].status1);
|
||||
EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBank].status1);
|
||||
MarkBufferBankForExecution(gActiveBank);
|
||||
return effect;
|
||||
}
|
||||
@@ -2235,14 +2235,14 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
|
||||
if (gBattleMons[i].ability == ABILITY_TRACE && (gStatuses3[i] & STATUS3_TRACE))
|
||||
{
|
||||
u8 opposite = (GetBankIdentity(i) ^ 1) & 1;
|
||||
u8 target1 = GetBankByPlayerAI(opposite);
|
||||
u8 target2 = GetBankByPlayerAI(opposite + 2);
|
||||
u8 target1 = GetBankByIdentity(opposite);
|
||||
u8 target2 = GetBankByIdentity(opposite + 2);
|
||||
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
|
||||
{
|
||||
if (gBattleMons[target1].ability != 0 && gBattleMons[target1].hp != 0
|
||||
&& gBattleMons[target2].ability != 0 && gBattleMons[target2].hp != 0)
|
||||
{
|
||||
gActiveBank = GetBankByPlayerAI(((Random() & 1) * 2) | opposite);
|
||||
gActiveBank = GetBankByIdentity(((Random() & 1) * 2) | opposite);
|
||||
gBattleMons[i].ability = gBattleMons[gActiveBank].ability;
|
||||
gLastUsedAbility = gBattleMons[gActiveBank].ability;
|
||||
effect++;
|
||||
@@ -3106,7 +3106,7 @@ _08042E24:\n\
|
||||
movs r1, 0x28\n\
|
||||
movs r2, 0\n\
|
||||
movs r3, 0x4\n\
|
||||
bl EmitSetAttributes\n\
|
||||
bl EmitSetMonData\n\
|
||||
ldrb r0, [r4]\n\
|
||||
bl MarkBufferBankForExecution\n\
|
||||
bl _080443D0\n\
|
||||
@@ -4500,7 +4500,7 @@ _08043BFC:\n\
|
||||
movs r1, 0x28\n\
|
||||
movs r2, 0\n\
|
||||
movs r3, 0x4\n\
|
||||
bl EmitSetAttributes\n\
|
||||
bl EmitSetMonData\n\
|
||||
ldrb r0, [r4]\n\
|
||||
bl MarkBufferBankForExecution\n\
|
||||
bl _0804443A\n\
|
||||
@@ -4744,11 +4744,11 @@ _08043E42:\n\
|
||||
eors r5, r1\n\
|
||||
ands r5, r1\n\
|
||||
adds r0, r5, 0\n\
|
||||
bl GetBankByPlayerAI\n\
|
||||
bl GetBankByIdentity\n\
|
||||
lsls r0, 24\n\
|
||||
lsrs r6, r0, 24\n\
|
||||
adds r0, r5, 0x2\n\
|
||||
bl GetBankByPlayerAI\n\
|
||||
bl GetBankByIdentity\n\
|
||||
lsls r0, 24\n\
|
||||
lsrs r7, r0, 24\n\
|
||||
ldr r0, =gBattleTypeFlags\n\
|
||||
@@ -4792,7 +4792,7 @@ _08043E74:\n\
|
||||
lsls r1, 1\n\
|
||||
orrs r5, r1\n\
|
||||
adds r0, r5, 0\n\
|
||||
bl GetBankByPlayerAI\n\
|
||||
bl GetBankByIdentity\n\
|
||||
mov r2, r8\n\
|
||||
strb r0, [r2]\n\
|
||||
ldrb r0, [r2]\n\
|
||||
@@ -5609,7 +5609,7 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn)
|
||||
gBattleTextBuff1[3] = move >> 8;
|
||||
gBattleTextBuff1[4] = 0xFF;
|
||||
b_call_bc_move_exec(BattleScript_BerryPPHealEnd2);
|
||||
EmitSetAttributes(0, i + REQUEST_PPMOVE1_BATTLE, 0, 1, &changedPP);
|
||||
EmitSetMonData(0, i + REQUEST_PPMOVE1_BATTLE, 0, 1, &changedPP);
|
||||
MarkBufferBankForExecution(gActiveBank);
|
||||
effect = ITEM_PP_CHANGE;
|
||||
}
|
||||
@@ -5993,7 +5993,7 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn)
|
||||
switch (effect)
|
||||
{
|
||||
case ITEM_STATUS_CHANGE:
|
||||
EmitSetAttributes(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[bank].status1);
|
||||
EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[bank].status1);
|
||||
MarkBufferBankForExecution(gActiveBank);
|
||||
break;
|
||||
case ITEM_PP_CHANGE:
|
||||
@@ -6148,7 +6148,7 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn)
|
||||
gBattleScripting.bank = bank;
|
||||
gStringBank = bank;
|
||||
gActiveBank = bank;
|
||||
EmitSetAttributes(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBank].status1);
|
||||
EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBank].status1);
|
||||
MarkBufferBankForExecution(gActiveBank);
|
||||
break;
|
||||
}
|
||||
@@ -6251,7 +6251,7 @@ u8 GetMoveTarget(u16 move, u8 useMoveTarget)
|
||||
case MOVE_TARGET_BOTH:
|
||||
case MOVE_TARGET_FOES_AND_ALLY:
|
||||
case MOVE_TARGET_OPPONENTS_FIELD:
|
||||
targetBank = GetBankByPlayerAI((GetBankIdentity(gBankAttacker) & 1) ^ 1);
|
||||
targetBank = GetBankByIdentity((GetBankIdentity(gBankAttacker) & 1) ^ 1);
|
||||
if (gAbsentBankFlags & gBitTable[targetBank])
|
||||
targetBank ^= 2;
|
||||
break;
|
||||
@@ -6264,22 +6264,22 @@ u8 GetMoveTarget(u16 move, u8 useMoveTarget)
|
||||
if (GetBankSide(gBankAttacker) == SIDE_PLAYER)
|
||||
{
|
||||
if (Random() & 1)
|
||||
targetBank = GetBankByPlayerAI(1);
|
||||
targetBank = GetBankByIdentity(1);
|
||||
else
|
||||
targetBank = GetBankByPlayerAI(3);
|
||||
targetBank = GetBankByIdentity(3);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (Random() & 1)
|
||||
targetBank = GetBankByPlayerAI(0);
|
||||
targetBank = GetBankByIdentity(0);
|
||||
else
|
||||
targetBank = GetBankByPlayerAI(2);
|
||||
targetBank = GetBankByIdentity(2);
|
||||
}
|
||||
if (gAbsentBankFlags & gBitTable[targetBank])
|
||||
targetBank ^= 2;
|
||||
}
|
||||
else
|
||||
targetBank = GetBankByPlayerAI((GetBankIdentity(gBankAttacker) & 1) ^ 1);
|
||||
targetBank = GetBankByIdentity((GetBankIdentity(gBankAttacker) & 1) ^ 1);
|
||||
break;
|
||||
case MOVE_TARGET_USER:
|
||||
case MOVE_TARGET_x10:
|
||||
|
||||
+2698
-41
File diff suppressed because it is too large
Load Diff
+1
-1
@@ -1802,7 +1802,7 @@ static void BattleAICmd_count_alive_pokemon(void)
|
||||
u32 status;
|
||||
bankOnField1 = gBattlePartyID[index];
|
||||
status = GetBankIdentity(index) ^ 2;
|
||||
bankOnField2 = gBattlePartyID[GetBankByPlayerAI(status)];
|
||||
bankOnField2 = gBattlePartyID[GetBankByIdentity(status)];
|
||||
}
|
||||
else // in singles there's only one bank by side
|
||||
{
|
||||
|
||||
@@ -19,7 +19,6 @@ extern struct BattleEnigmaBerry gEnigmaBerries[];
|
||||
extern u16 gBattleMovePower;
|
||||
extern u16 gTrainerBattleOpponent_A;
|
||||
|
||||
u8 CountAliveMonsInBattle(u8);
|
||||
bool8 ShouldGetStatBadgeBoost(u16 flagId, u8 bank);
|
||||
|
||||
extern const struct BattleMove gBattleMoves[];
|
||||
|
||||
+5
-5
@@ -35,7 +35,7 @@ extern const u8 gText_BadEgg[];
|
||||
extern const u8 gText_EggNickname[];
|
||||
|
||||
extern u8 GetBankSide(u8 bank);
|
||||
extern u8 GetBankByPlayerAI(u8 bank);
|
||||
extern u8 GetBankByIdentity(u8 bank);
|
||||
extern u8 GetBankIdentity(u8 bank);
|
||||
|
||||
u8 CountAliveMonsInBattle(u8 caseId)
|
||||
@@ -90,7 +90,7 @@ u8 sub_8069F34(u8 bank)
|
||||
|
||||
status ^= 1;
|
||||
if (!(gBattleTypeFlags & BATTLE_TYPE_DOUBLE))
|
||||
return GetBankByPlayerAI(status);
|
||||
return GetBankByIdentity(status);
|
||||
if (CountAliveMonsInBattle(BATTLE_ALIVE_EXCEPT_ACTIVE) > 1)
|
||||
{
|
||||
u8 val;
|
||||
@@ -99,14 +99,14 @@ u8 sub_8069F34(u8 bank)
|
||||
val = status ^ 2;
|
||||
else
|
||||
val = status;
|
||||
return GetBankByPlayerAI(val);
|
||||
return GetBankByIdentity(val);
|
||||
}
|
||||
else
|
||||
{
|
||||
if ((gAbsentBankFlags & gBitTable[status]))
|
||||
return GetBankByPlayerAI(status ^ 2);
|
||||
return GetBankByIdentity(status ^ 2);
|
||||
else
|
||||
return GetBankByPlayerAI(status);
|
||||
return GetBankByIdentity(status);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+3
-3
@@ -216,7 +216,7 @@ void sub_806CF24(s32 stat)
|
||||
gBankTarget = gBankInMenu;
|
||||
StringCopy(gBattleTextBuff1, gStatNamesTable[gUnknown_08329EC8[stat]]);
|
||||
StringCopy(gBattleTextBuff2, gText_StatRose);
|
||||
StrCpyDecodeToDisplayedStringBattle(gText_PkmnsStatChanged2);
|
||||
BattleStringExpandPlaceholdersToDisplayedString(gText_PkmnsStatChanged2);
|
||||
}
|
||||
|
||||
u8 *sub_806CF78(u16 itemId)
|
||||
@@ -251,7 +251,7 @@ u8 *sub_806CF78(u16 itemId)
|
||||
else
|
||||
{
|
||||
gBankAttacker = gBankInMenu;
|
||||
StrCpyDecodeToDisplayedStringBattle(gText_PkmnGettingPumped);
|
||||
BattleStringExpandPlaceholdersToDisplayedString(gText_PkmnGettingPumped);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -259,7 +259,7 @@ u8 *sub_806CF78(u16 itemId)
|
||||
if (itemEffect[3] & 0x80)
|
||||
{
|
||||
gBankAttacker = gBankInMenu;
|
||||
StrCpyDecodeToDisplayedStringBattle(gText_PkmnShroudedInMist);
|
||||
BattleStringExpandPlaceholdersToDisplayedString(gText_PkmnShroudedInMist);
|
||||
}
|
||||
|
||||
return gDisplayedStringBattle;
|
||||
|
||||
+1
-1
@@ -451,7 +451,7 @@ void FillWindowPixelRect(u8 windowId, u8 fillValue, u16 x, u16 y, u16 width, u16
|
||||
FillBitmapRect4Bit(&pixelRect, x, y, width, height, fillValue);
|
||||
}
|
||||
|
||||
void CopyToWindowPixelBuffer(u8 windowId, u8 *src, u16 size, u16 tileOffset)
|
||||
void CopyToWindowPixelBuffer(u8 windowId, const u8 *src, u16 size, u16 tileOffset)
|
||||
{
|
||||
if (size != 0)
|
||||
CpuCopy16(src, gWindows[windowId].tileData + (0x20 * tileOffset), size);
|
||||
|
||||
Reference in New Issue
Block a user