diff options
author | PikalaxALT <PikalaxALT@users.noreply.github.com> | 2019-11-09 20:14:50 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-11-09 20:14:50 -0500 |
commit | 205a33952660040dbfcb88e23d5f1e48f7d74d0b (patch) | |
tree | ccd2f47ff4919d97c8fbf4328fb134800808dcf9 | |
parent | 895a09a2639b9273030a7db44144c0643d1d738b (diff) | |
parent | 5acaa57a2afb3c53cde22b8d2e3bc35f37e72b16 (diff) |
Merge pull request #148 from jiangzhengwenjz/nonmatching
real match FillBattleTowerTrainerParty
-rw-r--r-- | src/battle_tower.c | 392 |
1 files changed, 8 insertions, 384 deletions
diff --git a/src/battle_tower.c b/src/battle_tower.c index 56eaf93de..6720e9f1b 100644 --- a/src/battle_tower.c +++ b/src/battle_tower.c @@ -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) |