diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2017-09-02 22:09:19 -0400 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2017-09-02 22:09:19 -0400 |
commit | f1e2ec57fbdf2cd39bf792add4c26acc386f80ce (patch) | |
tree | fd523c1d1269b6b2d6b3b9104b1f273cc03b3106 /src | |
parent | 2f5f072f2254cfe324b9be297ec1ae6056e6d11a (diff) |
sub_804AB30
Diffstat (limited to 'src')
-rw-r--r-- | src/trade.c | 54 |
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) { |