diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2019-10-28 11:15:08 -0400 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2019-10-28 11:15:08 -0400 |
commit | a5ff9f2d00fbcc6bc73475069dcbe93eaf518c1b (patch) | |
tree | 170626b60d6b67326609c4bf731f71aa334f995f | |
parent | b290a1a570efc77a419d74aa41e97770fe792154 (diff) |
trade through sub_804D814
-rw-r--r-- | asm/trade.s | 117 | ||||
-rw-r--r-- | src/trade.c | 37 |
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]; +} |