Document quest log flag/var funcs

This commit is contained in:
PikalaxALT
2019-10-22 09:03:19 -04:00
parent 8d1203ab5e
commit faedabb106
5 changed files with 152 additions and 152 deletions
+1 -1
View File
@@ -1 +1 @@
gUnknown_300507C gLastQuestLogStoredFlagOrVarIdx
+3 -3
View File
@@ -15,7 +15,7 @@ struct UnkStruct_3005E90
}; };
extern u8 gUnknown_3005E88; extern u8 gUnknown_3005E88;
extern u16 gUnknown_3005E8C; extern u16 sNumQuestLogs;
extern struct UnkStruct_3005E90 gUnknown_3005E90; extern struct UnkStruct_3005E90 gUnknown_3005E90;
extern struct UnkStruct_203AE98 * gUnknown_3005E94; extern struct UnkStruct_203AE98 * gUnknown_3005E94;
extern const u16 gUnknown_84566A8[]; extern const u16 gUnknown_84566A8[];
@@ -40,8 +40,8 @@ void sub_8112450(void);
void sub_8112364(void); void sub_8112364(void);
u8 sub_8112CAC(void); u8 sub_8112CAC(void);
void sub_81138F8(void); void sub_81138F8(void);
void *sub_8112D40(u8 a0, u16 a1); void *QuestLogGetFlagOrVarPtr(u8 isFlag, u16 idx);
void sub_8112DB0(u8 a0, u16 a1, u16 a2); void QuestLogSetFlagOrVar(u8 isFlag, u16 idx, u16 value);
extern u8 gUnknown_203ADFA; extern u8 gUnknown_203ADFA;
+11 -11
View File
@@ -25,9 +25,9 @@ EWRAM_DATA u16 gSpecialVar_MonBoxPos = 0;
EWRAM_DATA u16 gSpecialVar_TextColor = 0; EWRAM_DATA u16 gSpecialVar_TextColor = 0;
EWRAM_DATA u16 gSpecialVar_PrevTextColor = 0; EWRAM_DATA u16 gSpecialVar_PrevTextColor = 0;
EWRAM_DATA u16 gUnknown_20370DE = 0; EWRAM_DATA u16 gUnknown_20370DE = 0;
EWRAM_DATA u8 gUnknown_20370E0[SPECIAL_FLAGS_COUNT] = {}; EWRAM_DATA u8 sSpecialFlags[SPECIAL_FLAGS_COUNT] = {};
u16 gUnknown_300507C; u16 gLastQuestLogStoredFlagOrVarIdx;
extern u16 *const gSpecialVars[]; extern u16 *const gSpecialVars[];
@@ -35,7 +35,7 @@ void InitEventData(void)
{ {
memset(gSaveBlock1Ptr->flags, 0, FLAGS_COUNT); memset(gSaveBlock1Ptr->flags, 0, FLAGS_COUNT);
memset(gSaveBlock1Ptr->vars, 0, VARS_COUNT * 2); memset(gSaveBlock1Ptr->vars, 0, VARS_COUNT * 2);
memset(gUnknown_20370E0, 0, SPECIAL_FLAGS_COUNT); memset(sSpecialFlags, 0, SPECIAL_FLAGS_COUNT);
} }
void sub_806E110(void) void sub_806E110(void)
@@ -185,15 +185,15 @@ u16 *GetVarPointer(u16 idx)
default: default:
break; break;
case 1: case 1:
ptr = sub_8112D40(0, idx); ptr = QuestLogGetFlagOrVarPtr(0, idx);
if (ptr != NULL) if (ptr != NULL)
gSaveBlock1Ptr->vars[idx - VARS_START] = *ptr; gSaveBlock1Ptr->vars[idx - VARS_START] = *ptr;
break; break;
case 2: case 2:
if (IsFlagOrVarStoredInQuestLog(idx - VARS_START, 1) == TRUE) if (IsFlagOrVarStoredInQuestLog(idx - VARS_START, 1) == TRUE)
{ {
gUnknown_300507C = idx - VARS_START; gLastQuestLogStoredFlagOrVarIdx = idx - VARS_START;
sub_8112DB0(0, idx, gSaveBlock1Ptr->vars[idx - VARS_START]); QuestLogSetFlagOrVar(0, idx, gSaveBlock1Ptr->vars[idx - VARS_START]);
} }
break; break;
} }
@@ -240,7 +240,7 @@ bool8 VarSet(u16 idx, u16 val)
u8 VarGetFieldObjectGraphicsId(u8 idx) u8 VarGetFieldObjectGraphicsId(u8 idx)
{ {
return VarGet(0x4010 + idx); return VarGet(VAR_OBJ_GFX_ID_0 + idx);
} }
u8 *GetFlagAddr(u16 idx) u8 *GetFlagAddr(u16 idx)
@@ -256,21 +256,21 @@ u8 *GetFlagAddr(u16 idx)
default: default:
break; break;
case 1: case 1:
ptr = sub_8112D40(1, idx); ptr = QuestLogGetFlagOrVarPtr(1, idx);
if (ptr != NULL) if (ptr != NULL)
gSaveBlock1Ptr->flags[idx >> 3] = *ptr; gSaveBlock1Ptr->flags[idx >> 3] = *ptr;
break; break;
case 2: case 2:
if (IsFlagOrVarStoredInQuestLog(idx, 0) == TRUE) if (IsFlagOrVarStoredInQuestLog(idx, 0) == TRUE)
{ {
gUnknown_300507C = idx; gLastQuestLogStoredFlagOrVarIdx = idx;
sub_8112DB0(1, idx, gSaveBlock1Ptr->flags[idx / 8]); QuestLogSetFlagOrVar(1, idx, gSaveBlock1Ptr->flags[idx / 8]);
} }
break; break;
} }
return &gSaveBlock1Ptr->flags[idx / 8]; return &gSaveBlock1Ptr->flags[idx / 8];
} }
return &gUnknown_20370E0[(idx - SPECIAL_FLAGS_START) / 8]; return &sSpecialFlags[(idx - SPECIAL_FLAGS_START) / 8];
} }
bool8 FlagSet(u16 idx) bool8 FlagSet(u16 idx)
+136 -136
View File
@@ -72,9 +72,9 @@ struct UnkStruct_203AE98
struct UnkStruct_300201C struct UnkStruct_300201C
{ {
u16 unk_0_0:15; u16 idx:15;
u16 unk_0_f:1; u16 isFlag:1;
u16 unk_2; u16 value;
}; };
struct UnkStruct_203B044 struct UnkStruct_203B044
@@ -85,12 +85,12 @@ struct UnkStruct_203B044
}; };
u8 gUnknown_3005E88; u8 gUnknown_3005E88;
u16 gUnknown_3005E8C; u16 sNumQuestLogs;
struct UnkStruct_3005E90 gUnknown_3005E90; struct UnkStruct_3005E90 gUnknown_3005E90;
struct UnkStruct_203AE98 * gUnknown_3005E94; struct UnkStruct_203AE98 * gUnknown_3005E94;
static struct UnkStruct_300201C * gUnknown_300201C; static struct UnkStruct_300201C * sFlagOrVarRecords;
static u16 gUnknown_3002020; static u16 sNumFlagsOrVars;
static EWRAM_DATA u8 gUnknown_203ADF8 = 0; static EWRAM_DATA u8 gUnknown_203ADF8 = 0;
static EWRAM_DATA u8 sNumScenes = 0; static EWRAM_DATA u8 sNumScenes = 0;
@@ -104,11 +104,11 @@ static EWRAM_DATA void (* gUnknown_203AE8C)(void) = NULL;
static EWRAM_DATA u16 *gUnknown_203AE90 = NULL; static EWRAM_DATA u16 *gUnknown_203AE90 = NULL;
static EWRAM_DATA struct UnkStruct_203AE94 gUnknown_203AE94 = {0}; static EWRAM_DATA struct UnkStruct_203AE94 gUnknown_203AE94 = {0};
static EWRAM_DATA struct UnkStruct_203AE98 gUnknown_203AE98[32] = {0}; static EWRAM_DATA struct UnkStruct_203AE98 gUnknown_203AE98[32] = {0};
static EWRAM_DATA u16 gUnknown_203AF98 = 0; static EWRAM_DATA u16 sQuestLogIdx = 0;
static EWRAM_DATA u8 gUnknown_203AF9A[64][2] = {{0}}; static EWRAM_DATA u8 gUnknown_203AF9A[64][2] = {{0}};
static EWRAM_DATA u16 gUnknown_203B01A = 0; static EWRAM_DATA u16 gUnknown_203B01A = 0;
static EWRAM_DATA u16 gUnknown_203B01C = 0; static EWRAM_DATA u16 gUnknown_203B01C = 0;
static EWRAM_DATA u16 gUnknown_203B01E = 0; static EWRAM_DATA u16 sFlagOrVarPlayhead = 0;
static EWRAM_DATA u8 sHelpMessageWindowId = 0; static EWRAM_DATA u8 sHelpMessageWindowId = 0;
static EWRAM_DATA struct UnkStruct_203B024 gUnknown_203B024 = {0}; static EWRAM_DATA struct UnkStruct_203B024 gUnknown_203B024 = {0};
static EWRAM_DATA struct UnkStruct_203B044 gUnknown_203B044 = {0}; static EWRAM_DATA struct UnkStruct_203B044 gUnknown_203B044 = {0};
@@ -807,7 +807,7 @@ static bool8 sub_8110E68(struct UnkStruct_203AE98 * a0)
{ {
u16 i; u16 i;
for (i = gUnknown_203ADFC; i < gUnknown_203AF98; i++) for (i = gUnknown_203ADFC; i < sQuestLogIdx; i++)
{ {
if (gUnknown_203AE08 == NULL) if (gUnknown_203AE08 == NULL)
return FALSE; return FALSE;
@@ -833,7 +833,7 @@ static bool8 sub_8110E68(struct UnkStruct_203AE98 * a0)
gUnknown_203AE08 = sub_8113BF4(gUnknown_203AE08); gUnknown_203AE08 = sub_8113BF4(gUnknown_203AE08);
return FALSE; return FALSE;
} }
gUnknown_203ADFC = gUnknown_203AF98; gUnknown_203ADFC = sQuestLogIdx;
return TRUE; return TRUE;
} }
@@ -1728,13 +1728,13 @@ void sub_81124EC(u8 a0, u8 a1, u8 a2, u8 a3)
{ {
if (!sub_8112CEC()) if (!sub_8112CEC())
{ {
gUnknown_3005E94[gUnknown_203AF98].unk_4 = gUnknown_203B01A; gUnknown_3005E94[sQuestLogIdx].unk_4 = gUnknown_203B01A;
gUnknown_3005E94[gUnknown_203AF98].unk_6 = 0; gUnknown_3005E94[sQuestLogIdx].unk_6 = 0;
gUnknown_3005E94[gUnknown_203AF98].unk_0 = a0; gUnknown_3005E94[sQuestLogIdx].unk_0 = a0;
gUnknown_3005E94[gUnknown_203AF98].unk_1 = a1; gUnknown_3005E94[sQuestLogIdx].unk_1 = a1;
gUnknown_3005E94[gUnknown_203AF98].unk_2 = a2; gUnknown_3005E94[sQuestLogIdx].unk_2 = a2;
gUnknown_3005E94[gUnknown_203AF98].unk_3 = a3; gUnknown_3005E94[sQuestLogIdx].unk_3 = a3;
gUnknown_203AF98++; sQuestLogIdx++;
gUnknown_203B01A = 0; gUnknown_203B01A = 0;
} }
} }
@@ -1743,13 +1743,13 @@ void sub_8112588(u8 a0, u8 a1, u8 a2, u8 a3, u8 a4)
{ {
if (!sub_8112D1C()) if (!sub_8112D1C())
{ {
gUnknown_3005E94[gUnknown_203AF98].unk_4 = gUnknown_203B01A; gUnknown_3005E94[sQuestLogIdx].unk_4 = gUnknown_203B01A;
gUnknown_3005E94[gUnknown_203AF98].unk_6 = 0; gUnknown_3005E94[sQuestLogIdx].unk_6 = 0;
gUnknown_3005E94[gUnknown_203AF98].unk_0 = a0; gUnknown_3005E94[sQuestLogIdx].unk_0 = a0;
gUnknown_3005E94[gUnknown_203AF98].unk_1 = a1; gUnknown_3005E94[sQuestLogIdx].unk_1 = a1;
gUnknown_3005E94[gUnknown_203AF98].unk_2 = a2; gUnknown_3005E94[sQuestLogIdx].unk_2 = a2;
gUnknown_3005E94[gUnknown_203AF98].unk_3 = a3; gUnknown_3005E94[sQuestLogIdx].unk_3 = a3;
gUnknown_203AF98++; sQuestLogIdx++;
gUnknown_203B01A = a4; gUnknown_203B01A = a4;
} }
} }
@@ -1760,12 +1760,12 @@ void sub_8112628(u8 a0)
{ {
if (a0 != gUnknown_3005E94[gUnknown_203B01C].unk_3 || a0 > 3) if (a0 != gUnknown_3005E94[gUnknown_203B01C].unk_3 || a0 > 3)
{ {
gUnknown_3005E94[gUnknown_203AF98].unk_4 = gUnknown_203B01A; gUnknown_3005E94[sQuestLogIdx].unk_4 = gUnknown_203B01A;
gUnknown_3005E94[gUnknown_203AF98].unk_6 = 0; gUnknown_3005E94[sQuestLogIdx].unk_6 = 0;
gUnknown_3005E94[gUnknown_203AF98].unk_0 = 0; gUnknown_3005E94[sQuestLogIdx].unk_0 = 0;
gUnknown_3005E94[gUnknown_203AF98].unk_3 = a0; gUnknown_3005E94[sQuestLogIdx].unk_3 = a0;
gUnknown_203B01C = gUnknown_203AF98; gUnknown_203B01C = sQuestLogIdx;
gUnknown_203AF98++; sQuestLogIdx++;
gUnknown_203B01A = 0; gUnknown_203B01A = 0;
} }
} }
@@ -1775,12 +1775,12 @@ void sub_81126AC(u8 a0, u8 a1)
{ {
if (!sub_8112D1C()) if (!sub_8112D1C())
{ {
gUnknown_3005E94[gUnknown_203AF98].unk_4 = gUnknown_203B01A; gUnknown_3005E94[sQuestLogIdx].unk_4 = gUnknown_203B01A;
gUnknown_3005E94[gUnknown_203AF98].unk_6 = 0; gUnknown_3005E94[sQuestLogIdx].unk_6 = 0;
gUnknown_3005E94[gUnknown_203AF98].unk_0 = 0; gUnknown_3005E94[sQuestLogIdx].unk_0 = 0;
gUnknown_3005E94[gUnknown_203AF98].unk_3 = a0; gUnknown_3005E94[sQuestLogIdx].unk_3 = a0;
gUnknown_203B01C = gUnknown_203AF98; gUnknown_203B01C = sQuestLogIdx;
gUnknown_203AF98++; sQuestLogIdx++;
gUnknown_203B01A = a1; gUnknown_203B01A = a1;
} }
} }
@@ -1789,11 +1789,11 @@ void sub_8112720(u8 a0)
{ {
if (!sub_8112D1C()) if (!sub_8112D1C())
{ {
gUnknown_3005E94[gUnknown_203AF98].unk_4 = gUnknown_203B01A; gUnknown_3005E94[sQuestLogIdx].unk_4 = gUnknown_203B01A;
gUnknown_3005E94[gUnknown_203AF98].unk_6 = 1; gUnknown_3005E94[sQuestLogIdx].unk_6 = 1;
gUnknown_3005E94[gUnknown_203AF98].unk_0 = 0; gUnknown_3005E94[sQuestLogIdx].unk_0 = 0;
gUnknown_3005E94[gUnknown_203AF98].unk_3 = a0; gUnknown_3005E94[sQuestLogIdx].unk_3 = a0;
gUnknown_203AF98++; sQuestLogIdx++;
gUnknown_203B01A = 0; gUnknown_203B01A = 0;
} }
} }
@@ -1802,27 +1802,27 @@ void sub_811278C(u8 a0, u8 a1)
{ {
if (!sub_8112D1C()) if (!sub_8112D1C())
{ {
gUnknown_3005E94[gUnknown_203AF98].unk_4 = gUnknown_203B01A; gUnknown_3005E94[sQuestLogIdx].unk_4 = gUnknown_203B01A;
gUnknown_3005E94[gUnknown_203AF98].unk_6 = 1; gUnknown_3005E94[sQuestLogIdx].unk_6 = 1;
gUnknown_3005E94[gUnknown_203AF98].unk_0 = 0; gUnknown_3005E94[sQuestLogIdx].unk_0 = 0;
gUnknown_3005E94[gUnknown_203AF98].unk_3 = a0; gUnknown_3005E94[sQuestLogIdx].unk_3 = a0;
gUnknown_203AF98++; sQuestLogIdx++;
gUnknown_203B01A = a1; gUnknown_203B01A = a1;
} }
} }
void sub_81127F8(struct UnkStruct_3005E90 * a0) void sub_81127F8(struct UnkStruct_3005E90 * a0)
{ {
if (gUnknown_203AF98 < gUnknown_3005E8C) if (sQuestLogIdx < sNumQuestLogs)
{ {
u32 r2 = *(u32 *)a0 & 0x00FF00F3; u32 r2 = *(u32 *)a0 & 0x00FF00F3;
gUnknown_3005E94[gUnknown_203AF98].unk_4 = gUnknown_203B01A; gUnknown_3005E94[sQuestLogIdx].unk_4 = gUnknown_203B01A;
gUnknown_3005E94[gUnknown_203AF98].unk_6 = 2; gUnknown_3005E94[sQuestLogIdx].unk_6 = 2;
gUnknown_3005E94[gUnknown_203AF98].unk_0 = r2; gUnknown_3005E94[sQuestLogIdx].unk_0 = r2;
gUnknown_3005E94[gUnknown_203AF98].unk_1 = r2 >> 8; gUnknown_3005E94[sQuestLogIdx].unk_1 = r2 >> 8;
gUnknown_3005E94[gUnknown_203AF98].unk_2 = r2 >> 16; gUnknown_3005E94[sQuestLogIdx].unk_2 = r2 >> 16;
gUnknown_3005E94[gUnknown_203AF98].unk_3 = r2 >> 24; gUnknown_3005E94[sQuestLogIdx].unk_3 = r2 >> 24;
gUnknown_203AF98++; sQuestLogIdx++;
if (ScriptContext2_IsEnabled()) if (ScriptContext2_IsEnabled())
gUnknown_203B01A = TRUE; gUnknown_203B01A = TRUE;
else else
@@ -1856,9 +1856,9 @@ void sub_81128BC(u8 a0)
gUnknown_3005E88 = 3; gUnknown_3005E88 = 3;
else if (r1 == 2) else if (r1 == 2)
{ {
gUnknown_3005E94[gUnknown_203AF98].unk_4 = gUnknown_203B01A; gUnknown_3005E94[sQuestLogIdx].unk_4 = gUnknown_203B01A;
gUnknown_3005E94[gUnknown_203AF98].unk_6 = 3; gUnknown_3005E94[sQuestLogIdx].unk_6 = 3;
gUnknown_203AF98++; sQuestLogIdx++;
gUnknown_203B01A = 0; gUnknown_203B01A = 0;
gUnknown_3005E88 = 4; gUnknown_3005E88 = 4;
} }
@@ -1883,57 +1883,57 @@ static void sub_8112940(u8 a0, struct UnkStruct_203AE98 *a1, u16 a2)
break; break;
case 1: case 1:
gUnknown_3005E94 = a1; gUnknown_3005E94 = a1;
gUnknown_3005E8C = a2 / 8; sNumQuestLogs = a2 / 8;
for (i = 0; i < 0x40; i++) for (i = 0; i < 0x40; i++)
{ {
gUnknown_203AF9A[i][0] |= 0xFF; gUnknown_203AF9A[i][0] |= 0xFF;
gUnknown_203AF9A[i][1] |= 0xFF; gUnknown_203AF9A[i][1] |= 0xFF;
} }
gUnknown_203AF98 = 0; sQuestLogIdx = 0;
gUnknown_203B01C = 0; gUnknown_203B01C = 0;
gUnknown_3005E90 = (struct UnkStruct_3005E90){}; gUnknown_3005E90 = (struct UnkStruct_3005E90){};
gUnknown_203B01A = gUnknown_3005E94[gUnknown_203AF98].unk_4; gUnknown_203B01A = gUnknown_3005E94[sQuestLogIdx].unk_4;
gUnknown_203AF9A[0][0] = gUnknown_3005E94[gUnknown_203AF98].unk_3; gUnknown_203AF9A[0][0] = gUnknown_3005E94[sQuestLogIdx].unk_3;
gUnknown_203AF9A[0][1] = 0xFF; gUnknown_203AF9A[0][1] = 0xFF;
gUnknown_3005E88 = 1; gUnknown_3005E88 = 1;
break; break;
case 2: case 2:
gUnknown_3005E94 = a1; gUnknown_3005E94 = a1;
gUnknown_3005E8C = a2 / 8; sNumQuestLogs = a2 / 8;
for (i = 0; i < gUnknown_3005E8C; i++) for (i = 0; i < sNumQuestLogs; i++)
{ {
gUnknown_3005E94[i] = (struct UnkStruct_203AE98){ 0, 0, 0, 0, 0xFFFF, 0xFF }; gUnknown_3005E94[i] = (struct UnkStruct_203AE98){ 0, 0, 0, 0, 0xFFFF, 0xFF };
} }
gUnknown_203AF98 = 0; sQuestLogIdx = 0;
gUnknown_203B01A = 0; gUnknown_203B01A = 0;
gUnknown_3005E94[gUnknown_203AF98].unk_4 = 0; gUnknown_3005E94[sQuestLogIdx].unk_4 = 0;
gUnknown_3005E94[gUnknown_203AF98].unk_6 = 0; gUnknown_3005E94[sQuestLogIdx].unk_6 = 0;
gUnknown_3005E94[gUnknown_203AF98].unk_0 = 0; gUnknown_3005E94[sQuestLogIdx].unk_0 = 0;
switch (GetPlayerFacingDirection()) switch (GetPlayerFacingDirection())
{ {
case 0: case 0:
case 1: case 1:
gUnknown_3005E94[gUnknown_203AF98].unk_3 = 0; gUnknown_3005E94[sQuestLogIdx].unk_3 = 0;
break; break;
case 4: case 4:
gUnknown_3005E94[gUnknown_203AF98].unk_3 = 3; gUnknown_3005E94[sQuestLogIdx].unk_3 = 3;
break; break;
case 2: case 2:
gUnknown_3005E94[gUnknown_203AF98].unk_3 = 1; gUnknown_3005E94[sQuestLogIdx].unk_3 = 1;
break; break;
case 3: case 3:
gUnknown_3005E94[gUnknown_203AF98].unk_3 = 2; gUnknown_3005E94[sQuestLogIdx].unk_3 = 2;
break; break;
} }
gUnknown_203B01C = 0; gUnknown_203B01C = 0;
gUnknown_203AF98++; sQuestLogIdx++;
gUnknown_3005E94[gUnknown_203AF98].unk_4 = 0; gUnknown_3005E94[sQuestLogIdx].unk_4 = 0;
gUnknown_3005E94[gUnknown_203AF98].unk_6 = 2; gUnknown_3005E94[sQuestLogIdx].unk_6 = 2;
gUnknown_3005E94[gUnknown_203AF98].unk_0 = 0; gUnknown_3005E94[sQuestLogIdx].unk_0 = 0;
gUnknown_3005E94[gUnknown_203AF98].unk_1 = 0; gUnknown_3005E94[sQuestLogIdx].unk_1 = 0;
gUnknown_3005E94[gUnknown_203AF98].unk_2 = 0; gUnknown_3005E94[sQuestLogIdx].unk_2 = 0;
gUnknown_3005E94[gUnknown_203AF98].unk_3 = 0; gUnknown_3005E94[sQuestLogIdx].unk_3 = 0;
gUnknown_203AF98++; sQuestLogIdx++;
gUnknown_3005E88 = 2; gUnknown_3005E88 = 2;
break; break;
} }
@@ -1955,16 +1955,16 @@ void sub_8112B3C(void)
{ {
while (1) while (1)
{ {
switch (gUnknown_3005E94[gUnknown_203AF98].unk_6) switch (gUnknown_3005E94[sQuestLogIdx].unk_6)
{ {
case 0: case 0:
gUnknown_203AF9A[gUnknown_3005E94[gUnknown_203AF98].unk_0][0] = gUnknown_3005E94[gUnknown_203AF98].unk_3; gUnknown_203AF9A[gUnknown_3005E94[sQuestLogIdx].unk_0][0] = gUnknown_3005E94[sQuestLogIdx].unk_3;
break; break;
case 1: case 1:
gUnknown_203AF9A[gUnknown_3005E94[gUnknown_203AF98].unk_0][1] = gUnknown_3005E94[gUnknown_203AF98].unk_3; gUnknown_203AF9A[gUnknown_3005E94[sQuestLogIdx].unk_0][1] = gUnknown_3005E94[sQuestLogIdx].unk_3;
break; break;
case 2: case 2:
*(u32 *)&gUnknown_3005E90 = ((gUnknown_3005E94[gUnknown_203AF98].unk_3 << 24) | (gUnknown_3005E94[gUnknown_203AF98].unk_2 << 16) | (gUnknown_3005E94[gUnknown_203AF98].unk_1 << 8) | (gUnknown_3005E94[gUnknown_203AF98].unk_0 << 0)); *(u32 *)&gUnknown_3005E90 = ((gUnknown_3005E94[sQuestLogIdx].unk_3 << 24) | (gUnknown_3005E94[sQuestLogIdx].unk_2 << 16) | (gUnknown_3005E94[sQuestLogIdx].unk_1 << 8) | (gUnknown_3005E94[sQuestLogIdx].unk_0 << 0));
break; break;
case 3: case 3:
gUnknown_3005E88 = 3; gUnknown_3005E88 = 3;
@@ -1977,12 +1977,12 @@ void sub_8112B3C(void)
} }
if (gUnknown_3005E88 == 0) if (gUnknown_3005E88 == 0)
break; break;
if (++gUnknown_203AF98 >= gUnknown_3005E8C) if (++sQuestLogIdx >= sNumQuestLogs)
{ {
gUnknown_3005E88 = 0; gUnknown_3005E88 = 0;
break; break;
} }
gUnknown_203B01A = gUnknown_3005E94[gUnknown_203AF98].unk_4; gUnknown_203B01A = gUnknown_3005E94[sQuestLogIdx].unk_4;
if (gUnknown_3005E88 == 3) if (gUnknown_3005E88 == 3)
break; break;
if (gUnknown_203B01A == 0) if (gUnknown_203B01A == 0)
@@ -1992,13 +1992,13 @@ void sub_8112B3C(void)
} }
} }
} }
else if (gUnknown_203AF98 >= gUnknown_3005E8C) else if (sQuestLogIdx >= sNumQuestLogs)
gUnknown_3005E88 = 0; gUnknown_3005E88 = 0;
break; break;
case 2: case 2:
if (ScriptContext2_IsEnabled() != 1) if (ScriptContext2_IsEnabled() != 1)
gUnknown_203B01A++; gUnknown_203B01A++;
if (gUnknown_203AF98 >= gUnknown_3005E8C) if (sQuestLogIdx >= sNumQuestLogs)
gUnknown_3005E88 = 0; gUnknown_3005E88 = 0;
break; break;
case 3: case 3:
@@ -2052,18 +2052,18 @@ void sub_8112B3C(void)
"_08112B8C: .4byte gUnknown_203B01A\n" "_08112B8C: .4byte gUnknown_203B01A\n"
"_08112B90:\n" "_08112B90:\n"
"\tldr r5, _08112B98 @ =gUnknown_3005E88\n" "\tldr r5, _08112B98 @ =gUnknown_3005E88\n"
"\tldr r4, _08112B9C @ =gUnknown_203AF98\n" "\tldr r4, _08112B9C @ =sQuestLogIdx\n"
"\tldr r6, _08112BA0 @ =gUnknown_3005E94\n" "\tldr r6, _08112BA0 @ =gUnknown_3005E94\n"
"\tb _08112BD4\n" "\tb _08112BD4\n"
"\t.align 2, 0\n" "\t.align 2, 0\n"
"_08112B98: .4byte gUnknown_3005E88\n" "_08112B98: .4byte gUnknown_3005E88\n"
"_08112B9C: .4byte gUnknown_203AF98\n" "_08112B9C: .4byte sQuestLogIdx\n"
"_08112BA0: .4byte gUnknown_3005E94\n" "_08112BA0: .4byte gUnknown_3005E94\n"
"_08112BA4:\n" "_08112BA4:\n"
"\tldrh r0, [r4]\n" "\tldrh r0, [r4]\n"
"\tadds r0, 0x1\n" "\tadds r0, 0x1\n"
"\tstrh r0, [r4]\n" "\tstrh r0, [r4]\n"
"\tldr r1, _08112BF0 @ =gUnknown_3005E8C\n" "\tldr r1, _08112BF0 @ =sNumQuestLogs\n"
"\tlsls r0, 16\n" "\tlsls r0, 16\n"
"\tlsrs r0, 16\n" "\tlsrs r0, 16\n"
"\tldrh r1, [r1]\n" "\tldrh r1, [r1]\n"
@@ -2100,7 +2100,7 @@ void sub_8112B3C(void)
"\tbeq _08112C18\n" "\tbeq _08112C18\n"
"\tb _08112C50\n" "\tb _08112C50\n"
"\t.align 2, 0\n" "\t.align 2, 0\n"
"_08112BF0: .4byte gUnknown_3005E8C\n" "_08112BF0: .4byte sNumQuestLogs\n"
"_08112BF4: .4byte 0x0000ffff\n" "_08112BF4: .4byte 0x0000ffff\n"
"_08112BF8:\n" "_08112BF8:\n"
"\tcmp r0, 0xFE\n" "\tcmp r0, 0xFE\n"
@@ -2173,8 +2173,8 @@ void sub_8112B3C(void)
"\tadds r0, 0x1\n" "\tadds r0, 0x1\n"
"\tstrh r0, [r1]\n" "\tstrh r0, [r1]\n"
"_08112C72:\n" "_08112C72:\n"
"\tldr r0, _08112C90 @ =gUnknown_203AF98\n" "\tldr r0, _08112C90 @ =sQuestLogIdx\n"
"\tldr r1, _08112C94 @ =gUnknown_3005E8C\n" "\tldr r1, _08112C94 @ =sNumQuestLogs\n"
"\tldrh r0, [r0]\n" "\tldrh r0, [r0]\n"
"\tldrh r1, [r1]\n" "\tldrh r1, [r1]\n"
"\tcmp r0, r1\n" "\tcmp r0, r1\n"
@@ -2188,8 +2188,8 @@ void sub_8112B3C(void)
"\tbx r0\n" "\tbx r0\n"
"\t.align 2, 0\n" "\t.align 2, 0\n"
"_08112C8C: .4byte gUnknown_203B01A\n" "_08112C8C: .4byte gUnknown_203B01A\n"
"_08112C90: .4byte gUnknown_203AF98\n" "_08112C90: .4byte sQuestLogIdx\n"
"_08112C94: .4byte gUnknown_3005E8C\n" "_08112C94: .4byte sNumQuestLogs\n"
"_08112C98: .4byte gUnknown_3005E88"); "_08112C98: .4byte gUnknown_3005E88");
} }
#endif #endif
@@ -2217,14 +2217,14 @@ u8 sub_8112CAC(void)
static bool8 sub_8112CEC(void) static bool8 sub_8112CEC(void)
{ {
if (gUnknown_203AF98 >= gUnknown_3005E8C || ScriptContext2_IsEnabled() == TRUE) if (sQuestLogIdx >= sNumQuestLogs || ScriptContext2_IsEnabled() == TRUE)
return TRUE; return TRUE;
return FALSE; return FALSE;
} }
static bool8 sub_8112D1C(void) static bool8 sub_8112D1C(void)
{ {
if (gUnknown_203AF98 >= gUnknown_3005E8C) if (sQuestLogIdx >= sNumQuestLogs)
return TRUE; return TRUE;
return FALSE; return FALSE;
} }
@@ -2235,37 +2235,37 @@ static const struct UnkStruct_300201C gUnknown_84566A4 = {
0x7FFF 0x7FFF
}; };
void * sub_8112D40(u8 a0, u16 a1) void * QuestLogGetFlagOrVarPtr(u8 isFlag, u16 idx)
{ {
u16 * response; void * response;
if (gUnknown_203AF98 == 0) if (sQuestLogIdx == 0)
return NULL; return NULL;
if (gUnknown_203AF98 >= gUnknown_3005E8C) if (sQuestLogIdx >= sNumQuestLogs)
return NULL; return NULL;
if (gUnknown_203B01E >= gUnknown_3002020) if (sFlagOrVarPlayhead >= sNumFlagsOrVars)
return NULL; return NULL;
if (gUnknown_300201C[gUnknown_203B01E].unk_0_0 == a1 && gUnknown_300201C[gUnknown_203B01E].unk_0_f == a0) if (sFlagOrVarRecords[sFlagOrVarPlayhead].idx == idx && sFlagOrVarRecords[sFlagOrVarPlayhead].isFlag == isFlag)
{ {
response = &gUnknown_300201C[gUnknown_203B01E].unk_2; response = &sFlagOrVarRecords[sFlagOrVarPlayhead].value;
gUnknown_203B01E++; sFlagOrVarPlayhead++;
} }
else else
response = NULL; response = NULL;
return response; return response;
} }
void sub_8112DB0(u8 a0, u16 a1, u16 a2) void QuestLogSetFlagOrVar(u8 isFlag, u16 idx, u16 value)
{ {
if (gUnknown_203AF98 == 0) if (sQuestLogIdx == 0)
return; return;
if (gUnknown_203AF98 >= gUnknown_3005E8C) if (sQuestLogIdx >= sNumQuestLogs)
return; return;
if (gUnknown_203B01E >= gUnknown_3002020) if (sFlagOrVarPlayhead >= sNumFlagsOrVars)
return; return;
gUnknown_300201C[gUnknown_203B01E].unk_0_0 = a1; sFlagOrVarRecords[sFlagOrVarPlayhead].idx = idx;
gUnknown_300201C[gUnknown_203B01E].unk_0_f = a0; sFlagOrVarRecords[sFlagOrVarPlayhead].isFlag = isFlag;
gUnknown_300201C[gUnknown_203B01E].unk_2 = a2; sFlagOrVarRecords[sFlagOrVarPlayhead].value = value;
gUnknown_203B01E++; sFlagOrVarPlayhead++;
} }
void sub_8112E3C(u8 a0, struct UnkStruct_300201C * a1, u16 a2) void sub_8112E3C(u8 a0, struct UnkStruct_300201C * a1, u16 a2)
@@ -2276,14 +2276,14 @@ void sub_8112E3C(u8 a0, struct UnkStruct_300201C * a1, u16 a2)
gUnknown_3005E88 = 0; gUnknown_3005E88 = 0;
else else
{ {
gUnknown_300201C = a1; sFlagOrVarRecords = a1;
gUnknown_3002020 = a2 >> 2; sNumFlagsOrVars = a2 >> 2;
gUnknown_203B01E = 0; sFlagOrVarPlayhead = 0;
if (a0 == 2) if (a0 == 2)
{ {
for (i = 0; i < gUnknown_3005E8C; i++) for (i = 0; i < sNumQuestLogs; i++)
{ {
gUnknown_300201C[i] = gUnknown_84566A4; sFlagOrVarRecords[i] = gUnknown_84566A4;
} }
} }
} }
@@ -3250,7 +3250,7 @@ void sub_81139BC(void)
static void sub_8113A1C(u16 a0) static void sub_8113A1C(u16 a0)
{ {
gUnknown_203AE08 = sub_8113C5C(gUnknown_203AE08, a0); gUnknown_203AE08 = sub_8113C5C(gUnknown_203AE08, a0);
gUnknown_203AF98++; sQuestLogIdx++;
} }
static bool8 sub_8113A44(u16 a0, u16 *a1) static bool8 sub_8113A44(u16 a0, u16 *a1)
@@ -3383,7 +3383,7 @@ static void sub_8113ABC(u16 * a0)
#ifdef NONMATCHING #ifdef NONMATCHING
static bool8 sub_8113AE8(u16 * a0) static bool8 sub_8113AE8(u16 * a0)
{ {
if (a0 == NULL || a0[1] > gUnknown_203AF98) if (a0 == NULL || a0[1] > sQuestLogIdx)
return FALSE; return FALSE;
sQuestLogScriptParsingCBs[a0[0] & 0xFFF](a0); sQuestLogScriptParsingCBs[a0[0] & 0xFFF](a0);
@@ -3401,7 +3401,7 @@ static bool8 sub_8113AE8(u16 * a0)
"\tadds r4, r0, 0\n" "\tadds r4, r0, 0\n"
"\tcmp r0, 0\n" "\tcmp r0, 0\n"
"\tbeq _08113AFA\n" "\tbeq _08113AFA\n"
"\tldr r1, _08113B00 @ =gUnknown_203AF98\n" "\tldr r1, _08113B00 @ =sQuestLogIdx\n"
"\tldrh r0, [r0, 0x2]\n" "\tldrh r0, [r0, 0x2]\n"
"\tldrh r1, [r1]\n" "\tldrh r1, [r1]\n"
"\tcmp r0, r1\n" "\tcmp r0, r1\n"
@@ -3410,7 +3410,7 @@ static bool8 sub_8113AE8(u16 * a0)
"\tmovs r0, 0\n" "\tmovs r0, 0\n"
"\tb _08113B32\n" "\tb _08113B32\n"
"\t.align 2, 0\n" "\t.align 2, 0\n"
"_08113B00: .4byte gUnknown_203AF98\n" "_08113B00: .4byte sQuestLogIdx\n"
"_08113B04:\n" "_08113B04:\n"
"\tldr r2, _08113B38 @ =sQuestLogScriptParsingCBs\n" "\tldr r2, _08113B38 @ =sQuestLogScriptParsingCBs\n"
"\tldrh r1, [r4]\n" "\tldrh r1, [r4]\n"
@@ -3465,11 +3465,11 @@ static void sub_8113B88(void)
static void sub_8113B94(u16 a0) static void sub_8113B94(u16 a0)
{ {
if (gUnknown_203B044.unk_0 != (u8)a0 || gUnknown_203B044.unk_2 != gUnknown_203AF98) if (gUnknown_203B044.unk_0 != (u8)a0 || gUnknown_203B044.unk_2 != sQuestLogIdx)
{ {
gUnknown_203B044.unk_0 = a0; gUnknown_203B044.unk_0 = a0;
gUnknown_203B044.unk_1 = 0; gUnknown_203B044.unk_1 = 0;
gUnknown_203B044.unk_2 = gUnknown_203AF98; gUnknown_203B044.unk_2 = sQuestLogIdx;
} }
else if (gUnknown_203B044.unk_1 < 5) else if (gUnknown_203B044.unk_1 < 5)
gUnknown_203B044.unk_1++; gUnknown_203B044.unk_1++;
@@ -3628,7 +3628,7 @@ u16 * sub_8113DE0(u16 a0, u16 * a1)
r1 = gUnknown_203B044.unk_1; r1 = gUnknown_203B044.unk_1;
r5[0] = a0 + (r1 << 12); r5[0] = a0 + (r1 << 12);
r5[1] = gUnknown_203AF98; r5[1] = sQuestLogIdx;
r5 = (void *)r5 + (r1 * r6 + 4); r5 = (void *)r5 + (r1 * r6 + 4);
return r5; return r5;
} }
@@ -3877,7 +3877,7 @@ static u16 * sub_81143F0(u16 * a0, const u16 * a1)
return NULL; return NULL;
r4[0] = 11; r4[0] = 11;
r4[1] = gUnknown_203AF98; r4[1] = sQuestLogIdx;
return r4 + 2; return r4 + 2;
} }
@@ -3893,7 +3893,7 @@ static u16 * sub_811445C(u16 * a0, const u16 * a1)
u16 * r4 = a0 + 4; u16 * r4 = a0 + 4;
a0[0] = 12; a0[0] = 12;
a0[1] = gUnknown_203AF98; a0[1] = sQuestLogIdx;
a0[2] = a1[0]; a0[2] = a1[0];
a0[3] = a1[1]; a0[3] = a1[1];
a1 += 2; a1 += 2;
@@ -3938,7 +3938,7 @@ static const u8 *const gUnknown_8456AE4[] = {
static u16 * sub_81144EC(u16 * a0, const u16 * a1) static u16 * sub_81144EC(u16 * a0, const u16 * a1)
{ {
a0[0] = 13; a0[0] = 13;
a0[1] = gUnknown_203AF98; a0[1] = sQuestLogIdx;
*((u8 *)a0 + 4) = *((const u8 *)a1 + 0); *((u8 *)a0 + 4) = *((const u8 *)a1 + 0);
memcpy((u8 *)a0 + 5, (const u8 *)a1 + 1, 7); memcpy((u8 *)a0 + 5, (const u8 *)a1 + 1, 7);
a0 += 6; a0 += 6;
@@ -3962,7 +3962,7 @@ static const u16 * sub_8114518(const u16 * a0)
static u16 * sub_8114578(u16 * a0, const u16 * a1) static u16 * sub_8114578(u16 * a0, const u16 * a1)
{ {
a0[0] = 14; a0[0] = 14;
a0[1] = gUnknown_203AF98; a0[1] = sQuestLogIdx;
*((u8 *)a0 + 4) = *((const u8 *)a1 + 0); *((u8 *)a0 + 4) = *((const u8 *)a1 + 0);
memcpy((u8 *)a0 + 5, (const u8 *)a1 + 1, 7); memcpy((u8 *)a0 + 5, (const u8 *)a1 + 1, 7);
a0 += 6; a0 += 6;
@@ -3986,7 +3986,7 @@ static const u16 * sub_81145A4(const u16 * a0)
static u16 * sub_8114604(u16 * a0, const u16 * a1) static u16 * sub_8114604(u16 * a0, const u16 * a1)
{ {
a0[0] = 15; a0[0] = 15;
a0[1] = gUnknown_203AF98; a0[1] = sQuestLogIdx;
*((u8 *)a0 + 4) = *((const u8 *)a1 + 0); *((u8 *)a0 + 4) = *((const u8 *)a1 + 0);
memcpy((u8 *)a0 + 5, (const u8 *)a1 + 1, 7); memcpy((u8 *)a0 + 5, (const u8 *)a1 + 1, 7);
memcpy((u8 *)a0 + 12, (const u8 *)a1 + 8, 7); memcpy((u8 *)a0 + 12, (const u8 *)a1 + 8, 7);
@@ -4021,7 +4021,7 @@ static const u16 * sub_811464C(const u16 * a0)
static u16 * sub_8114710(u16 * a0, const u16 * a1) static u16 * sub_8114710(u16 * a0, const u16 * a1)
{ {
a0[0] = 16; a0[0] = 16;
a0[1] = gUnknown_203AF98; a0[1] = sQuestLogIdx;
return a0 + 2; return a0 + 2;
} }
@@ -4035,7 +4035,7 @@ static const u16 * sub_8114724(const u16 * a0)
static u16 * sub_8114744(u16 * a0, const u16 * a1) static u16 * sub_8114744(u16 * a0, const u16 * a1)
{ {
a0[0] = 17; a0[0] = 17;
a0[1] = gUnknown_203AF98; a0[1] = sQuestLogIdx;
return a0 + 2; return a0 + 2;
} }
@@ -4050,7 +4050,7 @@ static u16 * sub_8114778(u16 * a0, const u16 * a1)
{ {
u8 * r4 = (u8 *)(a0 + 4); u8 * r4 = (u8 *)(a0 + 4);
a0[0] = 18; a0[0] = 18;
a0[1] = gUnknown_203AF98; a0[1] = sQuestLogIdx;
a0[2] = a1[0]; a0[2] = a1[0];
a0[3] = a1[1]; a0[3] = a1[1];
memcpy(r4, a1 + 2, 7); memcpy(r4, a1 + 2, 7);
@@ -4074,7 +4074,7 @@ static const u16 * sub_81147A8(const u16 * a0)
static u16 * sub_8114808(u16 * a0, const u16 * a1) static u16 * sub_8114808(u16 * a0, const u16 * a1)
{ {
a0[0] = 19; a0[0] = 19;
a0[1] = gUnknown_203AF98; a0[1] = sQuestLogIdx;
*(u8 *)&a0[2] = *(const u8 *)&a1[0]; *(u8 *)&a0[2] = *(const u8 *)&a1[0];
memcpy((u8 *)a0 + 5, (const u8 *)a1 + 1, 7); memcpy((u8 *)a0 + 5, (const u8 *)a1 + 1, 7);
a0 += 6; a0 += 6;
@@ -4376,7 +4376,7 @@ static u16 * sub_8114DE8(u16 * a0, const u16 * a1)
if (r5[0] == 0 && r5[1] == 0) if (r5[0] == 0 && r5[1] == 0)
{ {
r4[0] = 31; r4[0] = 31;
r4[1] = gUnknown_203AF98; r4[1] = sQuestLogIdx;
} }
if (a1[0]) if (a1[0])
r4[2] = a1[0]; r4[2] = a1[0];
@@ -4476,7 +4476,7 @@ static u16 * sub_8115078(u16 * a0, const u16 * a1)
if (!sub_8110944(a0, gUnknown_8456AA0[33])) if (!sub_8110944(a0, gUnknown_8456AA0[33]))
return NULL; return NULL;
a0[0] = 0x2021; a0[0] = 0x2021;
a0[1] = gUnknown_203AF98; a0[1] = sQuestLogIdx;
a0[2] = a1[1]; a0[2] = a1[1];
a0[3] = a1[2]; a0[3] = a1[2];
*((u8 *)a0 + 8) = *((const u8 *)a1 + 6); *((u8 *)a0 + 8) = *((const u8 *)a1 + 6);
+1 -1
View File
@@ -203,7 +203,7 @@ gUnknown_3005E20: @ 3005E20
.align 2 .align 2
.include "quest_log.o" .include "quest_log.o"
gUnknown_3005E8C: @ 3005E8C sNumQuestLogs: @ 3005E8C
.space 0x4 .space 0x4
gUnknown_3005E90: @ 3005E90 gUnknown_3005E90: @ 3005E90