mirror of
https://github.com/pret/pokefirered.git
synced 2026-05-09 04:23:14 -05:00
FillBattleTowerTrainerParty
This commit is contained in:
parent
895a09a263
commit
5acaa57a2a
|
|
@ -527,7 +527,6 @@ void GetBattleTowerTrainerName(u8 *dest)
|
|||
dest[i] = EOS;
|
||||
}
|
||||
|
||||
#ifdef NONMATCHING // r6/r7 swap
|
||||
static void FillBattleTowerTrainerParty(void)
|
||||
{
|
||||
s32 partyIndex;
|
||||
|
|
@ -593,9 +592,12 @@ static void FillBattleTowerTrainerParty(void)
|
|||
else if (gSaveBlock2Ptr->battleTower.battleTowerTrainerId == BATTLE_TOWER_EREADER_TRAINER_ID)
|
||||
{
|
||||
// Load E-Reader trainer's party.
|
||||
for (partyIndex = 0; partyIndex < 3; partyIndex++)
|
||||
CreateBattleTowerMon(&gEnemyParty[partyIndex], &gSaveBlock2Ptr->battleTower.ereaderTrainer.party[partyIndex]);
|
||||
return;
|
||||
do
|
||||
{
|
||||
for (partyIndex = 0; partyIndex < 3; partyIndex++)
|
||||
CreateBattleTowerMon(&gEnemyParty[partyIndex], &gSaveBlock2Ptr->battleTower.ereaderTrainer.party[partyIndex]);
|
||||
return;
|
||||
} while (0);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -652,7 +654,7 @@ static void FillBattleTowerTrainerParty(void)
|
|||
// Ensure this pokemon's held item isn't a duplicate.
|
||||
for (i = 0; i < partyIndex; i++)
|
||||
{
|
||||
if (GetMonData(&gEnemyParty[i], MON_DATA_HELD_ITEM, NULL) != 0
|
||||
if (GetMonData(&gEnemyParty[i], MON_DATA_HELD_ITEM, NULL) != ITEM_NONE
|
||||
&& GetMonData(&gEnemyParty[i], MON_DATA_HELD_ITEM, NULL) == sBattleTowerHeldItems[battleTowerMons[battleMonIndex].heldItem])
|
||||
break;
|
||||
}
|
||||
|
|
@ -700,384 +702,6 @@ static void FillBattleTowerTrainerParty(void)
|
|||
}
|
||||
}
|
||||
}
|
||||
#else
|
||||
NAKED
|
||||
static void FillBattleTowerTrainerParty(void)
|
||||
{
|
||||
asm_unified("\tpush {r4-r7,lr}\n"
|
||||
"\tmov r7, r10\n"
|
||||
"\tmov r6, r9\n"
|
||||
"\tmov r5, r8\n"
|
||||
"\tpush {r5-r7}\n"
|
||||
"\tsub sp, 0x28\n"
|
||||
"\tmovs r0, 0\n"
|
||||
"\tstr r0, [sp, 0x18]\n"
|
||||
"\tmovs r1, 0x3C\n"
|
||||
"\tstr r1, [sp, 0x1C]\n"
|
||||
"\tadd r4, sp, 0xC\n"
|
||||
"\tmovs r0, 0xFF\n"
|
||||
"\tstrb r0, [r4]\n"
|
||||
"\tbl ZeroEnemyPartyMons\n"
|
||||
"\tldr r1, _080E6210 @ =gSaveBlock2Ptr\n"
|
||||
"\tldr r0, [r1]\n"
|
||||
"\tldr r2, _080E6214 @ =0x0000056c\n"
|
||||
"\tadds r0, r2\n"
|
||||
"\tldrb r0, [r0]\n"
|
||||
"\tcmp r0, 0x13\n"
|
||||
"\tbhi _080E6218\n"
|
||||
"\tmovs r3, 0x6\n"
|
||||
"\tstr r3, [sp, 0x14]\n"
|
||||
"\tb _080E62F4\n"
|
||||
"\t.align 2, 0\n"
|
||||
"_080E6210: .4byte gSaveBlock2Ptr\n"
|
||||
"_080E6214: .4byte 0x0000056c\n"
|
||||
"_080E6218:\n"
|
||||
"\tcmp r0, 0x1D\n"
|
||||
"\tbhi _080E6226\n"
|
||||
"\tmovs r0, 0x9\n"
|
||||
"\tstr r0, [sp, 0x14]\n"
|
||||
"\tmovs r1, 0x1E\n"
|
||||
"\tstr r1, [sp, 0x18]\n"
|
||||
"\tb _080E62F4\n"
|
||||
"_080E6226:\n"
|
||||
"\tcmp r0, 0x27\n"
|
||||
"\tbhi _080E6234\n"
|
||||
"\tmovs r2, 0xC\n"
|
||||
"\tstr r2, [sp, 0x14]\n"
|
||||
"\tmovs r3, 0x3C\n"
|
||||
"\tstr r3, [sp, 0x18]\n"
|
||||
"\tb _080E62F4\n"
|
||||
"_080E6234:\n"
|
||||
"\tcmp r0, 0x31\n"
|
||||
"\tbhi _080E6242\n"
|
||||
"\tmovs r0, 0xF\n"
|
||||
"\tstr r0, [sp, 0x14]\n"
|
||||
"\tmovs r1, 0x5A\n"
|
||||
"\tstr r1, [sp, 0x18]\n"
|
||||
"\tb _080E62F4\n"
|
||||
"_080E6242:\n"
|
||||
"\tcmp r0, 0x3B\n"
|
||||
"\tbhi _080E6250\n"
|
||||
"\tmovs r2, 0x12\n"
|
||||
"\tstr r2, [sp, 0x14]\n"
|
||||
"\tmovs r3, 0x78\n"
|
||||
"\tstr r3, [sp, 0x18]\n"
|
||||
"\tb _080E62F4\n"
|
||||
"_080E6250:\n"
|
||||
"\tcmp r0, 0x45\n"
|
||||
"\tbhi _080E625E\n"
|
||||
"\tmovs r0, 0x15\n"
|
||||
"\tstr r0, [sp, 0x14]\n"
|
||||
"\tmovs r1, 0x96\n"
|
||||
"\tstr r1, [sp, 0x18]\n"
|
||||
"\tb _080E62F4\n"
|
||||
"_080E625E:\n"
|
||||
"\tcmp r0, 0x4F\n"
|
||||
"\tbhi _080E626C\n"
|
||||
"\tmovs r2, 0x1F\n"
|
||||
"\tstr r2, [sp, 0x14]\n"
|
||||
"\tmovs r3, 0xB4\n"
|
||||
"\tstr r3, [sp, 0x18]\n"
|
||||
"\tb _080E62F4\n"
|
||||
"_080E626C:\n"
|
||||
"\tcmp r0, 0x63\n"
|
||||
"\tbhi _080E627E\n"
|
||||
"\tmovs r0, 0x1F\n"
|
||||
"\tstr r0, [sp, 0x14]\n"
|
||||
"\tmovs r1, 0xC8\n"
|
||||
"\tstr r1, [sp, 0x18]\n"
|
||||
"\tmovs r2, 0x64\n"
|
||||
"\tstr r2, [sp, 0x1C]\n"
|
||||
"\tb _080E62F4\n"
|
||||
"_080E627E:\n"
|
||||
"\tcmp r0, 0xC8\n"
|
||||
"\tbne _080E62B0\n"
|
||||
"\tmovs r6, 0\n"
|
||||
"\tadds r4, r1, 0\n"
|
||||
"_080E6286:\n"
|
||||
"\tmovs r0, 0x64\n"
|
||||
"\tmuls r0, r6\n"
|
||||
"\tldr r1, _080E62A8 @ =gEnemyParty\n"
|
||||
"\tadds r0, r1\n"
|
||||
"\tmovs r1, 0x2C\n"
|
||||
"\tadds r2, r6, 0\n"
|
||||
"\tmuls r2, r1\n"
|
||||
"\tldr r3, _080E62AC @ =0x000004d4\n"
|
||||
"\tadds r2, r3\n"
|
||||
"\tldr r1, [r4]\n"
|
||||
"\tadds r1, r2\n"
|
||||
"\tbl CreateBattleTowerMon\n"
|
||||
"\tadds r6, 0x1\n"
|
||||
"\tcmp r6, 0x2\n"
|
||||
"\tble _080E6286\n"
|
||||
"\tb _080E64A6\n"
|
||||
"\t.align 2, 0\n"
|
||||
"_080E62A8: .4byte gEnemyParty\n"
|
||||
"_080E62AC: .4byte 0x000004d4\n"
|
||||
"_080E62B0:\n"
|
||||
"\tmovs r6, 0\n"
|
||||
"_080E62B2:\n"
|
||||
"\tmovs r0, 0x64\n"
|
||||
"\tmuls r0, r6\n"
|
||||
"\tldr r1, _080E62E4 @ =gEnemyParty\n"
|
||||
"\tadds r0, r1\n"
|
||||
"\tldr r1, _080E62E8 @ =gSaveBlock2Ptr\n"
|
||||
"\tldr r1, [r1]\n"
|
||||
"\tldr r3, _080E62EC @ =0x0000056c\n"
|
||||
"\tadds r2, r1, r3\n"
|
||||
"\tldrb r3, [r2]\n"
|
||||
"\tmovs r2, 0xA4\n"
|
||||
"\tmuls r2, r3\n"
|
||||
"\tldr r3, _080E62F0 @ =0xffffc144\n"
|
||||
"\tadds r2, r3\n"
|
||||
"\tadds r1, r2\n"
|
||||
"\tmovs r2, 0x2C\n"
|
||||
"\tmuls r2, r6\n"
|
||||
"\tadds r2, 0x1C\n"
|
||||
"\tadds r1, r2\n"
|
||||
"\tbl CreateBattleTowerMon\n"
|
||||
"\tadds r6, 0x1\n"
|
||||
"\tcmp r6, 0x2\n"
|
||||
"\tble _080E62B2\n"
|
||||
"\tb _080E64A6\n"
|
||||
"\t.align 2, 0\n"
|
||||
"_080E62E4: .4byte gEnemyParty\n"
|
||||
"_080E62E8: .4byte gSaveBlock2Ptr\n"
|
||||
"_080E62EC: .4byte 0x0000056c\n"
|
||||
"_080E62F0: .4byte 0xffffc144\n"
|
||||
"_080E62F4:\n"
|
||||
"\tldr r2, _080E6314 @ =gSaveBlock2Ptr\n"
|
||||
"\tldr r0, [r2]\n"
|
||||
"\tldr r1, _080E6318 @ =0x0000055c\n"
|
||||
"\tadds r0, r1\n"
|
||||
"\tldrb r1, [r0]\n"
|
||||
"\tmovs r0, 0x1\n"
|
||||
"\tands r0, r1\n"
|
||||
"\tadds r1, r2, 0\n"
|
||||
"\tcmp r0, 0\n"
|
||||
"\tbeq _080E6320\n"
|
||||
"\tldr r2, _080E631C @ =gBattleTowerLevel100Mons\n"
|
||||
"\tmov r10, r2\n"
|
||||
"\tmovs r3, 0x64\n"
|
||||
"\tstr r3, [sp, 0x10]\n"
|
||||
"\tb _080E6328\n"
|
||||
"\t.align 2, 0\n"
|
||||
"_080E6314: .4byte gSaveBlock2Ptr\n"
|
||||
"_080E6318: .4byte 0x0000055c\n"
|
||||
"_080E631C: .4byte gBattleTowerLevel100Mons\n"
|
||||
"_080E6320:\n"
|
||||
"\tldr r0, _080E6378 @ =gBattleTowerLevel50Mons\n"
|
||||
"\tmov r10, r0\n"
|
||||
"\tmovs r2, 0x32\n"
|
||||
"\tstr r2, [sp, 0x10]\n"
|
||||
"_080E6328:\n"
|
||||
"\tldr r2, _080E637C @ =gBattleTowerTrainers\n"
|
||||
"\tldr r0, [r1]\n"
|
||||
"\tldr r3, _080E6380 @ =0x0000056c\n"
|
||||
"\tadds r0, r3\n"
|
||||
"\tldrb r1, [r0]\n"
|
||||
"\tlsls r0, r1, 2\n"
|
||||
"\tadds r0, r1\n"
|
||||
"\tlsls r0, 2\n"
|
||||
"\tadds r0, r2\n"
|
||||
"\tldrb r0, [r0, 0x4]\n"
|
||||
"\tstr r0, [sp, 0x20]\n"
|
||||
"\tmovs r6, 0\n"
|
||||
"_080E6340:\n"
|
||||
"\tbl Random\n"
|
||||
"\tmovs r1, 0xFF\n"
|
||||
"\tands r1, r0\n"
|
||||
"\tldr r2, [sp, 0x1C]\n"
|
||||
"\tadds r0, r1, 0\n"
|
||||
"\tmuls r0, r2\n"
|
||||
"\tasrs r0, 8\n"
|
||||
"\tldr r3, [sp, 0x18]\n"
|
||||
"\tadds r7, r0, r3\n"
|
||||
"\tldr r0, [sp, 0x20]\n"
|
||||
"\tcmp r0, 0\n"
|
||||
"\tbeq _080E636A\n"
|
||||
"\tlsls r0, r7, 4\n"
|
||||
"\tadd r0, r10\n"
|
||||
"\tldrb r0, [r0, 0x3]\n"
|
||||
"\tldr r1, [sp, 0x20]\n"
|
||||
"\tands r0, r1\n"
|
||||
"\tcmp r0, r1\n"
|
||||
"\tbeq _080E636A\n"
|
||||
"\tb _080E64A0\n"
|
||||
"_080E636A:\n"
|
||||
"\tmovs r5, 0\n"
|
||||
"\tlsls r0, r7, 4\n"
|
||||
"\tmov r2, r10\n"
|
||||
"\tadds r3, r0, r2\n"
|
||||
"\tmovs r4, 0\n"
|
||||
"\tb _080E6388\n"
|
||||
"\t.align 2, 0\n"
|
||||
"_080E6378: .4byte gBattleTowerLevel50Mons\n"
|
||||
"_080E637C: .4byte gBattleTowerTrainers\n"
|
||||
"_080E6380: .4byte 0x0000056c\n"
|
||||
"_080E6384:\n"
|
||||
"\tadds r4, 0x64\n"
|
||||
"\tadds r5, 0x1\n"
|
||||
"_080E6388:\n"
|
||||
"\tcmp r5, r6\n"
|
||||
"\tbge _080E63A2\n"
|
||||
"\tldr r1, _080E64B8 @ =gEnemyParty\n"
|
||||
"\tadds r0, r4, r1\n"
|
||||
"\tmovs r1, 0xB\n"
|
||||
"\tmovs r2, 0\n"
|
||||
"\tstr r3, [sp, 0x24]\n"
|
||||
"\tbl GetMonData\n"
|
||||
"\tldr r3, [sp, 0x24]\n"
|
||||
"\tldrh r2, [r3]\n"
|
||||
"\tcmp r0, r2\n"
|
||||
"\tbne _080E6384\n"
|
||||
"_080E63A2:\n"
|
||||
"\tcmp r5, r6\n"
|
||||
"\tbne _080E64A0\n"
|
||||
"\tmovs r5, 0\n"
|
||||
"\tcmp r5, r6\n"
|
||||
"\tbge _080E63F0\n"
|
||||
"\tldr r3, _080E64BC @ =sBattleTowerHeldItems\n"
|
||||
"\tmov r9, r3\n"
|
||||
"\tlsls r0, r7, 4\n"
|
||||
"\tadd r0, r10\n"
|
||||
"\tmov r8, r0\n"
|
||||
"\tmovs r3, 0\n"
|
||||
"_080E63B8:\n"
|
||||
"\tldr r0, _080E64B8 @ =gEnemyParty\n"
|
||||
"\tadds r4, r3, r0\n"
|
||||
"\tadds r0, r4, 0\n"
|
||||
"\tmovs r1, 0xC\n"
|
||||
"\tmovs r2, 0\n"
|
||||
"\tstr r3, [sp, 0x24]\n"
|
||||
"\tbl GetMonData\n"
|
||||
"\tldr r3, [sp, 0x24]\n"
|
||||
"\tcmp r0, 0\n"
|
||||
"\tbeq _080E63E8\n"
|
||||
"\tadds r0, r4, 0\n"
|
||||
"\tmovs r1, 0xC\n"
|
||||
"\tmovs r2, 0\n"
|
||||
"\tbl GetMonData\n"
|
||||
"\tmov r2, r8\n"
|
||||
"\tldrb r1, [r2, 0x2]\n"
|
||||
"\tlsls r1, 1\n"
|
||||
"\tadd r1, r9\n"
|
||||
"\tldr r3, [sp, 0x24]\n"
|
||||
"\tldrh r1, [r1]\n"
|
||||
"\tcmp r0, r1\n"
|
||||
"\tbeq _080E63F0\n"
|
||||
"_080E63E8:\n"
|
||||
"\tadds r3, 0x64\n"
|
||||
"\tadds r5, 0x1\n"
|
||||
"\tcmp r5, r6\n"
|
||||
"\tblt _080E63B8\n"
|
||||
"_080E63F0:\n"
|
||||
"\tcmp r5, r6\n"
|
||||
"\tbne _080E64A0\n"
|
||||
"\tmovs r5, 0\n"
|
||||
"\tcmp r5, r6\n"
|
||||
"\tbge _080E6412\n"
|
||||
"\tadd r0, sp, 0x4\n"
|
||||
"\tldrh r0, [r0]\n"
|
||||
"\tcmp r0, r7\n"
|
||||
"\tbeq _080E6412\n"
|
||||
"\tadd r1, sp, 0x4\n"
|
||||
"_080E6404:\n"
|
||||
"\tadds r1, 0x2\n"
|
||||
"\tadds r5, 0x1\n"
|
||||
"\tcmp r5, r6\n"
|
||||
"\tbge _080E6412\n"
|
||||
"\tldrh r0, [r1]\n"
|
||||
"\tcmp r0, r7\n"
|
||||
"\tbne _080E6404\n"
|
||||
"_080E6412:\n"
|
||||
"\tcmp r5, r6\n"
|
||||
"\tbne _080E64A0\n"
|
||||
"\tlsls r0, r6, 1\n"
|
||||
"\tadd r0, sp\n"
|
||||
"\tadds r0, 0x4\n"
|
||||
"\tstrh r7, [r0]\n"
|
||||
"\tmovs r3, 0x64\n"
|
||||
"\tadds r0, r6, 0\n"
|
||||
"\tmuls r0, r3\n"
|
||||
"\tldr r1, _080E64B8 @ =gEnemyParty\n"
|
||||
"\tadds r0, r1\n"
|
||||
"\tlsls r4, r7, 4\n"
|
||||
"\tmov r3, r10\n"
|
||||
"\tadds r2, r4, r3\n"
|
||||
"\tldrh r1, [r2]\n"
|
||||
"\tldrb r2, [r2, 0xC]\n"
|
||||
"\tstr r2, [sp]\n"
|
||||
"\tldr r2, [sp, 0x10]\n"
|
||||
"\tldr r3, [sp, 0x14]\n"
|
||||
"\tbl CreateMonWithEVSpread\n"
|
||||
"\tmovs r5, 0\n"
|
||||
"\tadds r0, r6, 0x1\n"
|
||||
"\tmov r9, r0\n"
|
||||
"\tmov r8, r4\n"
|
||||
"\tmovs r0, 0x64\n"
|
||||
"\tadds r7, r6, 0\n"
|
||||
"\tmuls r7, r0\n"
|
||||
"\tmov r0, r10\n"
|
||||
"\tadds r0, 0x4\n"
|
||||
"\tadds r4, r0\n"
|
||||
"\tldr r3, _080E64B8 @ =gEnemyParty\n"
|
||||
"_080E6452:\n"
|
||||
"\tldrh r1, [r4]\n"
|
||||
"\tlsls r2, r5, 24\n"
|
||||
"\tlsrs r2, 24\n"
|
||||
"\tadds r0, r7, r3\n"
|
||||
"\tstr r3, [sp, 0x24]\n"
|
||||
"\tbl SetMonMoveSlot\n"
|
||||
"\tldrh r0, [r4]\n"
|
||||
"\tldr r3, [sp, 0x24]\n"
|
||||
"\tcmp r0, 0xDA\n"
|
||||
"\tbne _080E646E\n"
|
||||
"\tmovs r0, 0\n"
|
||||
"\tmov r1, sp\n"
|
||||
"\tstrb r0, [r1, 0xC]\n"
|
||||
"_080E646E:\n"
|
||||
"\tadds r4, 0x2\n"
|
||||
"\tadds r5, 0x1\n"
|
||||
"\tcmp r5, 0x3\n"
|
||||
"\tble _080E6452\n"
|
||||
"\tmovs r2, 0x64\n"
|
||||
"\tadds r4, r6, 0\n"
|
||||
"\tmuls r4, r2\n"
|
||||
"\tldr r3, _080E64B8 @ =gEnemyParty\n"
|
||||
"\tadds r4, r3\n"
|
||||
"\tadds r0, r4, 0\n"
|
||||
"\tmovs r1, 0x20\n"
|
||||
"\tadd r2, sp, 0xC\n"
|
||||
"\tbl SetMonData\n"
|
||||
"\tmov r0, r8\n"
|
||||
"\tadd r0, r10\n"
|
||||
"\tldrb r2, [r0, 0x2]\n"
|
||||
"\tlsls r2, 1\n"
|
||||
"\tldr r0, _080E64BC @ =sBattleTowerHeldItems\n"
|
||||
"\tadds r2, r0\n"
|
||||
"\tadds r0, r4, 0\n"
|
||||
"\tmovs r1, 0xC\n"
|
||||
"\tbl SetMonData\n"
|
||||
"\tmov r6, r9\n"
|
||||
"_080E64A0:\n"
|
||||
"\tcmp r6, 0x3\n"
|
||||
"\tbeq _080E64A6\n"
|
||||
"\tb _080E6340\n"
|
||||
"_080E64A6:\n"
|
||||
"\tadd sp, 0x28\n"
|
||||
"\tpop {r3-r5}\n"
|
||||
"\tmov r8, r3\n"
|
||||
"\tmov r9, r4\n"
|
||||
"\tmov r10, r5\n"
|
||||
"\tpop {r4-r7}\n"
|
||||
"\tpop {r0}\n"
|
||||
"\tbx r0\n"
|
||||
"\t.align 2, 0\n"
|
||||
"_080E64B8: .4byte gEnemyParty\n"
|
||||
"_080E64BC: .4byte sBattleTowerHeldItems");
|
||||
}
|
||||
#endif //NONMATCHING
|
||||
|
||||
static u8 AppendBattleTowerBannedSpeciesName(u16 species, u8 count)
|
||||
{
|
||||
|
|
@ -1134,7 +758,7 @@ static void CheckMonBattleTowerBanlist(u16 species, u16 heldItem, u16 hp, u8 bat
|
|||
if (i != *numValid)
|
||||
return;
|
||||
|
||||
if (heldItem != 0)
|
||||
if (heldItem != ITEM_NONE)
|
||||
{
|
||||
for (i = 0; i < *numValid && validPartyHeldItems[i] != heldItem ; i++);
|
||||
if (i != *numValid)
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user