Continue documenting quest log

This commit is contained in:
GriffinR
2022-11-10 14:59:01 -05:00
parent 9721926b58
commit ae38640a3b
11 changed files with 620 additions and 570 deletions
+2 -2
View File
@@ -1,4 +1,4 @@
gQuestLogPlaybackState gQuestLogPlaybackState
sNumEventsInLogEntry sMaxActionsInScene
gQuestLogFieldInput gQuestLogFieldInput
sCurQuestLogEntry sCurSceneActions
+1
View File
@@ -36,6 +36,7 @@
#include "constants/easy_chat.h" #include "constants/easy_chat.h"
#include "constants/trainer_card.h" #include "constants/trainer_card.h"
#include "constants/help_system.h" #include "constants/help_system.h"
#include "constants/trainer_fan_club.h"
.include "asm/macros.inc" .include "asm/macros.inc"
.include "asm/macros/event.inc" .include "asm/macros/event.inc"
.set FALSE, 0 .set FALSE, 0
Binary file not shown.

After

Width:  |  Height:  |  Size: 142 B

-1
View File
@@ -1 +0,0 @@
换换烫烫烫烫换换
+6 -11
View File
@@ -146,16 +146,11 @@
#define QL_INPUT_A 9 #define QL_INPUT_A 9
#define QL_INPUT_B 10 #define QL_INPUT_B 10
#define QL_ACTION_MOVEMENT 0
#define FANCLUB_MEMBER1 0 #define QL_ACTION_GFX_CHANGE 1
#define FANCLUB_MEMBER2 1 #define QL_ACTION_INPUT 2
#define FANCLUB_MEMBER3 2 #define QL_ACTION_3 3
#define FANCLUB_MEMBER4 3 #define QL_ACTION_FE 0xFE
#define FANCLUB_MEMBER5 4 #define QL_ACTION_FF 0xFF
#define FANCLUB_MEMBER6 5
#define FANCLUB_MEMBER7 6
#define FANCLUB_MEMBER8 7
#define NUM_TRAINER_FAN_CLUB_MEMBERS 8
#endif //GUARD_CONSTANTS_QUEST_LOG_H #endif //GUARD_CONSTANTS_QUEST_LOG_H
+15
View File
@@ -0,0 +1,15 @@
#ifndef GUARD_CONSTANTS_TRAINER_FAN_CLUB_H
#define GUARD_CONSTANTS_TRAINER_FAN_CLUB_H
#define FANCLUB_MEMBER1 0
#define FANCLUB_MEMBER2 1
#define FANCLUB_MEMBER3 2
#define FANCLUB_MEMBER4 3
#define FANCLUB_MEMBER5 4
#define FANCLUB_MEMBER6 5
#define FANCLUB_MEMBER7 6
#define FANCLUB_MEMBER8 7
#define NUM_TRAINER_FAN_CLUB_MEMBERS 8
#endif //GUARD_CONSTANTS_TRAINER_FAN_CLUB_H
+24 -15
View File
@@ -10,7 +10,16 @@
#define QL_ESCALATOR_OUT 1 #define QL_ESCALATOR_OUT 1
#define QL_ESCALATOR_IN 2 #define QL_ESCALATOR_IN 2
struct QuestLogEntry // This struct represents the basic building blocks of what happens during a Quest Log scene.
// Once a scene has been set up, it will run through the list of actions to animate the scene.
// During a particular scene, there are 3 possible actions:
// - QL_ACTION_MOVEMENT: A character (including the player) moved
// - QL_ACTION_GFX_CHANGE: The player's avatar changed graphics (e.g. they started surfing)
// - QL_ACTION_INPUT: The player made an input (e.g. they pressed A/B/dpad)
// There are additional action types used internally:
// -
//
struct QuestLogAction
{ {
union { union {
struct { struct {
@@ -18,18 +27,18 @@ struct QuestLogEntry
u8 mapNum; u8 mapNum;
u8 mapGroup; u8 mapGroup;
u8 movementActionId; u8 movementActionId;
} a; // Data when command == 0 } a; // Data when type == 0
struct { struct {
u8 localId; u8 localId;
u8 mapNum; u8 mapNum;
u8 mapGroup; u8 mapGroup;
u8 gfxState; u8 gfxState;
} b; // Data when command == 1 } b; // Data when type == 1
u8 fieldInput[4]; // Data when command == 2 u8 fieldInput[4]; // Data when type == 2
u8 raw[4]; u8 raw[4];
} data; } data;
u16 duration; u16 duration;
u8 command; u8 type;
}; };
struct UnkStruct_203B044 struct UnkStruct_203B044
@@ -44,8 +53,8 @@ extern u8 gQuestLogPlaybackState;
extern struct FieldInput gQuestLogFieldInput; extern struct FieldInput gQuestLogFieldInput;
extern struct UnkStruct_203B044 gUnknown_203B044; extern struct UnkStruct_203B044 gUnknown_203B044;
extern u16 *gUnknown_203AE04; extern u16 *gUnknown_203AE04;
extern u16 *sEventRecordingPointer; extern u16 *gQuestLogRecordingPointer;
extern u16 sQuestLogCursor; extern u16 gQuestLogCurActionIdx;
void QuestLogRecordPlayerAvatarGfxTransition(u8); void QuestLogRecordPlayerAvatarGfxTransition(u8);
void SetQuestLogEvent(u16, const u16 *); void SetQuestLogEvent(u16, const u16 *);
@@ -58,7 +67,7 @@ void CommitQuestLogWindow1(void);
void QuestLog_DrawPreviouslyOnQuestHeaderIfInPlaybackMode(void); void QuestLog_DrawPreviouslyOnQuestHeaderIfInPlaybackMode(void);
void ResetQuestLog(void); void ResetQuestLog(void);
void ResetTrainerFanClub(void); void ResetTrainerFanClub(void);
void TrySetUpQuestLogScenes_ElseContinueFromSave(u8 taskId); void TryStartQuestLogPlayback(u8 taskId);
void SaveQuestLogData(void); void SaveQuestLogData(void);
void QuestLog_CutRecording(void); void QuestLog_CutRecording(void);
u8 sub_8112CAC(void); u8 sub_8112CAC(void);
@@ -93,22 +102,22 @@ void sub_8110FCC(void);
u8 GetQuestLogStartType(void); u8 GetQuestLogStartType(void);
void sub_81113E4(void); void sub_81113E4(void);
void sub_8111438(void); void sub_8111438(void);
void StartRecordingQuestLogEntry(u16 eventId); void StartRecordingQuestLogAction(u16 eventId);
bool8 WillCommandOfSizeFitInSav1Record(u16 *cursor, size_t size); bool8 WillCommandOfSizeFitInSav1Record(u16 *cursor, size_t size);
bool8 sub_8110944(const void *a0, size_t cmdSize); bool8 sub_8110944(const void *a0, size_t cmdSize);
void sub_8113BD8(void); void sub_8113BD8(void);
void ResetUnk203B044(void); void ResetUnk203B044(void);
u16 *TryRecordEvent39_NoParams(u16 *); u16 *TryRecordEvent39_NoParams(u16 *);
u16 *sub_8113C8C(u16 *, struct QuestLogEntry *); u16 *sub_8113C8C(u16 *, struct QuestLogAction *);
u16 *sub_8113CC8(u16 *, struct QuestLogEntry *); u16 *sub_8113CC8(u16 *, struct QuestLogAction *);
u16 *sub_8113D08(u16 *, struct QuestLogEntry *); u16 *sub_8113D08(u16 *, struct QuestLogAction *);
u16 *sub_8113D48(u16 *, struct QuestLogEntry *); u16 *sub_8113D48(u16 *, struct QuestLogAction *);
u16 *sub_8113D94(u16 *, struct QuestLogEntry *); u16 *sub_8113D94(u16 *, struct QuestLogAction *);
void QL_EnableRecordingSteps(void); void QL_EnableRecordingSteps(void);
u16 *QuestLog_SkipCommand(u16 *, u16 **); u16 *QuestLog_SkipCommand(u16 *, u16 **);
void sub_8113ABC(const u16 *); void sub_8113ABC(const u16 *);
u16 *sub_8113C20(u16 *, struct QuestLogEntry *); u16 *sub_8113C20(u16 *, struct QuestLogAction *);
bool8 sub_8113AE8(const u16 *); bool8 sub_8113AE8(const u16 *);
bool8 sub_8113B44(const u16 *); bool8 sub_8113B44(const u16 *);
void TryRecordEvent41_IncCursor(u16); void TryRecordEvent41_IncCursor(u16);
+1 -1
View File
@@ -478,7 +478,7 @@ static void Task_ExecuteMainMenuSelection(u8 taskId)
gPlttBufferFaded[0] = RGB_BLACK; gPlttBufferFaded[0] = RGB_BLACK;
gExitStairsMovementDisabled = FALSE; gExitStairsMovementDisabled = FALSE;
FreeAllWindowBuffers(); FreeAllWindowBuffers();
TrySetUpQuestLogScenes_ElseContinueFromSave(taskId); TryStartQuestLogPlayback(taskId);
break; break;
case MAIN_MENU_MYSTERYGIFT: case MAIN_MENU_MYSTERYGIFT:
SetMainCallback2(c2_mystery_gift); SetMainCallback2(c2_mystery_gift);
+358 -319
View File
File diff suppressed because it is too large Load Diff
+212 -210
View File
@@ -213,7 +213,7 @@ void SetQuestLogEvent(u16 eventId, const u16 *eventData)
{ {
if (ShouldRegisterEvent_HandleDeparted(eventId, eventData) == FALSE) if (ShouldRegisterEvent_HandleDeparted(eventId, eventData) == FALSE)
return; return;
StartRecordingQuestLogEntry(eventId); StartRecordingQuestLogAction(eventId);
} }
} }
else if (eventId == QL_EVENT_OBTAINED_ITEM) else if (eventId == QL_EVENT_OBTAINED_ITEM)
@@ -224,7 +224,7 @@ void SetQuestLogEvent(u16 eventId, const u16 *eventData)
{ {
if (gUnknown_203AE04 == NULL) if (gUnknown_203AE04 == NULL)
{ {
gUnknown_203AE04 = sEventRecordingPointer; gUnknown_203AE04 = gQuestLogRecordingPointer;
r1 = sQuestLogStorageCBs[eventId](gUnknown_203AE04, eventData); r1 = sQuestLogStorageCBs[eventId](gUnknown_203AE04, eventData);
} }
else else
@@ -236,7 +236,7 @@ void SetQuestLogEvent(u16 eventId, const u16 *eventData)
else else
{ {
gUnknown_203AE04 = NULL; gUnknown_203AE04 = NULL;
r1 = sQuestLogStorageCBs[eventId](sEventRecordingPointer, eventData); r1 = sQuestLogStorageCBs[eventId](gQuestLogRecordingPointer, eventData);
} }
if (r1 == NULL) if (r1 == NULL)
@@ -247,7 +247,7 @@ void SetQuestLogEvent(u16 eventId, const u16 *eventData)
return; return;
} }
sEventRecordingPointer = r1; gQuestLogRecordingPointer = r1;
if (sEventShouldNotRecordSteps == 0) if (sEventShouldNotRecordSteps == 0)
return; return;
FinishRecordingQuestLogScene(); FinishRecordingQuestLogScene();
@@ -362,15 +362,15 @@ static u16 *ShouldRegisterEvent(u16 eventId, const u16 *eventData)
if (ShouldRegisterEvent_HandleDeparted(eventId, eventData) == FALSE) if (ShouldRegisterEvent_HandleDeparted(eventId, eventData) == FALSE)
return NULL; return NULL;
StartRecordingQuestLogEntry(eventId); StartRecordingQuestLogAction(eventId);
SetQuestLogEventToActive(eventId); SetQuestLogEventToActive(eventId);
if (eventId == QL_EVENT_DEFEATED_WILD_MON) if (eventId == QL_EVENT_DEFEATED_WILD_MON)
gUnknown_203AE04 = sEventRecordingPointer; gUnknown_203AE04 = gQuestLogRecordingPointer;
else else
gUnknown_203AE04 = NULL; gUnknown_203AE04 = NULL;
return sQuestLogStorageCBs[eventId](sEventRecordingPointer, eventData); return sQuestLogStorageCBs[eventId](gQuestLogRecordingPointer, eventData);
} }
static bool8 TrySetLinkQuestLogEvent(u16 eventId, const u16 *eventData) static bool8 TrySetLinkQuestLogEvent(u16 eventId, const u16 *eventData)
@@ -402,9 +402,9 @@ void QuestLog_StartRecordingInputsAfterDeferredEvent(void)
{ {
u16 *resp; u16 *resp;
sLastDepartedMap = 0; sLastDepartedMap = 0;
StartRecordingQuestLogEntry(sDeferredEvent.id); StartRecordingQuestLogAction(sDeferredEvent.id);
resp = sQuestLogStorageCBs[sDeferredEvent.id](sEventRecordingPointer, sDeferredEvent.data); resp = sQuestLogStorageCBs[sDeferredEvent.id](gQuestLogRecordingPointer, sDeferredEvent.data);
sEventRecordingPointer = resp; gQuestLogRecordingPointer = resp;
ResetDeferredLinkEvent(); ResetDeferredLinkEvent();
} }
} }
@@ -434,11 +434,11 @@ void QuestLogEvents_HandleEndTrainerBattle(void)
if (gQuestLogPlaybackState == QL_PLAYBACK_STATE_0) if (gQuestLogPlaybackState == QL_PLAYBACK_STATE_0)
{ {
sLastDepartedMap = 0; sLastDepartedMap = 0;
StartRecordingQuestLogEntry(sDeferredEvent.id); StartRecordingQuestLogAction(sDeferredEvent.id);
} }
SetQuestLogEventToActive(sDeferredEvent.id); SetQuestLogEventToActive(sDeferredEvent.id);
resp = sQuestLogStorageCBs[sDeferredEvent.id](sEventRecordingPointer, sDeferredEvent.data); resp = sQuestLogStorageCBs[sDeferredEvent.id](gQuestLogRecordingPointer, sDeferredEvent.data);
sEventRecordingPointer = resp; gQuestLogRecordingPointer = resp;
TryRecordEvent41_IncCursor(1); TryRecordEvent41_IncCursor(1);
ResetDeferredLinkEvent(); ResetDeferredLinkEvent();
FinishRecordingQuestLogScene(); FinishRecordingQuestLogScene();
@@ -447,8 +447,8 @@ void QuestLogEvents_HandleEndTrainerBattle(void)
void TryRecordEvent41_IncCursor(u16 a0) void TryRecordEvent41_IncCursor(u16 a0)
{ {
sEventRecordingPointer = TryRecordEvent41(sEventRecordingPointer, a0); gQuestLogRecordingPointer = TryRecordEvent41(gQuestLogRecordingPointer, a0);
sQuestLogCursor++; gQuestLogCurActionIdx++;
} }
static bool8 IsQuestLogEventWithSpecialEncounterSpecies(u16 eventId, const u16 *eventData) static bool8 IsQuestLogEventWithSpecialEncounterSpecies(u16 eventId, const u16 *eventData)
@@ -587,7 +587,7 @@ bool8 sub_8113AE8(const u16 *a0)
if (a0 == NULL) // checks must be separate to match if (a0 == NULL) // checks must be separate to match
return FALSE; return FALSE;
if (r0[1] > sQuestLogCursor) if (r0[1] > gQuestLogCurActionIdx)
return FALSE; return FALSE;
sQuestLogEventTextBufferCBs[(r0[0] & 0xFFF)](a0); sQuestLogEventTextBufferCBs[(r0[0] & 0xFFF)](a0);
@@ -617,11 +617,11 @@ void ResetUnk203B044(void)
static void SetQuestLogEventToActive(u16 eventId) static void SetQuestLogEventToActive(u16 eventId)
{ {
if (gUnknown_203B044.id != (u8)eventId || gUnknown_203B044.unk_2 != sQuestLogCursor) if (gUnknown_203B044.id != (u8)eventId || gUnknown_203B044.unk_2 != gQuestLogCurActionIdx)
{ {
gUnknown_203B044.id = eventId; gUnknown_203B044.id = eventId;
gUnknown_203B044.unk_1 = 0; gUnknown_203B044.unk_1 = 0;
gUnknown_203B044.unk_2 = sQuestLogCursor; gUnknown_203B044.unk_2 = gQuestLogCurActionIdx;
} }
else if (gUnknown_203B044.unk_1 < 5) else if (gUnknown_203B044.unk_1 < 5)
gUnknown_203B044.unk_1++; gUnknown_203B044.unk_1++;
@@ -642,11 +642,11 @@ u16 *TryRecordEvent39_NoParams(u16 *a0)
return a0 + 1; return a0 + 1;
} }
u16 *sub_8113C20(u16 *a0, struct QuestLogEntry * a1) u16 *sub_8113C20(u16 *a0, struct QuestLogAction * a1)
{ {
if (!WillCommandOfSizeFitInSav1Record(a0, sQuestLogEventCmdSizes[QL_EVENT_39])) if (!WillCommandOfSizeFitInSav1Record(a0, sQuestLogEventCmdSizes[QL_EVENT_39]))
return NULL; return NULL;
a1->command = 0xFF; a1->type = QL_ACTION_FF;
a1->duration = 0; a1->duration = 0;
a1->data.raw[0] = 0; a1->data.raw[0] = 0;
a1->data.raw[1] = 0; a1->data.raw[1] = 0;
@@ -664,11 +664,11 @@ static u16 *TryRecordEvent41(u16 *a0, u16 a1)
return a0 + 2; return a0 + 2;
} }
u16 *sub_8113C8C(u16 *a0, struct QuestLogEntry * a1) u16 *sub_8113C8C(u16 *a0, struct QuestLogAction * a1)
{ {
if (!WillCommandOfSizeFitInSav1Record(a0, sQuestLogEventCmdSizes[QL_EVENT_41])) if (!WillCommandOfSizeFitInSav1Record(a0, sQuestLogEventCmdSizes[QL_EVENT_41]))
return NULL; return NULL;
a1->command = 0xFE; a1->type = QL_ACTION_FE;
a1->duration = a0[1]; a1->duration = a0[1];
a1->data.raw[0] = 0; a1->data.raw[0] = 0;
a1->data.raw[1] = 0; a1->data.raw[1] = 0;
@@ -677,7 +677,7 @@ u16 *sub_8113C8C(u16 *a0, struct QuestLogEntry * a1)
return a0 + 2; return a0 + 2;
} }
u16 *sub_8113CC8(u16 *a0, struct QuestLogEntry * a1) u16 *sub_8113CC8(u16 *a0, struct QuestLogAction * a1)
{ {
u8 *r6 = (u8 *)a0 + 4; u8 *r6 = (u8 *)a0 + 4;
@@ -692,13 +692,13 @@ u16 *sub_8113CC8(u16 *a0, struct QuestLogEntry * a1)
return (u16 *)(r6 + 4); return (u16 *)(r6 + 4);
} }
u16 *sub_8113D08(u16 *a0, struct QuestLogEntry * a1) u16 *sub_8113D08(u16 *a0, struct QuestLogAction * a1)
{ {
u8 *r6 = (u8 *)a0 + 4; u8 *r6 = (u8 *)a0 + 4;
if (!WillCommandOfSizeFitInSav1Record(a0, sQuestLogEventCmdSizes[QL_EVENT_0])) if (!WillCommandOfSizeFitInSav1Record(a0, sQuestLogEventCmdSizes[QL_EVENT_0]))
return NULL; return NULL;
a1->command = 2; a1->type = QL_ACTION_INPUT;
a1->duration = a0[1]; a1->duration = a0[1];
a1->data.raw[0] = r6[0]; a1->data.raw[0] = r6[0];
a1->data.raw[1] = r6[1]; a1->data.raw[1] = r6[1];
@@ -707,14 +707,14 @@ u16 *sub_8113D08(u16 *a0, struct QuestLogEntry * a1)
return (u16 *)(r6 + 4); return (u16 *)(r6 + 4);
} }
u16 *sub_8113D48(u16 *a0, struct QuestLogEntry * a1) u16 *sub_8113D48(u16 *a0, struct QuestLogAction * a1)
{ {
u16 *r4 = a0; u16 *r4 = a0;
u8 *r6 = (u8 *)a0 + 4; u8 *r6 = (u8 *)a0 + 4;
if (!WillCommandOfSizeFitInSav1Record(r4, sQuestLogEventCmdSizes[QL_EVENT_2])) if (!WillCommandOfSizeFitInSav1Record(r4, sQuestLogEventCmdSizes[QL_EVENT_2]))
return NULL; return NULL;
if (a1->command == 0) if (a1->type == QL_ACTION_MOVEMENT)
r4[0] = 2; r4[0] = 2;
else else
r4[0] = 1; r4[0] = 1;
@@ -726,7 +726,7 @@ u16 *sub_8113D48(u16 *a0, struct QuestLogEntry * a1)
return (u16 *)(r6 + 4); return (u16 *)(r6 + 4);
} }
u16 *sub_8113D94(u16 *a0, struct QuestLogEntry * a1) u16 *sub_8113D94(u16 *a0, struct QuestLogAction * a1)
{ {
u16 *r5 = a0; u16 *r5 = a0;
u8 *r6 = (u8 *)a0 + 4; u8 *r6 = (u8 *)a0 + 4;
@@ -734,9 +734,9 @@ u16 *sub_8113D94(u16 *a0, struct QuestLogEntry * a1)
if (!WillCommandOfSizeFitInSav1Record(r5, sQuestLogEventCmdSizes[QL_EVENT_2])) if (!WillCommandOfSizeFitInSav1Record(r5, sQuestLogEventCmdSizes[QL_EVENT_2]))
return NULL; return NULL;
if (r5[0] == 2) if (r5[0] == 2)
a1->command = 0; a1->type = QL_ACTION_MOVEMENT;
else else
a1->command = 1; a1->type = QL_ACTION_GFX_CHANGE;
a1->duration = r5[1]; a1->duration = r5[1];
a1->data.raw[0] = r6[0]; a1->data.raw[0] = r6[0];
a1->data.raw[1] = r6[1]; a1->data.raw[1] = r6[1];
@@ -745,7 +745,7 @@ u16 *sub_8113D94(u16 *a0, struct QuestLogEntry * a1)
return (u16 *)(r6 + 4); return (u16 *)(r6 + 4);
} }
u16 *sub_8113DE0(u16 eventId, u16 *a1) static u16 *RecordEvent(u16 eventId, u16 *dest)
{ {
u8 cmdSize; u8 cmdSize;
u16 *r5; u16 *r5;
@@ -756,10 +756,12 @@ u16 *sub_8113DE0(u16 eventId, u16 *a1)
cmdSize = sQuestLogEventCmdSizes[eventId]; cmdSize = sQuestLogEventCmdSizes[eventId];
else else
cmdSize = sQuestLogEventCmdSizes[eventId] - 4; cmdSize = sQuestLogEventCmdSizes[eventId] - 4;
if (!sub_8110944(a1, cmdSize))
// Is there room to record this?
if (!sub_8110944(dest, cmdSize))
return NULL; return NULL;
r5 = (void *)a1; r5 = (void *)dest;
if (gUnknown_203B044.unk_1 != 0) if (gUnknown_203B044.unk_1 != 0)
r5 = (void *)r5 - (gUnknown_203B044.unk_1 * cmdSize + 4); r5 = (void *)r5 - (gUnknown_203B044.unk_1 * cmdSize + 4);
@@ -780,7 +782,7 @@ u16 *sub_8113DE0(u16 eventId, u16 *a1)
r1 = gUnknown_203B044.unk_1; r1 = gUnknown_203B044.unk_1;
r5[0] = eventId + (r1 << 12); r5[0] = eventId + (r1 << 12);
r5[1] = sQuestLogCursor; r5[1] = gQuestLogCurActionIdx;
r5 = (void *)r5 + (r1 * cmdSize + 4); r5 = (void *)r5 + (r1 * cmdSize + 4);
return r5; return r5;
} }
@@ -809,9 +811,9 @@ static void QuestLog_GetSpeciesName(u16 species, u8 *dest, u8 stringVarId)
} }
} }
static u16 *BufferQuestLogData_SwitchedPartyOrder(u16 *a0, const u16 *eventData) static u16 *BufferQuestLogData_SwitchedPartyOrder(u16 *dest, const u16 *eventData)
{ {
u16 *r2 = sub_8113DE0(QL_EVENT_SWITCHED_PARTY_ORDER, a0); u16 *r2 = RecordEvent(QL_EVENT_SWITCHED_PARTY_ORDER, dest);
if (r2 == NULL) if (r2 == NULL)
return NULL; return NULL;
@@ -830,9 +832,9 @@ static const u16 *BufferQuestLogText_SwitchedPartyOrder(const u16 *eventData)
return r4; return r4;
} }
static u16 *BufferQuestLogData_UsedItem(u16 *a0, const u16 *eventData) static u16 *BufferQuestLogData_UsedItem(u16 *dest, const u16 *eventData)
{ {
u16 *r2 = sub_8113DE0(QL_EVENT_USED_ITEM, a0); u16 *r2 = RecordEvent(QL_EVENT_USED_ITEM, dest);
if (r2 == NULL) if (r2 == NULL)
return NULL; return NULL;
@@ -898,9 +900,9 @@ static const u16 *BufferQuestLogText_UsedItem(const u16 *eventData)
return r5 + 3; return r5 + 3;
} }
u16 *BufferQuestLogData_GiveTakeHeldItem(u16 eventId, u16 *a1, const u16 *eventData) u16 *BufferQuestLogData_GiveTakeHeldItem(u16 eventId, u16 *dest, const u16 *eventData)
{ {
u16 *r1 = sub_8113DE0(eventId, a1); u16 *r1 = RecordEvent(eventId, dest);
if (r1 == NULL) if (r1 == NULL)
return NULL; return NULL;
@@ -909,9 +911,9 @@ u16 *BufferQuestLogData_GiveTakeHeldItem(u16 eventId, u16 *a1, const u16 *eventD
return r1 + 2; return r1 + 2;
} }
static u16 *BufferQuestLogData_GaveHeldItemFromPartyMenu(u16 *a0, const u16 *eventData) static u16 *BufferQuestLogData_GaveHeldItemFromPartyMenu(u16 *dest, const u16 *eventData)
{ {
return BufferQuestLogData_GiveTakeHeldItem(QL_EVENT_GAVE_HELD_ITEM, a0, eventData); return BufferQuestLogData_GiveTakeHeldItem(QL_EVENT_GAVE_HELD_ITEM, dest, eventData);
} }
static const u16 *BufferQuestLogText_GaveHeldItemFromPartyMenu(const u16 *eventData) static const u16 *BufferQuestLogText_GaveHeldItemFromPartyMenu(const u16 *eventData)
@@ -924,9 +926,9 @@ static const u16 *BufferQuestLogText_GaveHeldItemFromPartyMenu(const u16 *eventD
return r4; return r4;
} }
static u16 *BufferQuestLogData_GaveHeldItemFromBagMenu(u16 *a0, const u16 *eventData) static u16 *BufferQuestLogData_GaveHeldItemFromBagMenu(u16 *dest, const u16 *eventData)
{ {
return BufferQuestLogData_GiveTakeHeldItem(QL_EVENT_GAVE_HELD_ITEM_BAG, a0, eventData); return BufferQuestLogData_GiveTakeHeldItem(QL_EVENT_GAVE_HELD_ITEM_BAG, dest, eventData);
} }
static const u16 *BufferQuestLogText_GaveHeldItemFromBagMenu(const u16 *eventData) static const u16 *BufferQuestLogText_GaveHeldItemFromBagMenu(const u16 *eventData)
@@ -939,9 +941,9 @@ static const u16 *BufferQuestLogText_GaveHeldItemFromBagMenu(const u16 *eventDat
return r4; return r4;
} }
static u16 *BufferQuestLogData_GaveHeldItemFromPC(u16 *a0, const u16 *eventData) static u16 *BufferQuestLogData_GaveHeldItemFromPC(u16 *dest, const u16 *eventData)
{ {
return BufferQuestLogData_GiveTakeHeldItem(QL_EVENT_GAVE_HELD_ITEM_PC, a0, eventData); return BufferQuestLogData_GiveTakeHeldItem(QL_EVENT_GAVE_HELD_ITEM_PC, dest, eventData);
} }
static const u16 *BufferQuestLogText_GaveHeldItemFromPC(const u16 *eventData) static const u16 *BufferQuestLogText_GaveHeldItemFromPC(const u16 *eventData)
@@ -955,9 +957,9 @@ static const u16 *BufferQuestLogText_GaveHeldItemFromPC(const u16 *eventData)
return r4; return r4;
} }
static u16 *BufferQuestLogData_TookHeldItem(u16 *a0, const u16 *eventData) static u16 *BufferQuestLogData_TookHeldItem(u16 *dest, const u16 *eventData)
{ {
return BufferQuestLogData_GiveTakeHeldItem(QL_EVENT_TOOK_HELD_ITEM, a0, eventData); return BufferQuestLogData_GiveTakeHeldItem(QL_EVENT_TOOK_HELD_ITEM, dest, eventData);
} }
static const u16 *BufferQuestLogText_TookHeldItem(const u16 *eventData) static const u16 *BufferQuestLogText_TookHeldItem(const u16 *eventData)
@@ -971,9 +973,9 @@ static const u16 *BufferQuestLogText_TookHeldItem(const u16 *eventData)
return r4; return r4;
} }
u16 *BufferQuestLogData_SwappedHeldItem_(u16 eventId, u16 *a1, const u16 *eventData) u16 *BufferQuestLogData_SwappedHeldItem_(u16 eventId, u16 *dest, const u16 *eventData)
{ {
u16 *r1 = sub_8113DE0(eventId, a1); u16 *r1 = RecordEvent(eventId, dest);
if (r1 == NULL) if (r1 == NULL)
return NULL; return NULL;
@@ -983,9 +985,9 @@ u16 *BufferQuestLogData_SwappedHeldItem_(u16 eventId, u16 *a1, const u16 *eventD
return r1 + 3; return r1 + 3;
} }
static u16 *BufferQuestLogData_SwappedHeldItem(u16 *a0, const u16 *eventData) static u16 *BufferQuestLogData_SwappedHeldItem(u16 *dest, const u16 *eventData)
{ {
return BufferQuestLogData_SwappedHeldItem_(QL_EVENT_SWAPPED_HELD_ITEM, a0, eventData); return BufferQuestLogData_SwappedHeldItem_(QL_EVENT_SWAPPED_HELD_ITEM, dest, eventData);
} }
static const u16 *BufferQuestLogText_SwappedHeldItem(const u16 *eventData) static const u16 *BufferQuestLogText_SwappedHeldItem(const u16 *eventData)
@@ -999,9 +1001,9 @@ static const u16 *BufferQuestLogText_SwappedHeldItem(const u16 *eventData)
return r4; return r4;
} }
static u16 *BufferQuestLogData_SwappedHeldItemFromPC(u16 *a0, const u16 *eventData) static u16 *BufferQuestLogData_SwappedHeldItemFromPC(u16 *dest, const u16 *eventData)
{ {
return BufferQuestLogData_SwappedHeldItem_(QL_EVENT_SWAPPED_HELD_ITEM_PC, a0, eventData); return BufferQuestLogData_SwappedHeldItem_(QL_EVENT_SWAPPED_HELD_ITEM_PC, dest, eventData);
} }
static const u16 *BufferQuestLogText_SwappedHeldItemFromPC(const u16 *eventData) static const u16 *BufferQuestLogText_SwappedHeldItemFromPC(const u16 *eventData)
@@ -1015,17 +1017,17 @@ static const u16 *BufferQuestLogText_SwappedHeldItemFromPC(const u16 *eventData)
return r4; return r4;
} }
static u16 *BufferQuestLogData_UsedPkmnCenter(u16 *a0, const u16 *eventData) static u16 *BufferQuestLogData_UsedPkmnCenter(u16 *dest, const u16 *eventData)
{ {
u16 *r4 = a0; u16 *r4 = dest;
if (gUnknown_203B044.id == 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; return r4;
if (!sub_8110944(a0, sQuestLogEventCmdSizes[QL_EVENT_USED_PKMN_CENTER])) if (!sub_8110944(dest, sQuestLogEventCmdSizes[QL_EVENT_USED_PKMN_CENTER]))
return NULL; return NULL;
r4[0] = QL_EVENT_USED_PKMN_CENTER; r4[0] = QL_EVENT_USED_PKMN_CENTER;
r4[1] = sQuestLogCursor; r4[1] = gQuestLogCurActionIdx;
return r4 + 2; return r4 + 2;
} }
@@ -1036,14 +1038,14 @@ static const u16 *BufferQuestLogText_UsedPkmnCenter(const u16 *a0)
return a0; return a0;
} }
static u16 *BufferQuestLogData_LinkTraded(u16 *a0, const u16 *eventData) static u16 *BufferQuestLogData_LinkTraded(u16 *dest, const u16 *eventData)
{ {
u16 *r4 = a0 + 4; u16 *r4 = dest + 4;
a0[0] = QL_EVENT_LINK_TRADED; dest[0] = QL_EVENT_LINK_TRADED;
a0[1] = sQuestLogCursor; dest[1] = gQuestLogCurActionIdx;
a0[2] = eventData[0]; dest[2] = eventData[0];
a0[3] = eventData[1]; dest[3] = eventData[1];
eventData += 2; eventData += 2;
memcpy(r4, eventData, 7); memcpy(r4, eventData, 7);
r4 += 4; r4 += 4;
@@ -1083,14 +1085,14 @@ static const u8 *const sBattleOutcomeTexts[] = {
gText_QuestLog_Draw gText_QuestLog_Draw
}; };
static u16 *BufferQuestLogData_LinkBattledSingle(u16 *a0, const u16 *eventData) static u16 *BufferQuestLogData_LinkBattledSingle(u16 *dest, const u16 *eventData)
{ {
a0[0] = QL_EVENT_LINK_BATTLED_SINGLE; dest[0] = QL_EVENT_LINK_BATTLED_SINGLE;
a0[1] = sQuestLogCursor; dest[1] = gQuestLogCurActionIdx;
*((u8 *)a0 + 4) = *((const u8 *)eventData + 0); *((u8 *)dest + 4) = *((const u8 *)eventData + 0);
memcpy((u8 *)a0 + 5, (const u8 *)eventData + 1, PLAYER_NAME_LENGTH); memcpy((u8 *)dest + 5, (const u8 *)eventData + 1, PLAYER_NAME_LENGTH);
a0 += 6; dest += 6;
return a0; return dest;
} }
static const u16 *BufferQuestLogText_LinkBattledSingle(const u16 *a0) static const u16 *BufferQuestLogText_LinkBattledSingle(const u16 *a0)
@@ -1107,14 +1109,14 @@ static const u16 *BufferQuestLogText_LinkBattledSingle(const u16 *a0)
return a0; return a0;
} }
static u16 *BufferQuestLogData_LinkBattledDouble(u16 *a0, const u16 *eventData) static u16 *BufferQuestLogData_LinkBattledDouble(u16 *dest, const u16 *eventData)
{ {
a0[0] = QL_EVENT_LINK_BATTLED_DOUBLE; dest[0] = QL_EVENT_LINK_BATTLED_DOUBLE;
a0[1] = sQuestLogCursor; dest[1] = gQuestLogCurActionIdx;
*((u8 *)a0 + 4) = *((const u8 *)eventData + 0); *((u8 *)dest + 4) = *((const u8 *)eventData + 0);
memcpy((u8 *)a0 + 5, (const u8 *)eventData + 1, PLAYER_NAME_LENGTH); memcpy((u8 *)dest + 5, (const u8 *)eventData + 1, PLAYER_NAME_LENGTH);
a0 += 6; dest += 6;
return a0; return dest;
} }
static const u16 *BufferQuestLogText_LinkBattledDouble(const u16 *a0) static const u16 *BufferQuestLogText_LinkBattledDouble(const u16 *a0)
@@ -1131,16 +1133,16 @@ static const u16 *BufferQuestLogText_LinkBattledDouble(const u16 *a0)
return a0; return a0;
} }
static u16 *BufferQuestLogData_LinkBattledMulti(u16 *a0, const u16 *eventData) static u16 *BufferQuestLogData_LinkBattledMulti(u16 *dest, const u16 *eventData)
{ {
a0[0] = QL_EVENT_LINK_BATTLED_MULTI; dest[0] = QL_EVENT_LINK_BATTLED_MULTI;
a0[1] = sQuestLogCursor; dest[1] = gQuestLogCurActionIdx;
*((u8 *)a0 + 4) = *((const u8 *)eventData + 0); *((u8 *)dest + 4) = *((const u8 *)eventData + 0);
memcpy((u8 *)a0 + 5, (const u8 *)eventData + 1, PLAYER_NAME_LENGTH); memcpy((u8 *)dest + 5, (const u8 *)eventData + 1, PLAYER_NAME_LENGTH);
memcpy((u8 *)a0 + 12, (const u8 *)eventData + 8, PLAYER_NAME_LENGTH); memcpy((u8 *)dest + 12, (const u8 *)eventData + 8, PLAYER_NAME_LENGTH);
memcpy((u8 *)a0 + 19, (const u8 *)eventData + 15, PLAYER_NAME_LENGTH); memcpy((u8 *)dest + 19, (const u8 *)eventData + 15, PLAYER_NAME_LENGTH);
a0 += 13; dest += 13;
return a0; return dest;
} }
static const u16 *BufferQuestLogText_LinkBattledMulti(const u16 *a0) static const u16 *BufferQuestLogText_LinkBattledMulti(const u16 *a0)
@@ -1166,11 +1168,11 @@ static const u16 *BufferQuestLogText_LinkBattledMulti(const u16 *a0)
return a0; return a0;
} }
static u16 *BufferQuestLogData_UsedUnionRoom(u16 *a0, const u16 *eventData) static u16 *BufferQuestLogData_UsedUnionRoom(u16 *dest, const u16 *eventData)
{ {
a0[0] = QL_EVENT_USED_UNION_ROOM; dest[0] = QL_EVENT_USED_UNION_ROOM;
a0[1] = sQuestLogCursor; dest[1] = gQuestLogCurActionIdx;
return a0 + 2; return dest + 2;
} }
static const u16 *BufferQuestLogText_UsedUnionRoom(const u16 *a0) static const u16 *BufferQuestLogText_UsedUnionRoom(const u16 *a0)
@@ -1180,11 +1182,11 @@ static const u16 *BufferQuestLogText_UsedUnionRoom(const u16 *a0)
return a0; return a0;
} }
static u16 *BufferQuestLogData_UsedUnionRoomChat(u16 *a0, const u16 *eventData) static u16 *BufferQuestLogData_UsedUnionRoomChat(u16 *dest, const u16 *eventData)
{ {
a0[0] = QL_EVENT_USED_UNION_ROOM_CHAT; dest[0] = QL_EVENT_USED_UNION_ROOM_CHAT;
a0[1] = sQuestLogCursor; dest[1] = gQuestLogCurActionIdx;
return a0 + 2; return dest + 2;
} }
static const u16 *BufferQuestLogText_UsedUnionRoomChat(const u16 *a0) static const u16 *BufferQuestLogText_UsedUnionRoomChat(const u16 *a0)
@@ -1194,13 +1196,13 @@ static const u16 *BufferQuestLogText_UsedUnionRoomChat(const u16 *a0)
return a0; return a0;
} }
static u16 *BufferQuestLogData_LinkTradedUnionRoom(u16 *a0, const u16 *eventData) static u16 *BufferQuestLogData_LinkTradedUnionRoom(u16 *dest, const u16 *eventData)
{ {
u8 *r4 = (u8 *)(a0 + 4); u8 *r4 = (u8 *)(dest + 4);
a0[0] = QL_EVENT_LINK_TRADED_UNION; dest[0] = QL_EVENT_LINK_TRADED_UNION;
a0[1] = sQuestLogCursor; dest[1] = gQuestLogCurActionIdx;
a0[2] = eventData[0]; dest[2] = eventData[0];
a0[3] = eventData[1]; dest[3] = eventData[1];
memcpy(r4, eventData + 2, PLAYER_NAME_LENGTH); memcpy(r4, eventData + 2, PLAYER_NAME_LENGTH);
r4 += 8; r4 += 8;
return (u16 *)r4; return (u16 *)r4;
@@ -1219,14 +1221,14 @@ static const u16 *BufferQuestLogText_LinkTradedUnionRoom(const u16 *a0)
return (const u16 *)r6; return (const u16 *)r6;
} }
static u16 *BufferQuestLogData_LinkBattledUnionRoom(u16 *a0, const u16 *eventData) static u16 *BufferQuestLogData_LinkBattledUnionRoom(u16 *dest, const u16 *eventData)
{ {
a0[0] = QL_EVENT_LINK_BATTLED_UNION; dest[0] = QL_EVENT_LINK_BATTLED_UNION;
a0[1] = sQuestLogCursor; dest[1] = gQuestLogCurActionIdx;
*(u8 *)&a0[2] = *(const u8 *)&eventData[0]; *(u8 *)&dest[2] = *(const u8 *)&eventData[0];
memcpy((u8 *)a0 + 5, (const u8 *)eventData + 1, PLAYER_NAME_LENGTH); memcpy((u8 *)dest + 5, (const u8 *)eventData + 1, PLAYER_NAME_LENGTH);
a0 += 6; dest += 6;
return a0; return dest;
} }
static const u16 *BufferQuestLogText_LinkBattledUnionRoom(const u16 *a0) static const u16 *BufferQuestLogText_LinkBattledUnionRoom(const u16 *a0)
@@ -1240,16 +1242,16 @@ static const u16 *BufferQuestLogText_LinkBattledUnionRoom(const u16 *a0)
return a0; return a0;
} }
static u16 *BufferQuestLogData_SwitchedMonsBetweenBoxes(u16 *a0, const u16 *eventData) static u16 *BufferQuestLogData_SwitchedMonsBetweenBoxes(u16 *dest, const u16 *eventData)
{ {
a0 = sub_8113DE0(QL_EVENT_SWITCHED_MONS_BETWEEN_BOXES, a0); dest = RecordEvent(QL_EVENT_SWITCHED_MONS_BETWEEN_BOXES, dest);
if (a0 == NULL) if (dest == NULL)
return NULL; return NULL;
a0[0] = eventData[0]; dest[0] = eventData[0];
a0[1] = eventData[1]; dest[1] = eventData[1];
*((u8 *)a0 + 4) = *((const u8 *)eventData + 4); *((u8 *)dest + 4) = *((const u8 *)eventData + 4);
*((u8 *)a0 + 5) = *((const u8 *)eventData + 5); *((u8 *)dest + 5) = *((const u8 *)eventData + 5);
return a0 + 3; return dest + 3;
} }
static const u16 *BufferQuestLogText_SwitchedMonsBetweenBoxes(const u16 *eventData) static const u16 *BufferQuestLogText_SwitchedMonsBetweenBoxes(const u16 *eventData)
@@ -1266,15 +1268,15 @@ static const u16 *BufferQuestLogText_SwitchedMonsBetweenBoxes(const u16 *eventDa
return eventData + 3; return eventData + 3;
} }
static u16 *BufferQuestLogData_SwitchedMonsWithinBox(u16 *a0, const u16 *eventData) static u16 *BufferQuestLogData_SwitchedMonsWithinBox(u16 *dest, const u16 *eventData)
{ {
a0 = sub_8113DE0(QL_EVENT_SWITCHED_MONS_WITHIN_BOX, a0); dest = RecordEvent(QL_EVENT_SWITCHED_MONS_WITHIN_BOX, dest);
if (a0 == NULL) if (dest == NULL)
return NULL; return NULL;
a0[0] = eventData[0]; dest[0] = eventData[0];
a0[1] = eventData[1]; dest[1] = eventData[1];
*((u8 *)a0 + 4) = *((const u8 *)eventData + 4); *((u8 *)dest + 4) = *((const u8 *)eventData + 4);
return a0 + 3; return dest + 3;
} }
static const u16 *BufferQuestLogText_SwitchedMonsWithinBox(const u16 *eventData) static const u16 *BufferQuestLogText_SwitchedMonsWithinBox(const u16 *eventData)
@@ -1290,11 +1292,11 @@ static const u16 *BufferQuestLogText_SwitchedMonsWithinBox(const u16 *eventData)
return eventData + 3; return eventData + 3;
} }
static u16 *BufferQuestLogData_SwitchedPartyMonForPCMon(u16 *a0, const u16 *eventData) static u16 *BufferQuestLogData_SwitchedPartyMonForPCMon(u16 *dest, const u16 *eventData)
{ {
u16 *r2; u16 *r2;
u16 *ret; u16 *ret;
r2 = sub_8113DE0(QL_EVENT_SWITCHED_PARTY_MON_FOR_PC_MON, a0); r2 = RecordEvent(QL_EVENT_SWITCHED_PARTY_MON_FOR_PC_MON, dest);
if (r2 == NULL) if (r2 == NULL)
return NULL; return NULL;
ret = r2 + 2; ret = r2 + 2;
@@ -1326,11 +1328,11 @@ static const u16 *BufferQuestLogText_SwitchedPartyMonForPCMon(const u16 *eventDa
return eventData + 3; return eventData + 3;
} }
static u16 *BufferQuestLogData_MovedMonBetweenBoxes(u16 *a0, const u16 *eventData) static u16 *BufferQuestLogData_MovedMonBetweenBoxes(u16 *dest, const u16 *eventData)
{ {
u16 *r2; u16 *r2;
u16 *ret; u16 *ret;
r2 = sub_8113DE0(QL_EVENT_MOVED_MON_BETWEEN_BOXES, a0); r2 = RecordEvent(QL_EVENT_MOVED_MON_BETWEEN_BOXES, dest);
if (r2 == NULL) if (r2 == NULL)
return NULL; return NULL;
r2[0] = eventData[0]; r2[0] = eventData[0];
@@ -1353,10 +1355,10 @@ static const u16 *BufferQuestLogText_MovedMonBetweenBoxes(const u16 *eventData)
return (const u16 *)boxIdxs + 1; return (const u16 *)boxIdxs + 1;
} }
static u16 *BufferQuestLogData_MovedMonWithinBox(u16 *a0, const u16 *eventData) static u16 *BufferQuestLogData_MovedMonWithinBox(u16 *dest, const u16 *eventData)
{ {
u16 *r2; u16 *r2;
r2 = sub_8113DE0(QL_EVENT_MOVED_MON_WITHIN_BOX, a0); r2 = RecordEvent(QL_EVENT_MOVED_MON_WITHIN_BOX, dest);
if (r2 == NULL) if (r2 == NULL)
return NULL; return NULL;
r2[0] = eventData[0]; r2[0] = eventData[0];
@@ -1376,10 +1378,10 @@ static const u16 *BufferQuestLogText_MovedMonWithinBox(const u16 *eventData)
return (const u16 *)boxIdxs + 1; return (const u16 *)boxIdxs + 1;
} }
static u16 *BufferQuestLogData_WithdrewMonFromPC(u16 *a0, const u16 *eventData) static u16 *BufferQuestLogData_WithdrewMonFromPC(u16 *dest, const u16 *eventData)
{ {
u16 *r2; u16 *r2;
r2 = sub_8113DE0(QL_EVENT_WITHDREW_MON_PC, a0); r2 = RecordEvent(QL_EVENT_WITHDREW_MON_PC, dest);
if (r2 == NULL) if (r2 == NULL)
return NULL; return NULL;
r2[0] = eventData[0]; r2[0] = eventData[0];
@@ -1399,10 +1401,10 @@ static const u16 *BufferQuestLogText_WithdrewMonFromPC(const u16 *eventData)
return (const u16 *)boxIdxs + 1; return (const u16 *)boxIdxs + 1;
} }
static u16 *BufferQuestLogData_DepositedMonInPC(u16 *a0, const u16 *eventData) static u16 *BufferQuestLogData_DepositedMonInPC(u16 *dest, const u16 *eventData)
{ {
u16 *r2; u16 *r2;
r2 = sub_8113DE0(QL_EVENT_DEPOSITED_MON_PC, a0); r2 = RecordEvent(QL_EVENT_DEPOSITED_MON_PC, dest);
if (r2 == NULL) if (r2 == NULL)
return NULL; return NULL;
r2[0] = eventData[0]; r2[0] = eventData[0];
@@ -1422,10 +1424,10 @@ static const u16 *BufferQuestLogText_DepositedMonInPC(const u16 *eventData)
return (const u16 *)boxIdxs + 1; return (const u16 *)boxIdxs + 1;
} }
static u16 *BufferQuestLogData_SwitchedMultipleMons(u16 *a0, const u16 *eventData) static u16 *BufferQuestLogData_SwitchedMultipleMons(u16 *dest, const u16 *eventData)
{ {
u16 *r2; u16 *r2;
r2 = sub_8113DE0(QL_EVENT_SWITCHED_MULTIPLE_MONS, a0); r2 = RecordEvent(QL_EVENT_SWITCHED_MULTIPLE_MONS, dest);
if (r2 == NULL) if (r2 == NULL)
return NULL; return NULL;
*((u8 *)r2 + 0) = *((const u8 *)eventData + 4); *((u8 *)r2 + 0) = *((const u8 *)eventData + 4);
@@ -1446,13 +1448,13 @@ static const u16 *BufferQuestLogText_SwitchedMultipleMons(const u16 *eventData)
return r4 + 1; return r4 + 1;
} }
static u16 *BufferQuestLogData_DepositedItemInPC(u16 *a0, const u16 *eventData) static u16 *BufferQuestLogData_DepositedItemInPC(u16 *dest, const u16 *eventData)
{ {
a0 = sub_8113DE0(QL_EVENT_DEPOSITED_ITEM_PC, a0); dest = RecordEvent(QL_EVENT_DEPOSITED_ITEM_PC, dest);
if (a0 == NULL) if (dest == NULL)
return NULL; return NULL;
a0[0] = eventData[0]; dest[0] = eventData[0];
return a0 + 1; return dest + 1;
} }
static const u16 *BufferQuestLogText_DepositedItemInPC(const u16 *eventData) static const u16 *BufferQuestLogText_DepositedItemInPC(const u16 *eventData)
@@ -1463,13 +1465,13 @@ static const u16 *BufferQuestLogText_DepositedItemInPC(const u16 *eventData)
return r4 + 1; return r4 + 1;
} }
static u16 *BufferQuestLogData_WithdrewItemFromPC(u16 *a0, const u16 *eventData) static u16 *BufferQuestLogData_WithdrewItemFromPC(u16 *dest, const u16 *eventData)
{ {
a0 = sub_8113DE0(QL_EVENT_WITHDREW_ITEM_PC, a0); dest = RecordEvent(QL_EVENT_WITHDREW_ITEM_PC, dest);
if (a0 == NULL) if (dest == NULL)
return NULL; return NULL;
a0[0] = eventData[0]; dest[0] = eventData[0];
return a0 + 1; return dest + 1;
} }
static const u16 *BufferQuestLogText_WithdrewItemFromPC(const u16 *eventData) static const u16 *BufferQuestLogText_WithdrewItemFromPC(const u16 *eventData)
@@ -1480,23 +1482,23 @@ static const u16 *BufferQuestLogText_WithdrewItemFromPC(const u16 *eventData)
return r4 + 1; return r4 + 1;
} }
u16 *BufferQuestLogData_DefeatedTrainer_(u16 eventId, u16 *a1, const u16 *a2) u16 *BufferQuestLogData_DefeatedTrainer_(u16 eventId, u16 *dest, const u16 *eventData)
{ {
a1 = sub_8113DE0(eventId, a1); dest = RecordEvent(eventId, dest);
if (a1 == NULL) if (dest == NULL)
return NULL; return NULL;
a1[0] = a2[1]; dest[0] = eventData[1];
a1[1] = a2[2]; dest[1] = eventData[2];
a1[2] = a2[0]; dest[2] = eventData[0];
*((u8 *)a1 + 6) = *((const u8 *)a2 + 7); *((u8 *)dest + 6) = *((const u8 *)eventData + 7);
*((u8 *)a1 + 7) = *((const u8 *)a2 + 6); *((u8 *)dest + 7) = *((const u8 *)eventData + 6);
return a1 + 4; return dest + 4;
} }
static u16 *BufferQuestLogData_DefeatedGymLeader(u16 *a0, const u16 *eventData) static u16 *BufferQuestLogData_DefeatedGymLeader(u16 *dest, const u16 *eventData)
{ {
sEventShouldNotRecordSteps = 1; sEventShouldNotRecordSteps = 1;
return BufferQuestLogData_DefeatedTrainer_(QL_EVENT_DEFEATED_GYM_LEADER, a0, eventData); return BufferQuestLogData_DefeatedTrainer_(QL_EVENT_DEFEATED_GYM_LEADER, dest, eventData);
} }
static const u16 *BufferQuestLogText_DefeatedGymLeader(const u16 *eventData) static const u16 *BufferQuestLogText_DefeatedGymLeader(const u16 *eventData)
@@ -1515,16 +1517,16 @@ static const u16 *BufferQuestLogText_DefeatedGymLeader(const u16 *eventData)
return eventData + 4; return eventData + 4;
} }
static u16 *BufferQuestLogData_DefeatedWildMon(u16 *a0, const u16 *eventData) static u16 *BufferQuestLogData_DefeatedWildMon(u16 *dest, const u16 *eventData)
{ {
u16 *r4 = a0; u16 *r4 = dest;
u8 *r5 = (u8 *)a0 + 8; u8 *r5 = (u8 *)dest + 8;
if (!sub_8110944(r4, sQuestLogEventCmdSizes[QL_EVENT_DEFEATED_WILD_MON])) if (!sub_8110944(r4, sQuestLogEventCmdSizes[QL_EVENT_DEFEATED_WILD_MON]))
return NULL; return NULL;
if (r5[0] == 0 && r5[1] == 0) if (r5[0] == 0 && r5[1] == 0)
{ {
r4[0] = QL_EVENT_DEFEATED_WILD_MON; r4[0] = QL_EVENT_DEFEATED_WILD_MON;
r4[1] = sQuestLogCursor; r4[1] = gQuestLogCurActionIdx;
} }
if (eventData[0]) if (eventData[0])
r4[2] = eventData[0]; r4[2] = eventData[0];
@@ -1603,10 +1605,10 @@ static bool8 IsSpeciesFromSpecialEncounter(u16 species)
return FALSE; return FALSE;
} }
static u16 *BufferQuestLogData_DefeatedEliteFourMember(u16 *a0, const u16 *eventData) static u16 *BufferQuestLogData_DefeatedEliteFourMember(u16 *dest, const u16 *eventData)
{ {
sEventShouldNotRecordSteps = 1; sEventShouldNotRecordSteps = 1;
return BufferQuestLogData_DefeatedTrainer_(QL_EVENT_DEFEATED_E4_MEMBER, a0, eventData); return BufferQuestLogData_DefeatedTrainer_(QL_EVENT_DEFEATED_E4_MEMBER, dest, eventData);
} }
static const u16 *BufferQuestLogText_DefeatedEliteFourMember(const u16 *eventData) static const u16 *BufferQuestLogText_DefeatedEliteFourMember(const u16 *eventData)
@@ -1623,17 +1625,17 @@ static const u16 *BufferQuestLogText_DefeatedEliteFourMember(const u16 *eventDat
return eventData + 4; return eventData + 4;
} }
static u16 *BufferQuestLogData_DefeatedChampion(u16 *a0, const u16 *eventData) static u16 *BufferQuestLogData_DefeatedChampion(u16 *dest, const u16 *eventData)
{ {
if (!sub_8110944(a0, sQuestLogEventCmdSizes[QL_EVENT_DEFEATED_CHAMPION])) if (!sub_8110944(dest, sQuestLogEventCmdSizes[QL_EVENT_DEFEATED_CHAMPION]))
return NULL; return NULL;
a0[0] = QL_EVENT_DEFEATED_CHAMPION | (2 << 12); dest[0] = QL_EVENT_DEFEATED_CHAMPION | (2 << 12);
a0[1] = sQuestLogCursor; dest[1] = gQuestLogCurActionIdx;
a0[2] = eventData[1]; dest[2] = eventData[1];
a0[3] = eventData[2]; dest[3] = eventData[2];
*((u8 *)a0 + 8) = *((const u8 *)eventData + 6); *((u8 *)dest + 8) = *((const u8 *)eventData + 6);
sEventShouldNotRecordSteps = 1; sEventShouldNotRecordSteps = 1;
return a0 + 5; return dest + 5;
} }
static const u16 *BufferQuestLogText_DefeatedChampion(const u16 *a0) static const u16 *BufferQuestLogText_DefeatedChampion(const u16 *a0)
@@ -1667,10 +1669,10 @@ static const u16 *BufferQuestLogText_DefeatedChampion(const u16 *a0)
return (const u16 *)(r5 + 2); return (const u16 *)(r5 + 2);
} }
static u16 *BufferQuestLogData_DefeatedTrainer(u16 *a0, const u16 *eventData) static u16 *BufferQuestLogData_DefeatedTrainer(u16 *dest, const u16 *eventData)
{ {
sEventShouldNotRecordSteps = 1; sEventShouldNotRecordSteps = 1;
return BufferQuestLogData_DefeatedTrainer_(QL_EVENT_DEFEATED_TRAINER, a0, eventData); return BufferQuestLogData_DefeatedTrainer_(QL_EVENT_DEFEATED_TRAINER, dest, eventData);
} }
static const u16 *BufferQuestLogText_DefeatedTrainer(const u16 *eventData) static const u16 *BufferQuestLogText_DefeatedTrainer(const u16 *eventData)
@@ -1846,9 +1848,9 @@ static const u8 *const sUsedFieldMoveTexts[] =
[FIELD_MOVE_SWEET_SCENT] = gText_QuestLog_UsedSweetScent [FIELD_MOVE_SWEET_SCENT] = gText_QuestLog_UsedSweetScent
}; };
static u16 *BufferQuestLogData_DepartedLocation(u16 *a0, const u16 *eventData) static u16 *BufferQuestLogData_DepartedLocation(u16 *dest, const u16 *eventData)
{ {
u16 *r2 = sub_8113DE0(QL_EVENT_DEPARTED, a0); u16 *r2 = RecordEvent(QL_EVENT_DEPARTED, dest);
if (r2 == NULL) if (r2 == NULL)
return NULL; return NULL;
*((u8 *)r2 + 0) = *((const u8 *)eventData + 0); *((u8 *)r2 + 0) = *((const u8 *)eventData + 0);
@@ -1917,14 +1919,14 @@ static bool8 ShouldRegisterEvent_HandleGameCorner(u16 eventId, const u16 *eventD
return TRUE; return TRUE;
} }
static u16 *BufferQuestLogData_UsedFieldMove(u16 *a0, const u16 *eventData) static u16 *BufferQuestLogData_UsedFieldMove(u16 *dest, const u16 *eventData)
{ {
u8 *r3; u8 *r3;
a0 = sub_8113DE0(QL_EVENT_USED_FIELD_MOVE, a0); dest = RecordEvent(QL_EVENT_USED_FIELD_MOVE, dest);
if (a0 == NULL) if (dest == NULL)
return NULL; return NULL;
a0[0] = eventData[0]; dest[0] = eventData[0];
r3 = (u8 *)a0 + 2; r3 = (u8 *)dest + 2;
r3[0] = *((const u8 *)eventData + 2); r3[0] = *((const u8 *)eventData + 2);
r3[1] = *((const u8 *)eventData + 3); r3[1] = *((const u8 *)eventData + 3);
if (r3[0] == FIELD_MOVE_TELEPORT || r3[0] == FIELD_MOVE_DIG) if (r3[0] == FIELD_MOVE_TELEPORT || r3[0] == FIELD_MOVE_DIG)
@@ -1955,18 +1957,18 @@ static const u16 *BufferQuestLogText_UsedFieldMove(const u16 *eventData)
return (const u16 *)(r5 + 2); return (const u16 *)(r5 + 2);
} }
static u16 *BufferQuestLogData_BoughtItem(u16 *a0, const u16 *eventData) static u16 *BufferQuestLogData_BoughtItem(u16 *dest, const u16 *eventData)
{ {
a0 = sub_8113DE0(QL_EVENT_BOUGHT_ITEM, a0); dest = RecordEvent(QL_EVENT_BOUGHT_ITEM, dest);
if (a0 == NULL) if (dest == NULL)
return NULL; return NULL;
a0[0] = eventData[2]; dest[0] = eventData[2];
a0[1] = eventData[3]; dest[1] = eventData[3];
a0[2] = *((const u32 *)eventData) >> 16; dest[2] = *((const u32 *)eventData) >> 16;
a0[3] = *((const u32 *)eventData); dest[3] = *((const u32 *)eventData);
*((u8 *)a0 + 8) = *((const u8 *)eventData + 8); *((u8 *)dest + 8) = *((const u8 *)eventData + 8);
*((u8 *)a0 + 9) = 1; *((u8 *)dest + 9) = 1;
return a0 + 5; return dest + 5;
} }
static const u16 *BufferQuestLogText_BoughtItem(const u16 *eventData) static const u16 *BufferQuestLogText_BoughtItem(const u16 *eventData)
@@ -1989,18 +1991,18 @@ static const u16 *BufferQuestLogText_BoughtItem(const u16 *eventData)
return (const u16 *)(r7 + 2); return (const u16 *)(r7 + 2);
} }
static u16 *BufferQuestLogData_SoldItem(u16 *a0, const u16 *eventData) static u16 *BufferQuestLogData_SoldItem(u16 *dest, const u16 *eventData)
{ {
a0 = sub_8113DE0(QL_EVENT_SOLD_ITEM, a0); dest = RecordEvent(QL_EVENT_SOLD_ITEM, dest);
if (a0 == NULL) if (dest == NULL)
return NULL; return NULL;
a0[0] = eventData[2]; dest[0] = eventData[2];
a0[1] = eventData[3]; dest[1] = eventData[3];
a0[2] = *((const u32 *)eventData) >> 16; dest[2] = *((const u32 *)eventData) >> 16;
a0[3] = *((const u32 *)eventData); dest[3] = *((const u32 *)eventData);
*((u8 *)a0 + 8) = *((const u8 *)eventData + 8); *((u8 *)dest + 8) = *((const u8 *)eventData + 8);
*((u8 *)a0 + 9) = *((const u8 *)eventData + 9); *((u8 *)dest + 9) = *((const u8 *)eventData + 9);
return a0 + 5; return dest + 5;
} }
static const u16 *BufferQuestLogText_SoldItem(const u16 *eventData) static const u16 *BufferQuestLogText_SoldItem(const u16 *eventData)
@@ -2036,14 +2038,14 @@ static const u16 *BufferQuestLogText_SoldItem(const u16 *eventData)
return (const u16 *)(r7 + 2); return (const u16 *)(r7 + 2);
} }
static u16 *BufferQuestLogData_ObtainedItem(u16 *a0, const u16 *eventData) static u16 *BufferQuestLogData_ObtainedItem(u16 *dest, const u16 *eventData)
{ {
a0 = sub_8113DE0(QL_EVENT_OBTAINED_ITEM, a0); dest = RecordEvent(QL_EVENT_OBTAINED_ITEM, dest);
if (a0 == NULL) if (dest == NULL)
return NULL; return NULL;
a0[0] = eventData[0]; dest[0] = eventData[0];
*((u8 *)a0 + 2) = *((const u8 *)eventData + 2); *((u8 *)dest + 2) = *((const u8 *)eventData + 2);
return a0 + 2; return dest + 2;
} }
static const u16 *BufferQuestLogText_ObtainedItem(const u16 *eventData) static const u16 *BufferQuestLogText_ObtainedItem(const u16 *eventData)
@@ -2117,13 +2119,13 @@ void sub_8115798(void)
} }
} }
static u16 *BufferQuestLogData_ArrivedInLocation(u16 *a0, const u16 *eventData) static u16 *BufferQuestLogData_ArrivedInLocation(u16 *dest, const u16 *eventData)
{ {
a0 = sub_8113DE0(QL_EVENT_ARRIVED, a0); dest = RecordEvent(QL_EVENT_ARRIVED, dest);
if (a0 == NULL) if (dest == NULL)
return NULL; return NULL;
a0[0] = eventData[0]; dest[0] = eventData[0];
return a0 + 1; return dest + 1;
} }
static const u16 *BufferQuestLogText_ArrivedInLocation(const u16 *eventData) static const u16 *BufferQuestLogText_ArrivedInLocation(const u16 *eventData)
+1 -11
View File
@@ -4,6 +4,7 @@
#include "event_data.h" #include "event_data.h"
#include "event_scripts.h" #include "event_scripts.h"
#include "random.h" #include "random.h"
#include "constants/trainer_fan_club.h"
struct TrainerFanClub struct TrainerFanClub
{ {
@@ -18,17 +19,6 @@ struct TrainerFanClub
#define SET_TRAINER_FAN_CLUB_FLAG(flag) (fanClub->fanFlags |= 1 << (flag)) #define SET_TRAINER_FAN_CLUB_FLAG(flag) (fanClub->fanFlags |= 1 << (flag))
#define FLIP_TRAINER_FAN_CLUB_FLAG(flag)(fanClub->fanFlags ^= 1 << (flag)) #define FLIP_TRAINER_FAN_CLUB_FLAG(flag)(fanClub->fanFlags ^= 1 << (flag))
#define FANCLUB_MEMBER1 0
#define FANCLUB_MEMBER2 1
#define FANCLUB_MEMBER3 2
#define FANCLUB_MEMBER4 3
#define FANCLUB_MEMBER5 4
#define FANCLUB_MEMBER6 5
#define FANCLUB_MEMBER7 6
#define FANCLUB_MEMBER8 7
#define NUM_TRAINER_FAN_CLUB_MEMBERS 8
static void TryLoseFansFromPlayTimeAfterLinkBattle(struct TrainerFanClub *); static void TryLoseFansFromPlayTimeAfterLinkBattle(struct TrainerFanClub *);
static void UpdateTrainerFanClubGameClear(struct TrainerFanClub *); static void UpdateTrainerFanClubGameClear(struct TrainerFanClub *);
static u8 PlayerGainRandomTrainerFan(struct TrainerFanClub *); static u8 PlayerGainRandomTrainerFan(struct TrainerFanClub *);