diff options
-rw-r--r-- | asm/trade.s | 251 | ||||
-rw-r--r-- | src/trade.c | 72 |
2 files changed, 71 insertions, 252 deletions
diff --git a/asm/trade.s b/asm/trade.s index ebfeb8132..d986d09e3 100644 --- a/asm/trade.s +++ b/asm/trade.s @@ -10,257 +10,6 @@ .set sub_804A96C_alt, sub_804A96C .endif - thumb_func_start sub_80492D8 -sub_80492D8: @ 80492D8 - push {r4-r6,lr} - sub sp, 0x4 - ldr r6, _08049334 @ =gUnknown_03004824 - ldr r2, [r6] - adds r1, r2, 0 - adds r1, 0x84 - ldrb r0, [r1] - cmp r0, 0 - bne _080492EC - b _08049420 -_080492EC: - adds r0, r2, 0 - adds r0, 0x85 - ldrb r0, [r0] - cmp r0, 0 - bne _080492F8 - b _08049420 -_080492F8: - ldrh r1, [r1] - ldr r0, _08049338 @ =0x00000101 - cmp r1, r0 - bne _08049340 - adds r1, r2, 0 - adds r1, 0x7B - movs r0, 0x6 - strb r0, [r1] - ldr r2, [r6] - adds r1, r2, 0 - adds r1, 0x8C - movs r4, 0 - ldr r0, _0804933C @ =0x0000dddd - strh r0, [r1] - adds r0, r2, 0 - adds r0, 0x41 - ldrb r1, [r0] - adds r0, 0x4D - strh r1, [r0] - movs r0, 0x5 - movs r1, 0 - bl sub_804AADC - ldr r0, [r6] - adds r2, r0, 0 - adds r2, 0x85 - strb r4, [r2] - adds r0, 0x84 - strb r4, [r0] - b _08049420 - .align 2, 0 -_08049334: .4byte gUnknown_03004824 -_08049338: .4byte 0x00000101 -_0804933C: .4byte 0x0000dddd -_08049340: - ldr r0, _08049388 @ =0x00000201 - cmp r1, r0 - bne _08049390 - movs r0, 0x1 - bl sub_804AA0C - ldr r1, [r6] - adds r2, r1, 0 - adds r2, 0x8C - movs r4, 0 - movs r3, 0 - ldr r0, _0804938C @ =0x0000eecc - strh r0, [r2] - adds r1, 0x8E - strh r3, [r1] - movs r0, 0x5 - movs r1, 0 - bl sub_804AADC - ldr r0, [r6] - adds r1, r0, 0 - adds r1, 0x87 - strb r4, [r1] - adds r0, 0x86 - strb r4, [r0] - ldr r0, [r6] - adds r1, r0, 0 - adds r1, 0x85 - strb r4, [r1] - adds r0, 0x84 - strb r4, [r0] - ldr r0, [r6] - adds r0, 0x7B - movs r1, 0x8 - b _0804941E - .align 2, 0 -_08049388: .4byte 0x00000201 -_0804938C: .4byte 0x0000eecc -_08049390: - movs r0, 0x81 - lsls r0, 1 - cmp r1, r0 - bne _080493DC - movs r0, 0x5 - bl sub_804AA0C - ldr r1, [r6] - adds r2, r1, 0 - adds r2, 0x8C - movs r4, 0 - movs r3, 0 - ldr r0, _080493D8 @ =0x0000ddee - strh r0, [r2] - adds r1, 0x8E - strh r3, [r1] - movs r0, 0x5 - movs r1, 0 - bl sub_804AADC - ldr r0, [r6] - adds r1, r0, 0 - adds r1, 0x87 - strb r4, [r1] - adds r0, 0x86 - strb r4, [r0] - ldr r0, [r6] - adds r1, r0, 0 - adds r1, 0x85 - strb r4, [r1] - adds r0, 0x84 - strb r4, [r0] - ldr r0, [r6] - adds r0, 0x7B - movs r1, 0x8 - b _0804941E - .align 2, 0 -_080493D8: .4byte 0x0000ddee -_080493DC: - ldr r0, _080494C0 @ =0x00000202 - cmp r1, r0 - bne _08049420 - adds r1, r2, 0 - adds r1, 0x8C - movs r5, 0 - movs r4, 0 - ldr r0, _080494C4 @ =0x0000eebb - strh r0, [r1] - adds r0, r2, 0 - adds r0, 0x8E - strh r4, [r0] - movs r0, 0x5 - movs r1, 0 - bl sub_804AADC - movs r0, 0x1 - negs r0, r0 - str r4, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r0, [r6] - adds r1, r0, 0 - adds r1, 0x85 - strb r5, [r1] - adds r0, 0x84 - strb r5, [r0] - ldr r0, [r6] - adds r0, 0x7B - movs r1, 0xB -_0804941E: - strb r1, [r0] -_08049420: - ldr r5, _080494C8 @ =gUnknown_03004824 - ldr r3, [r5] - adds r1, r3, 0 - adds r1, 0x86 - ldrb r0, [r1] - cmp r0, 0 - beq _080494B8 - adds r0, r3, 0 - adds r0, 0x87 - ldrb r0, [r0] - cmp r0, 0 - beq _080494B8 - ldrh r1, [r1] - ldr r0, _080494CC @ =0x00000101 - cmp r1, r0 - bne _0804946E - adds r1, r3, 0 - adds r1, 0x8C - movs r4, 0 - movs r2, 0 - ldr r0, _080494D0 @ =0x0000ccdd - strh r0, [r1] - adds r0, r3, 0 - adds r0, 0x8E - strh r2, [r0] - movs r0, 0x5 - movs r1, 0 - bl sub_804AADC - ldr r0, [r5] - adds r0, 0x86 - strb r4, [r0] - ldr r0, [r5] - adds r0, 0x87 - strb r4, [r0] - ldr r0, [r5] - adds r0, 0x7B - movs r1, 0x9 - strb r1, [r0] -_0804946E: - ldr r1, [r5] - adds r0, r1, 0 - adds r0, 0x86 - ldrb r0, [r0] - cmp r0, 0x2 - beq _08049484 - adds r0, r1, 0 - adds r0, 0x87 - ldrb r0, [r0] - cmp r0, 0x2 - bne _080494B8 -_08049484: - movs r0, 0x1 - bl sub_804AA0C - ldr r1, [r5] - adds r2, r1, 0 - adds r2, 0x8C - movs r4, 0 - movs r3, 0 - ldr r0, _080494D4 @ =0x0000ddee - strh r0, [r2] - adds r1, 0x8E - strh r3, [r1] - movs r0, 0x5 - movs r1, 0 - bl sub_804AADC - ldr r0, [r5] - adds r0, 0x86 - strb r4, [r0] - ldr r0, [r5] - adds r0, 0x87 - strb r4, [r0] - ldr r0, [r5] - adds r0, 0x7B - movs r1, 0x8 - strb r1, [r0] -_080494B8: - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080494C0: .4byte 0x00000202 -_080494C4: .4byte 0x0000eebb -_080494C8: .4byte gUnknown_03004824 -_080494CC: .4byte 0x00000101 -_080494D0: .4byte 0x0000ccdd -_080494D4: .4byte 0x0000ddee - thumb_func_end sub_80492D8 - thumb_func_start sub_80494D8 sub_80494D8: @ 80494D8 push {r4,lr} diff --git a/src/trade.c b/src/trade.c index ee4853944..2fc76c820 100644 --- a/src/trade.c +++ b/src/trade.c @@ -89,7 +89,10 @@ struct TradeEwramSubstruct { /*0x0087*/ u8 unk_0087; /*0x0088*/ u8 filler_0088[2]; /*0x008a*/ u8 unk_008a; - /*0x008b*/ u8 filler_008b[0x29]; + /*0x008b*/ u8 unk_008b; + /*0x008c*/ u16 unk_008c; + /*0x008e*/ u16 unk_008e; + /*0x0090*/ u8 filler_0090[0x24]; /*0x00b4*/ u8 unk_00b4; /*0x00b5*/ u8 unk_00b5[7]; /*0x00bc*/ u8 filler_00bc[12]; @@ -141,6 +144,7 @@ void sub_804A938(struct UnkStructE *); u8 sub_804A9F4(void); u8 sub_804AA00(void); void sub_8049E9C(u8); +void sub_804AADC(u8, u8); #ifdef ENGLISH #define sub_804A96C_alt sub_804A96C @@ -1521,6 +1525,72 @@ void sub_80491E4(u8 unused, u8 a1) } } +void sub_80492D8(void) +{ + if (gUnknown_03004824->unk_0084 && gUnknown_03004824->unk_0085) + { + if (gUnknown_03004824->unk_0084 == 1 && gUnknown_03004824->unk_0085 == 1) + { + gUnknown_03004824->unk_007b = 6; + gUnknown_03004824->unk_008c = 0xdddd; + gUnknown_03004824->unk_008e = gUnknown_03004824->unk_0041; + sub_804AADC(5, 0); + gUnknown_03004824->unk_0084 = gUnknown_03004824->unk_0085 = 0; + } + else if (gUnknown_03004824->unk_0084 == 1 && gUnknown_03004824->unk_0085 == 2) + { + sub_804AA0C(1); + gUnknown_03004824->unk_008c = 0xeecc; + gUnknown_03004824->unk_008e = 0; + sub_804AADC(5, 0); + gUnknown_03004824->unk_0086 = gUnknown_03004824->unk_0087 = 0; + gUnknown_03004824->unk_0084 = gUnknown_03004824->unk_0085 = 0; + gUnknown_03004824->unk_007b = 8; + } + else if (gUnknown_03004824->unk_0084 == 2 && gUnknown_03004824->unk_0085 == 1) + { + sub_804AA0C(5); + gUnknown_03004824->unk_008c = 0xddee; + gUnknown_03004824->unk_008e = 0; + sub_804AADC(5, 0); + gUnknown_03004824->unk_0086 = gUnknown_03004824->unk_0087 = 0; + gUnknown_03004824->unk_0084 = gUnknown_03004824->unk_0085 = 0; + gUnknown_03004824->unk_007b = 8; + } + else if (gUnknown_03004824->unk_0084 == 2 && gUnknown_03004824->unk_0085 == 2) + { + gUnknown_03004824->unk_008c = 0xeebb; + gUnknown_03004824->unk_008e = 0; + sub_804AADC(5, 0); + BeginNormalPaletteFade(-1, 0, 0, 16, 0); + gUnknown_03004824->unk_0084 = gUnknown_03004824->unk_0085 = 0; + gUnknown_03004824->unk_007b = 11; + } + } + if (gUnknown_03004824->unk_0086 && gUnknown_03004824->unk_0087) + { + if (gUnknown_03004824->unk_0086 == 1 && gUnknown_03004824->unk_0087 == 1) + { + gUnknown_03004824->unk_008c = 0xccdd; + gUnknown_03004824->unk_008e = 0; + sub_804AADC(5, 0); + gUnknown_03004824->unk_0086 = 0; + gUnknown_03004824->unk_0087 = 0; + gUnknown_03004824->unk_007b = 9; + } + if (gUnknown_03004824->unk_0086 == 2 || gUnknown_03004824->unk_0087 == 2) + { + sub_804AA0C(1); + gUnknown_03004824->unk_008c = 0xddee; + gUnknown_03004824->unk_008e = 0; + sub_804AADC(5, 0); + gUnknown_03004824->unk_0086 = 0; + gUnknown_03004824->unk_0087 = 0; + gUnknown_03004824->unk_007b = 8; + } + } +} + asm(".section .text.sub_804A96C"); void sub_804A96C(struct UnkStructD *arg0, u8 left, u8 top, u16 *tilemap, u8 width, u8 height, u16 sp8) { |