summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/trade.s31
-rw-r--r--src/trade.c28
2 files changed, 22 insertions, 37 deletions
diff --git a/asm/trade.s b/asm/trade.s
index d986d09e3..5ac3ba35e 100644
--- a/asm/trade.s
+++ b/asm/trade.s
@@ -10,37 +10,6 @@
.set sub_804A96C_alt, sub_804A96C
.endif
- thumb_func_start sub_80494D8
-sub_80494D8: @ 80494D8
- push {r4,lr}
- bl GetMultiplayerId
- lsls r0, 24
- lsrs r4, r0, 24
- bl GetBlockReceivedStatus
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- beq _08049504
- cmp r4, 0
- bne _080494FA
- movs r0, 0
- bl sub_80490BC
- b _08049500
-_080494FA:
- adds r0, r4, 0
- bl sub_80491E4
-_08049500:
- bl ResetBlockReceivedFlags
-_08049504:
- cmp r4, 0
- bne _0804950C
- bl sub_80492D8
-_0804950C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80494D8
-
thumb_func_start sub_8049514
sub_8049514: @ 8049514
push {r4-r6,lr}
diff --git a/src/trade.c b/src/trade.c
index 2fc76c820..78befff44 100644
--- a/src/trade.c
+++ b/src/trade.c
@@ -1444,11 +1444,11 @@ void sub_8049088(void)
sub_804ACD8(string, (u8 *)BG_CHAR_ADDR(4) + gUnknown_03004824->unk_007e * 32, 20);
}
-void sub_80490BC(u8 a0, u8 a1)
+static void sub_80490BC(u8 mpId, u8 a1)
{
if (a1 & 1)
{
- switch (gBlockRecvBuffer[a0][0])
+ switch (gBlockRecvBuffer[mpId][0])
{
case 0xeeaa:
gUnknown_03004824->unk_0084 = 2;
@@ -1487,9 +1487,9 @@ void sub_80490BC(u8 a0, u8 a1)
}
}
-void sub_80491E4(u8 unused, u8 a1)
+static void sub_80491E4(u8 mpId, u8 status)
{
- if (a1 & 1)
+ if (status & 1)
{
switch (gBlockRecvBuffer[0][0])
{
@@ -1519,13 +1519,13 @@ void sub_80491E4(u8 unused, u8 a1)
}
ResetBlockReceivedFlag(0);
}
- if (a1 & 2)
+ if (status & 2)
{
ResetBlockReceivedFlag(1);
}
}
-void sub_80492D8(void)
+static void sub_80492D8(void)
{
if (gUnknown_03004824->unk_0084 && gUnknown_03004824->unk_0085)
{
@@ -1591,6 +1591,22 @@ void sub_80492D8(void)
}
}
+void sub_80494D8(void)
+{
+ u8 mpId = GetMultiplayerId();
+ u8 status = GetBlockReceivedStatus();
+ if (status)
+ {
+ if (mpId == 0)
+ sub_80490BC(mpId, status);
+ else
+ sub_80491E4(mpId, status);
+ ResetBlockReceivedFlags();
+ }
+ if (mpId == 0)
+ sub_80492D8();
+}
+
asm(".section .text.sub_804A96C");
void sub_804A96C(struct UnkStructD *arg0, u8 left, u8 top, u16 *tilemap, u8 width, u8 height, u16 sp8) {