summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2017-09-02 14:39:03 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2017-09-02 14:39:03 -0400
commit6481f3b1201dfc6cbefb49e735d16f0522b32e09 (patch)
treef6db1a12de27757f9b9b2e4920f76660177f0940
parent2a5df1b3eed197bd44a10d54960770b9f02995f5 (diff)
sub_80499F0
-rw-r--r--asm/trade.s31
-rw-r--r--src/trade.c21
2 files changed, 18 insertions, 34 deletions
diff --git a/asm/trade.s b/asm/trade.s
index 1edb0d61c..6e11cdaf2 100644
--- a/asm/trade.s
+++ b/asm/trade.s
@@ -10,37 +10,6 @@
.set sub_804A96C_alt, sub_804A96C
.endif
- thumb_func_start sub_80499F0
-sub_80499F0: @ 80499F0
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r1, 24
- lsrs r4, r1, 24
- lsls r2, 24
- lsrs r2, 24
- movs r1, 0
- movs r3, 0
- cmp r1, r4
- bge _08049A18
-_08049A04:
- cmp r2, r3
- beq _08049A12
- adds r0, r5, r3
- ldrb r0, [r0]
- adds r0, r1, r0
- lsls r0, 24
- lsrs r1, r0, 24
-_08049A12:
- adds r3, 0x1
- cmp r3, r4
- blt _08049A04
-_08049A18:
- adds r0, r1, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80499F0
-
thumb_func_start sub_8049A20
sub_8049A20: @ 8049A20
push {r4,r5,lr}
diff --git a/src/trade.c b/src/trade.c
index ff63411ce..493730095 100644
--- a/src/trade.c
+++ b/src/trade.c
@@ -77,7 +77,8 @@ struct TradeEwramSubstruct {
/*0x0042*/ u8 playerPartyCount;
/*0x0043*/ u8 friendPartyCount;
/*0x0044*/ u8 tradeMenuOptionsActive[13];
- /*0x0051*/ u8 unk_0051[0x24];
+ /*0x0051*/ u8 unk_0051[6];
+ /*0x0056*/ u8 filler_0057[30];
/*0x0075*/ u8 unk_0075;
/*0x0076*/ u8 filler_0076[4];
/*0x007a*/ u8 unk_007a;
@@ -148,7 +149,7 @@ static void sub_8048AB4(void);
/*static*/ void sub_8049E9C(u8);
/*static*/ void sub_804AADC(u8, u8);
/*static*/ void sub_804A80C(void);
-/*static*/ bool8 sub_80499F0(const u8 *, u8, u8);
+/*static*/ u8 sub_80499F0(const u8 *, u8, u8);
extern u8 gUnknown_020297D8[2];
extern u8 *gUnknown_020296CC[13];
@@ -1740,7 +1741,7 @@ static void sub_8049620(void)
BeginNormalPaletteFade(-1, 0, 0, 16, 0);
gUnknown_03004824->unk_007b = 2;
}
- else if (!sub_80499F0(gUnknown_03004824->unk_0051, gUnknown_03004824->playerPartyCount, gUnknown_03004824->tradeMenuCursorPosition))
+ else if (sub_80499F0(gUnknown_03004824->unk_0051, gUnknown_03004824->playerPartyCount, gUnknown_03004824->tradeMenuCursorPosition) == 0)
{
sub_804AADC(3, 2);
gUnknown_03004824->unk_007b = 8;
@@ -1782,6 +1783,20 @@ static void sub_8049620(void)
}
}
+/*static*/ u8 sub_80499F0(const u8 *src, u8 partyCount, u8 tradeMenuCursorPosition)
+{
+ u8 retval = 0;
+ int i;
+ for (i = 0; i < partyCount; i ++)
+ {
+ if (tradeMenuCursorPosition != i)
+ {
+ retval += src[i];
+ }
+ }
+ return retval;
+}
+
asm(".section .text.sub_804A96C");
/*static*/ void sub_804A96C(struct UnkStructD *arg0, u8 left, u8 top, u16 *tilemap, u8 width, u8 height, u16 sp8) {