diff options
-rw-r--r-- | asm/trade.s | 84 | ||||
-rw-r--r-- | src/trade.c | 80 |
2 files changed, 66 insertions, 98 deletions
diff --git a/asm/trade.s b/asm/trade.s index 7e2912e06..dd9a26675 100644 --- a/asm/trade.s +++ b/asm/trade.s @@ -10,90 +10,6 @@ .set sub_804A96C_alt, sub_804A96C .endif - thumb_func_start sub_8049DE0 -sub_8049DE0: @ 8049DE0 - push {lr} - ldr r0, _08049DF8 @ =gUnknown_03004824 - ldr r0, [r0] - adds r0, 0x7B - ldrb r0, [r0] - cmp r0, 0xF - bhi _08049E98 - lsls r0, 2 - ldr r1, _08049DFC @ =_08049E00 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08049DF8: .4byte gUnknown_03004824 -_08049DFC: .4byte _08049E00 - .align 2, 0 -_08049E00: - .4byte _08049E40 - .4byte _08049E46 - .4byte _08049E4C - .4byte _08049E52 - .4byte _08049E58 - .4byte _08049E98 - .4byte _08049E5E - .4byte _08049E64 - .4byte _08049E6A - .4byte _08049E70 - .4byte _08049E76 - .4byte _08049E7C - .4byte _08049E82 - .4byte _08049E88 - .4byte _08049E8E - .4byte _08049E94 -_08049E40: - bl sub_8049680 - b _08049E98 -_08049E46: - bl sub_8049860 - b _08049E98 -_08049E4C: - bl sub_804997C - b _08049E98 -_08049E52: - bl sub_8049AC0 - b _08049E98 -_08049E58: - bl sub_8049BC0 - b _08049E98 -_08049E5E: - bl sub_8049C8C - b _08049E98 -_08049E64: - bl sub_8049CC4 - b _08049E98 -_08049E6A: - bl sub_8049D44 - b _08049E98 -_08049E70: - bl sub_8048A14 - b _08049E98 -_08049E76: - bl sub_8048A50 - b _08049E98 -_08049E7C: - bl sub_8049D9C - b _08049E98 -_08049E82: - bl sub_8049DC4 - b _08049E98 -_08049E88: - bl sub_8048A90 - b _08049E98 -_08049E8E: - bl DisplayMessageAndContinueTask - b _08049E98 -_08049E94: - bl sub_8049954 -_08049E98: - pop {r0} - bx r0 - thumb_func_end sub_8049DE0 - thumb_func_start sub_8049E9C sub_8049E9C: @ 8049E9C push {r4,lr} diff --git a/src/trade.c b/src/trade.c index 5989b1484..b1692a984 100644 --- a/src/trade.c +++ b/src/trade.c @@ -140,7 +140,7 @@ static void sub_80494D8(void); static void sub_8048AB4(void); /*static*/ void sub_804A940(struct UnkStructE *); /*static*/ void sub_804B41C(void); -/*static*/ void sub_8049DE0(void); +static void sub_8049DE0(void); /*static*/ void sub_804AB30(void); /*static*/ void sub_8049ED4(u8); /*static*/ void sub_804A6DC(u8); @@ -1662,7 +1662,7 @@ static void sub_8049620(void) } } -/*static*/ void sub_8049680(void) +static void sub_8049680(void) { int i; if (gMain.newAndRepeatedKeys & DPAD_UP) @@ -1714,7 +1714,7 @@ static void sub_8049620(void) } } -/*static*/ void sub_8049804(void) +static void sub_8049804(void) { HandleDestroyMenuCursors(); sub_804A80C(); @@ -1723,7 +1723,7 @@ static void sub_8049620(void) sub_804ACD8(gUnknown_0820C14C[1], (u8 *)(BG_CHAR_ADDR(4) + 32 * gUnknown_03004824->unk_007e), 20); } -/*static*/ void sub_8049860(void) +static void sub_8049860(void) { if (gMain.newAndRepeatedKeys & DPAD_UP) { @@ -1761,7 +1761,7 @@ static void sub_8049620(void) } } -/*static*/ void sub_8049954(void) +static void sub_8049954(void) { if (gMain.newKeys & A_BUTTON || gMain.newKeys & B_BUTTON) { @@ -1770,7 +1770,7 @@ static void sub_8049620(void) } } -/*static*/ void sub_804997C(void) +static void sub_804997C(void) { if (!gPaletteFade.active) { @@ -1824,7 +1824,7 @@ static void sub_8049A20(void) } } -/*static*/ void sub_8049AC0(void) +static void sub_8049AC0(void) { if (gMain.newAndRepeatedKeys & DPAD_UP) { @@ -1867,7 +1867,7 @@ static void sub_8049A20(void) } } -/*static*/ void sub_8049BC0(void) +static void sub_8049BC0(void) { if (gMain.newAndRepeatedKeys & DPAD_UP) { @@ -1903,7 +1903,7 @@ static void sub_8049A20(void) } } -/*static*/ void sub_8049C8C(void) +static void sub_8049C8C(void) { if (GetMultiplayerId() == 0) { @@ -1913,7 +1913,7 @@ static void sub_8049A20(void) gUnknown_03004824->unk_007b = 7; } -/*static*/ void sub_8049CC4(void) +static void sub_8049CC4(void) { if (gUnknown_03004824->unk_0080 == 5 && gUnknown_03004824->unk_0081 == 5) { @@ -1922,7 +1922,7 @@ static void sub_8049A20(void) } } -/*static*/ void DisplayMessageAndContinueTask(void) +static void DisplayMessageAndContinueTask(void) { gUnknown_03004824->unk_00b4++; if (gUnknown_03004824->unk_00b4 > 120) @@ -1934,7 +1934,7 @@ static void sub_8049A20(void) } } -/*static*/ void sub_8049D44(void) +static void sub_8049D44(void) { if (gMain.newKeys & A_BUTTON) { @@ -1946,7 +1946,7 @@ static void sub_8049A20(void) } } -/*static*/ void sub_8049D9C(void) +static void sub_8049D9C(void) { if (!gPaletteFade.active) { @@ -1955,7 +1955,7 @@ static void sub_8049A20(void) } } -/*static*/ void sub_8049DC4(void) +static void sub_8049DC4(void) { if (gReceivedRemoteLinkPlayers == 0) { @@ -1963,6 +1963,58 @@ static void sub_8049A20(void) } } +static void sub_8049DE0(void) +{ + switch (gUnknown_03004824->unk_007b) + { + case 0: + sub_8049680(); + break; + case 1: + sub_8049860(); + break; + case 2: + sub_804997C(); + break; + case 3: + sub_8049AC0(); + break; + case 4: + sub_8049BC0(); + break; + case 6: + sub_8049C8C(); + break; + case 7: + sub_8049CC4(); + break; + case 8: + sub_8049D44(); + break; + case 9: + sub_8048A14(); + break; + case 10: + sub_8048A50(); + break; + case 11: + sub_8049D9C(); + break; + case 12: + sub_8049DC4(); + break; + case 13: + sub_8048A90(); + break; + case 14: + DisplayMessageAndContinueTask(); + break; + case 15: + sub_8049954(); + break; + } +} + asm(".section .text.sub_804A96C"); /*static*/ void sub_804A96C(struct UnkStructD *arg0, u8 left, u8 top, u16 *tilemap, u8 width, u8 height, u16 sp8) { |