summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2017-09-02 22:09:19 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2017-09-02 22:09:19 -0400
commitf1e2ec57fbdf2cd39bf792add4c26acc386f80ce (patch)
treefd523c1d1269b6b2d6b3b9104b1f273cc03b3106 /src
parent2f5f072f2254cfe324b9be297ec1ae6056e6d11a (diff)
sub_804AB30
Diffstat (limited to 'src')
-rw-r--r--src/trade.c54
1 files changed, 47 insertions, 7 deletions
diff --git a/src/trade.c b/src/trade.c
index 66f0b2b30..71cef2d08 100644
--- a/src/trade.c
+++ b/src/trade.c
@@ -30,6 +30,8 @@
#define sub_804A96C_alt sub_804A96C
#endif
+#define Trade_SendData() SendBlock(bitmask_all_link_players_but_self(), gUnknown_03004824->linkData, ARRAY_COUNT(gUnknown_03004824->linkData))
+
struct InGameTrade {
/*0x00*/ u8 name[11];
/*0x0C*/ u16 species;
@@ -141,7 +143,7 @@ static void sub_8048AB4(void);
static void sub_804A940(struct UnkStructD *);
/*static*/ void sub_804B41C(void);
static void sub_8049DE0(void);
-/*static*/ void sub_804AB30(void);
+static void sub_804AB30(void);
/*static*/ void sub_8049ED4(u8);
static void sub_804A6DC(u8);
static void sub_804A938(struct UnkStructD *);
@@ -1662,7 +1664,7 @@ static void sub_8049620(void)
{
gUnknown_03004824->linkData[0] = 0xaabb;
gUnknown_03004824->linkData[1] = gUnknown_03004824->tradeMenuCursorPosition;
- SendBlock(bitmask_all_link_players_but_self(), gUnknown_03004824->linkData, ARRAY_COUNT(gUnknown_03004824->linkData));
+ Trade_SendData();
}
else
{
@@ -1718,7 +1720,7 @@ static void sub_8049680(void)
{
gUnknown_03004824->linkData[i] = i;
}
- SendBlock(bitmask_all_link_players_but_self(), gUnknown_03004824->linkData, ARRAY_COUNT(gUnknown_03004824->linkData));
+ Trade_SendData();
}
}
@@ -1827,7 +1829,7 @@ static void sub_8049A20(void)
gUnknown_03004824->linkData[0] = 0xbbbb;
if (sub_8007ECC())
{
- SendBlock(bitmask_all_link_players_but_self(), gUnknown_03004824->linkData, ARRAY_COUNT(gUnknown_03004824->linkData));
+ Trade_SendData();
}
}
}
@@ -1857,7 +1859,7 @@ static void sub_8049AC0(void)
if (sub_8007ECC())
{
gUnknown_03004824->linkData[0] = 0xbbcc;
- SendBlock(bitmask_all_link_players_but_self(), gUnknown_03004824->linkData, ARRAY_COUNT(gUnknown_03004824->linkData));
+ Trade_SendData();
}
}
gUnknown_03004824->unk_007b = 100;
@@ -1870,7 +1872,7 @@ static void sub_8049AC0(void)
gUnknown_03004824->unk_007c = MoveMenuCursor(+1);
}
gUnknown_03004824->linkData[0] = 0xbbcc;
- SendBlock(bitmask_all_link_players_but_self(), gUnknown_03004824->linkData, ARRAY_COUNT(gUnknown_03004824->linkData));
+ Trade_SendData();
gUnknown_03004824->unk_007b = 100;
}
}
@@ -2043,7 +2045,7 @@ static void sub_8049E9C(u8 a0)
// u8 r8 = temp0 % 6;
// s8 stringLength;
// u8 string[50];
-//
+//
// switch (gUnknown_03004824->unk_0080[a0])
// {
// case 1:
@@ -2549,6 +2551,44 @@ static void sub_804AADC(u16 a0, u8 a1)
}
}
+static void sub_804AB30(void)
+{
+ int i;
+ for (i = 0; i < 4; i ++)
+ {
+ if (gUnknown_03004824->unk_08dc[i].unk_00)
+ {
+ if (gUnknown_03004824->unk_08dc[i].unk_02 != 0)
+ {
+ gUnknown_03004824->unk_08dc[i].unk_02 --;
+ continue;
+ }
+ switch (gUnknown_03004824->unk_08dc[i].unk_04)
+ {
+ case 0:
+ Trade_SendData();
+ break;
+ case 1:
+ sub_804AA0C(0);
+ break;
+ case 2:
+ sub_804AA0C(2);
+ break;
+ case 3:
+ sub_804AA0C(3);
+ break;
+ case 4:
+ sub_804AA0C(3);
+ break;
+ case 5:
+ sub_804AA0C(3);
+ break;
+ }
+ gUnknown_03004824->unk_08dc[i].unk_00 = 0;
+ }
+ }
+}
+
asm(".section .text.sub_804DAD4");
/*static*/ void sub_804DAD4(struct UnkStructC *arg0, struct InGameTrade *trade) {