diff options
-rw-r--r-- | asm/quest_log.s | 91 | ||||
-rw-r--r-- | src/quest_log.c | 42 |
2 files changed, 40 insertions, 93 deletions
diff --git a/asm/quest_log.s b/asm/quest_log.s index 5c965a4f1..b26643b9f 100644 --- a/asm/quest_log.s +++ b/asm/quest_log.s @@ -5,97 +5,6 @@ .text - thumb_func_start sub_81115E8 -sub_81115E8: @ 81115E8 - push {r4,lr} - bl sub_8111618 - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - bl sub_811164C - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - ldr r0, _08111614 @ =0x00004027 - lsls r4, 12 - adds r1, r4 - lsls r1, 16 - lsrs r1, 16 - bl VarSet - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08111614: .4byte 0x00004027 - thumb_func_end sub_81115E8 - - thumb_func_start sub_8111618 -sub_8111618: @ 8111618 - push {r4,r5,lr} - movs r5, 0 - movs r4, 0 -_0811161E: - movs r0, 0x64 - muls r0, r4 - ldr r1, _08111648 @ =gPlayerParty - adds r0, r1 - movs r1, 0x5 - bl GetMonData - cmp r0, 0 - beq _08111636 - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 -_08111636: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x5 - bls _0811161E - adds r0, r5, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_08111648: .4byte gPlayerParty - thumb_func_end sub_8111618 - - thumb_func_start sub_811164C -sub_811164C: @ 811164C - push {r4-r7,lr} - movs r6, 0 - movs r0, 0 -_08111652: - movs r4, 0 - lsls r5, r0, 24 - adds r7, r0, 0x1 -_08111658: - lsls r1, r4, 24 - lsrs r1, 24 - lsrs r0, r5, 24 - movs r2, 0x5 - bl GetBoxMonDataFromAnyBox - cmp r0, 0 - beq _0811166E - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 -_0811166E: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x1D - bls _08111658 - lsls r0, r7, 16 - lsrs r0, 16 - cmp r0, 0xD - bls _08111652 - adds r0, r6, 0 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_811164C - thumb_func_start sub_8111688 sub_8111688: @ 8111688 push {r4-r7,lr} diff --git a/src/quest_log.c b/src/quest_log.c index b1f1dc870..7ed5e0560 100644 --- a/src/quest_log.c +++ b/src/quest_log.c @@ -740,9 +740,9 @@ void sub_8111438(void) } else if (r5 < r9->unk_66) { - for (r3 = 0; r3 < 14; r3++) + for (r3 = 0; r3 < TOTAL_BOXES_COUNT; r3++) { - for (r6 = 0; r6 < 30; r6++) + for (r6 = 0; r6 < IN_BOX_COUNT; r6++) { struct BoxPokemon * boxMon = GetBoxedMonPtr(r3, r6); if (!GetBoxMonData(boxMon, MON_DATA_SANITY_BIT2)) @@ -760,3 +760,41 @@ void sub_8111438(void) Free(r9); } + +void sub_81115E8(void) +{ + u16 r4 = sub_8111618(); + u16 r1 = sub_811164C(); + VarSet(VAR_0x4027, (r4 << 12) + r1); +} + +u16 sub_8111618(void) +{ + u16 count = 0; + u16 i; + + for (i = 0; i < PARTY_SIZE; i++) + { + if (GetMonData(&gPlayerParty[i], MON_DATA_SANITY_BIT2)) + count++; + } + + return count; +} + +u16 sub_811164C(void) +{ + u16 count = 0; + u16 i, j; + + for (i = 0; i < TOTAL_BOXES_COUNT; i++) + { + for (j = 0; j < IN_BOX_COUNT; j++) + { + if (GetBoxMonDataFromAnyBox(i, j, MON_DATA_SANITY_BIT2)) + count++; + } + } + + return count; +} |