summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2019-10-28 11:15:08 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2019-10-28 11:15:08 -0400
commita5ff9f2d00fbcc6bc73475069dcbe93eaf518c1b (patch)
tree170626b60d6b67326609c4bf731f71aa334f995f
parentb290a1a570efc77a419d74aa41e97770fe792154 (diff)
trade through sub_804D814
-rw-r--r--asm/trade.s117
-rw-r--r--src/trade.c37
2 files changed, 35 insertions, 119 deletions
diff --git a/asm/trade.s b/asm/trade.s
index 7d47a0a2d..272a893cc 100644
--- a/asm/trade.s
+++ b/asm/trade.s
@@ -5,123 +5,6 @@
.text
- thumb_func_start sub_804D764
-sub_804D764: @ 804D764
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- movs r3, 0
- ldr r5, _0804D7B4 @ =gUnknown_2031DA8
- mov r8, r5
- ldr r0, _0804D7B8 @ =gSprites
- mov r12, r0
- movs r1, 0x5
- negs r1, r1
- mov r9, r1
- movs r4, 0x6
- movs r7, 0x1
- movs r6, 0
-_0804D782:
- mov r1, r8
- ldr r0, [r1]
- adds r1, r0, 0
- adds r1, 0x36
- ldrb r1, [r1]
- cmp r3, r1
- bge _0804D7BC
- adds r0, 0x28
- 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, 0x38
- adds r0, r3
- strb r7, [r0]
- b _0804D7C2
- .align 2, 0
-_0804D7B4: .4byte gUnknown_2031DA8
-_0804D7B8: .4byte gSprites
-_0804D7BC:
- adds r0, 0x38
- adds r0, r3
- strb r6, [r0]
-_0804D7C2:
- mov r1, r8
- ldr r0, [r1]
- adds r1, r0, 0
- adds r1, 0x37
- ldrb r1, [r1]
- cmp r3, r1
- bge _0804D7F2
- adds r0, 0x2E
- 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, 0x38
- adds r0, r4
- strb r7, [r0]
- b _0804D7F8
-_0804D7F2:
- adds r0, 0x38
- adds r0, r4
- strb r6, [r0]
-_0804D7F8:
- adds r4, 0x1
- adds r3, 0x1
- cmp r3, 0x5
- ble _0804D782
- ldr r0, [r5]
- adds r0, 0x44
- 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_804D764
-
- thumb_func_start sub_804D814
-sub_804D814: @ 804D814
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- movs r3, 0
- cmp r3, r2
- bcs _0804D82E
-_0804D820:
- adds r0, r5, r3
- adds r1, r4, r3
- ldrb r1, [r1]
- strb r1, [r0]
- adds r3, 0x1
- cmp r3, r2
- bcc _0804D820
-_0804D82E:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_804D814
-
thumb_func_start shedinja_maker_maybe
shedinja_maker_maybe: @ 804D834
push {r4-r6,lr}
diff --git a/src/trade.c b/src/trade.c
index a84cce7f4..445338803 100644
--- a/src/trade.c
+++ b/src/trade.c
@@ -32,8 +32,7 @@ struct TradeResources
/*0x0034*/ u8 tradeMenuCursorSpriteIdx;
/*0x0035*/ u8 tradeMenuCursorPosition;
/*0x0036*/ u8 partyCounts[2];
- /*0x0038*/ bool8 tradeMenuOptionsActive[12];
- /*0x0044*/ u8 unk_44;
+ /*0x0038*/ bool8 tradeMenuOptionsActive[13];
/*0x0045*/ u8 unk_45[2][PARTY_SIZE];
/*0x0051*/ u8 unk_51[2][PARTY_SIZE];
/*0x005D*/ u8 unk_5D[2][PARTY_SIZE];
@@ -2319,3 +2318,37 @@ void sub_804D694(u8 state)
break;
}
}
+
+void sub_804D764(void)
+{
+ int i;
+ for (i = 0; i < PARTY_SIZE; i++)
+ {
+ if (i < gUnknown_2031DA8->partyCounts[0])
+ {
+ gSprites[gUnknown_2031DA8->partyIcons[0][i]].invisible = FALSE;
+ gUnknown_2031DA8->tradeMenuOptionsActive[i] = TRUE;
+ }
+ else
+ {
+ gUnknown_2031DA8->tradeMenuOptionsActive[i] = FALSE;
+ }
+ if (i < gUnknown_2031DA8->partyCounts[1])
+ {
+ gSprites[gUnknown_2031DA8->partyIcons[1][i]].invisible = FALSE;
+ gUnknown_2031DA8->tradeMenuOptionsActive[i + 6] = TRUE;
+ }
+ else
+ {
+ gUnknown_2031DA8->tradeMenuOptionsActive[i + 6] = FALSE;
+ }
+ }
+ gUnknown_2031DA8->tradeMenuOptionsActive[12] = TRUE;
+}
+
+void sub_804D814(char *dest, const char *src, size_t size)
+{
+ int i;
+ for (i = 0; i < size; i++)
+ dest[i] = src[i];
+}