diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2017-09-02 13:57:02 -0400 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2017-09-02 13:57:02 -0400 |
commit | 249dda4489a31e5b7e1b283a32d3e830cfb46926 (patch) | |
tree | 4a488ee79752ee450c5cef345a7294543a23a531 | |
parent | 736fe47d4a9972fa4fcb7c7c48edb1d9c2dd025b (diff) |
sub_8049620
-rw-r--r-- | asm/trade.s | 47 | ||||
-rw-r--r-- | src/trade.c | 44 |
2 files changed, 29 insertions, 62 deletions
diff --git a/asm/trade.s b/asm/trade.s index 453493da6..d7fea9a6f 100644 --- a/asm/trade.s +++ b/asm/trade.s @@ -10,53 +10,6 @@ .set sub_804A96C_alt, sub_804A96C .endif - thumb_func_start sub_8049620 -sub_8049620: @ 8049620 - push {r4,lr} - movs r0, 0 - bl sub_804AA0C - ldr r4, _08049668 @ =gUnknown_03004824 - ldr r0, [r4] - adds r0, 0x7B - movs r1, 0x5 - strb r1, [r0] - bl GetMultiplayerId - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08049670 - ldr r2, [r4] - adds r1, r2, 0 - adds r1, 0x8C - ldr r0, _0804966C @ =0x0000aabb - strh r0, [r1] - adds r0, r2, 0 - adds r0, 0x41 - ldrb r1, [r0] - adds r0, 0x4D - strh r1, [r0] - bl bitmask_all_link_players_but_self - lsls r0, 24 - lsrs r0, 24 - ldr r1, [r4] - adds r1, 0x8C - movs r2, 0x14 - bl SendBlock - b _08049678 - .align 2, 0 -_08049668: .4byte gUnknown_03004824 -_0804966C: .4byte 0x0000aabb -_08049670: - ldr r0, [r4] - adds r0, 0x84 - movs r1, 0x1 - strb r1, [r0] -_08049678: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8049620 - thumb_func_start sub_8049680 sub_8049680: @ 8049680 push {r4,lr} diff --git a/src/trade.c b/src/trade.c index c05bc0c63..a313106ea 100644 --- a/src/trade.c +++ b/src/trade.c @@ -94,9 +94,7 @@ struct TradeEwramSubstruct { /*0x0088*/ u8 filler_0088[2]; /*0x008a*/ u8 unk_008a; /*0x008b*/ u8 unk_008b; - /*0x008c*/ u16 unk_008c; - /*0x008e*/ u16 unk_008e; - /*0x0090*/ u8 filler_0090[0x24]; + /*0x008c*/ u16 linkData[20]; /*0x00b4*/ u8 unk_00b4; /*0x00b5*/ u8 unk_00b5[7]; /*0x00bc*/ u8 filler_00bc[12]; @@ -1530,16 +1528,16 @@ static void sub_80492D8(void) 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; + gUnknown_03004824->linkData[0] = 0xdddd; + gUnknown_03004824->linkData[1] = 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; + gUnknown_03004824->linkData[0] = 0xeecc; + gUnknown_03004824->linkData[1] = 0; sub_804AADC(5, 0); gUnknown_03004824->unk_0086 = gUnknown_03004824->unk_0087 = 0; gUnknown_03004824->unk_0084 = gUnknown_03004824->unk_0085 = 0; @@ -1548,8 +1546,8 @@ static void sub_80492D8(void) 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; + gUnknown_03004824->linkData[0] = 0xddee; + gUnknown_03004824->linkData[1] = 0; sub_804AADC(5, 0); gUnknown_03004824->unk_0086 = gUnknown_03004824->unk_0087 = 0; gUnknown_03004824->unk_0084 = gUnknown_03004824->unk_0085 = 0; @@ -1557,8 +1555,8 @@ static void sub_80492D8(void) } else if (gUnknown_03004824->unk_0084 == 2 && gUnknown_03004824->unk_0085 == 2) { - gUnknown_03004824->unk_008c = 0xeebb; - gUnknown_03004824->unk_008e = 0; + gUnknown_03004824->linkData[0] = 0xeebb; + gUnknown_03004824->linkData[1] = 0; sub_804AADC(5, 0); BeginNormalPaletteFade(-1, 0, 0, 16, 0); gUnknown_03004824->unk_0084 = gUnknown_03004824->unk_0085 = 0; @@ -1569,8 +1567,8 @@ static void sub_80492D8(void) { if (gUnknown_03004824->unk_0086 == 1 && gUnknown_03004824->unk_0087 == 1) { - gUnknown_03004824->unk_008c = 0xccdd; - gUnknown_03004824->unk_008e = 0; + gUnknown_03004824->linkData[0] = 0xccdd; + gUnknown_03004824->linkData[1] = 0; sub_804AADC(5, 0); gUnknown_03004824->unk_0086 = 0; gUnknown_03004824->unk_0087 = 0; @@ -1579,8 +1577,8 @@ static void sub_80492D8(void) if (gUnknown_03004824->unk_0086 == 2 || gUnknown_03004824->unk_0087 == 2) { sub_804AA0C(1); - gUnknown_03004824->unk_008c = 0xddee; - gUnknown_03004824->unk_008e = 0; + gUnknown_03004824->linkData[0] = 0xddee; + gUnknown_03004824->linkData[1] = 0; sub_804AADC(5, 0); gUnknown_03004824->unk_0086 = 0; gUnknown_03004824->unk_0087 = 0; @@ -1642,6 +1640,22 @@ static u8 sub_8049514(u8 a0, u8 a1) *a0 = v0; } +/*static*/ void sub_8049620(void) +{ + sub_804AA0C(0); + gUnknown_03004824->unk_007b = 5; + if (GetMultiplayerId() == 1) + { + gUnknown_03004824->linkData[0] = 0xaabb; + gUnknown_03004824->linkData[1] = gUnknown_03004824->unk_0041; + SendBlock(bitmask_all_link_players_but_self(), gUnknown_03004824->linkData, 20); + } + else + { + gUnknown_03004824->unk_0084 = 1; + } +} + asm(".section .text.sub_804A96C"); /*static*/ void sub_804A96C(struct UnkStructD *arg0, u8 left, u8 top, u16 *tilemap, u8 width, u8 height, u16 sp8) { |