More quest log doccing
This commit is contained in:
@@ -544,42 +544,12 @@ struct QuestLogNPCData
|
||||
u32 movementType:8;
|
||||
};
|
||||
|
||||
struct UnkStruct_203B024
|
||||
{
|
||||
u16 unk_00;
|
||||
u16 unk_02;
|
||||
u16 unk_04[14];
|
||||
};
|
||||
|
||||
union QuestLogScene
|
||||
{
|
||||
u8 allocation[32];
|
||||
u16 ident;
|
||||
};
|
||||
|
||||
typedef union QuestLogScene QuestLogScene;
|
||||
|
||||
// This name is a complete guess and may change.
|
||||
|
||||
#define BERRY_TREES_COUNT 128
|
||||
#define FLAGS_COUNT 288 // 300
|
||||
#define VARS_COUNT 256
|
||||
#define MAIL_COUNT (PARTY_SIZE + 10)
|
||||
#define PC_MAIL_NUM(i) (PARTY_SIZE + (i))
|
||||
|
||||
// Declare here so that it can be recursively referenced.
|
||||
union QuestLogMovement;
|
||||
|
||||
// Define here
|
||||
union QuestLogMovement
|
||||
{
|
||||
u16 ident_raw;
|
||||
struct {
|
||||
u16 ident:12;
|
||||
u16 flags:4;
|
||||
} ident_struct;
|
||||
};
|
||||
|
||||
struct QuestLogObjectEvent
|
||||
{
|
||||
/*0x00*/ u8 active:1;
|
||||
|
||||
+3
-3
@@ -18,7 +18,7 @@ struct QuestLogEntry
|
||||
|
||||
struct UnkStruct_203B044
|
||||
{
|
||||
u8 unk_0;
|
||||
u8 id;
|
||||
u8 unk_1;
|
||||
u16 unk_2;
|
||||
};
|
||||
@@ -34,7 +34,7 @@ extern u16 sQuestLogCursor;
|
||||
|
||||
void sub_8112720(u8);
|
||||
void SetQuestLogEvent(u16, const u16 *);
|
||||
void sub_811539C(void);
|
||||
void SetQLPlayedTheSlots(void);
|
||||
void QuestLog_RecordEnteredMap(u16);
|
||||
u8 sub_8112CAC(void);
|
||||
bool8 QuestLog_SchedulePlaybackCB(void (*func)(void));
|
||||
@@ -47,7 +47,7 @@ void TrySetUpQuestLogScenes_ElseContinueFromSave(u8 taskId);
|
||||
void SaveQuestLogData(void);
|
||||
void QuestLog_CutRecording(void);
|
||||
u8 sub_8112CAC(void);
|
||||
void sub_81138F8(void);
|
||||
void ResetDeferredLinkEvent(void);
|
||||
void FinishRecordingQuestLogScene(void);
|
||||
void sub_81139BC(void);
|
||||
void *QuestLogGetFlagOrVarPtr(bool8 isFlag, u16 idx);
|
||||
|
||||
+1
-1
@@ -952,7 +952,7 @@ static void CB2_EndRematchBattle(void)
|
||||
SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic);
|
||||
SetBattledTrainerFlag();
|
||||
sub_810CDE8();
|
||||
sub_81138F8();
|
||||
ResetDeferredLinkEvent();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+20
-20
@@ -65,8 +65,8 @@ struct UnkStruct_203AE94
|
||||
u8 playingEvent:2;
|
||||
u8 sceneEndMode:2;
|
||||
u8 cursor;
|
||||
u8 unk_2;
|
||||
u8 unk_3;
|
||||
u8 timer;
|
||||
u8 overlapTimer;
|
||||
};
|
||||
|
||||
struct UnkStruct_300201C
|
||||
@@ -124,8 +124,8 @@ static void QuestLog_AdvancePlayhead(void);
|
||||
static void QuestLog_StartFinalScene(void);
|
||||
static void Task_RunPlaybackCB(u8);
|
||||
static void QuestLog_PlayCurrentEvent(void);
|
||||
static void sub_8111B80(void);
|
||||
static u8 sub_8111BD4(void);
|
||||
static void HandleShowQuestLogMessage(void);
|
||||
static u8 GetQuestLogTextDisplayDuration(void);
|
||||
static void DrawQuestLogSceneDescription(void);
|
||||
static void sub_8111D90(u8);
|
||||
static void QuestLog_CloseTextWindow(void);
|
||||
@@ -138,7 +138,7 @@ static void Task_WaitAtEndOfQuestLog(u8);
|
||||
static void Task_EndQuestLog(u8);
|
||||
static bool8 sub_81121D8(u8);
|
||||
static void sub_811229C(void);
|
||||
static void sub_8112888(u8);
|
||||
static void TogglePlaybackStateForOverworldLock(u8);
|
||||
static void SetUpQuestLogEntry(u8, struct QuestLogEntry *, u16);
|
||||
static bool8 sub_8112CEC(void);
|
||||
static bool8 RecordHeadAtEndOfEntry(void);
|
||||
@@ -200,7 +200,7 @@ void ResetQuestLog(void)
|
||||
sEventRecordingPointer = NULL;
|
||||
gUnknown_203AE04 = NULL;
|
||||
sub_8113BD8();
|
||||
sub_81138F8();
|
||||
ResetDeferredLinkEvent();
|
||||
}
|
||||
|
||||
static void DestroySav1QuestLogEntry(u8 a0)
|
||||
@@ -894,49 +894,49 @@ static void QuestLog_PlayCurrentEvent(void)
|
||||
{
|
||||
if (sQuestLogCurrentScene.playbackSubstate == 1)
|
||||
{
|
||||
if (--sQuestLogCurrentScene.unk_2 != 0)
|
||||
if (--sQuestLogCurrentScene.timer != 0)
|
||||
return;
|
||||
sQuestLogCurrentScene.playbackSubstate = 0;
|
||||
sQuestLogCurrentScene.playingEvent = 1;
|
||||
sub_8112888(2);
|
||||
TogglePlaybackStateForOverworldLock(2);
|
||||
}
|
||||
|
||||
if (sQuestLogCurrentScene.playingEvent == 1)
|
||||
{
|
||||
if (++sQuestLogCurrentScene.unk_3 > 15)
|
||||
if (++sQuestLogCurrentScene.overlapTimer > 15)
|
||||
{
|
||||
QuestLog_CloseTextWindow();
|
||||
sQuestLogCurrentScene.playingEvent = 0;
|
||||
sQuestLogCurrentScene.unk_3 = 0;
|
||||
sQuestLogCurrentScene.overlapTimer = 0;
|
||||
}
|
||||
}
|
||||
if (sQuestLogCurrentScene.cursor < NELEMS(gUnknown_203AE0C))
|
||||
{
|
||||
if (sub_8113B44(gUnknown_203AE0C[sQuestLogCurrentScene.cursor]) == 1)
|
||||
sub_8111B80();
|
||||
HandleShowQuestLogMessage();
|
||||
else if (sub_8113AE8(gUnknown_203AE0C[sQuestLogCurrentScene.cursor]) == 1)
|
||||
sub_8111B80();
|
||||
HandleShowQuestLogMessage();
|
||||
}
|
||||
}
|
||||
|
||||
static void sub_8111B80(void)
|
||||
static void HandleShowQuestLogMessage(void)
|
||||
{
|
||||
if (sQuestLogCurrentScene.playbackSubstate == 0)
|
||||
{
|
||||
sQuestLogCurrentScene.playbackSubstate = 1;
|
||||
sQuestLogCurrentScene.playingEvent = 0;
|
||||
sQuestLogCurrentScene.unk_3 = 0;
|
||||
sQuestLogCurrentScene.unk_2 = sub_8111BD4();
|
||||
sQuestLogCurrentScene.overlapTimer = 0;
|
||||
sQuestLogCurrentScene.timer = GetQuestLogTextDisplayDuration();
|
||||
if (gUnknown_203B044.unk_2 == 0)
|
||||
sQuestLogCurrentScene.cursor++;
|
||||
if (sQuestLogCurrentScene.cursor > 32)
|
||||
return;
|
||||
DrawQuestLogSceneDescription();
|
||||
}
|
||||
sub_8112888(1);
|
||||
TogglePlaybackStateForOverworldLock(1); // lock
|
||||
}
|
||||
|
||||
static u8 sub_8111BD4(void)
|
||||
static u8 GetQuestLogTextDisplayDuration(void)
|
||||
{
|
||||
u16 i;
|
||||
u16 count = 0;
|
||||
@@ -1435,17 +1435,17 @@ void sub_81127F8(struct FieldInput * a0)
|
||||
}
|
||||
}
|
||||
|
||||
static void sub_8112888(u8 a0)
|
||||
static void TogglePlaybackStateForOverworldLock(u8 a0)
|
||||
{
|
||||
switch (a0)
|
||||
{
|
||||
case 1:
|
||||
if (gQuestLogPlaybackState == 1)
|
||||
gQuestLogPlaybackState = 3;
|
||||
gQuestLogPlaybackState = 3; // Message visible, overworld locked
|
||||
break;
|
||||
case 2:
|
||||
if (gQuestLogPlaybackState == 3)
|
||||
gQuestLogPlaybackState = 1;
|
||||
gQuestLogPlaybackState = 1; // Overworld unlocked
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
+81
-74
@@ -20,21 +20,27 @@
|
||||
#include "constants/items.h"
|
||||
#include "constants/region_map_sections.h"
|
||||
|
||||
static EWRAM_DATA struct UnkStruct_203B024 gUnknown_203B024 = {0};
|
||||
struct DeferredLinkEvent
|
||||
{
|
||||
u16 id;
|
||||
u16 ALIGNED(4) data[14];
|
||||
};
|
||||
|
||||
static EWRAM_DATA struct DeferredLinkEvent sDeferredEvent = {0};
|
||||
EWRAM_DATA struct UnkStruct_203B044 gUnknown_203B044 = {0};
|
||||
static EWRAM_DATA u8 gUnknown_203B048 = 0;
|
||||
static EWRAM_DATA u8 sEventShouldNotRecordSteps = 0;
|
||||
static EWRAM_DATA bool8 sNewlyEnteredMap = FALSE;
|
||||
static EWRAM_DATA u8 gUnknown_203B04A = 0;
|
||||
static EWRAM_DATA bool8 gUnknown_203B04B = FALSE;
|
||||
static EWRAM_DATA u8 sLastDepartedMap = 0;
|
||||
static EWRAM_DATA bool8 sPlayedTheSlots = FALSE;
|
||||
|
||||
static bool8 InQuestLogDisabledLocation(void);
|
||||
static bool8 sub_8113778(u16, const u16 *);
|
||||
static bool8 sub_81137E4(u16, const u16 *);
|
||||
static u16 *sub_8113828(u16, const u16 *);
|
||||
static bool8 ShouldRegisterEvent_HandlePartyActions(u16, const u16 *);
|
||||
static bool8 ShouldRegisterEvent_HandleBeatStoryTrainer(u16, const u16 *);
|
||||
static u16 *ShouldRegisterEvent(u16, const u16 *);
|
||||
static bool8 TrySetLinkQuestLogEvent(u16, const u16 *);
|
||||
static bool8 TrySetTrainerBattleQuestLogEvent(u16, const u16 *);
|
||||
static bool8 IsQuestLogEventWithSpecialEncounterSpecies(u16, const u16 *);
|
||||
static void sub_8113B94(u16);
|
||||
static void SetQuestLogEventToActive(u16);
|
||||
static u16 *TryRecordEvent41(u16 *, u16);
|
||||
static u16 *BufferQuestLogData_SwitchedPartyOrder(u16 *, const u16 *);
|
||||
static u16 *BufferQuestLogData_UsedItem(u16 *, const u16 *);
|
||||
@@ -113,8 +119,8 @@ static const u16 *BufferQuestLogText_SoldItem(const u16 *);
|
||||
static const u16 *BufferQuestLogText_ObtainedItem(const u16 *);
|
||||
static const u16 *BufferQuestLogText_ArrivedInLocation(const u16 *);
|
||||
static bool8 IsSpeciesFromSpecialEncounter(u16);
|
||||
static bool8 sub_81153A8(u16, const u16 *);
|
||||
static bool8 sub_81153E4(u16, const u16 *);
|
||||
static bool8 ShouldRegisterEvent_HandleDeparted(u16, const u16 *);
|
||||
static bool8 ShouldRegisterEvent_HandleGameCorner(u16, const u16 *);
|
||||
static void BufferLinkPartnersName(u8 *);
|
||||
|
||||
static u16 *(*const sQuestLogStorageCBs[])(u16 *, const u16 *) = {
|
||||
@@ -167,7 +173,7 @@ void SetQuestLogEvent(u16 eventId, const u16 *eventData)
|
||||
{
|
||||
u16 *r1;
|
||||
|
||||
if (eventId == QL_EVENT_DEPARTED && gUnknown_203B048 == 2)
|
||||
if (eventId == QL_EVENT_DEPARTED && sEventShouldNotRecordSteps == 2)
|
||||
{
|
||||
sub_811381C();
|
||||
return;
|
||||
@@ -197,17 +203,17 @@ void SetQuestLogEvent(u16 eventId, const u16 *eventData)
|
||||
if (IsQuestLogEventWithSpecialEncounterSpecies(eventId, eventData) == TRUE)
|
||||
return;
|
||||
|
||||
if (sub_81153E4(eventId, eventData) == FALSE)
|
||||
if (ShouldRegisterEvent_HandleGameCorner(eventId, eventData) == FALSE)
|
||||
return;
|
||||
|
||||
if (gQuestLogPlaybackState == 0)
|
||||
{
|
||||
if (sub_8113778(eventId, eventData) == TRUE)
|
||||
if (ShouldRegisterEvent_HandlePartyActions(eventId, eventData) == TRUE)
|
||||
return;
|
||||
|
||||
if (eventId != QL_EVENT_DEFEATED_WILD_MON || gUnknown_203AE04 == NULL)
|
||||
{
|
||||
if (sub_81153A8(eventId, eventData) == FALSE)
|
||||
if (ShouldRegisterEvent_HandleDeparted(eventId, eventData) == FALSE)
|
||||
return;
|
||||
StartRecordingQuestLogEntry(eventId);
|
||||
}
|
||||
@@ -215,7 +221,7 @@ void SetQuestLogEvent(u16 eventId, const u16 *eventData)
|
||||
else if (eventId == QL_EVENT_OBTAINED_ITEM)
|
||||
return;
|
||||
|
||||
sub_8113B94(eventId);
|
||||
SetQuestLogEventToActive(eventId);
|
||||
if (eventId == QL_EVENT_DEFEATED_WILD_MON)
|
||||
{
|
||||
if (gUnknown_203AE04 == NULL)
|
||||
@@ -238,13 +244,13 @@ void SetQuestLogEvent(u16 eventId, const u16 *eventData)
|
||||
if (r1 == NULL)
|
||||
{
|
||||
FinishRecordingQuestLogScene();
|
||||
r1 = sub_8113828(eventId, eventData);
|
||||
r1 = ShouldRegisterEvent(eventId, eventData);
|
||||
if (r1 == NULL)
|
||||
return;
|
||||
}
|
||||
|
||||
sEventRecordingPointer = r1;
|
||||
if (gUnknown_203B048 == 0)
|
||||
if (sEventShouldNotRecordSteps == 0)
|
||||
return;
|
||||
FinishRecordingQuestLogScene();
|
||||
}
|
||||
@@ -300,14 +306,14 @@ bool8 QuestLog_ShouldEndSceneOnMapChange(void)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static bool8 sub_8113778(u16 eventId, const u16 *eventData)
|
||||
static bool8 ShouldRegisterEvent_HandlePartyActions(u16 eventId, const u16 *eventData)
|
||||
{
|
||||
if (eventId == QL_EVENT_USED_FIELD_MOVE || eventId == QL_EVENT_USED_PKMN_CENTER)
|
||||
return TRUE;
|
||||
|
||||
if (!FlagGet(FLAG_SYS_GAME_CLEAR))
|
||||
{
|
||||
if (eventId == QL_EVENT_SWITCHED_PARTY_ORDER || eventId == QL_EVENT_DEFEATED_WILD_MON || sub_81137E4(eventId, eventData) == TRUE)
|
||||
if (eventId == QL_EVENT_SWITCHED_PARTY_ORDER || eventId == QL_EVENT_DEFEATED_WILD_MON || ShouldRegisterEvent_HandleBeatStoryTrainer(eventId, eventData) == TRUE)
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
@@ -329,7 +335,7 @@ static bool8 sub_8113778(u16 eventId, const u16 *eventData)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static bool8 sub_81137E4(u16 eventId, const u16 *eventData)
|
||||
static bool8 ShouldRegisterEvent_HandleBeatStoryTrainer(u16 eventId, const u16 *eventData)
|
||||
{
|
||||
if (eventId == QL_EVENT_DEFEATED_TRAINER)
|
||||
{
|
||||
@@ -346,19 +352,19 @@ static bool8 sub_81137E4(u16 eventId, const u16 *eventData)
|
||||
|
||||
void sub_811381C(void)
|
||||
{
|
||||
gUnknown_203B048 = 0;
|
||||
sEventShouldNotRecordSteps = 0;
|
||||
}
|
||||
|
||||
static u16 *sub_8113828(u16 eventId, const u16 *eventData)
|
||||
static u16 *ShouldRegisterEvent(u16 eventId, const u16 *eventData)
|
||||
{
|
||||
if (sub_8113778(eventId, eventData) == TRUE)
|
||||
if (ShouldRegisterEvent_HandlePartyActions(eventId, eventData) == TRUE)
|
||||
return NULL;
|
||||
|
||||
if (sub_81153A8(eventId, eventData) == FALSE)
|
||||
if (ShouldRegisterEvent_HandleDeparted(eventId, eventData) == FALSE)
|
||||
return NULL;
|
||||
|
||||
StartRecordingQuestLogEntry(eventId);
|
||||
sub_8113B94(eventId);
|
||||
SetQuestLogEventToActive(eventId);
|
||||
|
||||
if (eventId == QL_EVENT_DEFEATED_WILD_MON)
|
||||
gUnknown_203AE04 = sEventRecordingPointer;
|
||||
@@ -373,34 +379,34 @@ static bool8 TrySetLinkQuestLogEvent(u16 eventId, const u16 *eventData)
|
||||
if (!IS_LINK_QL_EVENT(eventId))
|
||||
return FALSE;
|
||||
|
||||
sub_81138F8();
|
||||
gUnknown_203B024.unk_00 = eventId;
|
||||
ResetDeferredLinkEvent();
|
||||
sDeferredEvent.id = eventId;
|
||||
|
||||
if (eventId != QL_EVENT_USED_UNION_ROOM && eventId != QL_EVENT_USED_UNION_ROOM_CHAT)
|
||||
{
|
||||
if (eventId == QL_EVENT_LINK_TRADED || eventId == QL_EVENT_LINK_TRADED_UNION)
|
||||
memcpy(gUnknown_203B024.unk_04, eventData, 12);
|
||||
memcpy(sDeferredEvent.data, eventData, 12);
|
||||
else
|
||||
memcpy(gUnknown_203B024.unk_04, eventData, 24);
|
||||
memcpy(sDeferredEvent.data, eventData, 24);
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void sub_81138F8(void)
|
||||
void ResetDeferredLinkEvent(void)
|
||||
{
|
||||
gUnknown_203B024 = (struct UnkStruct_203B024){};
|
||||
sDeferredEvent = (struct DeferredLinkEvent){};
|
||||
}
|
||||
|
||||
void QuestLog_StartRecordingInputsAfterDeferredEvent(void)
|
||||
{
|
||||
if (gUnknown_203B024.unk_00 != QL_EVENT_0)
|
||||
if (sDeferredEvent.id != QL_EVENT_0)
|
||||
{
|
||||
u16 *resp;
|
||||
gUnknown_203B04A = 0;
|
||||
StartRecordingQuestLogEntry(gUnknown_203B024.unk_00);
|
||||
resp = sQuestLogStorageCBs[gUnknown_203B024.unk_00](sEventRecordingPointer, gUnknown_203B024.unk_04);
|
||||
sLastDepartedMap = 0;
|
||||
StartRecordingQuestLogEntry(sDeferredEvent.id);
|
||||
resp = sQuestLogStorageCBs[sDeferredEvent.id](sEventRecordingPointer, sDeferredEvent.data);
|
||||
sEventRecordingPointer = resp;
|
||||
sub_81138F8();
|
||||
ResetDeferredLinkEvent();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -412,30 +418,30 @@ static bool8 TrySetTrainerBattleQuestLogEvent(u16 eventId, const u16 *eventData)
|
||||
&& eventId != QL_EVENT_DEFEATED_CHAMPION)
|
||||
return FALSE;
|
||||
|
||||
sub_81138F8();
|
||||
if (gQuestLogPlaybackState != 0 || FlagGet(FLAG_SYS_GAME_CLEAR) || sub_81137E4(eventId, eventData) != TRUE)
|
||||
ResetDeferredLinkEvent();
|
||||
if (gQuestLogPlaybackState != 0 || FlagGet(FLAG_SYS_GAME_CLEAR) || ShouldRegisterEvent_HandleBeatStoryTrainer(eventId, eventData) != TRUE)
|
||||
{
|
||||
gUnknown_203B024.unk_00 = eventId;
|
||||
memcpy(gUnknown_203B024.unk_04, eventData, 8);
|
||||
sDeferredEvent.id = eventId;
|
||||
memcpy(sDeferredEvent.data, eventData, 8);
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void sub_81139BC(void)
|
||||
{
|
||||
if (gUnknown_203B024.unk_00 != QL_EVENT_0)
|
||||
if (sDeferredEvent.id != QL_EVENT_0)
|
||||
{
|
||||
u16 *resp;
|
||||
if (gQuestLogPlaybackState == 0)
|
||||
{
|
||||
gUnknown_203B04A = 0;
|
||||
StartRecordingQuestLogEntry(gUnknown_203B024.unk_00);
|
||||
sLastDepartedMap = 0;
|
||||
StartRecordingQuestLogEntry(sDeferredEvent.id);
|
||||
}
|
||||
sub_8113B94(gUnknown_203B024.unk_00);
|
||||
resp = sQuestLogStorageCBs[gUnknown_203B024.unk_00](sEventRecordingPointer, gUnknown_203B024.unk_04);
|
||||
SetQuestLogEventToActive(sDeferredEvent.id);
|
||||
resp = sQuestLogStorageCBs[sDeferredEvent.id](sEventRecordingPointer, sDeferredEvent.data);
|
||||
sEventRecordingPointer = resp;
|
||||
TryRecordEvent41_IncCursor(1);
|
||||
sub_81138F8();
|
||||
ResetDeferredLinkEvent();
|
||||
FinishRecordingQuestLogScene();
|
||||
}
|
||||
}
|
||||
@@ -571,9 +577,9 @@ void sub_8113ABC(const u16 *a0)
|
||||
{
|
||||
const u8 *r2 = (const u8 *)(a0 + 2);
|
||||
if ((a0[0] & 0xFFF) != QL_EVENT_DEPARTED)
|
||||
gUnknown_203B04A = 0;
|
||||
sLastDepartedMap = 0;
|
||||
else
|
||||
gUnknown_203B04A = r2[1] + 1;
|
||||
sLastDepartedMap = r2[1] + 1;
|
||||
}
|
||||
|
||||
bool8 sub_8113AE8(const u16 *a0)
|
||||
@@ -588,7 +594,7 @@ bool8 sub_8113AE8(const u16 *a0)
|
||||
return FALSE;
|
||||
|
||||
sQuestLogEventTextBufferCBs[a0[0] & 0xFFF](a0);
|
||||
gUnknown_203B044.unk_0 = a0[0];
|
||||
gUnknown_203B044.id = a0[0];
|
||||
gUnknown_203B044.unk_1 = (a0[0] & 0xF000) >> 12;
|
||||
if (gUnknown_203B044.unk_1 != 0)
|
||||
gUnknown_203B044.unk_2 = 1;
|
||||
@@ -600,7 +606,7 @@ bool8 sub_8113B44(const u16 *a0)
|
||||
if (gUnknown_203B044.unk_2 == 0)
|
||||
return FALSE;
|
||||
|
||||
sQuestLogEventTextBufferCBs[gUnknown_203B044.unk_0](a0);
|
||||
sQuestLogEventTextBufferCBs[gUnknown_203B044.id](a0);
|
||||
gUnknown_203B044.unk_2++;
|
||||
if (gUnknown_203B044.unk_2 > gUnknown_203B044.unk_1)
|
||||
ResetUnk203B044();
|
||||
@@ -612,11 +618,11 @@ void ResetUnk203B044(void)
|
||||
gUnknown_203B044 = (struct UnkStruct_203B044){};
|
||||
}
|
||||
|
||||
static void sub_8113B94(u16 eventId)
|
||||
static void SetQuestLogEventToActive(u16 eventId)
|
||||
{
|
||||
if (gUnknown_203B044.unk_0 != (u8)eventId || gUnknown_203B044.unk_2 != sQuestLogCursor)
|
||||
if (gUnknown_203B044.id != (u8)eventId || gUnknown_203B044.unk_2 != sQuestLogCursor)
|
||||
{
|
||||
gUnknown_203B044.unk_0 = eventId;
|
||||
gUnknown_203B044.id = eventId;
|
||||
gUnknown_203B044.unk_1 = 0;
|
||||
gUnknown_203B044.unk_2 = sQuestLogCursor;
|
||||
}
|
||||
@@ -627,8 +633,8 @@ static void sub_8113B94(u16 eventId)
|
||||
void sub_8113BD8(void)
|
||||
{
|
||||
sNewlyEnteredMap = FALSE;
|
||||
gUnknown_203B04A = 0;
|
||||
gUnknown_203B04B = FALSE;
|
||||
sLastDepartedMap = 0;
|
||||
sPlayedTheSlots = FALSE;
|
||||
}
|
||||
|
||||
u16 *TryRecordEvent39_NoParams(u16 *a0)
|
||||
@@ -838,7 +844,7 @@ static u16 *BufferQuestLogData_UsedItem(u16 *a0, const u16 *eventData)
|
||||
r2[2] = eventData[3];
|
||||
|
||||
if (eventData[0] == ITEM_ESCAPE_ROPE)
|
||||
gUnknown_203B048 = 2;
|
||||
sEventShouldNotRecordSteps = 2;
|
||||
|
||||
return r2 + 3;
|
||||
}
|
||||
@@ -1015,7 +1021,7 @@ static const u16 *BufferQuestLogText_SwappedHeldItemFromPC(const u16 *eventData)
|
||||
static u16 *BufferQuestLogData_UsedPkmnCenter(u16 *a0, const u16 *eventData)
|
||||
{
|
||||
u16 *r4 = a0;
|
||||
if (gUnknown_203B044.unk_0 == QL_EVENT_USED_PKMN_CENTER && gUnknown_203B044.unk_1 != 0)
|
||||
if (gUnknown_203B044.id == QL_EVENT_USED_PKMN_CENTER && gUnknown_203B044.unk_1 != 0)
|
||||
return r4;
|
||||
|
||||
if (!sub_8110944(a0, sQuestLogEventCmdSizes[QL_EVENT_USED_PKMN_CENTER]))
|
||||
@@ -1492,7 +1498,7 @@ u16 *BufferQuestLogData_DefeatedTrainer_(u16 eventId, u16 *a1, const u16 *a2)
|
||||
|
||||
static u16 *BufferQuestLogData_DefeatedGymLeader(u16 *a0, const u16 *eventData)
|
||||
{
|
||||
gUnknown_203B048 = 1;
|
||||
sEventShouldNotRecordSteps = 1;
|
||||
return BufferQuestLogData_DefeatedTrainer_(QL_EVENT_DEFEATED_GYM_LEADER, a0, eventData);
|
||||
}
|
||||
|
||||
@@ -1602,7 +1608,7 @@ static bool8 IsSpeciesFromSpecialEncounter(u16 species)
|
||||
|
||||
static u16 *BufferQuestLogData_DefeatedEliteFourMember(u16 *a0, const u16 *eventData)
|
||||
{
|
||||
gUnknown_203B048 = 1;
|
||||
sEventShouldNotRecordSteps = 1;
|
||||
return BufferQuestLogData_DefeatedTrainer_(QL_EVENT_DEFEATED_E4_MEMBER, a0, eventData);
|
||||
}
|
||||
|
||||
@@ -1624,12 +1630,12 @@ static u16 *BufferQuestLogData_DefeatedChampion(u16 *a0, const u16 *eventData)
|
||||
{
|
||||
if (!sub_8110944(a0, sQuestLogEventCmdSizes[QL_EVENT_DEFEATED_CHAMPION]))
|
||||
return NULL;
|
||||
a0[0] = 0x2021;
|
||||
a0[0] = QL_EVENT_DEFEATED_CHAMPION | (2 << 12);
|
||||
a0[1] = sQuestLogCursor;
|
||||
a0[2] = eventData[1];
|
||||
a0[3] = eventData[2];
|
||||
*((u8 *)a0 + 8) = *((const u8 *)eventData + 6);
|
||||
gUnknown_203B048 = 1;
|
||||
sEventShouldNotRecordSteps = 1;
|
||||
return a0 + 5;
|
||||
}
|
||||
|
||||
@@ -1666,7 +1672,7 @@ static const u16 *BufferQuestLogText_DefeatedChampion(const u16 *a0)
|
||||
|
||||
static u16 *BufferQuestLogData_DefeatedTrainer(u16 *a0, const u16 *eventData)
|
||||
{
|
||||
gUnknown_203B048 = 1;
|
||||
sEventShouldNotRecordSteps = 1;
|
||||
return BufferQuestLogData_DefeatedTrainer_(QL_EVENT_DEFEATED_TRAINER, a0, eventData);
|
||||
}
|
||||
|
||||
@@ -1850,7 +1856,7 @@ static u16 *BufferQuestLogData_DepartedLocation(u16 *a0, const u16 *eventData)
|
||||
return NULL;
|
||||
*((u8 *)r2 + 0) = *((const u8 *)eventData + 0);
|
||||
if ((*((u8 *)r2 + 1) = *((const u8 *)eventData + 1)) == QL_LOCATION_SAFARI_ZONE)
|
||||
gUnknown_203B048 = 1;
|
||||
sEventShouldNotRecordSteps = 1;
|
||||
return r2 + 1;
|
||||
}
|
||||
|
||||
@@ -1883,33 +1889,34 @@ static const u16 *BufferQuestLogText_DepartedLocation(const u16 *eventData)
|
||||
return (const u16 *)(r5_2 + 2);
|
||||
}
|
||||
|
||||
void sub_811539C(void)
|
||||
void SetQLPlayedTheSlots(void)
|
||||
{
|
||||
gUnknown_203B04B = TRUE;
|
||||
sPlayedTheSlots = TRUE;
|
||||
}
|
||||
|
||||
static bool8 sub_81153A8(u16 eventId, const u16 *eventData)
|
||||
static bool8 ShouldRegisterEvent_HandleDeparted(u16 eventId, const u16 *eventData)
|
||||
{
|
||||
if (eventId != QL_EVENT_DEPARTED)
|
||||
{
|
||||
gUnknown_203B04A = 0;
|
||||
sLastDepartedMap = 0;
|
||||
return TRUE;
|
||||
}
|
||||
if (gUnknown_203B04A == *((u8 *)eventData + 1) + 1)
|
||||
if (sLastDepartedMap == *((u8 *)eventData + 1) + 1)
|
||||
return FALSE;
|
||||
gUnknown_203B04A = *((u8 *)eventData + 1) + 1;
|
||||
sLastDepartedMap = *((u8 *)eventData + 1) + 1;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static bool8 sub_81153E4(u16 eventId, const u16 *eventData)
|
||||
static bool8 ShouldRegisterEvent_HandleGameCorner(u16 eventId, const u16 *eventData)
|
||||
{
|
||||
if (eventId != QL_EVENT_DEPARTED)
|
||||
return TRUE;
|
||||
|
||||
if (*((u8 *)eventData + 1) == 32 && !gUnknown_203B04B)
|
||||
// Bug: should be QL_LOCATION_GAME_CORNER + 1
|
||||
if (*((u8 *)eventData + 1) == QL_LOCATION_GAME_CORNER && !sPlayedTheSlots)
|
||||
return FALSE;
|
||||
|
||||
gUnknown_203B04B = FALSE;
|
||||
sPlayedTheSlots = FALSE;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
@@ -1924,9 +1931,9 @@ static u16 *BufferQuestLogData_UsedFieldMove(u16 *a0, const u16 *eventData)
|
||||
r3[0] = *((const u8 *)eventData + 2);
|
||||
r3[1] = *((const u8 *)eventData + 3);
|
||||
if (r3[0] == FIELD_MOVE_TELEPORT || r3[0] == FIELD_MOVE_DIG)
|
||||
gUnknown_203B048 = 2;
|
||||
sEventShouldNotRecordSteps = 2;
|
||||
else
|
||||
gUnknown_203B048 = 1;
|
||||
sEventShouldNotRecordSteps = 1;
|
||||
return (u16 *)(r3 + 2);
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -814,7 +814,7 @@ static void MainTask_SlotsGameLoop(u8 taskId)
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
sub_811539C();
|
||||
SetQLPlayedTheSlots();
|
||||
sub_81409B4();
|
||||
sub_8140148();
|
||||
sSlotMachineState->field_06 = 0;
|
||||
|
||||
Reference in New Issue
Block a user