diff options
-rw-r--r-- | asm/trade.s | 58 | ||||
-rw-r--r-- | src/trade.c | 29 |
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); |