diff options
-rw-r--r-- | asm/field_player_avatar.s | 59 | ||||
-rw-r--r-- | common_syms/quest_log.txt | 4 | ||||
-rw-r--r-- | include/constants/vars.h | 9 | ||||
-rw-r--r-- | include/quest_log.h | 9 | ||||
-rw-r--r-- | include/quest_log_objects.h | 2 | ||||
-rw-r--r-- | src/field_player_avatar.c | 15 | ||||
-rw-r--r-- | src/new_menu_helpers.c | 2 | ||||
-rw-r--r-- | src/quest_log.c | 506 | ||||
-rw-r--r-- | src/quest_log_objects.c | 4 |
9 files changed, 284 insertions, 326 deletions
diff --git a/asm/field_player_avatar.s b/asm/field_player_avatar.s index e75595ccf..3d6eadc79 100644 --- a/asm/field_player_avatar.s +++ b/asm/field_player_avatar.s @@ -5,63 +5,6 @@ .text - thumb_func_start sub_805BFFC -sub_805BFFC: @ 805BFFC - push {lr} - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r0, _0805C01C @ =gPlayerAvatar - ldrb r2, [r0, 0x5] - lsls r0, r2, 3 - adds r0, r2 - lsls r0, 2 - ldr r2, _0805C020 @ =gObjectEvents - adds r0, r2 - bl ObjectEventForceSetHeldMovement - pop {r0} - bx r0 - .align 2, 0 -_0805C01C: .4byte gPlayerAvatar -_0805C020: .4byte gObjectEvents - thumb_func_end sub_805BFFC - - thumb_func_start PlayerSetAnimId -PlayerSetAnimId: @ 805C024 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r1, 24 - lsrs r4, r1, 24 - bl PlayerIsAnimActive - lsls r0, 24 - cmp r0, 0 - bne _0805C05E - adds r0, r4, 0 - bl PlayerSetCopyableMovement - ldr r0, _0805C064 @ =gPlayerAvatar - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _0805C068 @ =gObjectEvents - adds r0, r1 - adds r1, r5, 0 - bl ObjectEventSetHeldMovement - lsls r0, 24 - cmp r0, 0 - bne _0805C05E - adds r0, r5, 0 - bl sub_8112628 -_0805C05E: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0805C064: .4byte gPlayerAvatar -_0805C068: .4byte gObjectEvents - thumb_func_end PlayerSetAnimId - thumb_func_start sub_805C06C sub_805C06C: @ 805C06C push {r4,lr} @@ -378,7 +321,7 @@ _0805C27E: bl GetFaceDirectionMovementAction lsls r0, 24 lsrs r0, 24 - bl sub_805BFFC + bl PlayerForceSetHeldMovement _0805C2A6: pop {r4} pop {r0} diff --git a/common_syms/quest_log.txt b/common_syms/quest_log.txt index cc7fbbfcf..c04d849ec 100644 --- a/common_syms/quest_log.txt +++ b/common_syms/quest_log.txt @@ -1,4 +1,4 @@ gUnknown_3005E88 -sNumQuestLogs +sNumEventsInLogEntry gUnknown_3005E90 -gUnknown_3005E94 +sCurQuestLogEntry diff --git a/include/constants/vars.h b/include/constants/vars.h index 4a64eb095..358209eaf 100644 --- a/include/constants/vars.h +++ b/include/constants/vars.h @@ -221,11 +221,10 @@ #define VAR_0x40A7 0x40A7 #define VAR_0x40A8 0x40A8 #define VAR_0x40A9 0x40A9 -#define VAR_0x40AA 0x40AA -#define VAR_0x40AB 0x40AB -#define VAR_0x40AC 0x40AC -#define VAR_0x40AD 0x40AD -#define VAR_0x40AE 0x40AE + +#define VAR_QLBAK_TRAINER_REMATCHES 0x40AA // array of 4 +#define VAR_QLBAK_MAP_LAYOUT 0x40AE + #define VAR_0x40AF 0x40AF #define VAR_0x40B0 0x40B0 #define VAR_0x40B1 0x40B1 diff --git a/include/quest_log.h b/include/quest_log.h index e2e652a81..f4fe0ca45 100644 --- a/include/quest_log.h +++ b/include/quest_log.h @@ -18,9 +18,9 @@ struct UnkStruct_3005E90 extern u8 gQuestLogState; extern u8 gUnknown_3005E88; -extern u16 sNumQuestLogs; +extern u16 sNumEventsInLogEntry; extern struct UnkStruct_3005E90 gUnknown_3005E90; -extern struct UnkStruct_203AE98 * gUnknown_3005E94; +extern struct QuestLogEntry * sCurQuestLogEntry; extern const u16 gUnknown_84566A8[]; void sub_8112720(u8); @@ -30,7 +30,7 @@ void QuestLog_RecordEnteredMap(u16); u8 sub_8112CAC(void); bool8 QuestLog_SchedulePlaybackCB(void (*func)(void)); void sub_8111F38(u16 offset, u16 idx); -void sub_8111134(void); +void CommitQuestLogWindow1(void); void DestroyHelpMessageWindow(u8 a0); u8 CreateHelpMessageWindow(void); void PrintTextOnHelpMessageWindow(const u8 * text, u8 mode); @@ -53,7 +53,8 @@ void sub_811246C(struct Sprite *sprite); void sub_81124EC(u8 a0, u8 a1, u8 a2, u8 a3); bool8 sub_8111C2C(void); void sub_81128BC(u8 a0); -void sub_811278C(u8, u8); +void sub_811278C(u8 movementActionId, u8 duration); void Special_UpdateTrainerFansAfterLinkBattle(void); +void sub_8112628(u8 movementActionId); #endif //GUARD_QUEST_LOG_H diff --git a/include/quest_log_objects.h b/include/quest_log_objects.h index e582ba27a..d3e11d11f 100644 --- a/include/quest_log_objects.h +++ b/include/quest_log_objects.h @@ -4,6 +4,6 @@ #include "global.h" void SetQuestLogObjectEventsData(struct QuestLog *); -void sub_815A1F8(struct QuestLog *, struct ObjectEventTemplate *); +void SetSav1ObjectEventsFromQuestLog(struct QuestLog *, struct ObjectEventTemplate *); #endif //GUARD_QUEST_LOG_OBJECTS_H diff --git a/src/field_player_avatar.c b/src/field_player_avatar.c index 4b805c123..a7525fc41 100644 --- a/src/field_player_avatar.c +++ b/src/field_player_avatar.c @@ -764,3 +764,18 @@ u8 PlayerGetCopyableMovement(void) { return gObjectEvents[gPlayerAvatar.objectEventId].playerCopyableMovement; } + +void PlayerForceSetHeldMovement(u8 a) +{ + ObjectEventForceSetHeldMovement(&gObjectEvents[gPlayerAvatar.objectEventId], a); +} + +void PlayerSetAnimId(u8 movementActionId, u8 copyableMovement) +{ + if (!PlayerIsAnimActive()) + { + PlayerSetCopyableMovement(copyableMovement); + if (!ObjectEventSetHeldMovement(&gObjectEvents[gPlayerAvatar.objectEventId], movementActionId)) + sub_8112628(movementActionId); + } +} diff --git a/src/new_menu_helpers.c b/src/new_menu_helpers.c index 959370398..d184bae05 100644 --- a/src/new_menu_helpers.c +++ b/src/new_menu_helpers.c @@ -496,7 +496,7 @@ void ClearDialogWindowAndFrame(u8 windowId, bool8 copyToVram) if (copyToVram == TRUE) CopyWindowToVram(windowId, 3); if (gQuestLogState == 2) - sub_8111134(); + CommitQuestLogWindow1(); } void ClearStdWindowAndFrame(u8 windowId, bool8 copyToVram) diff --git a/src/quest_log.c b/src/quest_log.c index bc8e67a6b..fb327433a 100644 --- a/src/quest_log.c +++ b/src/quest_log.c @@ -69,7 +69,7 @@ struct UnkStruct_203AE94 u8 unk_3; }; -struct UnkStruct_203AE98 +struct QuestLogEntry { u8 unk_0; u8 unk_1; @@ -94,9 +94,9 @@ struct UnkStruct_203B044 }; u8 gUnknown_3005E88; -u16 sNumQuestLogs; +u16 sNumEventsInLogEntry; struct UnkStruct_3005E90 gUnknown_3005E90; -struct UnkStruct_203AE98 * gUnknown_3005E94; +struct QuestLogEntry * sCurQuestLogEntry; static struct UnkStruct_300201C * sFlagOrVarRecords; static u16 sNumFlagsOrVars; @@ -105,44 +105,44 @@ static EWRAM_DATA u8 sCurrentSceneNum = 0; static EWRAM_DATA u8 sNumScenes = 0; EWRAM_DATA u8 gQuestLogState = 0; static EWRAM_DATA u16 gUnknown_203ADFC = 0; -static EWRAM_DATA u8 gUnknown_203ADFE[3] = {0}; +static EWRAM_DATA u8 sQuestLogHeaderWindowIds[3] = {0}; static EWRAM_DATA u16 *gUnknown_203AE04 = NULL; static EWRAM_DATA u16 *gUnknown_203AE08 = NULL; static EWRAM_DATA u16 *gUnknown_203AE0C[32] = {NULL}; static EWRAM_DATA void (* sQuestLogCB)(void) = NULL; static EWRAM_DATA u16 *gUnknown_203AE90 = NULL; static EWRAM_DATA struct UnkStruct_203AE94 gUnknown_203AE94 = {0}; -static EWRAM_DATA struct UnkStruct_203AE98 gUnknown_203AE98[32] = {0}; -static EWRAM_DATA u16 sQuestLogIdx = 0; +static EWRAM_DATA struct QuestLogEntry sQuestLogSceneRecordBuffer[32] = {0}; +static EWRAM_DATA u16 sQuestLogCursor = 0; static EWRAM_DATA u8 sMovementScripts[64][2] = {{0}}; -static EWRAM_DATA u16 gUnknown_203B01A = 0; +static EWRAM_DATA u16 sNextStepDelay = 0; static EWRAM_DATA u16 gUnknown_203B01C = 0; static EWRAM_DATA u16 sFlagOrVarPlayhead = 0; static EWRAM_DATA u8 sHelpMessageWindowId = 0; static EWRAM_DATA struct UnkStruct_203B024 gUnknown_203B024 = {0}; static EWRAM_DATA struct UnkStruct_203B044 gUnknown_203B044 = {0}; static EWRAM_DATA u8 gUnknown_203B048 = 0; -static EWRAM_DATA u8 gUnknown_203B049 = 0; +static EWRAM_DATA bool8 sNewlyEnteredMap = FALSE; static EWRAM_DATA u8 gUnknown_203B04A = 0; -static EWRAM_DATA bool8 gUnknown_203B04B = 0; +static EWRAM_DATA bool8 gUnknown_203B04B = FALSE; static void sub_8110A00(void); static void sub_8110A3C(void); -static void sub_8110BB0(u8); -static void sub_8110BE8(u8); +static void SetPlayerInitialCoordsAtScene(u8); +static void SetNPCInitialCoordsAtScene(u8); static void sub_8110E3C(void); -static void sub_8110D94(void); -static void sub_8110E20(void); -static void sub_8110D48(u8); -static u8 sub_8110E68(struct UnkStruct_203AE98 *); +static void BackUpTrainerRematchesToVars(void); +static void BackUpMapLayoutToVar(void); +static void SetGameStateAtScene(u8); +static u8 TryRecordQuestLogEntrySequence(struct QuestLogEntry *); static void sub_8110F90(u8); -static void sub_8111150(u8); +static void QuestLogPlaybackSetObjectEventTemplates(u8); static void sub_8111368(void); static void QuestLog_GetSaneMonCounts(void); static u16 QuestLog_GetSanePartyCount(void); static u16 QuestLog_GetSaneBoxCount(void); static void sub_8111688(void); -static void sub_811175C(u8, struct UnkStruct_203AE98 *); +static void sub_811175C(u8, struct QuestLogEntry *); static void sub_81118F4(s8); static void QuestLog_AdvancePlayhead(void); static void QuestLog_StartFinalScene(void); @@ -163,9 +163,9 @@ static void Task_EndQuestLog(u8); static bool8 sub_81121D8(u8); static void sub_811229C(void); static void sub_8112888(u8); -static void sub_8112940(u8, struct UnkStruct_203AE98 *, u16); +static void SetUpQuestLogEntry(u8, struct QuestLogEntry *, u16); static bool8 sub_8112CEC(void); -static bool8 sub_8112D1C(void); +static bool8 RecordHeadAtEndOfEntry(void); static void TryLoseFansFromPlayTimeAfterLinkBattle(struct TrainerFanClub *); static void UpdateTrainerFanClubGameClear(struct TrainerFanClub *); static u8 PlayerGainRandomTrainerFan(struct TrainerFanClub *); @@ -194,13 +194,13 @@ static void sub_8113B88(void); static void sub_8113B94(u16); static void sub_8113BD8(void); static u16 *sub_8113BF4(u16 *); -static u16 *sub_8113C20(u16 *, struct UnkStruct_203AE98 *); +static u16 *sub_8113C20(u16 *, struct QuestLogEntry *); static u16 *sub_8113C5C(u16 *, u16); -static u16 *sub_8113C8C(u16 *, struct UnkStruct_203AE98 *); -static u16 *sub_8113CC8(u16 *, struct UnkStruct_203AE98 *); -static u16 *sub_8113D08(u16 *, struct UnkStruct_203AE98 *); -static u16 *sub_8113D48(u16 *, struct UnkStruct_203AE98 *); -static u16 *sub_8113D94(u16 *, struct UnkStruct_203AE98 *); +static u16 *sub_8113C8C(u16 *, struct QuestLogEntry *); +static u16 *sub_8113CC8(u16 *, struct QuestLogEntry *); +static u16 *sub_8113D08(u16 *, struct QuestLogEntry *); +static u16 *sub_8113D48(u16 *, struct QuestLogEntry *); +static u16 *sub_8113D94(u16 *, struct QuestLogEntry *); static u16 *BufferQuestLogData_SwitchedPartyOrder(u16 *, const u16 *); static u16 *BufferQuestLogData_UsedItem(u16 *, const u16 *); static u16 *BufferQuestLogData_GaveHeldItemFromPartyMenu(u16 *, const u16 *); @@ -282,7 +282,7 @@ static bool8 sub_81153A8(u16, const u16 *); static bool8 sub_81153E4(u16, const u16 *); static void BufferLinkPartnersName(u8 *); -static const struct WindowTemplate gUnknown_845661C[3] = { +static const struct WindowTemplate sQuestLogHeaderWindowTemplates[3] = { { 0, 0, 0, 30, 2, 15, 0x0e9 }, { 0, 0, 18, 30, 2, 15, 0x0ad }, { 0, 0, 14, 30, 6, 15, 0x14c } @@ -303,7 +303,7 @@ void sub_8110840(void * oldPointer) { if (gUnknown_203AE08) gUnknown_203AE08 = (void *)gUnknown_203AE08 + offset; - if (gQuestLogState == 2) + if (gQuestLogState == QL_STATE_2) { int r3; for (r3 = 0; r3 < (int)NELEMS(gUnknown_203AE0C); r3++) @@ -325,7 +325,7 @@ void ResetQuestLog(void) sub_81138F8(); } -void sub_81108F0(u8 a0) +static void DestroySav1QuestLogEntry(u8 a0) { memset(gSaveBlock1Ptr->questLog + a0, 0, sizeof(struct QuestLog)); gUnknown_203AE04 = NULL; @@ -373,7 +373,7 @@ static void SetQuestLogState(u8 state) static void sub_8110A00(void) { - if (sub_8110E68(gUnknown_203AE98) != 1) + if (TryRecordQuestLogEntrySequence(sQuestLogSceneRecordBuffer) != 1) { gUnknown_3005E88 = 0; sub_8110E3C(); @@ -389,7 +389,7 @@ static void sub_8110A3C(void) if (gUnknown_203AE94.unk_0_6 == 0) { - if (gUnknown_3005E88 || gUnknown_203AE94.unk_0_0 == 1 || (gUnknown_203AE94.unk_1 < 32 && gUnknown_203AE0C[gUnknown_203AE94.unk_1])) + if (gUnknown_3005E88 || gUnknown_203AE94.unk_0_0 == 1 || (gUnknown_203AE94.unk_1 < NELEMS(gUnknown_203AE0C) && gUnknown_203AE0C[gUnknown_203AE94.unk_1] != NULL)) sub_8111AD8(); else { @@ -410,12 +410,12 @@ u8 sub_8110AC8(void) return gSaveBlock1Ptr->questLog[sCurrentSceneNum].unk_000; } -void sub_8110AEC(u16 eventId) +static void StartRecordingQuestLogEntry(u16 eventId) { if (sCurrentSceneNum >= QUEST_LOG_SCENE_COUNT) sCurrentSceneNum = 0; - sub_81108F0(sCurrentSceneNum); + DestroySav1QuestLogEntry(sCurrentSceneNum); sub_8113B88(); gUnknown_203AE08 = gSaveBlock1Ptr->questLog[sCurrentSceneNum].unk_568; if (IS_LINK_QL_EVENT(eventId) || eventId == QL_EVENT_DEPARTED) @@ -423,18 +423,18 @@ void sub_8110AEC(u16 eventId) else gSaveBlock1Ptr->questLog[sCurrentSceneNum].unk_000 = 1; QuestLog_GetSaneMonCounts(); - sub_8110BB0(sCurrentSceneNum); - sub_8110BE8(sCurrentSceneNum); - sub_8110D94(); - sub_8110E20(); - sub_8110D48(sCurrentSceneNum); + SetPlayerInitialCoordsAtScene(sCurrentSceneNum); + SetNPCInitialCoordsAtScene(sCurrentSceneNum); + BackUpTrainerRematchesToVars(); + BackUpMapLayoutToVar(); + SetGameStateAtScene(sCurrentSceneNum); gUnknown_203ADFC = 0; - sub_8112940(2, gUnknown_203AE98, 0x100); - sub_8110E68(gUnknown_203AE98); - SetQuestLogState(1); + SetUpQuestLogEntry(2, sQuestLogSceneRecordBuffer, 0x100); + TryRecordQuestLogEntrySequence(sQuestLogSceneRecordBuffer); + SetQuestLogState(QL_STATE_1); } -static void sub_8110BB0(u8 sceneNum) +static void SetPlayerInitialCoordsAtScene(u8 sceneNum) { struct QuestLog * questLog = &gSaveBlock1Ptr->questLog[sceneNum]; questLog->mapGroup = gSaveBlock1Ptr->location.mapGroup; @@ -444,7 +444,7 @@ static void sub_8110BB0(u8 sceneNum) questLog->y = gSaveBlock1Ptr->pos.y; } -static void sub_8110BE8(u8 sceneNum) +static void SetNPCInitialCoordsAtScene(u8 sceneNum) { struct QuestLog * questLog = &gSaveBlock1Ptr->questLog[sceneNum]; u16 i; @@ -478,7 +478,7 @@ static void sub_8110BE8(u8 sceneNum) } } -static void sub_8110D48(u8 sceneNum) +static void SetGameStateAtScene(u8 sceneNum) { struct QuestLog * questLog = &gSaveBlock1Ptr->questLog[sceneNum]; @@ -486,7 +486,7 @@ static void sub_8110D48(u8 sceneNum) CpuCopy16(gSaveBlock1Ptr->vars, questLog->vars, VARS_COUNT * sizeof(u16)); } -static void sub_8110D94(void) +static void BackUpTrainerRematchesToVars(void) { u16 i, j; u16 sp0[4]; @@ -501,13 +501,13 @@ static void sub_8110D94(void) sp0[i] += (1 << j); } } - VarSet(VAR_0x40AA + i, sp0[i]); + VarSet(VAR_QLBAK_TRAINER_REMATCHES + i, sp0[i]); } } -static void sub_8110E20(void) +static void BackUpMapLayoutToVar(void) { - VarSet(VAR_0x40AE, gSaveBlock1Ptr->mapLayoutId); + VarSet(VAR_QLBAK_MAP_LAYOUT, gSaveBlock1Ptr->mapLayoutId); } static void sub_8110E3C(void) @@ -517,22 +517,22 @@ static void sub_8110E3C(void) sCurrentSceneNum = 0; } -static bool8 sub_8110E68(struct UnkStruct_203AE98 * a0) +static bool8 TryRecordQuestLogEntrySequence(struct QuestLogEntry * entry) { u16 i; - for (i = gUnknown_203ADFC; i < sQuestLogIdx; i++) + for (i = gUnknown_203ADFC; i < sQuestLogCursor; i++) { if (gUnknown_203AE08 == NULL) return FALSE; - switch (a0[i].unk_6) + switch (entry[i].unk_6) { case 0: case 1: - gUnknown_203AE08 = sub_8113D48(gUnknown_203AE08, &a0[i]); + gUnknown_203AE08 = sub_8113D48(gUnknown_203AE08, &entry[i]); break; default: - gUnknown_203AE08 = sub_8113CC8(gUnknown_203AE08, &a0[i]); + gUnknown_203AE08 = sub_8113CC8(gUnknown_203AE08, &entry[i]); break; } if (gUnknown_203AE08 == NULL) @@ -547,7 +547,7 @@ static bool8 sub_8110E68(struct UnkStruct_203AE98 * a0) gUnknown_203AE08 = sub_8113BF4(gUnknown_203AE08); return FALSE; } - gUnknown_203ADFC = sQuestLogIdx; + gUnknown_203ADFC = sQuestLogCursor; return TRUE; } @@ -589,16 +589,16 @@ static void sub_8110F90(u8 unused) void sub_8110FCC(void) { - sub_811175C(sCurrentSceneNum, gUnknown_203AE98); + sub_811175C(sCurrentSceneNum, sQuestLogSceneRecordBuffer); sub_8113B88(); - sub_8112940(1, gUnknown_203AE98, 0x100); - sub_8111150(sCurrentSceneNum); + SetUpQuestLogEntry(1, sQuestLogSceneRecordBuffer, 0x100); + QuestLogPlaybackSetObjectEventTemplates(sCurrentSceneNum); } bool8 sub_8111000(void) { LoadPalette(stdpal_get(4), 0xF0, 0x20); - SetQuestLogState(2); + SetQuestLogState(QL_STATE_2); sub_807DF64(); gUnknown_203AE94 = (struct UnkStruct_203AE94){}; gUnknown_203AE94.unk_0_0 = 2; @@ -608,7 +608,7 @@ bool8 sub_8111000(void) bool8 sub_8111038(void) { LoadPalette(stdpal_get(4), 0xF0, 0x20); - SetQuestLogState(2); + SetQuestLogState(QL_STATE_2); sub_807DF7C(); gUnknown_203AE94 = (struct UnkStruct_203AE94){}; gUnknown_203AE94.unk_0_0 = 2; @@ -619,10 +619,10 @@ void DrawPreviouslyOnQuestHeader(u8 sceneNum) { u8 i; - for (i = 0; i < 3; i++) + for (i = 0; i < NELEMS(sQuestLogHeaderWindowTemplates); i++) { - gUnknown_203ADFE[i] = AddWindow(&gUnknown_845661C[i]); - FillWindowPixelRect(gUnknown_203ADFE[i], 15, 0, 0, gUnknown_845661C[i].width * 8, gUnknown_845661C[i].height * 8); + sQuestLogHeaderWindowIds[i] = AddWindow(&sQuestLogHeaderWindowTemplates[i]); + FillWindowPixelRect(sQuestLogHeaderWindowIds[i], 15, 0, 0, sQuestLogHeaderWindowTemplates[i].width * 8, sQuestLogHeaderWindowTemplates[i].height * 8); } StringExpandPlaceholders(gStringVar4, gText_QuestLog_PreviouslyOnYourQuest); @@ -634,21 +634,21 @@ void DrawPreviouslyOnQuestHeader(u8 sceneNum) StringAppend(gStringVar4, gStringVar1); } - AddTextPrinterParameterized4(gUnknown_203ADFE[0], 2, 2, 2, 1, 2, sTextColors, 0, gStringVar4); - PutWindowTilemap(gUnknown_203ADFE[0]); - PutWindowTilemap(gUnknown_203ADFE[1]); - CopyWindowToVram(gUnknown_203ADFE[0], 2); - CopyWindowToVram(gUnknown_203ADFE[2], 2); - CopyWindowToVram(gUnknown_203ADFE[1], 3); + AddTextPrinterParameterized4(sQuestLogHeaderWindowIds[0], 2, 2, 2, 1, 2, sTextColors, 0, gStringVar4); + PutWindowTilemap(sQuestLogHeaderWindowIds[0]); + PutWindowTilemap(sQuestLogHeaderWindowIds[1]); + CopyWindowToVram(sQuestLogHeaderWindowIds[0], 2); + CopyWindowToVram(sQuestLogHeaderWindowIds[2], 2); + CopyWindowToVram(sQuestLogHeaderWindowIds[1], 3); } -void sub_8111134(void) +void CommitQuestLogWindow1(void) { - PutWindowTilemap(gUnknown_203ADFE[1]); - CopyWindowToVram(gUnknown_203ADFE[1], 1); + PutWindowTilemap(sQuestLogHeaderWindowIds[1]); + CopyWindowToVram(sQuestLogHeaderWindowIds[1], 1); } -static void sub_8111150(u8 sceneNum) +static void QuestLogPlaybackSetObjectEventTemplates(u8 sceneNum) { struct QuestLog *questLog = &gSaveBlock1Ptr->questLog[sceneNum]; u16 i; @@ -667,7 +667,7 @@ static void sub_8111150(u8 sceneNum) gSaveBlock1Ptr->objectEventTemplates[i].movementType = questLog->npcData[i].movementType; } - sub_815A1F8(questLog, gSaveBlock1Ptr->objectEventTemplates); + SetSav1ObjectEventsFromQuestLog(questLog, gSaveBlock1Ptr->objectEventTemplates); } void sub_8111274(u8 sceneNum, bool8 a1) @@ -695,7 +695,7 @@ void sub_8111274(u8 sceneNum, bool8 a1) static void sub_8111368(void) { - gQuestLogState = 2; + gQuestLogState = QL_STATE_2; ResetSpecialVars(); ClearBag(); ClearPCItemSlots(); @@ -847,7 +847,7 @@ static void sub_8111688(void) for (i = 0; i < 4; i++) { - sp0[i] = VarGet(VAR_0x40AA + i); + sp0[i] = VarGet(VAR_QLBAK_TRAINER_REMATCHES + i); for (j = 0; j < 16; j++) { @@ -864,7 +864,7 @@ void sub_8111708(void) { struct MapHeader sp0; - gSaveBlock1Ptr->mapLayoutId = VarGet(VAR_0x40AE); + gSaveBlock1Ptr->mapLayoutId = VarGet(VAR_QLBAK_MAP_LAYOUT); if (gSaveBlock1Ptr->mapLayoutId == 0) { sp0 = *Overworld_GetMapHeaderByGroupAndId(gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum); @@ -872,14 +872,14 @@ void sub_8111708(void) } } -static void sub_811175C(u8 sceneNum, struct UnkStruct_203AE98 * a1) +static void sub_811175C(u8 sceneNum, struct QuestLogEntry * a1) { u16 i; u16 *r4; u16 r6 = 0; u16 r9 = 0; - memset(a1, 0, 32 * sizeof(struct UnkStruct_203AE98)); + memset(a1, 0, 32 * sizeof(struct QuestLogEntry)); for (i = 0; i < NELEMS(gUnknown_203AE0C); i++) { gUnknown_203AE0C[i] = NULL; @@ -951,7 +951,7 @@ static void QuestLog_StartFinalScene(void) SetMainCallback2(sub_8057430); gFieldCallback2 = sub_8111F60; FreeAllWindowBuffers(); - gQuestLogState = 3; + gQuestLogState = QL_STATE_3; sQuestLogCB = NULL; } @@ -1077,7 +1077,7 @@ static u8 sub_8111BD4(void) bool8 sub_8111C2C(void) { - if (gQuestLogState != 2) + if (gQuestLogState != QL_STATE_2) return FALSE; if (gUnknown_3005E88 == 0 || gUnknown_203AE94.unk_0_0 == 1 || gUnknown_203AE94.unk_0_0 == 2) return TRUE; @@ -1112,7 +1112,7 @@ bool8 sub_8111CD0(void) void sub_8111CF0(void) { - if (gQuestLogState == 2) + if (gQuestLogState == QL_STATE_2) DrawPreviouslyOnQuestHeader(sNumScenes); } @@ -1127,9 +1127,9 @@ static void DrawQuestLogSceneDescription(void) numLines++; } - PutWindowTilemap(gUnknown_203ADFE[2]); - sub_8111D90(gUnknown_203ADFE[2]); - AddTextPrinterParameterized4(gUnknown_203ADFE[2], 2, 2, sQuestLogTextLineYCoords[numLines], 1, 0, sTextColors, 0, gStringVar4); + PutWindowTilemap(sQuestLogHeaderWindowIds[2]); + sub_8111D90(sQuestLogHeaderWindowIds[2]); + AddTextPrinterParameterized4(sQuestLogHeaderWindowIds[2], 2, 2, sQuestLogTextLineYCoords[numLines], 1, 0, sTextColors, 0, gStringVar4); ScheduleBgCopyTilemapToVram(0); } @@ -1172,11 +1172,11 @@ static void sub_8111D90(u8 a0) static void QuestLog_CloseTextWindow(void) { - ClearWindowTilemap(gUnknown_203ADFE[2]); - FillWindowPixelRect(gUnknown_203ADFE[2], 15, 0, 0, 0xf0, 0x30); - CopyWindowToVram(gUnknown_203ADFE[2], 2); - PutWindowTilemap(gUnknown_203ADFE[1]); - CopyWindowToVram(gUnknown_203ADFE[1], 1); + ClearWindowTilemap(sQuestLogHeaderWindowIds[2]); + FillWindowPixelRect(sQuestLogHeaderWindowIds[2], 15, 0, 0, 0xf0, 0x30); + CopyWindowToVram(sQuestLogHeaderWindowIds[2], 2); + PutWindowTilemap(sQuestLogHeaderWindowIds[1]); + CopyWindowToVram(sQuestLogHeaderWindowIds[1], 1); } static void QuestLog_SkipToEndOfPlayback(s8 delay) @@ -1194,7 +1194,7 @@ static void QuestLog_WaitFadeAndCancelPlayback(void) { if (gSaveBlock1Ptr->questLog[sCurrentSceneNum].unk_000 == 0) break; - sub_811175C(sCurrentSceneNum, gUnknown_203AE98); + sub_811175C(sCurrentSceneNum, sQuestLogSceneRecordBuffer); } gUnknown_3005E88 = 0; QuestLog_StartFinalScene(); @@ -1203,7 +1203,7 @@ static void QuestLog_WaitFadeAndCancelPlayback(void) void sub_8111F14(void) { - if (gQuestLogState == 3) + if (gQuestLogState == QL_STATE_3) gUnknown_203AE90 = AllocZeroed(0x200 * sizeof(u16)); } @@ -1288,7 +1288,7 @@ static void Task_EndQuestLog(u8 taskId) gDisableMapMusicChangeOnMapLoad = 0; Overworld_PlaySpecialMapMusic(); sub_811229C(); - FillWindowPixelRect(gUnknown_203ADFE[0], 0xF, 0, 0, gUnknown_845661C[0].width * 8, gUnknown_845661C[0].height * 8); + FillWindowPixelRect(sQuestLogHeaderWindowIds[0], 0xF, 0, 0, sQuestLogHeaderWindowTemplates[0].width * 8, sQuestLogHeaderWindowTemplates[0].height * 8); tState++; break; case 1: @@ -1296,9 +1296,9 @@ static void Task_EndQuestLog(u8 taskId) { for (i = 0; i < 3; i++) { - ClearWindowTilemap(gUnknown_203ADFE[i]); - CopyWindowToVram(gUnknown_203ADFE[i], 1); - RemoveWindow(gUnknown_203ADFE[i]); + ClearWindowTilemap(sQuestLogHeaderWindowIds[i]); + CopyWindowToVram(sQuestLogHeaderWindowIds[i], 1); + RemoveWindow(sQuestLogHeaderWindowIds[i]); } tTimer = 0; tState++; @@ -1339,10 +1339,10 @@ static bool8 sub_81121D8(u8 taskId) sub_80716F8(gPlttBufferUnfaded + 0x01, gPlttBufferFaded + 0x01, 0xDF, 0x0F - data[1]); sub_80716F8(gPlttBufferUnfaded + 0x100, gPlttBufferFaded + 0x100, 0x100, 0x0F - data[1]); - FillWindowPixelRect(gUnknown_203ADFE[0], 0x00, 0, gUnknown_845661C[0].height * 8 - 1 - data[1], gUnknown_845661C[0].width * 8, 1); - FillWindowPixelRect(gUnknown_203ADFE[1], 0x00, 0, data[1], gUnknown_845661C[1].width * 8, 1); - CopyWindowToVram(gUnknown_203ADFE[0], 2); - CopyWindowToVram(gUnknown_203ADFE[1], 2); + FillWindowPixelRect(sQuestLogHeaderWindowIds[0], 0x00, 0, sQuestLogHeaderWindowTemplates[0].height * 8 - 1 - data[1], sQuestLogHeaderWindowTemplates[0].width * 8, 1); + FillWindowPixelRect(sQuestLogHeaderWindowIds[1], 0x00, 0, data[1], sQuestLogHeaderWindowTemplates[1].width * 8, 1); + CopyWindowToVram(sQuestLogHeaderWindowIds[0], 2); + CopyWindowToVram(sQuestLogHeaderWindowIds[1], 2); data[1]++; return FALSE; } @@ -1362,9 +1362,9 @@ static void sub_811229C(void) void sub_811231C(void) { - if (gQuestLogState == 1) + if (gQuestLogState == QL_STATE_1) { - sub_8110E68(gUnknown_203AE98); + TryRecordQuestLogEntrySequence(sQuestLogSceneRecordBuffer); sub_8110E3C(); gQuestLogState = 0; sQuestLogCB = NULL; @@ -1376,9 +1376,9 @@ void sub_811231C(void) void sub_8112364(void) { - if (gUnknown_3005E88 && gQuestLogState == 1) + if (gUnknown_3005E88 && gQuestLogState == QL_STATE_1) { - sub_8110E68(gUnknown_203AE98); + TryRecordQuestLogEntrySequence(sQuestLogSceneRecordBuffer); sub_8113A1C(1); sub_8110E3C(); gUnknown_3005E88 = 0; @@ -1452,29 +1452,29 @@ void sub_81124EC(u8 a0, u8 a1, u8 a2, u8 a3) { if (!sub_8112CEC()) { - gUnknown_3005E94[sQuestLogIdx].unk_4 = gUnknown_203B01A; - gUnknown_3005E94[sQuestLogIdx].unk_6 = 0; - gUnknown_3005E94[sQuestLogIdx].unk_0 = a0; - gUnknown_3005E94[sQuestLogIdx].unk_1 = a1; - gUnknown_3005E94[sQuestLogIdx].unk_2 = a2; - gUnknown_3005E94[sQuestLogIdx].unk_3 = a3; - sQuestLogIdx++; - gUnknown_203B01A = 0; + sCurQuestLogEntry[sQuestLogCursor].unk_4 = sNextStepDelay; + sCurQuestLogEntry[sQuestLogCursor].unk_6 = 0; + sCurQuestLogEntry[sQuestLogCursor].unk_0 = a0; + sCurQuestLogEntry[sQuestLogCursor].unk_1 = a1; + sCurQuestLogEntry[sQuestLogCursor].unk_2 = a2; + sCurQuestLogEntry[sQuestLogCursor].unk_3 = a3; + sQuestLogCursor++; + sNextStepDelay = 0; } } void sub_8112588(u8 a0, u8 a1, u8 a2, u8 a3, u8 a4) { - if (!sub_8112D1C()) + if (!RecordHeadAtEndOfEntry()) { - gUnknown_3005E94[sQuestLogIdx].unk_4 = gUnknown_203B01A; - gUnknown_3005E94[sQuestLogIdx].unk_6 = 0; - gUnknown_3005E94[sQuestLogIdx].unk_0 = a0; - gUnknown_3005E94[sQuestLogIdx].unk_1 = a1; - gUnknown_3005E94[sQuestLogIdx].unk_2 = a2; - gUnknown_3005E94[sQuestLogIdx].unk_3 = a3; - sQuestLogIdx++; - gUnknown_203B01A = a4; + sCurQuestLogEntry[sQuestLogCursor].unk_4 = sNextStepDelay; + sCurQuestLogEntry[sQuestLogCursor].unk_6 = 0; + sCurQuestLogEntry[sQuestLogCursor].unk_0 = a0; + sCurQuestLogEntry[sQuestLogCursor].unk_1 = a1; + sCurQuestLogEntry[sQuestLogCursor].unk_2 = a2; + sCurQuestLogEntry[sQuestLogCursor].unk_3 = a3; + sQuestLogCursor++; + sNextStepDelay = a4; } } @@ -1482,75 +1482,75 @@ void sub_8112628(u8 a0) { if (!sub_8112CEC()) { - if (a0 != gUnknown_3005E94[gUnknown_203B01C].unk_3 || a0 > 3) + if (a0 != sCurQuestLogEntry[gUnknown_203B01C].unk_3 || a0 > 3) { - gUnknown_3005E94[sQuestLogIdx].unk_4 = gUnknown_203B01A; - gUnknown_3005E94[sQuestLogIdx].unk_6 = 0; - gUnknown_3005E94[sQuestLogIdx].unk_0 = 0; - gUnknown_3005E94[sQuestLogIdx].unk_3 = a0; - gUnknown_203B01C = sQuestLogIdx; - sQuestLogIdx++; - gUnknown_203B01A = 0; + sCurQuestLogEntry[sQuestLogCursor].unk_4 = sNextStepDelay; + sCurQuestLogEntry[sQuestLogCursor].unk_6 = 0; + sCurQuestLogEntry[sQuestLogCursor].unk_0 = 0; + sCurQuestLogEntry[sQuestLogCursor].unk_3 = a0; + gUnknown_203B01C = sQuestLogCursor; + sQuestLogCursor++; + sNextStepDelay = 0; } } } void sub_81126AC(u8 a0, u8 a1) { - if (!sub_8112D1C()) + if (!RecordHeadAtEndOfEntry()) { - gUnknown_3005E94[sQuestLogIdx].unk_4 = gUnknown_203B01A; - gUnknown_3005E94[sQuestLogIdx].unk_6 = 0; - gUnknown_3005E94[sQuestLogIdx].unk_0 = 0; - gUnknown_3005E94[sQuestLogIdx].unk_3 = a0; - gUnknown_203B01C = sQuestLogIdx; - sQuestLogIdx++; - gUnknown_203B01A = a1; + sCurQuestLogEntry[sQuestLogCursor].unk_4 = sNextStepDelay; + sCurQuestLogEntry[sQuestLogCursor].unk_6 = 0; + sCurQuestLogEntry[sQuestLogCursor].unk_0 = 0; + sCurQuestLogEntry[sQuestLogCursor].unk_3 = a0; + gUnknown_203B01C = sQuestLogCursor; + sQuestLogCursor++; + sNextStepDelay = a1; } } -void sub_8112720(u8 a0) +void sub_8112720(u8 movementActionId) { - if (!sub_8112D1C()) + if (!RecordHeadAtEndOfEntry()) { - gUnknown_3005E94[sQuestLogIdx].unk_4 = gUnknown_203B01A; - gUnknown_3005E94[sQuestLogIdx].unk_6 = 1; - gUnknown_3005E94[sQuestLogIdx].unk_0 = 0; - gUnknown_3005E94[sQuestLogIdx].unk_3 = a0; - sQuestLogIdx++; - gUnknown_203B01A = 0; + sCurQuestLogEntry[sQuestLogCursor].unk_4 = sNextStepDelay; + sCurQuestLogEntry[sQuestLogCursor].unk_6 = 1; + sCurQuestLogEntry[sQuestLogCursor].unk_0 = 0; + sCurQuestLogEntry[sQuestLogCursor].unk_3 = movementActionId; + sQuestLogCursor++; + sNextStepDelay = 0; } } -void sub_811278C(u8 a0, u8 a1) +void sub_811278C(u8 movementActionId, u8 duration) { - if (!sub_8112D1C()) + if (!RecordHeadAtEndOfEntry()) { - gUnknown_3005E94[sQuestLogIdx].unk_4 = gUnknown_203B01A; - gUnknown_3005E94[sQuestLogIdx].unk_6 = 1; - gUnknown_3005E94[sQuestLogIdx].unk_0 = 0; - gUnknown_3005E94[sQuestLogIdx].unk_3 = a0; - sQuestLogIdx++; - gUnknown_203B01A = a1; + sCurQuestLogEntry[sQuestLogCursor].unk_4 = sNextStepDelay; + sCurQuestLogEntry[sQuestLogCursor].unk_6 = 1; + sCurQuestLogEntry[sQuestLogCursor].unk_0 = 0; + sCurQuestLogEntry[sQuestLogCursor].unk_3 = movementActionId; + sQuestLogCursor++; + sNextStepDelay = duration; } } void sub_81127F8(struct UnkStruct_3005E90 * a0) { - if (sQuestLogIdx < sNumQuestLogs) + if (sQuestLogCursor < sNumEventsInLogEntry) { u32 r2 = *(u32 *)a0 & 0x00FF00F3; - gUnknown_3005E94[sQuestLogIdx].unk_4 = gUnknown_203B01A; - gUnknown_3005E94[sQuestLogIdx].unk_6 = 2; - gUnknown_3005E94[sQuestLogIdx].unk_0 = r2; - gUnknown_3005E94[sQuestLogIdx].unk_1 = r2 >> 8; - gUnknown_3005E94[sQuestLogIdx].unk_2 = r2 >> 16; - gUnknown_3005E94[sQuestLogIdx].unk_3 = r2 >> 24; - sQuestLogIdx++; + sCurQuestLogEntry[sQuestLogCursor].unk_4 = sNextStepDelay; + sCurQuestLogEntry[sQuestLogCursor].unk_6 = 2; + sCurQuestLogEntry[sQuestLogCursor].unk_0 = r2; + sCurQuestLogEntry[sQuestLogCursor].unk_1 = r2 >> 8; + sCurQuestLogEntry[sQuestLogCursor].unk_2 = r2 >> 16; + sCurQuestLogEntry[sQuestLogCursor].unk_3 = r2 >> 24; + sQuestLogCursor++; if (ScriptContext2_IsEnabled()) - gUnknown_203B01A = TRUE; + sNextStepDelay = TRUE; else - gUnknown_203B01A = FALSE; + sNextStepDelay = FALSE; } } @@ -1580,10 +1580,10 @@ void sub_81128BC(u8 a0) gUnknown_3005E88 = 3; else if (r1 == 2) { - gUnknown_3005E94[sQuestLogIdx].unk_4 = gUnknown_203B01A; - gUnknown_3005E94[sQuestLogIdx].unk_6 = 3; - sQuestLogIdx++; - gUnknown_203B01A = 0; + sCurQuestLogEntry[sQuestLogCursor].unk_4 = sNextStepDelay; + sCurQuestLogEntry[sQuestLogCursor].unk_6 = 3; + sQuestLogCursor++; + sNextStepDelay = 0; gUnknown_3005E88 = 4; } break; @@ -1596,68 +1596,68 @@ void sub_81128BC(u8 a0) } } -static void sub_8112940(u8 a0, struct UnkStruct_203AE98 *a1, u16 a2) +static void SetUpQuestLogEntry(u8 kind, struct QuestLogEntry *entry, u16 size) { - s32 i; + int i; - switch (a0) + switch (kind) { default: gUnknown_3005E88 = 0; break; case 1: - gUnknown_3005E94 = a1; - sNumQuestLogs = a2 / 8; - for (i = 0; i < 0x40; i++) + sCurQuestLogEntry = entry; + sNumEventsInLogEntry = size / sizeof(*sCurQuestLogEntry); + for (i = 0; i < (s32)NELEMS(sMovementScripts); i++) { sMovementScripts[i][0] |= 0xFF; sMovementScripts[i][1] |= 0xFF; } - sQuestLogIdx = 0; + sQuestLogCursor = 0; gUnknown_203B01C = 0; gUnknown_3005E90 = (struct UnkStruct_3005E90){}; - gUnknown_203B01A = gUnknown_3005E94[sQuestLogIdx].unk_4; - sMovementScripts[0][0] = gUnknown_3005E94[sQuestLogIdx].unk_3; + sNextStepDelay = sCurQuestLogEntry[sQuestLogCursor].unk_4; + sMovementScripts[0][0] = sCurQuestLogEntry[sQuestLogCursor].unk_3; sMovementScripts[0][1] = 0xFF; gUnknown_3005E88 = 1; break; case 2: - gUnknown_3005E94 = a1; - sNumQuestLogs = a2 / 8; - for (i = 0; i < sNumQuestLogs; i++) + sCurQuestLogEntry = entry; + sNumEventsInLogEntry = size / sizeof(*sCurQuestLogEntry); + for (i = 0; i < sNumEventsInLogEntry; i++) { - gUnknown_3005E94[i] = (struct UnkStruct_203AE98){ 0, 0, 0, 0, 0xFFFF, 0xFF }; + sCurQuestLogEntry[i] = (struct QuestLogEntry){ 0, 0, 0, 0, 0xFFFF, 0xFF }; } - sQuestLogIdx = 0; - gUnknown_203B01A = 0; - gUnknown_3005E94[sQuestLogIdx].unk_4 = 0; - gUnknown_3005E94[sQuestLogIdx].unk_6 = 0; - gUnknown_3005E94[sQuestLogIdx].unk_0 = 0; + sQuestLogCursor = 0; + sNextStepDelay = 0; + sCurQuestLogEntry[sQuestLogCursor].unk_4 = 0; + sCurQuestLogEntry[sQuestLogCursor].unk_6 = 0; + sCurQuestLogEntry[sQuestLogCursor].unk_0 = 0; switch (GetPlayerFacingDirection()) { case DIR_NONE: case DIR_SOUTH: - gUnknown_3005E94[sQuestLogIdx].unk_3 = DIR_SOUTH - 1; + sCurQuestLogEntry[sQuestLogCursor].unk_3 = DIR_SOUTH - 1; break; case DIR_EAST: - gUnknown_3005E94[sQuestLogIdx].unk_3 = DIR_EAST - 1; + sCurQuestLogEntry[sQuestLogCursor].unk_3 = DIR_EAST - 1; break; case DIR_NORTH: - gUnknown_3005E94[sQuestLogIdx].unk_3 = DIR_NORTH - 1; + sCurQuestLogEntry[sQuestLogCursor].unk_3 = DIR_NORTH - 1; break; case DIR_WEST: - gUnknown_3005E94[sQuestLogIdx].unk_3 = DIR_WEST - 1; + sCurQuestLogEntry[sQuestLogCursor].unk_3 = DIR_WEST - 1; break; } gUnknown_203B01C = 0; - sQuestLogIdx++; - gUnknown_3005E94[sQuestLogIdx].unk_4 = 0; - gUnknown_3005E94[sQuestLogIdx].unk_6 = 2; - gUnknown_3005E94[sQuestLogIdx].unk_0 = 0; - gUnknown_3005E94[sQuestLogIdx].unk_1 = 0; - gUnknown_3005E94[sQuestLogIdx].unk_2 = 0; - gUnknown_3005E94[sQuestLogIdx].unk_3 = 0; - sQuestLogIdx++; + sQuestLogCursor++; + sCurQuestLogEntry[sQuestLogCursor].unk_4 = 0; + sCurQuestLogEntry[sQuestLogCursor].unk_6 = 2; + sCurQuestLogEntry[sQuestLogCursor].unk_0 = 0; + sCurQuestLogEntry[sQuestLogCursor].unk_1 = 0; + sCurQuestLogEntry[sQuestLogCursor].unk_2 = 0; + sCurQuestLogEntry[sQuestLogCursor].unk_3 = 0; + sQuestLogCursor++; gUnknown_3005E88 = 2; break; } @@ -1672,22 +1672,22 @@ void sub_8112B3C(void) case 1: if (!sub_8112CEC()) { - if (gUnknown_203B01A != 0) - gUnknown_203B01A--; + if (sNextStepDelay != 0) + sNextStepDelay--; else { do { - switch (gUnknown_3005E94[sQuestLogIdx].unk_6) + switch (sCurQuestLogEntry[sQuestLogCursor].unk_6) { case 0: - sMovementScripts[gUnknown_3005E94[sQuestLogIdx].unk_0][0] = gUnknown_3005E94[sQuestLogIdx].unk_3; + sMovementScripts[sCurQuestLogEntry[sQuestLogCursor].unk_0][0] = sCurQuestLogEntry[sQuestLogCursor].unk_3; break; case 1: - sMovementScripts[gUnknown_3005E94[sQuestLogIdx].unk_0][1] = gUnknown_3005E94[sQuestLogIdx].unk_3; + sMovementScripts[sCurQuestLogEntry[sQuestLogCursor].unk_0][1] = sCurQuestLogEntry[sQuestLogCursor].unk_3; break; case 2: - *(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)); + *(u32 *)&gUnknown_3005E90 = ((sCurQuestLogEntry[sQuestLogCursor].unk_3 << 24) | (sCurQuestLogEntry[sQuestLogCursor].unk_2 << 16) | (sCurQuestLogEntry[sQuestLogCursor].unk_1 << 8) | (sCurQuestLogEntry[sQuestLogCursor].unk_0 << 0)); break; case 3: gUnknown_3005E88 = 3; @@ -1700,17 +1700,17 @@ void sub_8112B3C(void) } if (gUnknown_3005E88 == 0) break; - if (++sQuestLogIdx >= sNumQuestLogs) + if (++sQuestLogCursor >= sNumEventsInLogEntry) { gUnknown_3005E88 = 0; break; } - gUnknown_203B01A = gUnknown_3005E94[sQuestLogIdx].unk_4; + sNextStepDelay = sCurQuestLogEntry[sQuestLogCursor].unk_4; } while (gUnknown_3005E88 != 3 - && (gUnknown_203B01A == 0 || gUnknown_203B01A == 0xFFFF)); + && (sNextStepDelay == 0 || sNextStepDelay == 0xFFFF)); } } - else if (sQuestLogIdx >= sNumQuestLogs) + else if (sQuestLogCursor >= sNumEventsInLogEntry) { gUnknown_3005E88 = 0; } @@ -1718,8 +1718,8 @@ void sub_8112B3C(void) case 2: if (ScriptContext2_IsEnabled() != TRUE) { - gUnknown_203B01A++; - if (sQuestLogIdx >= sNumQuestLogs) + sNextStepDelay++; + if (sQuestLogCursor >= sNumEventsInLogEntry) gUnknown_3005E88 = 0; } break; @@ -1732,7 +1732,7 @@ void sub_8112B3C(void) void sub_8112C9C(void) { - gUnknown_203B01A++; + sNextStepDelay++; } u8 sub_8112CAC(void) @@ -1753,14 +1753,14 @@ u8 sub_8112CAC(void) static bool8 sub_8112CEC(void) { - if (sQuestLogIdx >= sNumQuestLogs || ScriptContext2_IsEnabled() == TRUE) + if (sQuestLogCursor >= sNumEventsInLogEntry || ScriptContext2_IsEnabled() == TRUE) return TRUE; return FALSE; } -static bool8 sub_8112D1C(void) +static bool8 RecordHeadAtEndOfEntry(void) { - if (sQuestLogIdx >= sNumQuestLogs) + if (sQuestLogCursor >= sNumEventsInLogEntry) return TRUE; return FALSE; } @@ -1774,9 +1774,9 @@ static const struct UnkStruct_300201C gUnknown_84566A4 = { void * QuestLogGetFlagOrVarPtr(bool8 isFlag, u16 idx) { void * response; - if (sQuestLogIdx == 0) + if (sQuestLogCursor == 0) return NULL; - if (sQuestLogIdx >= sNumQuestLogs) + if (sQuestLogCursor >= sNumEventsInLogEntry) return NULL; if (sFlagOrVarPlayhead >= sNumFlagsOrVars) return NULL; @@ -1792,9 +1792,9 @@ void * QuestLogGetFlagOrVarPtr(bool8 isFlag, u16 idx) void QuestLogSetFlagOrVar(bool8 isFlag, u16 idx, u16 value) { - if (sQuestLogIdx == 0) + if (sQuestLogCursor == 0) return; - if (sQuestLogIdx >= sNumQuestLogs) + if (sQuestLogCursor >= sNumEventsInLogEntry) return; if (sFlagOrVarPlayhead >= sNumFlagsOrVars) return; @@ -1817,7 +1817,7 @@ void sub_8112E3C(u8 a0, struct UnkStruct_300201C * a1, u16 a2) sFlagOrVarPlayhead = 0; if (a0 == 2) { - for (i = 0; i < sNumQuestLogs; i++) + for (i = 0; i < sNumEventsInLogEntry; i++) { sFlagOrVarRecords[i] = gUnknown_84566A4; } @@ -2395,7 +2395,7 @@ void SetQuestLogEvent(u16 eventId, const u16 *eventData) return; } sub_811381C(); - if (gQuestLogState == 2) + if (gQuestLogState == QL_STATE_2) return; if (!IS_VALID_QL_EVENT(eventId)) @@ -2431,7 +2431,7 @@ void SetQuestLogEvent(u16 eventId, const u16 *eventData) { if (sub_81153A8(eventId, eventData) == FALSE) return; - sub_8110AEC(eventId); + StartRecordingQuestLogEntry(eventId); } } else if (eventId == QL_EVENT_OBTAINED_ITEM) @@ -2513,10 +2513,10 @@ bool8 sub_8113748(void) if (InQuestLogDisabledLocation() != TRUE) return FALSE; - if (gQuestLogState == 2) + if (gQuestLogState == QL_STATE_2) return TRUE; - if (gQuestLogState == 1) + if (gQuestLogState == QL_STATE_1) sub_8112364(); return FALSE; @@ -2579,7 +2579,7 @@ static u16 *sub_8113828(u16 eventId, const u16 *eventData) if (sub_81153A8(eventId, eventData) == FALSE) return NULL; - sub_8110AEC(eventId); + StartRecordingQuestLogEntry(eventId); sub_8113B94(eventId); if (eventId == QL_EVENT_DEFEATED_WILD_MON) @@ -2619,7 +2619,7 @@ void sub_811390C(void) { u16 *resp; gUnknown_203B04A = 0; - sub_8110AEC(gUnknown_203B024.unk_00); + StartRecordingQuestLogEntry(gUnknown_203B024.unk_00); resp = sQuestLogStorageCBs[gUnknown_203B024.unk_00](gUnknown_203AE08, gUnknown_203B024.unk_04); gUnknown_203AE08 = resp; sub_81138F8(); @@ -2651,7 +2651,7 @@ void sub_81139BC(void) if (gUnknown_3005E88 == 0) { gUnknown_203B04A = 0; - sub_8110AEC(gUnknown_203B024.unk_00); + StartRecordingQuestLogEntry(gUnknown_203B024.unk_00); } sub_8113B94(gUnknown_203B024.unk_00); resp = sQuestLogStorageCBs[gUnknown_203B024.unk_00](gUnknown_203AE08, gUnknown_203B024.unk_04); @@ -2665,7 +2665,7 @@ void sub_81139BC(void) static void sub_8113A1C(u16 a0) { gUnknown_203AE08 = sub_8113C5C(gUnknown_203AE08, a0); - sQuestLogIdx++; + sQuestLogCursor++; } static bool8 IsQuestLogEventWithSpecialEncounterSpecies(u16 eventId, const u16 *eventData) @@ -2806,7 +2806,7 @@ static bool8 sub_8113AE8(const u16 *a0) const u16 *r0 = a0; #endif - if (r0 == NULL || r0[1] > sQuestLogIdx) + if (r0 == NULL || r0[1] > sQuestLogCursor) return FALSE; sQuestLogEventTextBufferCBs[a0[0] & 0xFFF](a0); @@ -2836,11 +2836,11 @@ static void sub_8113B88(void) static void sub_8113B94(u16 eventId) { - if (gUnknown_203B044.unk_0 != (u8)eventId || gUnknown_203B044.unk_2 != sQuestLogIdx) + if (gUnknown_203B044.unk_0 != (u8)eventId || gUnknown_203B044.unk_2 != sQuestLogCursor) { gUnknown_203B044.unk_0 = eventId; gUnknown_203B044.unk_1 = 0; - gUnknown_203B044.unk_2 = sQuestLogIdx; + gUnknown_203B044.unk_2 = sQuestLogCursor; } else if (gUnknown_203B044.unk_1 < 5) gUnknown_203B044.unk_1++; @@ -2848,7 +2848,7 @@ static void sub_8113B94(u16 eventId) static void sub_8113BD8(void) { - gUnknown_203B049 = 0; + sNewlyEnteredMap = FALSE; gUnknown_203B04A = 0; gUnknown_203B04B = FALSE; } @@ -2861,7 +2861,7 @@ static u16 *sub_8113BF4(u16 *a0) return a0 + 1; } -static u16 *sub_8113C20(u16 *a0, struct UnkStruct_203AE98 * a1) +static u16 *sub_8113C20(u16 *a0, struct QuestLogEntry * a1) { if (!sub_8110988(a0, sQuestLogEventCmdSizes[QL_EVENT_39])) return NULL; @@ -2883,7 +2883,7 @@ static u16 *sub_8113C5C(u16 *a0, u16 a1) return a0 + 2; } -static u16 *sub_8113C8C(u16 *a0, struct UnkStruct_203AE98 * a1) +static u16 *sub_8113C8C(u16 *a0, struct QuestLogEntry * a1) { if (!sub_8110988(a0, sQuestLogEventCmdSizes[QL_EVENT_41])) return NULL; @@ -2896,7 +2896,7 @@ static u16 *sub_8113C8C(u16 *a0, struct UnkStruct_203AE98 * a1) return a0 + 2; } -static u16 *sub_8113CC8(u16 *a0, struct UnkStruct_203AE98 * a1) +static u16 *sub_8113CC8(u16 *a0, struct QuestLogEntry * a1) { u8 *r6 = (u8 *)a0 + 4; @@ -2911,7 +2911,7 @@ static u16 *sub_8113CC8(u16 *a0, struct UnkStruct_203AE98 * a1) return (u16 *)(r6 + 4); } -static u16 *sub_8113D08(u16 *a0, struct UnkStruct_203AE98 * a1) +static u16 *sub_8113D08(u16 *a0, struct QuestLogEntry * a1) { u8 *r6 = (u8 *)a0 + 4; @@ -2926,7 +2926,7 @@ static u16 *sub_8113D08(u16 *a0, struct UnkStruct_203AE98 * a1) return (u16 *)(r6 + 4); } -static u16 *sub_8113D48(u16 *a0, struct UnkStruct_203AE98 * a1) +static u16 *sub_8113D48(u16 *a0, struct QuestLogEntry * a1) { u16 *r4 = a0; u8 *r6 = (u8 *)a0 + 4; @@ -2945,7 +2945,7 @@ static u16 *sub_8113D48(u16 *a0, struct UnkStruct_203AE98 * a1) return (u16 *)(r6 + 4); } -static u16 *sub_8113D94(u16 *a0, struct UnkStruct_203AE98 * a1) +static u16 *sub_8113D94(u16 *a0, struct QuestLogEntry * a1) { u16 *r5 = a0; u8 *r6 = (u8 *)a0 + 4; @@ -2999,7 +2999,7 @@ u16 *sub_8113DE0(u16 eventId, u16 *a1) r1 = gUnknown_203B044.unk_1; r5[0] = eventId + (r1 << 12); - r5[1] = sQuestLogIdx; + r5[1] = sQuestLogCursor; r5 = (void *)r5 + (r1 * cmdSize + 4); return r5; } @@ -3244,7 +3244,7 @@ static u16 *BufferQuestLogData_UsedPkmnCenter(u16 *a0, const u16 *eventData) return NULL; r4[0] = QL_EVENT_USED_PKMN_CENTER; - r4[1] = sQuestLogIdx; + r4[1] = sQuestLogCursor; return r4 + 2; } @@ -3260,7 +3260,7 @@ static u16 *BufferQuestLogData_LinkTraded(u16 *a0, const u16 *eventData) u16 *r4 = a0 + 4; a0[0] = QL_EVENT_LINK_TRADED; - a0[1] = sQuestLogIdx; + a0[1] = sQuestLogCursor; a0[2] = eventData[0]; a0[3] = eventData[1]; eventData += 2; @@ -3305,7 +3305,7 @@ static const u8 *const sBattleOutcomeTexts[] = { static u16 *BufferQuestLogData_LinkBattledSingle(u16 *a0, const u16 *eventData) { a0[0] = QL_EVENT_LINK_BATTLED_SINGLE; - a0[1] = sQuestLogIdx; + a0[1] = sQuestLogCursor; *((u8 *)a0 + 4) = *((const u8 *)eventData + 0); memcpy((u8 *)a0 + 5, (const u8 *)eventData + 1, PLAYER_NAME_LENGTH); a0 += 6; @@ -3329,7 +3329,7 @@ static const u16 *BufferQuestLogText_LinkBattledSingle(const u16 *a0) static u16 *BufferQuestLogData_LinkBattledDouble(u16 *a0, const u16 *eventData) { a0[0] = QL_EVENT_LINK_BATTLED_DOUBLE; - a0[1] = sQuestLogIdx; + a0[1] = sQuestLogCursor; *((u8 *)a0 + 4) = *((const u8 *)eventData + 0); memcpy((u8 *)a0 + 5, (const u8 *)eventData + 1, PLAYER_NAME_LENGTH); a0 += 6; @@ -3353,7 +3353,7 @@ static const u16 *BufferQuestLogText_LinkBattledDouble(const u16 *a0) static u16 *BufferQuestLogData_LinkBattledMulti(u16 *a0, const u16 *eventData) { a0[0] = QL_EVENT_LINK_BATTLED_MULTI; - a0[1] = sQuestLogIdx; + a0[1] = sQuestLogCursor; *((u8 *)a0 + 4) = *((const u8 *)eventData + 0); memcpy((u8 *)a0 + 5, (const u8 *)eventData + 1, PLAYER_NAME_LENGTH); memcpy((u8 *)a0 + 12, (const u8 *)eventData + 8, PLAYER_NAME_LENGTH); @@ -3388,7 +3388,7 @@ static const u16 *BufferQuestLogText_LinkBattledMulti(const u16 *a0) static u16 *BufferQuestLogData_UsedUnionRoom(u16 *a0, const u16 *eventData) { a0[0] = QL_EVENT_USED_UNION_ROOM; - a0[1] = sQuestLogIdx; + a0[1] = sQuestLogCursor; return a0 + 2; } @@ -3402,7 +3402,7 @@ static const u16 *BufferQuestLogText_UsedUnionRoom(const u16 *a0) static u16 *BufferQuestLogData_UsedUnionRoomChat(u16 *a0, const u16 *eventData) { a0[0] = QL_EVENT_USED_UNION_ROOM_CHAT; - a0[1] = sQuestLogIdx; + a0[1] = sQuestLogCursor; return a0 + 2; } @@ -3417,7 +3417,7 @@ static u16 *BufferQuestLogData_LinkTradedUnionRoom(u16 *a0, const u16 *eventData { u8 *r4 = (u8 *)(a0 + 4); a0[0] = QL_EVENT_LINK_TRADED_UNION; - a0[1] = sQuestLogIdx; + a0[1] = sQuestLogCursor; a0[2] = eventData[0]; a0[3] = eventData[1]; memcpy(r4, eventData + 2, PLAYER_NAME_LENGTH); @@ -3441,7 +3441,7 @@ static const u16 *BufferQuestLogText_LinkTradedUnionRoom(const u16 *a0) static u16 *BufferQuestLogData_LinkBattledUnionRoom(u16 *a0, const u16 *eventData) { a0[0] = QL_EVENT_LINK_BATTLED_UNION; - a0[1] = sQuestLogIdx; + a0[1] = sQuestLogCursor; *(u8 *)&a0[2] = *(const u8 *)&eventData[0]; memcpy((u8 *)a0 + 5, (const u8 *)eventData + 1, PLAYER_NAME_LENGTH); a0 += 6; @@ -3743,7 +3743,7 @@ static u16 *BufferQuestLogData_DefeatedWildMon(u16 *a0, const u16 *eventData) if (r5[0] == 0 && r5[1] == 0) { r4[0] = QL_EVENT_DEFEATED_WILD_MON; - r4[1] = sQuestLogIdx; + r4[1] = sQuestLogCursor; } if (eventData[0]) r4[2] = eventData[0]; @@ -3847,7 +3847,7 @@ static u16 *BufferQuestLogData_DefeatedChampion(u16 *a0, const u16 *eventData) if (!sub_8110944(a0, sQuestLogEventCmdSizes[QL_EVENT_DEFEATED_CHAMPION])) return NULL; a0[0] = 0x2021; - a0[1] = sQuestLogIdx; + a0[1] = sQuestLogCursor; a0[2] = eventData[1]; a0[3] = eventData[2]; *((u8 *)a0 + 8) = *((const u8 *)eventData + 6); @@ -4299,7 +4299,7 @@ void QuestLog_RecordEnteredMap(u16 worldMapFlag) { s32 i; - if (gQuestLogState == 2 || gQuestLogState == 3) + if (gQuestLogState == QL_STATE_2 || gQuestLogState == QL_STATE_3) return; for (i = 0; i < (int)NELEMS(sQuestLogWorldMapFlags); i++) @@ -4308,13 +4308,13 @@ void QuestLog_RecordEnteredMap(u16 worldMapFlag) { if (!FlagGet(worldMapFlag)) { - gUnknown_203B049 = TRUE; + sNewlyEnteredMap = TRUE; break; } else { - gUnknown_203B049 += 0; - gUnknown_203B049 = FALSE; + sNewlyEnteredMap += 0; + sNewlyEnteredMap = FALSE; break; } } @@ -4324,13 +4324,13 @@ void QuestLog_RecordEnteredMap(u16 worldMapFlag) void sub_8115798(void) { u16 sp0; - if (gQuestLogState != 2 && gQuestLogState != 3) + if (gQuestLogState != QL_STATE_2 && gQuestLogState != QL_STATE_3) { - if (gUnknown_203B049) + if (sNewlyEnteredMap) { sp0 = gMapHeader.regionMapSectionId; SetQuestLogEvent(QL_EVENT_ARRIVED, &sp0); - gUnknown_203B049 = FALSE; + sNewlyEnteredMap = FALSE; } } } diff --git a/src/quest_log_objects.c b/src/quest_log_objects.c index 2c17987e8..64b4b7fe5 100644 --- a/src/quest_log_objects.c +++ b/src/quest_log_objects.c @@ -45,7 +45,7 @@ void SetQuestLogObjectEventsData(struct QuestLog * questLog) } } -void sub_815A1F8(const struct QuestLog * questLog, const struct ObjectEventTemplate * templates) +void SetSav1ObjectEventsFromQuestLog(const struct QuestLog * questLog, const struct ObjectEventTemplate * templates) { u32 i, j; const struct QuestLogObjectEvent * questLogObjectEvents = questLog->unk_008; @@ -131,7 +131,7 @@ void sub_815A1F8(const struct QuestLog * questLog, const struct ObjectEventTempl void sub_815A540(void) { - if (gQuestLogState == 2) + if (gQuestLogState == QL_STATE_2) { s16 x, y; |