summaryrefslogtreecommitdiff
path: root/src/quest_log.c
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2018-10-16 18:05:39 -0700
committerPikalaxALT <pikalaxalt@gmail.com>2018-10-16 18:05:39 -0700
commit7670f0527fcbd49269ed52a52b8fa3e30353ef64 (patch)
tree41b8a1fa4f2cf3b6a28fb39ed8efc4a110dc5a12 /src/quest_log.c
parentd50948133d3ad740ee4c719bc84a7991abd53a34 (diff)
through sub_8113414
Diffstat (limited to 'src/quest_log.c')
-rw-r--r--src/quest_log.c104
1 files changed, 99 insertions, 5 deletions
diff --git a/src/quest_log.c b/src/quest_log.c
index 7d2b2511d..f0b79bb58 100644
--- a/src/quest_log.c
+++ b/src/quest_log.c
@@ -10,6 +10,7 @@
#include "window.h"
#include "text_window.h"
#include "event_data.h"
+#include "event_scripts.h"
#include "string_util.h"
#include "script.h"
#include "overworld.h"
@@ -40,6 +41,8 @@ struct Var4038Struct
u8 unk_1;
};
+#define VAR_0x4038_STRUCT ((struct Var4038Struct *)GetVarPointer(VAR_0x4038))
+
struct UnkStruct_203AE94
{
u8 unk_0_0:4;
@@ -143,9 +146,11 @@ void sub_81130BC(struct Var4038Struct *);
u8 sub_8113194(struct Var4038Struct *);
u16 sub_81132A0(struct Var4038Struct *);
void sub_81132E0(struct Var4038Struct *);
+bool16 sub_811337C(struct Var4038Struct *);
+void sub_8113390(struct Var4038Struct *);
+void sub_8113414(u8 (*)[16], u8, u8);
bool8 sub_8113508(void);
void sub_8113524(struct Var4038Struct *);
-void sub_8113390(struct Var4038Struct *);
void sub_8113A1C(u8);
void sub_811381C(void);
void sub_81138F8(void);
@@ -2252,7 +2257,7 @@ void sub_8113044(void)
void sub_8113064(void)
{
- sub_8113078((struct Var4038Struct *)GetVarPointer(VAR_0x4038));
+ sub_8113078(VAR_0x4038_STRUCT);
}
void sub_8113078(struct Var4038Struct * varPtr)
@@ -2266,7 +2271,7 @@ void sub_8113078(struct Var4038Struct * varPtr)
void sub_81130A8(void)
{
- sub_81130BC((struct Var4038Struct *)GetVarPointer(VAR_0x4038));
+ sub_81130BC(VAR_0x4038_STRUCT);
}
void sub_81130BC(struct Var4038Struct * varPtr)
@@ -2363,7 +2368,7 @@ u8 sub_81131FC(struct Var4038Struct * a0)
u16 sub_8113288(void)
{
- return sub_81132A0((struct Var4038Struct *)GetVarPointer(VAR_0x4038));
+ return sub_81132A0(VAR_0x4038_STRUCT);
}
u16 sub_81132A0(struct Var4038Struct * a0)
@@ -2382,7 +2387,7 @@ u16 sub_81132A0(struct Var4038Struct * a0)
void sub_81132CC(void)
{
- sub_81132E0((struct Var4038Struct *)GetVarPointer(VAR_0x4038));
+ sub_81132E0(VAR_0x4038_STRUCT);
}
void sub_81132E0(struct Var4038Struct * a0)
@@ -2411,3 +2416,92 @@ void sub_81132E0(struct Var4038Struct * a0)
}
}
}
+
+bool16 sub_8113364(void)
+{
+ return sub_811337C(VAR_0x4038_STRUCT);
+}
+
+bool16 sub_811337C(struct Var4038Struct * a0)
+{
+ return (a0->unk_1 >> gUnknown_20370C0) & 1;
+}
+
+void sub_8113390(struct Var4038Struct * a0)
+{
+ a0->unk_1 |= 1;
+ a0->unk_1 |= 2;
+ a0->unk_1 |= 4;
+}
+
+void sub_81133A4(void)
+{
+ u8 r3 = 0;
+ u8 r2 = 0;
+
+ switch (gUnknown_20370C0)
+ {
+ case 0:
+ r2 = 0;
+ r3 = 0;
+ break;
+ case 1:
+ case 2:
+ case 3:
+ case 7:
+ break;
+ case 4:
+ r2 = 1;
+ r3 = 0;
+ break;
+ case 5:
+ r2 = 0;
+ r3 = 1;
+ break;
+ case 6:
+ r2 = 2;
+ r3 = 1;
+ break;
+ }
+ sub_8113414(gSaveBlock2Ptr->unk_A98, r3, r2);
+}
+
+void sub_8113414(u8 (* a0)[16], u8 a1, u8 a2)
+{
+ u8 * str;
+ const u8 * src = a0[a1];
+ if (src[0] == EOS)
+ {
+ switch (a2)
+ {
+ case 0:
+ StringCopy(gStringVar1, gSaveBlock1Ptr->rivalName);
+ break;
+ case 1:
+ StringCopy(gStringVar1, gUnknown_84178D0);
+ break;
+ case 2:
+ StringCopy(gStringVar1, gUnknown_84178DA);
+ break;
+ default:
+ StringCopy(gStringVar1, gSaveBlock1Ptr->rivalName);
+ break;
+ }
+ }
+ else
+ {
+ str = gStringVar1;
+ StringCopyN(str, src, 7);
+ str[7] = EOS;
+ if ( str[0] == EXT_CTRL_CODE_BEGIN
+ && str[1] == EXT_CTRL_CODE_JPN)
+ {
+ str += 2;
+ while (*str != EOS)
+ str++;
+ *str++ = EXT_CTRL_CODE_BEGIN;
+ *str++ = EXT_CTRL_CODE_ENG;
+ *str++ = EOS;
+ }
+ }
+}