summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/trade.s58
-rw-r--r--src/trade.c29
2 files changed, 26 insertions, 61 deletions
diff --git a/asm/trade.s b/asm/trade.s
index 6d0c2135c..5a57bf8d3 100644
--- a/asm/trade.s
+++ b/asm/trade.s
@@ -2432,62 +2432,4 @@ _0804C0F0: .4byte gUnknown_0820F798
_0804C0F4: .4byte 0x06009000
thumb_func_end sub_804BBE8
- thumb_func_start sub_804C0F8
-sub_804C0F8: @ 804C0F8
- push {lr}
- lsls r0, 24
- cmp r0, 0
- bne _0804C130
- ldr r0, _0804C128 @ =gUnknown_03004828
- ldr r2, [r0]
- movs r1, 0x88
- lsls r1, 1
- adds r0, r2, r1
- movs r3, 0
- ldrsh r1, [r0, r3]
- ldr r0, _0804C12C @ =0x00000109
- cmp r1, r0
- bgt _0804C15A
- adds r0, 0x5
- adds r1, r2, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- movs r3, 0x8E
- lsls r3, 1
- adds r1, r2, r3
- b _0804C154
- .align 2, 0
-_0804C128: .4byte gUnknown_03004828
-_0804C12C: .4byte 0x00000109
-_0804C130:
- ldr r0, _0804C160 @ =gUnknown_03004828
- ldr r0, [r0]
- mov r12, r0
- movs r2, 0x87
- lsls r2, 1
- add r2, r12
- ldrh r3, [r2]
- movs r0, 0
- ldrsh r1, [r2, r0]
- movs r0, 0x40
- negs r0, r0
- cmp r1, r0
- ble _0804C15A
- subs r0, r3, 0x1
- strh r0, [r2]
- movs r1, 0x8E
- lsls r1, 1
- add r1, r12
-_0804C154:
- ldrh r0, [r1]
- adds r0, 0x40
- strh r0, [r1]
-_0804C15A:
- pop {r0}
- bx r0
- .align 2, 0
-_0804C160: .4byte gUnknown_03004828
- thumb_func_end sub_804C0F8
-
.align 2, 0 @ Don't pad with nop.
diff --git a/src/trade.c b/src/trade.c
index 723b6e8f8..a1ca4a173 100644
--- a/src/trade.c
+++ b/src/trade.c
@@ -146,13 +146,16 @@ struct TradeEwramSubstruct2 {
/*0x00c6*/ u8 filler_00c6[0x3c];
/*0x0102*/ u8 unk_0102;
/*0x0103*/ u8 unk_0103;
- /*0x0104*/ u8 filler_0104[0x0c];
+ /*0x0104*/ u8 filler_0104[0x08];
+ /*0x010c*/ u16 unk_010c;
+ /*0x010e*/ s16 unk_010e;
/*0x0110*/ s16 unk_0110;
- /*0x0112*/ u8 filler_0112[4];
+ /*0x0112*/ u16 unk_0112;
+ /*0x0114*/ u16 unk_0114;
/*0x0116*/ s16 unk_0116;
/*0x0118*/ u16 unk_0118;
/*0x011a*/ u16 unk_011a;
- /*0x011c*/ u8 filler_011c[2];
+ /*0x011c*/ u16 unk_011c;
/*0x011e*/ u8 isLinkTrade;
/*0x0120*/ u16 unk_0120;
/*0x0122*/ u16 unk_0122;
@@ -3497,6 +3500,26 @@ static bool8 sub_804ABF8(void)
asm(".section .text.sub_804DAD4");
+void sub_804C0F8(u8 a0)
+{
+ if (a0 == 0)
+ {
+ if (gUnknown_03004828->unk_0110 < 0x10a)
+ {
+ gUnknown_03004828->unk_010e ++;
+ gUnknown_03004828->unk_011c += 64;
+ }
+ }
+ else
+ {
+ if (gUnknown_03004828->unk_010e > -0x40)
+ {
+ gUnknown_03004828->unk_010e --;
+ gUnknown_03004828->unk_011c += 64;
+ }
+ }
+}
+
void sub_804C164(void)
{
LoadSpriteSheet(&gUnknown_082159A4);