summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/trade.s55
-rw-r--r--src/trade.c24
2 files changed, 22 insertions, 57 deletions
diff --git a/asm/trade.s b/asm/trade.s
index 8ebe142e0..03c51aa52 100644
--- a/asm/trade.s
+++ b/asm/trade.s
@@ -733,59 +733,4 @@ sub_804B228: @ 804B228
_0804B248: .4byte gUnknown_03004828
thumb_func_end sub_804B228
- thumb_func_start sub_804B24C
-sub_804B24C: @ 804B24C
- push {r4,r5,lr}
- ldr r1, _0804B270 @ =gUnknown_03004828
- ldr r2, [r1]
- adds r0, r2, 0
- adds r0, 0xB2
- adds r3, r2, 0
- adds r3, 0xB3
- ldrb r0, [r0]
- adds r5, r1, 0
- ldrb r3, [r3]
- cmp r0, r3
- bne _0804B274
- adds r1, r2, 0
- adds r1, 0xB4
- ldrh r0, [r1]
- adds r0, 0x1
- b _0804B27A
- .align 2, 0
-_0804B270: .4byte gUnknown_03004828
-_0804B274:
- adds r1, r2, 0
- adds r1, 0xB4
- movs r0, 0
-_0804B27A:
- strh r0, [r1]
- adds r4, r5, 0
- ldr r3, [r4]
- adds r2, r3, 0
- adds r2, 0xB4
- ldrh r0, [r2]
- cmp r0, 0xB4
- bls _0804B29C
- movs r1, 0
- movs r0, 0
- strh r0, [r2]
- adds r0, r3, 0
- adds r0, 0xB3
- strb r1, [r0]
- ldr r0, [r4]
- adds r0, 0xB2
- strb r1, [r0]
-_0804B29C:
- ldr r0, [r5]
- adds r1, r0, 0
- adds r1, 0xB2
- ldrb r1, [r1]
- adds r0, 0xB3
- strb r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_804B24C
-
.align 2, 0 @ Don't pad with nop.
diff --git a/src/trade.c b/src/trade.c
index c6933d8a0..72f149dfd 100644
--- a/src/trade.c
+++ b/src/trade.c
@@ -133,7 +133,10 @@ struct TradeEwramSubstruct2 {
/*0x0038*/ struct Pokemon pokemon;
/*0x009c*/ u8 unk_009c;
/*0x009d*/ u8 unk_009d;
- /*0x009e*/ u16 linkData[12];
+ /*0x009e*/ u16 linkData[10];
+ /*0x00b2*/ u8 unk_00b2;
+ /*0x00b3*/ u8 unk_00b3;
+ /*0x00b4*/ u16 unk_00b4;
/*0x00b6*/ u16 unk_00b6;
// Sprite indices
/*0x00b8*/ u8 unk_00b8[2];
@@ -3511,7 +3514,24 @@ void sub_804B210(void);
void sub_804B228(void);
-void sub_804B24C(void);
+void sub_804B24C(void)
+{
+ if (gUnknown_03004828->unk_00b2 == gUnknown_03004828->unk_00b3)
+ {
+ gUnknown_03004828->unk_00b4 ++;
+ }
+ else
+ {
+ gUnknown_03004828->unk_00b4 = 0;
+ }
+ if (gUnknown_03004828->unk_00b4 > 0xb4)
+ {
+ gUnknown_03004828->unk_00b4 = 0;
+ gUnknown_03004828->unk_00b3 = 0;
+ gUnknown_03004828->unk_00b2 = 0;
+ }
+ gUnknown_03004828->unk_00b3 = gUnknown_03004828->unk_00b2;
+}
static u8 sub_804B2B0(void)
{