summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDizzyEggg <jajkodizzy@wp.pl>2019-08-02 11:20:15 +0200
committerDizzyEggg <jajkodizzy@wp.pl>2019-08-02 11:20:15 +0200
commit3280d40506ccc0ffc54cf23da88973d2e9029341 (patch)
treefa974c4bd705327fb56bd36948c480a59168976a /src
parent02d975a8375c4ca70550828d84cf3e5a588fdde9 (diff)
Match sub_8026324
Diffstat (limited to 'src')
-rw-r--r--src/dodrio_berry_picking.c437
1 files changed, 20 insertions, 417 deletions
diff --git a/src/dodrio_berry_picking.c b/src/dodrio_berry_picking.c
index 186d7ceb7..714b10ef6 100644
--- a/src/dodrio_berry_picking.c
+++ b/src/dodrio_berry_picking.c
@@ -1621,19 +1621,12 @@ static void sub_80262C0(void)
}
}
-#ifdef NONMATCHING
static void sub_8026324(void)
{
u8 sp0 = gUnknown_02022C98->unk44;
u8 sp4 = gUnknown_02022C98->unk48;
u8 sp8 = gUnknown_02022C98->unk24;
- u8 i, j, k;
- s32 r2;
- u8 r5;
- u8 r3;
- s32 r2_2;
- u8 r4;
- u8 r7, r7_2;
+ u8 i, j, k, r5;
if (gUnknown_02022C98->unk40 >= 10)
return;
@@ -1646,9 +1639,7 @@ static void sub_8026324(void)
for (j = sp0; j < sp4; j++)
{
r5 = gUnknown_082F449C[0][0][j];
- if (gUnknown_02022C98->unkF4[r5][0] == i)
- break;
- if (gUnknown_02022C98->unkF4[r5][1] == i)
+ if (gUnknown_02022C98->unkF4[r5][0] == i || gUnknown_02022C98->unkF4[r5][1] == i)
break;
if (sub_8026634(i, *ptr, r5) == TRUE)
{
@@ -1672,13 +1663,14 @@ static void sub_8026324(void)
for (j = sp0; j < sp4; j++)
{
- i = 0xFF;
+ u8 id = 0xFF;
r5 = gUnknown_082F449C[0][0][j];
if (gUnknown_02022C98->unkC4[r5] == 1)
{
- r3 = gUnknown_02022C98->unk90[sub_8026D8C(r5)] / 7;
- if (r3 < 2)
- r3 = 2;
+ s32 r2;
+ u8 r4, r3 = gUnknown_02022C98->unk90[sub_8026D8C(r5)] / 7;
+ if (r3 >= ARRAY_COUNT(gUnknown_082F7A88) - 1)
+ r3 = ARRAY_COUNT(gUnknown_082F7A88) - 1;
r2 = gUnknown_082F7A88[r3][gUnknown_02022C98->unk31A0[0].unk14.unk0[r5]] - gUnknown_02022C98->unkD0[r5];
if (r2 < 6)
@@ -1687,35 +1679,35 @@ static void sub_8026324(void)
if (++gUnknown_02022C98->unk9C[r5] >= 6)
{
gUnknown_02022C98->unk9C[r5] = 0;
- if (gUnknown_02022C98->unkF4[r5][0] != 0xFF && gUnknown_02022C98->unkF4[r5][1] == 0xFF)
+ if (gUnknown_02022C98->unkF4[r5][0] == 0xFF && gUnknown_02022C98->unkF4[r5][1] == 0xFF)
{
- r4 = gUnknown_02022C98->unkF4[r5][0];
+ continue;
}
- else if (gUnknown_02022C98->unkF4[r5][0] == 0xFF && gUnknown_02022C98->unkF4[r5][1] == 0xFF)
+ else if (gUnknown_02022C98->unkF4[r5][0] != 0xFF && gUnknown_02022C98->unkF4[r5][1] == 0xFF)
{
- continue;
+ r4 = gUnknown_02022C98->unkF4[r5][0];
}
else
{
- r7 = gUnknown_02022C98->unkF4[r5][0];
- r7_2 = gUnknown_02022C98->unkF4[r5][1];
- if ((Random() & 1))
+ u8 unk0 = gUnknown_02022C98->unkF4[r5][0];
+ i = gUnknown_02022C98->unkF4[r5][1]; // Have to re-use the variable to match.
+ if (!(Random() & 1))
{
- r4 = r7_2;
- i = r7;
+ r4 = unk0;
+ id = i;
}
else
{
- r4 = r7;
- i = r7_2;
+ r4 = i;
+ id = unk0;
}
}
gUnknown_02022C98->unk32CC.unk14.unkB[r5] = 7;
gUnknown_02022C98->unkC4[r5] = 2;
gUnknown_02022C98->unkA8[r4] = 3;
gUnknown_02022C98->unkB8[r5] = r4;
- gUnknown_02022C98->unk31A0[r4].unk30 = 1;
- gUnknown_02022C98->unk31A0[i].unk2C.unk8 = 1;
+ gUnknown_02022C98->unk31A0[r4].unk2C.unk4 = 1;
+ gUnknown_02022C98->unk31A0[id].unk2C.unk8 = 1;
gUnknown_02022C98->unk86[r4]++;
sub_8026F1C(0, r5, r4);
sub_8027234(TRUE);
@@ -1728,395 +1720,6 @@ static void sub_8026324(void)
}
}
}
-#else
-NAKED
-static void sub_8026324(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, 0x10\n"
- "\tldr r0, =gUnknown_02022C98\n"
- "\tldr r1, [r0]\n"
- "\tadds r0, r1, 0\n"
- "\tadds r0, 0x44\n"
- "\tldrb r0, [r0]\n"
- "\tstr r0, [sp]\n"
- "\tadds r0, r1, 0\n"
- "\tadds r0, 0x48\n"
- "\tldrb r0, [r0]\n"
- "\tstr r0, [sp, 0x4]\n"
- "\tadds r0, r1, 0\n"
- "\tadds r0, 0x24\n"
- "\tldrb r0, [r0]\n"
- "\tstr r0, [sp, 0x8]\n"
- "\tadds r0, r1, 0\n"
- "\tadds r0, 0x40\n"
- "\tldrb r0, [r0]\n"
- "\tcmp r0, 0x9\n"
- "\tbls _08026358\n"
- "\tb _08026614\n"
- "_08026358:\n"
- "\tmovs r6, 0\n"
- "\tldr r0, [sp, 0x8]\n"
- "\tcmp r6, r0\n"
- "\tbcs _08026440\n"
- "_08026360:\n"
- "\tldr r3, =gUnknown_02022C98\n"
- "\tlsls r0, r6, 4\n"
- "\tsubs r1, r0, r6\n"
- "\tlsls r1, 2\n"
- "\tldr r2, [r3]\n"
- "\tadds r1, r2\n"
- "\tldr r4, =0x000031cc\n"
- "\tadds r4, r1\n"
- "\tmov r8, r4\n"
- "\tldrb r1, [r4]\n"
- "\tmov r9, r0\n"
- "\tadds r0, r6, 0x1\n"
- "\tstr r0, [sp, 0xC]\n"
- "\tcmp r1, 0\n"
- "\tbeq _08026434\n"
- "\tadds r0, r2, 0\n"
- "\tadds r0, 0xA8\n"
- "\tadds r0, r6\n"
- "\tldrb r0, [r0]\n"
- "\tcmp r0, 0x1\n"
- "\tbne _08026434\n"
- "\tldr r1, [sp]\n"
- "\tmov r10, r1\n"
- "\tldr r2, [sp, 0x4]\n"
- "\tcmp r10, r2\n"
- "\tbcs _08026434\n"
- "\tadds r7, r3, 0\n"
- "_08026396:\n"
- "\tldr r0, =gUnknown_082F449C\n"
- "\tadd r0, r10\n"
- "\tldrb r5, [r0]\n"
- "\tldr r1, [r7]\n"
- "\tlsls r4, r5, 1\n"
- "\tadds r0, r1, 0\n"
- "\tadds r0, 0xF4\n"
- "\tadds r0, r4\n"
- "\tldrb r0, [r0]\n"
- "\tcmp r0, r6\n"
- "\tbeq _08026434\n"
- "\tadds r0, r1, 0\n"
- "\tadds r0, 0xF5\n"
- "\tadds r0, r4\n"
- "\tldrb r0, [r0]\n"
- "\tcmp r0, r6\n"
- "\tbeq _08026434\n"
- "\tmov r0, r8\n"
- "\tldrb r1, [r0]\n"
- "\tadds r0, r6, 0\n"
- "\tadds r2, r5, 0\n"
- "\tbl sub_8026634\n"
- "\tcmp r0, 0x1\n"
- "\tbne _08026410\n"
- "\tmovs r2, 0\n"
- "\tldr r3, =gUnknown_02022C98\n"
- "\tmov r8, r4\n"
- "_080263CE:\n"
- "\tldr r0, [r3]\n"
- "\tmov r4, r8\n"
- "\tadds r1, r2, r4\n"
- "\tadds r0, 0xF4\n"
- "\tadds r1, r0, r1\n"
- "\tldrb r0, [r1]\n"
- "\tcmp r0, 0xFF\n"
- "\tbne _08026404\n"
- "\tstrb r6, [r1]\n"
- "\tldr r0, [r3]\n"
- "\tadds r0, 0xA8\n"
- "\tadds r0, r6\n"
- "\tmovs r1, 0x2\n"
- "\tstrb r1, [r0]\n"
- "\tldr r0, [r3]\n"
- "\tadds r0, 0xC4\n"
- "\tadds r0, r5\n"
- "\tmovs r1, 0x1\n"
- "\tstrb r1, [r0]\n"
- "\tb _08026434\n"
- "\t.pool\n"
- "_08026404:\n"
- "\tadds r0, r2, 0x1\n"
- "\tlsls r0, 24\n"
- "\tlsrs r2, r0, 24\n"
- "\tcmp r2, 0x1\n"
- "\tbls _080263CE\n"
- "\tb _08026434\n"
- "_08026410:\n"
- "\tldr r0, [r7]\n"
- "\tmov r2, r9\n"
- "\tsubs r1, r2, r6\n"
- "\tlsls r1, 2\n"
- "\tadds r0, r1\n"
- "\tldr r4, =0x000031d4\n"
- "\tadds r0, r4\n"
- "\tldrb r0, [r0]\n"
- "\tcmp r0, 0x1\n"
- "\tbeq _08026434\n"
- "\tmov r0, r10\n"
- "\tadds r0, 0x1\n"
- "\tlsls r0, 24\n"
- "\tlsrs r0, 24\n"
- "\tmov r10, r0\n"
- "\tldr r0, [sp, 0x4]\n"
- "\tcmp r10, r0\n"
- "\tbcc _08026396\n"
- "_08026434:\n"
- "\tldr r1, [sp, 0xC]\n"
- "\tlsls r0, r1, 24\n"
- "\tlsrs r6, r0, 24\n"
- "\tldr r2, [sp, 0x8]\n"
- "\tcmp r6, r2\n"
- "\tbcc _08026360\n"
- "_08026440:\n"
- "\tldr r4, [sp]\n"
- "\tmov r10, r4\n"
- "\tldr r0, [sp, 0x4]\n"
- "\tcmp r10, r0\n"
- "\tbcc _0802644C\n"
- "\tb _08026614\n"
- "_0802644C:\n"
- "\tldr r1, =gUnknown_02022C98\n"
- "\tmov r9, r1\n"
- "_08026450:\n"
- "\tmovs r6, 0xFF\n"
- "\tldr r0, =gUnknown_082F449C\n"
- "\tadd r0, r10\n"
- "\tldrb r5, [r0]\n"
- "\tmov r2, r9\n"
- "\tldr r0, [r2]\n"
- "\tadds r0, 0xC4\n"
- "\tadds r0, r5\n"
- "\tldrb r0, [r0]\n"
- "\tcmp r0, 0x1\n"
- "\tbeq _08026468\n"
- "\tb _08026602\n"
- "_08026468:\n"
- "\tadds r0, r5, 0\n"
- "\tbl sub_8026D8C\n"
- "\tmov r1, r9\n"
- "\tldr r4, [r1]\n"
- "\tlsls r0, 24\n"
- "\tlsrs r0, 24\n"
- "\tadds r1, r4, 0\n"
- "\tadds r1, 0x90\n"
- "\tadds r1, r0\n"
- "\tldrb r0, [r1]\n"
- "\tmovs r1, 0x7\n"
- "\tbl __udivsi3\n"
- "\tlsls r0, 24\n"
- "\tlsrs r3, r0, 24\n"
- "\tcmp r3, 0x1\n"
- "\tbls _0802648E\n"
- "\tmovs r3, 0x2\n"
- "_0802648E:\n"
- "\tldr r2, =gUnknown_082F7A88\n"
- "\tldr r0, =0x000031b4\n"
- "\tadds r1, r4, r0\n"
- "\tadds r1, r5\n"
- "\tlsls r0, r3, 1\n"
- "\tadds r0, r3\n"
- "\tldrb r1, [r1]\n"
- "\tadds r0, r1\n"
- "\tadds r0, r2\n"
- "\tldrb r1, [r0]\n"
- "\tadds r0, r4, 0\n"
- "\tadds r0, 0xD0\n"
- "\tadds r0, r5\n"
- "\tldrb r0, [r0]\n"
- "\tsubs r2, r1, r0\n"
- "\tcmp r2, 0x5\n"
- "\tbgt _080264BC\n"
- "\tadds r1, r4, 0\n"
- "\tadds r1, 0x9C\n"
- "\tadds r1, r5\n"
- "\tldrb r0, [r1]\n"
- "\tadds r0, r2\n"
- "\tstrb r0, [r1]\n"
- "_080264BC:\n"
- "\tmov r2, r9\n"
- "\tldr r1, [r2]\n"
- "\tadds r1, 0x9C\n"
- "\tadds r1, r5\n"
- "\tldrb r0, [r1]\n"
- "\tadds r0, 0x1\n"
- "\tmovs r2, 0\n"
- "\tstrb r0, [r1]\n"
- "\tmovs r4, 0xFF\n"
- "\tands r0, r4\n"
- "\tcmp r0, 0x5\n"
- "\tbhi _080264D6\n"
- "\tb _08026602\n"
- "_080264D6:\n"
- "\tmov r1, r9\n"
- "\tldr r0, [r1]\n"
- "\tadds r0, 0x9C\n"
- "\tadds r0, r5\n"
- "\tstrb r2, [r0]\n"
- "\tldr r3, [r1]\n"
- "\tlsls r1, r5, 1\n"
- "\tadds r0, r3, 0\n"
- "\tadds r0, 0xF4\n"
- "\tadds r2, r0, r1\n"
- "\tldrb r0, [r2]\n"
- "\tmov r8, r1\n"
- "\tcmp r0, 0xFF\n"
- "\tbne _08026518\n"
- "\tadds r0, r3, 0\n"
- "\tadds r0, 0xF5\n"
- "\tadd r0, r8\n"
- "\tldrb r0, [r0]\n"
- "\tcmp r0, 0xFF\n"
- "\tbne _08026500\n"
- "\tb _08026602\n"
- "_08026500:\n"
- "\tb _08026528\n"
- "\t.pool\n"
- "_08026518:\n"
- "\tadds r0, r3, 0\n"
- "\tadds r0, 0xF5\n"
- "\tadd r0, r8\n"
- "\tldrb r0, [r0]\n"
- "\tcmp r0, 0xFF\n"
- "\tbne _08026528\n"
- "\tldrb r4, [r2]\n"
- "\tb _0802654E\n"
- "_08026528:\n"
- "\tmov r2, r9\n"
- "\tldr r1, [r2]\n"
- "\tadds r0, r1, 0\n"
- "\tadds r0, 0xF4\n"
- "\tadd r0, r8\n"
- "\tldrb r7, [r0]\n"
- "\tadds r1, 0xF5\n"
- "\tadd r1, r8\n"
- "\tldrb r6, [r1]\n"
- "\tbl Random\n"
- "\tmovs r1, 0x1\n"
- "\tands r1, r0\n"
- "\tcmp r1, 0\n"
- "\tbne _0802654A\n"
- "\tadds r4, r7, 0\n"
- "\tb _0802654E\n"
- "_0802654A:\n"
- "\tadds r4, r6, 0\n"
- "\tadds r6, r7, 0\n"
- "_0802654E:\n"
- "\tmov r1, r9\n"
- "\tldr r0, [r1]\n"
- "\tldr r2, =0x000032eb\n"
- "\tadds r0, r2\n"
- "\tadds r0, r5\n"
- "\tmovs r1, 0x7\n"
- "\tstrb r1, [r0]\n"
- "\tmov r1, r9\n"
- "\tldr r0, [r1]\n"
- "\tadds r0, 0xC4\n"
- "\tadds r0, r5\n"
- "\tmovs r1, 0x2\n"
- "\tstrb r1, [r0]\n"
- "\tmov r2, r9\n"
- "\tldr r0, [r2]\n"
- "\tadds r0, 0xA8\n"
- "\tadds r0, r4\n"
- "\tmovs r1, 0x3\n"
- "\tstrb r1, [r0]\n"
- "\tldr r0, [r2]\n"
- "\tadds r0, 0xB8\n"
- "\tadds r0, r5\n"
- "\tstrb r4, [r0]\n"
- "\tldr r1, [r2]\n"
- "\tlsls r0, r4, 4\n"
- "\tsubs r0, r4\n"
- "\tlsls r0, 2\n"
- "\tadds r1, r0\n"
- "\tldr r2, =0x000031d0\n"
- "\tadds r1, r2\n"
- "\tmovs r0, 0x1\n"
- "\tstrb r0, [r1]\n"
- "\tmov r2, r9\n"
- "\tldr r1, [r2]\n"
- "\tlsls r0, r6, 4\n"
- "\tsubs r0, r6\n"
- "\tlsls r0, 2\n"
- "\tadds r1, r0\n"
- "\tldr r0, =0x000031d4\n"
- "\tadds r1, r0\n"
- "\tmovs r2, 0x1\n"
- "\tstrb r2, [r1]\n"
- "\tmov r0, r9\n"
- "\tldr r1, [r0]\n"
- "\tlsls r0, r4, 1\n"
- "\tadds r1, 0x86\n"
- "\tadds r1, r0\n"
- "\tldrh r0, [r1]\n"
- "\tadds r0, 0x1\n"
- "\tstrh r0, [r1]\n"
- "\tmovs r0, 0\n"
- "\tadds r1, r5, 0\n"
- "\tadds r2, r4, 0\n"
- "\tbl sub_8026F1C\n"
- "\tmovs r0, 0x1\n"
- "\tbl sub_8027234\n"
- "\tadds r0, r4, 0\n"
- "\tbl sub_8026D1C\n"
- "\tmov r1, r9\n"
- "\tldr r0, [r1]\n"
- "\tadds r1, r0, 0\n"
- "\tadds r1, 0xE8\n"
- "\tadds r1, r5\n"
- "\tldr r2, =0x000032e0\n"
- "\tadds r0, r2\n"
- "\tadds r0, r5\n"
- "\tldrb r0, [r0]\n"
- "\tstrb r0, [r1]\n"
- "\tmov r4, r9\n"
- "\tldr r0, [r4]\n"
- "\tadds r0, r2\n"
- "\tadds r0, r5\n"
- "\tmovs r1, 0x3\n"
- "\tstrb r1, [r0]\n"
- "\tldr r1, [r4]\n"
- "\tadds r1, 0xF4\n"
- "\tadd r1, r8\n"
- "\tldrb r0, [r1]\n"
- "\tmovs r2, 0xFF\n"
- "\torrs r0, r2\n"
- "\tstrb r0, [r1]\n"
- "\tldr r1, [r4]\n"
- "\tadds r1, 0xF5\n"
- "\tadd r1, r8\n"
- "\tldrb r0, [r1]\n"
- "\torrs r0, r2\n"
- "\tstrb r0, [r1]\n"
- "_08026602:\n"
- "\tmov r0, r10\n"
- "\tadds r0, 0x1\n"
- "\tlsls r0, 24\n"
- "\tlsrs r0, 24\n"
- "\tmov r10, r0\n"
- "\tldr r4, [sp, 0x4]\n"
- "\tcmp r10, r4\n"
- "\tbcs _08026614\n"
- "\tb _08026450\n"
- "_08026614:\n"
- "\tadd sp, 0x10\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.pool");
-}
-#endif // NONMATCHING
static bool32 sub_8026634(u8 a0, u8 a1, u8 a2)
{