summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2018-11-03 16:21:34 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2018-11-03 16:21:34 -0400
commitbe7cda00a1f047fdf38ff88da9477e2c5dfc8cf4 (patch)
treea43118ce091363c8b6d6a9ea517655b06b4cc1e2
parent8dcea40e585c6aa37a42aa570de9b37d78538756 (diff)
through sub_81138F8
-rw-r--r--asm/quest_log.s249
-rw-r--r--src/quest_log.c123
2 files changed, 111 insertions, 261 deletions
diff --git a/asm/quest_log.s b/asm/quest_log.s
index a256be271..fe46a9da6 100644
--- a/asm/quest_log.s
+++ b/asm/quest_log.s
@@ -5,255 +5,6 @@
.text
- thumb_func_start sub_8113748
-sub_8113748: @ 8113748
- push {lr}
- bl sub_81136D4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08113770
- ldr r0, _08113764 @ =gUnknown_203ADFA
- ldrb r0, [r0]
- cmp r0, 0x2
- bne _08113768
- movs r0, 0x1
- b _08113772
- .align 2, 0
-_08113764: .4byte gUnknown_203ADFA
-_08113768:
- cmp r0, 0x1
- bne _08113770
- bl sub_8112364
-_08113770:
- movs r0, 0
-_08113772:
- pop {r1}
- bx r1
- thumb_func_end sub_8113748
-
- thumb_func_start sub_8113778
-sub_8113778: @ 8113778
- push {r4,r5,lr}
- adds r5, r1, 0
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x24
- beq _081137CE
- cmp r4, 0xB
- beq _081137CE
- ldr r0, _081137D4 @ =0x0000082c
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- bne _081137AC
- cmp r4, 0x3
- beq _081137CE
- cmp r4, 0x1F
- beq _081137CE
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_81137E4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _081137CE
-_081137AC:
- ldr r0, _081137D8 @ =0x00000844
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- bne _081137DC
- subs r0, r4, 0x4
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x6
- bls _081137CE
- cmp r4, 0x16
- beq _081137CE
- cmp r4, 0x19
- beq _081137CE
- cmp r4, 0x1A
- bne _081137DC
-_081137CE:
- movs r0, 0x1
- b _081137DE
- .align 2, 0
-_081137D4: .4byte 0x0000082c
-_081137D8: .4byte 0x00000844
-_081137DC:
- movs r0, 0
-_081137DE:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8113778
-
- thumb_func_start sub_81137E4
-sub_81137E4: @ 81137E4
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x22
- bne _08113814
- ldr r2, _08113810 @ =gTrainers
- ldrh r1, [r1]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrb r1, [r0, 0x1]
- cmp r1, 0x51
- beq _08113814
- cmp r1, 0x59
- beq _08113814
- cmp r1, 0x5A
- beq _08113814
- cmp r1, 0x53
- beq _08113814
- movs r0, 0x1
- b _08113816
- .align 2, 0
-_08113810: .4byte gTrainers
-_08113814:
- movs r0, 0
-_08113816:
- pop {r1}
- bx r1
- thumb_func_end sub_81137E4
-
- thumb_func_start sub_811381C
-sub_811381C: @ 811381C
- ldr r1, _08113824 @ =gUnknown_203B048
- movs r0, 0
- strb r0, [r1]
- bx lr
- .align 2, 0
-_08113824: .4byte gUnknown_203B048
- thumb_func_end sub_811381C
-
- thumb_func_start sub_8113828
-sub_8113828: @ 8113828
- push {r4,r5,lr}
- adds r5, r1, 0
- lsls r0, 16
- lsrs r4, r0, 16
- adds r0, r4, 0
- bl sub_8113778
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0811384C
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_81153A8
- lsls r0, 24
- cmp r0, 0
- bne _08113850
-_0811384C:
- movs r0, 0
- b _0811388C
-_08113850:
- adds r0, r4, 0
- bl sub_8110AEC
- adds r0, r4, 0
- bl sub_8113B94
- cmp r4, 0x1F
- bne _08113874
- ldr r2, _0811386C @ =gUnknown_203AE04
- ldr r1, _08113870 @ =gUnknown_203AE08
- ldr r0, [r1]
- str r0, [r2]
- adds r2, r1, 0
- b _0811387C
- .align 2, 0
-_0811386C: .4byte gUnknown_203AE04
-_08113870: .4byte gUnknown_203AE08
-_08113874:
- ldr r1, _08113894 @ =gUnknown_203AE04
- movs r0, 0
- str r0, [r1]
- ldr r2, _08113898 @ =gUnknown_203AE08
-_0811387C:
- ldr r0, _0811389C @ =gUnknown_8456948
- lsls r1, r4, 2
- adds r1, r0
- ldr r0, [r2]
- ldr r2, [r1]
- adds r1, r5, 0
- bl _call_via_r2
-_0811388C:
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08113894: .4byte gUnknown_203AE04
-_08113898: .4byte gUnknown_203AE08
-_0811389C: .4byte gUnknown_8456948
- thumb_func_end sub_8113828
-
- thumb_func_start sub_81138A0
-sub_81138A0: @ 81138A0
- push {r4,r5,lr}
- adds r5, r1, 0
- lsls r0, 16
- lsrs r0, 16
- adds r4, r0, 0
- subs r0, 0xC
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x7
- bls _081138B8
- movs r0, 0
- b _081138F0
-_081138B8:
- bl sub_81138F8
- ldr r1, _081138E0 @ =gUnknown_203B024
- strh r4, [r1]
- adds r0, r4, 0
- subs r0, 0x10
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bls _081138EE
- cmp r4, 0xC
- beq _081138D4
- cmp r4, 0x12
- bne _081138E4
-_081138D4:
- adds r0, r1, 0x4
- adds r1, r5, 0
- movs r2, 0xC
- bl memcpy
- b _081138EE
- .align 2, 0
-_081138E0: .4byte gUnknown_203B024
-_081138E4:
- adds r0, r1, 0x4
- adds r1, r5, 0
- movs r2, 0x18
- bl memcpy
-_081138EE:
- movs r0, 0x1
-_081138F0:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_81138A0
-
- thumb_func_start sub_81138F8
-sub_81138F8: @ 81138F8
- push {lr}
- ldr r0, _08113908 @ =gUnknown_203B024
- movs r1, 0
- movs r2, 0x20
- bl memset
- pop {r0}
- bx r0
- .align 2, 0
-_08113908: .4byte gUnknown_203B024
- thumb_func_end sub_81138F8
-
thumb_func_start sub_811390C
sub_811390C: @ 811390C
push {r4,r5,lr}
diff --git a/src/quest_log.c b/src/quest_log.c
index 50998b0eb..9cdd17816 100644
--- a/src/quest_log.c
+++ b/src/quest_log.c
@@ -93,11 +93,13 @@ EWRAM_DATA u16 *gUnknown_203AE90 = NULL;
EWRAM_DATA struct UnkStruct_203AE94 gUnknown_203AE94 = {0};
EWRAM_DATA struct UnkStruct_203AE98 gUnknown_203AE98[32] = {0};
EWRAM_DATA u16 gUnknown_203AF98 = 0;
-EWRAM_DATA u8 gUnknown_203AF9A[64][2];
-EWRAM_DATA u16 gUnknown_203B01A;
-EWRAM_DATA u16 gUnknown_203B01C;
-EWRAM_DATA u16 gUnknown_203B01E;
-EWRAM_DATA u8 gUnknown_203B020;
+EWRAM_DATA u8 gUnknown_203AF9A[64][2] = {{0}};
+EWRAM_DATA u16 gUnknown_203B01A = 0;
+EWRAM_DATA u16 gUnknown_203B01C = 0;
+EWRAM_DATA u16 gUnknown_203B01E = 0;
+EWRAM_DATA u8 gUnknown_203B020 = 0;
+
+EWRAM_DATA ALIGNED(2) u16 gUnknown_203B024[16] = {0};
EWRAM_DATA u16 gUnknown_203B044[2] = {0};
EWRAM_DATA u8 gUnknown_203B048 = 0;
@@ -156,11 +158,12 @@ void sub_81134CC(struct Var4038Struct *);
bool8 sub_8113508(struct Var4038Struct * );
void sub_8113524(struct Var4038Struct *);
bool8 sub_81136D4(void);
-bool8 sub_8113778(u16, void*);
-void* sub_8113828(u16, void*);
-bool8 sub_81138A0(u16, void*);
-bool8 sub_8113954(u16, void*);
-bool8 sub_8113A44(u16, void*);
+bool8 sub_8113778(u16, u16 *);
+bool8 sub_81137E4(u16, u16 *);
+void * sub_8113828(u16, u16 *);
+bool8 sub_81138A0(u16, u16 *);
+bool8 sub_8113954(u16, u16 *);
+bool8 sub_8113A44(u16, u16 *);
void sub_8113B94(u16);
void *sub_8113F14(void *, void *);
void *sub_8113F80(void *, void *);
@@ -2639,7 +2642,7 @@ void * (*const gUnknown_8456948[])(void *, void *) = {
};
#ifdef NONMATCHING
-void sub_8113550(u16 a0, void * a1)
+void sub_8113550(u16 a0, u16 * a1)
{
void * r1;
@@ -2726,7 +2729,7 @@ void sub_8113550(u16 a0, void * a1)
}
#else
NAKED
-void sub_8113550(u16 a0, void * a1)
+void sub_8113550(u16 a0, u16 * a1)
{
asm_unified("\tpush {r4,r5,lr}\n"
"\tadds r5, r1, 0\n"
@@ -2926,3 +2929,99 @@ bool8 sub_81136D4(void)
return FALSE;
}
+
+bool8 sub_8113748(void)
+{
+ if (sub_81136D4() != TRUE)
+ return FALSE;
+
+ if (gUnknown_203ADFA == 2)
+ return TRUE;
+
+ if (gUnknown_203ADFA == 1)
+ sub_8112364();
+
+ return FALSE;
+}
+
+bool8 sub_8113778(u16 a0, u16 * a1)
+{
+ if (a0 == 36 || a0 == 11)
+ return TRUE;
+
+ if (!FlagGet(0x82C))
+ {
+ if (a0 == 3 || a0 == 31 || sub_81137E4(a0, a1) == TRUE)
+ return TRUE;
+ }
+
+ if (!FlagGet(0x844))
+ {
+ if (a0 == 4 || a0 == 5 || a0 == 6 || a0 == 7 || a0 == 8 || a0 == 9 || a0 == 10 || a0 == 22 || a0 == 25 || a0 == 26)
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+bool8 sub_81137E4(u16 a0, u16 * a1)
+{
+ if (a0 == 34)
+ {
+ u8 trainerClass = gTrainers[*a1].trainerClass;
+ if ( trainerClass == 0x51
+ || trainerClass == 0x59
+ || trainerClass == 0x5A
+ || trainerClass == 0x53)
+ return FALSE;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+void sub_811381C(void)
+{
+ gUnknown_203B048 = 0;
+}
+
+void * sub_8113828(u16 a0, u16 * a1)
+{
+ if (sub_8113778(a0, a1) == TRUE)
+ return NULL;
+
+ if (sub_81153A8(a0, a1) == FALSE)
+ return NULL;
+
+ sub_8110AEC(a0);
+ sub_8113B94(a0);
+
+ if (a0 == 31)
+ gUnknown_203AE04 = gUnknown_203AE08;
+ else
+ gUnknown_203AE04 = NULL;
+
+ return gUnknown_8456948[a0](gUnknown_203AE08, a1);
+}
+
+bool8 sub_81138A0(u16 a0, u16 * a1)
+{
+ if (a0 < 12 || a0 > 19)
+ return FALSE;
+
+ sub_81138F8();
+ gUnknown_203B024[0] = a0;
+
+ if (a0 < 16 || a0 > 17)
+ {
+ if (a0 == 12 || a0 == 18)
+ memcpy(gUnknown_203B024 + 2, a1, 12);
+ else
+ memcpy(gUnknown_203B024 + 2, a1, 24);
+ }
+ return TRUE;
+}
+
+void sub_81138F8(void)
+{
+ memset(gUnknown_203B024, 0, sizeof(gUnknown_203B024));
+}