diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2017-09-04 23:25:36 -0400 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2017-09-04 23:25:36 -0400 |
commit | 1de75f32304d880d96f38778cd4b711ec5bc760b (patch) | |
tree | 569713cb925aab528ea6d9859763e05722a95e6c /src | |
parent | fd131fb769e25037c2979b5648e29b18cc8f0f6c (diff) |
Final function (nonmatching)
Diffstat (limited to 'src')
-rw-r--r-- | src/trade.c | 234 |
1 files changed, 229 insertions, 5 deletions
diff --git a/src/trade.c b/src/trade.c index 877f24f9e..93a8957fd 100644 --- a/src/trade.c +++ b/src/trade.c @@ -94,8 +94,7 @@ struct TradeEwramSubstruct { /*0x0041*/ u8 tradeMenuCursorPosition; /*0x0042*/ u8 partyCounts[2]; /*0x0044*/ u8 tradeMenuOptionsActive[13]; - /*0x0051*/ u8 unk_0051[6]; - /*0x0057*/ u8 filler_0057[6]; + /*0x0051*/ u8 unk_0051[2][6]; /*0x005d*/ u8 unk_005d[2][6]; /*0x005d*/ u8 unk_0069[2][6]; /*0x0075*/ u8 unk_0075; @@ -2141,7 +2140,7 @@ static void sub_8049860(void) BeginNormalPaletteFade(-1, 0, 0, 16, 0); gUnknown_03004824->unk_007b = 2; } - else if (sub_80499F0(gUnknown_03004824->unk_0051, gUnknown_03004824->partyCounts[0], gUnknown_03004824->tradeMenuCursorPosition) == 0) + else if (sub_80499F0(gUnknown_03004824->unk_0051[0], gUnknown_03004824->partyCounts[0], gUnknown_03004824->tradeMenuCursorPosition) == 0) { sub_804AADC(3, 2); gUnknown_03004824->unk_007b = 8; @@ -2203,7 +2202,7 @@ static void sub_8049A20(void) int i; for (i = 0; i < gUnknown_03004824->partyCounts[0]; i ++) { - unk_0051[i] = gUnknown_03004824->unk_0051[i]; + unk_0051[i] = gUnknown_03004824->unk_0051[0][i]; } if (sub_80499F0(unk_0051, gUnknown_03004824->partyCounts[0], gUnknown_03004824->tradeMenuCursorPosition) == 0) { @@ -3511,7 +3510,232 @@ static bool8 sub_804ABF8(void) sub_804AFB8(&gWindowConfig_81E725C, dest, src, a2); } -asm(".section .text.sub_804DAD4"); +#ifdef NONMATCHING +void sub_804ACF4(u8 who) +{ + struct Pokemon *pokemon; + int i; + switch (who) + { + case 0: + for (i = 0; i < gUnknown_03004824->partyCounts[0]; i ++) + { + pokemon = &gPlayerParty[i]; + if (GetMonData(pokemon, MON_DATA_IS_EGG) == TRUE) + { + gUnknown_03004824->unk_0051[0][i] = 0; + gUnknown_03004824->unk_005d[0][i] = 1; + } + else if (GetMonData(pokemon, MON_DATA_HP) == 0) + { + gUnknown_03004824->unk_0051[0][i] = 0; + gUnknown_03004824->unk_005d[0][i] = 0; + } + else + { + gUnknown_03004824->unk_0051[0][i] = 1; + gUnknown_03004824->unk_005d[0][i] = 0; + } + } + break; + case 1: + for (i = 0; i < gUnknown_03004824->partyCounts[1]; i ++) + { + pokemon = &gEnemyParty[i]; + if (GetMonData(pokemon, MON_DATA_IS_EGG) == TRUE) + { + gUnknown_03004824->unk_0051[1][i] = 0; + gUnknown_03004824->unk_005d[1][i] = 1; + } + else if (GetMonData(pokemon, MON_DATA_HP) == 0) + { + gUnknown_03004824->unk_0051[1][i] = 0; + gUnknown_03004824->unk_005d[1][i] = 0; + } + else + { + gUnknown_03004824->unk_0051[1][i] = 1; + gUnknown_03004824->unk_005d[1][i] = 0; + } + } + break; + } +} +#else +__attribute__((naked)) void sub_804ACF4(u8 who) +{ + asm_unified("sub_804ACF4: @ 804ACF4\n" + "\tpush {r4-r7,lr}\n" + "\tmov r7, r9\n" + "\tmov r6, r8\n" + "\tpush {r6,r7}\n" + "\tlsls r0, 24\n" + "\tlsrs r0, 24\n" + "\tmov r8, r0\n" + "\tcmp r0, 0\n" + "\tbeq _0804AD0C\n" + "\tcmp r0, 0x1\n" + "\tbeq _0804ADA0\n" + "\tb _0804AE2C\n" + "_0804AD0C:\n" + "\tmovs r7, 0\n" + "\tldr r1, _0804AD4C @ =gUnknown_03004824\n" + "\tldr r0, [r1]\n" + "\tadds r0, 0x42\n" + "\tldrb r0, [r0]\n" + "\tcmp r7, r0\n" + "\tblt _0804AD1C\n" + "\tb _0804AE2C\n" + "_0804AD1C:\n" + "\tadds r6, r1, 0\n" + "\tmovs r5, 0\n" + "\tmov r9, r5\n" + "_0804AD22:\n" + "\tmovs r0, 0x64\n" + "\tadds r1, r7, 0\n" + "\tmuls r1, r0\n" + "\tldr r0, _0804AD50 @ =gPlayerParty\n" + "\tadds r4, r1, r0\n" + "\tadds r0, r4, 0\n" + "\tmovs r1, 0x2D\n" + "\tbl GetMonData\n" + "\tadds r1, r0, 0\n" + "\tcmp r1, 0x1\n" + "\tbne _0804AD54\n" + "\tldr r0, [r6]\n" + "\tadds r0, 0x51\n" + "\tadds r0, r5\n" + "\tmov r2, r9\n" + "\tstrb r2, [r0]\n" + "\tldr r0, [r6]\n" + "\tadds r0, 0x5D\n" + "\tadds r0, r5\n" + "\tb _0804AD84\n" + "\t.align 2, 0\n" + "_0804AD4C: .4byte gUnknown_03004824\n" + "_0804AD50: .4byte gPlayerParty\n" + "_0804AD54:\n" + "\tadds r0, r4, 0\n" + "\tmovs r1, 0x39\n" + "\tbl GetMonData\n" + "\tadds r1, r0, 0\n" + "\tcmp r1, 0\n" + "\tbne _0804AD72\n" + "\tldr r0, [r6]\n" + "\tadds r0, 0x51\n" + "\tadds r0, r5\n" + "\tstrb r1, [r0]\n" + "\tldr r0, [r6]\n" + "\tadds r0, 0x5D\n" + "\tadds r0, r5\n" + "\tb _0804AD84\n" + "_0804AD72:\n" + "\tldr r0, [r6]\n" + "\tadds r0, 0x51\n" + "\tadds r0, r5\n" + "\tmovs r1, 0x1\n" + "\tstrb r1, [r0]\n" + "\tldr r0, [r6]\n" + "\tadds r0, 0x5D\n" + "\tadds r0, r5\n" + "\tmov r1, r9\n" + "_0804AD84:\n" + "\tstrb r1, [r0]\n" + "\tldr r0, _0804AD9C @ =gUnknown_03004824\n" + "\tadds r5, 0x1\n" + "\tadds r7, 0x1\n" + "\tldr r0, [r0]\n" + "\tadds r0, 0x42\n" + "\tadd r0, r8\n" + "\tldrb r0, [r0]\n" + "\tcmp r7, r0\n" + "\tblt _0804AD22\n" + "\tb _0804AE2C\n" + "\t.align 2, 0\n" + "_0804AD9C: .4byte gUnknown_03004824\n" + "_0804ADA0:\n" + "\tmovs r7, 0\n" + "\tldr r1, _0804ADE0 @ =gUnknown_03004824\n" + "\tldr r0, [r1]\n" + "\tadds r0, 0x43\n" + "\tldrb r0, [r0]\n" + "\tcmp r7, r0\n" + "\tbge _0804AE2C\n" + "\tadds r6, r1, 0\n" + "\tmovs r5, 0x6\n" + "\tmovs r2, 0\n" + "\tmov r9, r2\n" + "_0804ADB6:\n" + "\tmovs r0, 0x64\n" + "\tadds r1, r7, 0\n" + "\tmuls r1, r0\n" + "\tldr r0, _0804ADE4 @ =gEnemyParty\n" + "\tadds r4, r1, r0\n" + "\tadds r0, r4, 0\n" + "\tmovs r1, 0x2D\n" + "\tbl GetMonData\n" + "\tadds r1, r0, 0\n" + "\tcmp r1, 0x1\n" + "\tbne _0804ADE8\n" + "\tldr r0, [r6]\n" + "\tadds r0, 0x51\n" + "\tadds r0, r5\n" + "\tmov r2, r9\n" + "\tstrb r2, [r0]\n" + "\tldr r0, [r6]\n" + "\tadds r0, 0x5D\n" + "\tadds r0, r5\n" + "\tb _0804AE18\n" + "\t.align 2, 0\n" + "_0804ADE0: .4byte gUnknown_03004824\n" + "_0804ADE4: .4byte gEnemyParty\n" + "_0804ADE8:\n" + "\tadds r0, r4, 0\n" + "\tmovs r1, 0x39\n" + "\tbl GetMonData\n" + "\tadds r1, r0, 0\n" + "\tcmp r1, 0\n" + "\tbne _0804AE06\n" + "\tldr r0, [r6]\n" + "\tadds r0, 0x51\n" + "\tadds r0, r5\n" + "\tstrb r1, [r0]\n" + "\tldr r0, [r6]\n" + "\tadds r0, 0x5D\n" + "\tadds r0, r5\n" + "\tb _0804AE18\n" + "_0804AE06:\n" + "\tldr r0, [r6]\n" + "\tadds r0, 0x51\n" + "\tadds r0, r5\n" + "\tmovs r1, 0x1\n" + "\tstrb r1, [r0]\n" + "\tldr r0, [r6]\n" + "\tadds r0, 0x5D\n" + "\tadds r0, r5\n" + "\tmov r1, r9\n" + "_0804AE18:\n" + "\tstrb r1, [r0]\n" + "\tldr r0, _0804AE38 @ =gUnknown_03004824\n" + "\tadds r5, 0x1\n" + "\tadds r7, 0x1\n" + "\tldr r0, [r0]\n" + "\tadds r0, 0x42\n" + "\tadd r0, r8\n" + "\tldrb r0, [r0]\n" + "\tcmp r7, r0\n" + "\tblt _0804ADB6\n" + "_0804AE2C:\n" + "\tpop {r3,r4}\n" + "\tmov r8, r3\n" + "\tmov r9, r4\n" + "\tpop {r4-r7}\n" + "\tpop {r0}\n" + "\tbx r0\n" + "\t.align 2, 0\n" + "_0804AE38: .4byte gUnknown_03004824"); +} +#endif void sub_804AE3C(u8 who) { |