summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/trade.s110
-rw-r--r--src/trade.c38
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) {