summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/quest_log.s91
-rw-r--r--src/quest_log.c42
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;
+}