summaryrefslogtreecommitdiff
path: root/src/frontier_util.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/frontier_util.c')
-rw-r--r--src/frontier_util.c260
1 files changed, 16 insertions, 244 deletions
diff --git a/src/frontier_util.c b/src/frontier_util.c
index c741a64fe..5955d9bf7 100644
--- a/src/frontier_util.c
+++ b/src/frontier_util.c
@@ -31,7 +31,6 @@
#include "constants/battle_frontier.h"
#include "constants/frontier_util.h"
#include "constants/trainers.h"
-#include "constants/species.h"
#include "constants/game_stat.h"
#include "constants/moves.h"
#include "constants/items.h"
@@ -2384,13 +2383,21 @@ void ClearRankingHallRecords(void)
{
s32 i, j, k;
+ // BUG: Passing 0 as a pointer instead of a pointer holding a value of 0.
+ #ifdef BUGFIX
+ u8 zero = 0;
+ #define ZERO (&zero)
+ #else
+ #define ZERO 0
+ #endif
+
for (i = 0; i < HALL_FACILITIES_COUNT; i++)
{
for (j = 0; j < 2; j++)
{
for (k = 0; k < 3; k++)
{
- CopyTrainerId(gSaveBlock2Ptr->hallRecords1P[i][j][k].id, 0); // BUG: Passing 0 as a pointer instead of a pointer holding a value of 0.
+ CopyTrainerId(gSaveBlock2Ptr->hallRecords1P[i][j][k].id, ZERO);
gSaveBlock2Ptr->hallRecords1P[i][j][k].name[0] = EOS;
gSaveBlock2Ptr->hallRecords1P[i][j][k].winStreak = 0;
}
@@ -2401,8 +2408,8 @@ void ClearRankingHallRecords(void)
{
for (k = 0; k < 3; k++)
{
- CopyTrainerId(gSaveBlock2Ptr->hallRecords2P[j][k].id1, 0); // BUG: Passing 0 as a pointer instead of a pointer holding a value of 0.
- CopyTrainerId(gSaveBlock2Ptr->hallRecords2P[j][k].id2, 0); // BUG: Passing 0 as a pointer instead of a pointer holding a value of 0.
+ CopyTrainerId(gSaveBlock2Ptr->hallRecords2P[j][k].id1, ZERO);
+ CopyTrainerId(gSaveBlock2Ptr->hallRecords2P[j][k].id2, ZERO);
gSaveBlock2Ptr->hallRecords2P[j][k].name1[0] = EOS;
gSaveBlock2Ptr->hallRecords2P[j][k].name2[0] = EOS;
gSaveBlock2Ptr->hallRecords2P[j][k].winStreak = 0;
@@ -2486,7 +2493,6 @@ void SetFrontierBrainObjEventGfx_2(void)
#define FRONTIER_BRAIN_OTID 61226
-#ifdef NONMATCHING
void CreateFrontierBrainPokemon(void)
{
s32 i, j;
@@ -2512,8 +2518,11 @@ void CreateFrontierBrainPokemon(void)
do
{
- j = Random32();
- } while (IsShinyOtIdPersonality(FRONTIER_BRAIN_OTID, j) || sFrontierBrainsMons[facility][symbol][i].nature != GetNatureFromPersonality(j));
+ do
+ {
+ j = Random32(); //should just be one while loop, but that doesn't match
+ } while (IsShinyOtIdPersonality(FRONTIER_BRAIN_OTID, j));
+ } while (sFrontierBrainsMons[facility][symbol][i].nature != GetNatureFromPersonality(j));
CreateMon(&gEnemyParty[monPartyId],
sFrontierBrainsMons[facility][symbol][i].species,
monLevel,
@@ -2535,243 +2544,6 @@ void CreateFrontierBrainPokemon(void)
monPartyId++;
}
}
-#else
-NAKED
-void CreateFrontierBrainPokemon(void)
-{
- asm_unified("\n\
- push {r4-r7,lr}\n\
- mov r7, r10\n\
- mov r6, r9\n\
- mov r5, r8\n\
- push {r5-r7}\n\
- sub sp, 0x44\n\
- ldr r0, =0x000040cf\n\
- bl VarGet\n\
- lsls r0, 16\n\
- lsrs r0, 16\n\
- str r0, [sp, 0x20]\n\
- bl GetFronterBrainSymbol\n\
- str r0, [sp, 0x24]\n\
- ldr r0, [sp, 0x20]\n\
- cmp r0, 0x1\n\
- bne _081A4E44\n\
- ldr r0, =0x000003fe\n\
- bl TrainerIdToDomeTournamentId\n\
- lsls r0, 16\n\
- lsrs r0, 16\n\
- bl GetDomeTrainerSelectedMons\n\
- adds r4, r0, 0\n\
- b _081A4E46\n\
- .pool\n\
-_081A4E44:\n\
- movs r4, 0x7\n\
-_081A4E46:\n\
- bl ZeroEnemyPartyMons\n\
- movs r1, 0\n\
- str r1, [sp, 0x18]\n\
- bl SetFacilityPtrsGetLevel\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- str r0, [sp, 0x1C]\n\
- movs r2, 0\n\
- str r2, [sp, 0x14]\n\
-_081A4E5C:\n\
- movs r0, 0x1\n\
- ands r0, r4\n\
- asrs r4, 1\n\
- str r4, [sp, 0x30]\n\
- ldr r3, [sp, 0x14]\n\
- adds r3, 0x1\n\
- str r3, [sp, 0x28]\n\
- cmp r0, 0\n\
- bne _081A4E70\n\
- b _081A4FC4\n\
-_081A4E70:\n\
- ldr r4, [sp, 0x14]\n\
- lsls r4, 2\n\
- mov r9, r4\n\
- ldr r0, [sp, 0x24]\n\
- lsls r0, 4\n\
- str r0, [sp, 0x38]\n\
- ldr r1, [sp, 0x20]\n\
- lsls r1, 4\n\
- str r1, [sp, 0x34]\n\
- ldr r2, [sp, 0x1C]\n\
- lsls r2, 24\n\
- str r2, [sp, 0x3C]\n\
- ldr r3, [sp, 0x18]\n\
- adds r3, 0x1\n\
- str r3, [sp, 0x2C]\n\
- ldr r0, [sp, 0x14]\n\
- add r0, r9\n\
- lsls r0, 2\n\
- mov r8, r0\n\
-_081A4E96:\n\
- bl Random\n\
- adds r4, r0, 0\n\
- bl Random\n\
- lsls r4, 16\n\
- lsrs r7, r4, 16\n\
- lsls r0, 16\n\
- orrs r7, r0\n\
- ldr r0, =0x0000ef2a\n\
- adds r1, r7, 0\n\
- bl IsShinyOtIdPersonality\n\
- lsls r0, 24\n\
- cmp r0, 0\n\
- bne _081A4E96\n\
- ldr r4, [sp, 0x38]\n\
- ldr r1, [sp, 0x24]\n\
- subs r0, r4, r1\n\
- lsls r5, r0, 2\n\
- mov r2, r8\n\
- adds r4, r2, r5\n\
- ldr r3, [sp, 0x34]\n\
- ldr r1, [sp, 0x20]\n\
- subs r0, r3, r1\n\
- lsls r6, r0, 3\n\
- adds r4, r6\n\
- ldr r2, =sFrontierBrainsMons\n\
- adds r4, r2\n\
- adds r0, r7, 0\n\
- bl GetNatureFromPersonality\n\
- ldrb r1, [r4, 0x5]\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- cmp r1, r0\n\
- bne _081A4E96\n\
- ldr r4, [sp, 0x18]\n\
- movs r0, 0x64\n\
- adds r3, r4, 0\n\
- muls r3, r0\n\
- mov r8, r3\n\
- ldr r1, =gEnemyParty\n\
- add r1, r8\n\
- mov r10, r1\n\
- ldr r4, [sp, 0x14]\n\
- add r4, r9\n\
- lsls r4, 2\n\
- adds r0, r4, r5\n\
- adds r0, r6\n\
- ldr r2, =sFrontierBrainsMons\n\
- adds r0, r2\n\
- ldrh r1, [r0]\n\
- ldr r3, [sp, 0x3C]\n\
- lsrs r2, r3, 24\n\
- ldrb r3, [r0, 0x4]\n\
- movs r0, 0x1\n\
- str r0, [sp]\n\
- str r7, [sp, 0x4]\n\
- str r0, [sp, 0x8]\n\
- ldr r0, =0x0000ef2a\n\
- str r0, [sp, 0xC]\n\
- mov r0, r10\n\
- bl CreateMon\n\
- ldr r0, =sFrontierBrainsMons\n\
- adds r5, r0\n\
- adds r5, r6, r5\n\
- adds r4, r5, r4\n\
- adds r4, 0x2\n\
- mov r0, r10\n\
- movs r1, 0xC\n\
- adds r2, r4, 0\n\
- bl SetMonData\n\
- movs r7, 0\n\
- mov r6, r8\n\
- ldr r3, =gEnemyParty\n\
-_081A4F32:\n\
- adds r1, r7, 0\n\
- adds r1, 0x1A\n\
- ldr r0, [sp, 0x14]\n\
- add r0, r9\n\
- lsls r4, r0, 2\n\
- adds r2, r5, r4\n\
- adds r0, r7, 0x6\n\
- adds r2, r0\n\
- adds r0, r6, r3\n\
- str r3, [sp, 0x40]\n\
- bl SetMonData\n\
- adds r7, 0x1\n\
- ldr r3, [sp, 0x40]\n\
- cmp r7, 0x5\n\
- ble _081A4F32\n\
- movs r1, 0xFF\n\
- add r0, sp, 0x10\n\
- strb r1, [r0]\n\
- movs r7, 0\n\
- ldr r1, [sp, 0x18]\n\
- movs r2, 0x64\n\
- adds r6, r1, 0\n\
- muls r6, r2\n\
- ldr r3, =sFrontierBrainsMons + 0xC\n\
- mov r8, r3\n\
- ldr r3, =gEnemyParty\n\
- adds r5, r4, 0\n\
-_081A4F6A:\n\
- ldr r4, [sp, 0x38]\n\
- ldr r0, [sp, 0x24]\n\
- subs r1, r4, r0\n\
- lsls r1, 2\n\
- adds r1, r5, r1\n\
- ldr r2, [sp, 0x34]\n\
- ldr r4, [sp, 0x20]\n\
- subs r0, r2, r4\n\
- lsls r0, 3\n\
- adds r1, r0\n\
- add r1, r8\n\
- ldrh r4, [r1]\n\
- lsls r2, r7, 24\n\
- lsrs r2, 24\n\
- adds r0, r6, r3\n\
- adds r1, r4, 0\n\
- str r3, [sp, 0x40]\n\
- bl SetMonMoveSlot\n\
- ldr r3, [sp, 0x40]\n\
- cmp r4, 0xDA\n\
- bne _081A4F9C\n\
- movs r1, 0\n\
- add r0, sp, 0x10\n\
- strb r1, [r0]\n\
-_081A4F9C:\n\
- adds r5, 0x2\n\
- adds r7, 0x1\n\
- cmp r7, 0x3\n\
- ble _081A4F6A\n\
- ldr r0, [sp, 0x18]\n\
- movs r1, 0x64\n\
- adds r4, r0, 0\n\
- muls r4, r1\n\
- ldr r0, =gEnemyParty\n\
- adds r4, r0\n\
- adds r0, r4, 0\n\
- movs r1, 0x20\n\
- add r2, sp, 0x10\n\
- bl SetMonData\n\
- adds r0, r4, 0\n\
- bl CalculateMonStats\n\
- ldr r2, [sp, 0x2C]\n\
- str r2, [sp, 0x18]\n\
-_081A4FC4:\n\
- ldr r4, [sp, 0x30]\n\
- ldr r3, [sp, 0x28]\n\
- str r3, [sp, 0x14]\n\
- cmp r3, 0x2\n\
- bgt _081A4FD0\n\
- b _081A4E5C\n\
-_081A4FD0:\n\
- add sp, 0x44\n\
- pop {r3-r5}\n\
- mov r8, r3\n\
- mov r9, r4\n\
- mov r10, r5\n\
- pop {r4-r7}\n\
- pop {r0}\n\
- bx r0\n\
- .pool\n\
-");
-}
-#endif
u16 GetFrontierBrainMonSpecies(u8 monId)
{