summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2017-09-02 13:57:02 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2017-09-02 13:57:02 -0400
commit249dda4489a31e5b7e1b283a32d3e830cfb46926 (patch)
tree4a488ee79752ee450c5cef345a7294543a23a531
parent736fe47d4a9972fa4fcb7c7c48edb1d9c2dd025b (diff)
sub_8049620
-rw-r--r--asm/trade.s47
-rw-r--r--src/trade.c44
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) {