diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2017-09-02 18:47:26 -0400 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2017-09-02 18:47:26 -0400 |
commit | e36682b776b03c69b7d6dc3f2bfce5e97c255830 (patch) | |
tree | 859283087ad84519df8af93ca050bc8e6031de73 | |
parent | 01b88dba1f0a7f28c8d047e711affeaa14c257d4 (diff) |
sub_804A33C
-rw-r--r-- | asm/trade.s | 110 | ||||
-rw-r--r-- | src/trade.c | 38 |
2 files changed, 35 insertions, 113 deletions
diff --git a/asm/trade.s b/asm/trade.s index 1c31dced3..5930eff3d 100644 --- a/asm/trade.s +++ b/asm/trade.s @@ -495,116 +495,6 @@ _0804A2B0: .4byte gUnknown_03004824 .section .text.sub_804A33C - thumb_func_start sub_804A33C -sub_804A33C: @ 804A33C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x8 - adds r6, r0, 0 - lsls r1, 24 - lsrs r7, r1, 24 - lsls r2, 24 - lsrs r2, 24 - ldr r0, _0804A384 @ =gUnknown_03004824 - ldr r1, [r0] - lsls r0, r7, 1 - adds r0, r7 - lsls r0, 1 - adds r0, r2, r0 - adds r1, 0x5D - adds r1, r0 - ldrb r0, [r1] - cmp r0, 0 - bne _0804A3F4 - movs r4, 0 - movs r0, 0x64 - adds r5, r2, 0 - muls r5, r0 - ldr r0, _0804A388 @ =gPlayerParty - mov r9, r0 - ldr r2, _0804A38C @ =gEnemyParty - mov r8, r2 -_0804A376: - cmp r7, 0 - bne _0804A390 - adds r1, r4, 0 - adds r1, 0xD - mov r2, r9 - b _0804A396 - .align 2, 0 -_0804A384: .4byte gUnknown_03004824 -_0804A388: .4byte gPlayerParty -_0804A38C: .4byte gEnemyParty -_0804A390: - adds r1, r4, 0 - adds r1, 0xD - mov r2, r8 -_0804A396: - adds r0, r5, r2 - movs r2, 0 - bl GetMonData - lsls r1, r4, 1 - add r1, sp - strh r0, [r1] - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x3 - bls _0804A376 - ldr r1, _0804A3E8 @ =gOtherText_Terminator - adds r0, r6, 0 - bl StringCopy - movs r4, 0 -_0804A3B8: - lsls r0, r4, 1 - mov r2, sp - adds r1, r2, r0 - ldrh r0, [r1] - cmp r0, 0 - beq _0804A3D4 - adds r1, r0, 0 - movs r0, 0xD - muls r1, r0 - ldr r0, _0804A3EC @ =gMoveNames - adds r1, r0 - adds r0, r6, 0 - bl StringAppend -_0804A3D4: - adds r0, r6, 0 - ldr r1, _0804A3F0 @ =gOtherText_ControlAndMiscText - bl StringAppend - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x3 - bls _0804A3B8 - b _0804A404 - .align 2, 0 -_0804A3E8: .4byte gOtherText_Terminator -_0804A3EC: .4byte gMoveNames -_0804A3F0: .4byte gOtherText_ControlAndMiscText -_0804A3F4: - ldr r1, _0804A414 @ =gOtherText_Terminator - adds r0, r6, 0 - bl StringCopy - ldr r1, _0804A418 @ =gOtherText_FourQuestions - adds r0, r6, 0 - bl StringAppend -_0804A404: - add sp, 0x8 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0804A414: .4byte gOtherText_Terminator -_0804A418: .4byte gOtherText_FourQuestions - thumb_func_end sub_804A33C - thumb_func_start sub_804A41C sub_804A41C: @ 804A41C push {r4-r7,lr} diff --git a/src/trade.c b/src/trade.c index 302d323d3..ad97b0ca7 100644 --- a/src/trade.c +++ b/src/trade.c @@ -71,7 +71,8 @@ struct TradeEwramSubstruct { /*0x0042*/ u8 partyCounts[2]; /*0x0044*/ u8 tradeMenuOptionsActive[13]; /*0x0051*/ u8 unk_0051[6]; - /*0x0056*/ u8 filler_0057[30]; + /*0x0057*/ u8 filler_0057[6]; + /*0x005d*/ u8 unk_005d[4][6]; /*0x0075*/ u8 unk_0075; /*0x0076*/ u8 filler_0076[4]; /*0x007a*/ u8 unk_007a; @@ -2017,6 +2018,7 @@ static void sub_8049E9C(u8 a0) } } +// TODO: Figure out what the f**k is going on here //static void sub_8049ED4(u8 a0) //{ // struct Pokemon pokemon; @@ -2024,8 +2026,8 @@ static void sub_8049E9C(u8 a0) // u8 temp0 = gUnknown_03004824->unk_0082[a0]; // u8 sp_plus_6c = temp0 < PARTY_SIZE ? 1 : 0; // u8 r8 = temp0 % 6; -// u8 stringLength; -// u8 string[12]; +// s8 stringLength; +// u8 string[10]; // // switch (gUnknown_03004824->unk_0080[a0]) // { @@ -2098,6 +2100,36 @@ u8 sub_804A2B4(u8 *a0, u8 whichParty, u8 whichPokemon) return GetStringWidthGivenWindowConfig(&gWindowConfig_81E7294, a0); } +void sub_804A33C(u8 *a0, u8 whichParty, u8 whichPokemon) +{ + u16 i; + u16 moves[4]; + if (gUnknown_03004824->unk_005d[whichParty][whichPokemon] == 0) + { + for (i = 0; i < 4; i ++) + { + if (whichParty == 0) + moves[i] = GetMonData(&gPlayerParty[whichPokemon], MON_DATA_MOVE1 + i, NULL); + else + moves[i] = GetMonData(&gEnemyParty[whichPokemon], MON_DATA_MOVE1 + i, NULL); + } + StringCopy(a0, gOtherText_Terminator); + for (i = 0; i < 4; i ++) + { + if (moves[i] != 0) + { + StringAppend(a0, gMoveNames[moves[i]]); + } + StringAppend(a0, gOtherText_ControlAndMiscText); + } + } + else + { + StringCopy(a0, gOtherText_Terminator); + StringAppend(a0, gOtherText_FourQuestions); + } +} + asm(".section .text.sub_804A96C"); /*static*/ void sub_804A96C(struct UnkStructD *arg0, u8 left, u8 top, const u16 *tilemap, u8 width, u8 height, u16 sp8) { |