summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2017-09-01 22:09:59 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2017-09-01 22:09:59 -0400
commita4b29bdd2b3cb2ff3fc69fc69e0725ce50bd828a (patch)
treec196798236743f4b7240e5789919dd6f913fa45c
parentff1da361388c9f38813e6622839e702740b2974c (diff)
sub_8048C70
-rw-r--r--asm/trade.s95
-rw-r--r--src/trade.c31
2 files changed, 30 insertions, 96 deletions
diff --git a/asm/trade.s b/asm/trade.s
index 95c9c4b15..5a0634734 100644
--- a/asm/trade.s
+++ b/asm/trade.s
@@ -10,101 +10,6 @@
.set sub_804A96C_alt, sub_804A96C
.endif
- thumb_func_start sub_8048C70
-sub_8048C70: @ 8048C70
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- movs r3, 0
- ldr r5, _08048CC0 @ =gUnknown_03004824
- mov r8, r5
- ldr r0, _08048CC4 @ =gSprites
- mov r12, r0
- movs r1, 0x5
- negs r1, r1
- mov r9, r1
- movs r4, 0x6
- movs r7, 0x1
- movs r6, 0
-_08048C8E:
- mov r1, r8
- ldr r0, [r1]
- adds r1, r0, 0
- adds r1, 0x42
- ldrb r1, [r1]
- cmp r3, r1
- bge _08048CC8
- adds r0, 0x34
- adds r0, r3
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- add r1, r12
- adds r1, 0x3E
- ldrb r2, [r1]
- mov r0, r9
- ands r0, r2
- strb r0, [r1]
- ldr r0, [r5]
- adds r0, 0x44
- adds r0, r3
- strb r7, [r0]
- b _08048CCE
- .align 2, 0
-_08048CC0: .4byte gUnknown_03004824
-_08048CC4: .4byte gSprites
-_08048CC8:
- adds r0, 0x44
- adds r0, r3
- strb r6, [r0]
-_08048CCE:
- mov r1, r8
- ldr r0, [r1]
- adds r1, r0, 0
- adds r1, 0x43
- ldrb r1, [r1]
- cmp r3, r1
- bge _08048CFE
- adds r0, 0x3A
- adds r0, r3
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- add r1, r12
- adds r1, 0x3E
- ldrb r2, [r1]
- mov r0, r9
- ands r0, r2
- strb r0, [r1]
- ldr r0, [r5]
- adds r0, 0x44
- adds r0, r4
- strb r7, [r0]
- b _08048D04
-_08048CFE:
- adds r0, 0x44
- adds r0, r4
- strb r6, [r0]
-_08048D04:
- adds r4, 0x1
- adds r3, 0x1
- cmp r3, 0x5
- ble _08048C8E
- ldr r0, [r5]
- adds r0, 0x50
- movs r1, 0x1
- strb r1, [r0]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8048C70
-
thumb_func_start nullsub_5
nullsub_5: @ 8048D20
bx lr
diff --git a/src/trade.c b/src/trade.c
index 38cde38de..5b0ea50fe 100644
--- a/src/trade.c
+++ b/src/trade.c
@@ -69,7 +69,9 @@ struct TradeEwramSubstruct {
/*0x0041*/ u8 unk_0041;
/*0x0042*/ u8 playerPartyCount;
/*0x0043*/ u8 friendPartyCount;
- /*0x0044*/ u8 filler_0044[0x31];
+ /*0x0044*/ u8 tradeIconsActive[12];
+ /*0x0050*/ u8 unk_0050;
+ /*0x0051*/ u8 filler_0044[0x24];
/*0x0075*/ u8 unk_0075;
/*0x0076*/ u8 filler_0076[4];
/*0x007a*/ u8 unk_007a;
@@ -1184,6 +1186,33 @@ void sub_8048B0C(u8 a0)
}
#endif
+void sub_8048C70(void)
+{
+ int i;
+ for (i = 0; i < PARTY_SIZE; i ++)
+ {
+ if (i < gUnknown_03004824->playerPartyCount)
+ {
+ gSprites[gUnknown_03004824->playerPartyIcons[i]].invisible = FALSE;
+ gUnknown_03004824->tradeIconsActive[i] = TRUE;
+ }
+ else
+ {
+ gUnknown_03004824->tradeIconsActive[i] = FALSE;
+ }
+ if (i < gUnknown_03004824->friendPartyCount)
+ {
+ gSprites[gUnknown_03004824->friendPartyIcons[i]].invisible = FALSE;
+ gUnknown_03004824->tradeIconsActive[i + 6] = TRUE;
+ }
+ else
+ {
+ gUnknown_03004824->tradeIconsActive[i + 6] = FALSE;
+ }
+ }
+ gUnknown_03004824->unk_0050 = TRUE;
+}
+
asm(".section .text.sub_804A96C");
void sub_804A96C(struct UnkStructD *arg0, u8 left, u8 top, u16 *tilemap, u8 width, u8 height, u16 sp8) {