diff options
126 files changed, 2162 insertions, 2071 deletions
diff --git a/asm/cable_club.s b/asm/cable_club.s index d949cc492..2aa355ab4 100644 --- a/asm/cable_club.s +++ b/asm/cable_club.s @@ -1926,7 +1926,7 @@ sub_8081668: @ 8081668 bl sub_8055DB8 bl LoadPlayerParty bl SavePlayerBag - bl sub_81134B8 + bl Special_UpdateTrainerFansAfterLinkBattle ldr r0, _080816B8 @ =gSpecialVar_0x8004 ldrh r0, [r0] cmp r0, 0x5 diff --git a/asm/field_control_avatar.s b/asm/field_control_avatar.s index 22a987f03..673c8bfc3 100644 --- a/asm/field_control_avatar.s +++ b/asm/field_control_avatar.s @@ -100,7 +100,7 @@ _0806C914: orrs r0, r1 strb r0, [r5] _0806C940: - ldr r0, _0806CA18 @ =gUnknown_203ADFA + ldr r0, _0806CA18 @ =gQuestLogState ldrb r0, [r0] subs r0, 0x2 lsls r0, 24 @@ -158,7 +158,7 @@ _0806C996: orrs r0, r1 strb r0, [r5, 0x1] _0806C9AC: - ldr r0, _0806CA18 @ =gUnknown_203ADFA + ldr r0, _0806CA18 @ =gQuestLogState ldrb r0, [r0] subs r0, 0x2 lsls r0, 24 @@ -198,7 +198,7 @@ _0806C9E6: orrs r0, r1 strb r0, [r5] _0806C9F6: - ldr r0, _0806CA18 @ =gUnknown_203ADFA + ldr r0, _0806CA18 @ =gQuestLogState ldrb r0, [r0] subs r0, 0x2 lsls r0, 24 @@ -214,7 +214,7 @@ _0806C9F6: b _0806CA3E .align 2, 0 _0806CA14: .4byte gPlayerAvatar -_0806CA18: .4byte gUnknown_203ADFA +_0806CA18: .4byte gQuestLogState _0806CA1C: movs r0, 0x80 ands r0, r1 @@ -1787,7 +1787,7 @@ sub_806D698: @ 806D698 bl InUnionRoom cmp r0, 0x1 beq _0806D72C - ldr r0, _0806D6E0 @ =gUnknown_203ADFA + ldr r0, _0806D6E0 @ =gQuestLogState ldrb r0, [r0] cmp r0, 0x2 beq _0806D72C @@ -1813,7 +1813,7 @@ sub_806D698: @ 806D698 bl ScriptContext1_SetupScript b _0806D730 .align 2, 0 -_0806D6E0: .4byte gUnknown_203ADFA +_0806D6E0: .4byte gQuestLogState _0806D6E4: .4byte gPlayerAvatar _0806D6E8: .4byte gUnknown_81A8CED _0806D6EC: diff --git a/asm/field_effect.s b/asm/field_effect.s index 2f1aa5e61..462182563 100644 --- a/asm/field_effect.s +++ b/asm/field_effect.s @@ -7227,7 +7227,7 @@ _08086BA4: .4byte sub_8086990 thumb_func_start sub_8086BA8 sub_8086BA8: @ 8086BA8 push {lr} - ldr r0, _08086BC8 @ =gUnknown_203ADFA + ldr r0, _08086BC8 @ =gQuestLogState ldrb r0, [r0] cmp r0, 0x1 bne _08086BBA @@ -7242,7 +7242,7 @@ _08086BBA: pop {r1} bx r1 .align 2, 0 -_08086BC8: .4byte gUnknown_203ADFA +_08086BC8: .4byte gQuestLogState _08086BCC: .4byte sub_8086BD0 thumb_func_end sub_8086BA8 diff --git a/asm/field_message_box.s b/asm/field_message_box.s index 183b5a3fb..b823956b7 100644 --- a/asm/field_message_box.s +++ b/asm/field_message_box.s @@ -53,7 +53,7 @@ _08069398: beq _080693EA b _08069402 _0806939E: - ldr r0, _080693BC @ =gUnknown_203ADFA + ldr r0, _080693BC @ =gQuestLogState ldrb r0, [r0] cmp r0, 0x2 bne _080693C4 @@ -68,7 +68,7 @@ _0806939E: bl TextWindow_LoadTilesStdFrame1 b _080693E2 .align 2, 0 -_080693BC: .4byte gUnknown_203ADFA +_080693BC: .4byte gQuestLogState _080693C0: .4byte gTextFlags _080693C4: bl IsMsgSignPost diff --git a/asm/macros/event.inc b/asm/macros/event.inc index ab7b06932..1be118154 100644 --- a/asm/macros/event.inc +++ b/asm/macros/event.inc @@ -1627,9 +1627,9 @@ call EventScript_SetGymTrainers .endm - @ Appears frequently at start of NPC scripts. Should be used once named/understood - .macro unk_questlog - special sub_8110AB4 + @ Jumps to dest if the Quest Log is currently showing playback scenes (dest is usually a release/end) + .macro goto_if_questlog dest:req + special Special_GetQuestLogState compare VAR_RESULT, 2 - goto_if_eq EventScript_1A7AE0 + goto_if_eq \dest .endm diff --git a/asm/overworld.s b/asm/overworld.s index 2316f77b1..0b2e99ebf 100644 --- a/asm/overworld.s +++ b/asm/overworld.s @@ -3360,7 +3360,7 @@ sub_8056534: @ 8056534 lsrs r0, 24 cmp r0, 0x1 beq _08056554 - ldr r0, _08056564 @ =gUnknown_203ADFA + ldr r0, _08056564 @ =gQuestLogState ldrb r0, [r0] cmp r0, 0x2 bne _08056568 @@ -3370,7 +3370,7 @@ _08056554: .align 2, 0 _0805655C: .4byte gMain _08056560: .4byte sub_80565B4 -_08056564: .4byte gUnknown_203ADFA +_08056564: .4byte gQuestLogState _08056568: ldrh r0, [r4, 0x2E] ldrh r1, [r4, 0x2C] @@ -4145,7 +4145,7 @@ _08056BFA: _08056BFE: bl mli4_mapscripts_and_other bl sub_8057114 - ldr r0, _08056C1C @ =gUnknown_203ADFA + ldr r0, _08056C1C @ =gQuestLogState ldrb r0, [r0] cmp r0, 0x2 beq _08056C16 @@ -4155,7 +4155,7 @@ _08056C16: bl sub_812B35C b _08056CCA .align 2, 0 -_08056C1C: .4byte gUnknown_203ADFA +_08056C1C: .4byte gQuestLogState _08056C20: bl InitCurrentFlashLevelScanlineEffect bl sub_8056F1C diff --git a/asm/pokemon_storage_system.s b/asm/pokemon_storage_system.s index 460410f47..358ea8b32 100644 --- a/asm/pokemon_storage_system.s +++ b/asm/pokemon_storage_system.s @@ -8649,7 +8649,7 @@ _0808FF62: strb r6, [r1, 0x5] _0808FF64: adds r0, r2, 0 - bl sub_8113550 + bl SetQuestLogEvent _0808FF6A: pop {r4-r7} pop {r0} diff --git a/asm/union_room.s b/asm/union_room.s index 2ce6ad6e1..cd549c173 100644 --- a/asm/union_room.s +++ b/asm/union_room.s @@ -7565,7 +7565,7 @@ InitUnionRoom: @ 811999C adds r6, r0, 0 movs r0, 0xFF strb r0, [r5] - ldr r0, _081199EC @ =gUnknown_203ADFA + ldr r0, _081199EC @ =gQuestLogState ldrb r0, [r0] subs r0, 0x2 lsls r0, 24 @@ -7596,7 +7596,7 @@ _081199E0: bx r0 .align 2, 0 _081199E8: .4byte gUnknown_203B04C -_081199EC: .4byte gUnknown_203ADFA +_081199EC: .4byte gQuestLogState _081199F0: .4byte sub_81199FC _081199F4: .4byte gUnknown_203B05C _081199F8: .4byte gUnknown_300202C diff --git a/asm/union_room_chat.s b/asm/union_room_chat.s index 1a2b4951e..adfd66b5d 100644 --- a/asm/union_room_chat.s +++ b/asm/union_room_chat.s @@ -165,7 +165,7 @@ _08128554: bl SetMainCallback2 movs r0, 0x11 movs r1, 0 - bl sub_8113550 + bl SetQuestLogEvent ldr r0, _081285A8 @ =sub_81285E8 movs r1, 0x8 bl CreateTask diff --git a/data/event_scripts.s b/data/event_scripts.s index 485159e9a..05468c8ca 100644 --- a/data/event_scripts.s +++ b/data/event_scripts.s @@ -27,6 +27,7 @@ #include "constants/field_weather.h" #include "constants/union_room.h" #include "constants/trade.h" +#include "constants/quest_log.h" .include "asm/macros.inc" .include "asm/macros/event.inc" .set FALSE, 0 @@ -1179,7 +1180,7 @@ EventScript_ResetAllMapFlags:: @ 81A6481 EventScript_1A651A:: @ 81A651A clearflag FLAG_HIDE_POSTGAME_GOSSIPERS call EventScript_ResetEliteFour - special sub_81130A8 + special Special_UpdateTrainerFanClubGameClear specialvar VAR_RESULT, IsNationalPokedexEnabled compare VAR_RESULT, FALSE call_if_eq EventScript_1A653B @@ -1247,9 +1248,7 @@ EventScript_OutOfCenterPartyHeal:: @ 81A6C26 EventScript_WallTownMap:: @ 81A6C32 lockall msgbox Text_ATownMap - special sub_8110AB4 - compare VAR_RESULT, 2 - goto_if_eq EventScript_1A7AE0 + goto_if_questlog EventScript_ReleaseEnd fadescreen FADE_TO_BLACK special Special_TownMap waitstate @@ -1594,7 +1593,7 @@ gUnknown_81A7ADB:: @ 81A7ADB release end -EventScript_1A7AE0:: @ 81A7AE0 +EventScript_ReleaseEnd:: @ 81A7AE0 release end @@ -2005,9 +2004,7 @@ EventScript_1B2993:: @ 81B2993 EventScript_1B2994:: @ 81B2994 applymovement 1, Movement_FacePlayer waitmovement 0 - special sub_8110AB4 - compare VAR_RESULT, 2 - goto_if_eq EventScript_1A7AE0 + goto_if_questlog EventScript_ReleaseEnd special sub_8112364 compare VAR_0x8008, 0 goto_if_eq EventScript_1B29C6 diff --git a/data/maps/BirthIsland_Exterior/scripts.inc b/data/maps/BirthIsland_Exterior/scripts.inc index 2b13d4440..d58a16b85 100644 --- a/data/maps/BirthIsland_Exterior/scripts.inc +++ b/data/maps/BirthIsland_Exterior/scripts.inc @@ -42,9 +42,7 @@ BirthIsland_Exterior_EventScript_TryRemoveDeoxys:: @ 816525D BirthIsland_Exterior_EventScript_Triangle:: @ 8165271 lock faceplayer - special sub_8110AB4 - compare VAR_RESULT, 2 - goto_if_eq EventScript_1A7AE0 + goto_if_questlog EventScript_ReleaseEnd special sub_8112364 special DoDeoxysRockInteraction waitstate diff --git a/data/maps/CeladonCity_Condominiums_3F/scripts.inc b/data/maps/CeladonCity_Condominiums_3F/scripts.inc index dfa1836f0..d7bb14293 100644 --- a/data/maps/CeladonCity_Condominiums_3F/scripts.inc +++ b/data/maps/CeladonCity_Condominiums_3F/scripts.inc @@ -31,9 +31,7 @@ EventScript_16C418:: @ 816C418 message Text_1963CD waitmessage delay 60 - special sub_8110AB4 - compare VAR_RESULT, 2 - goto_if_eq EventScript_1A7AE0 + goto_if_questlog EventScript_ReleaseEnd special Special_ShowDiploma waitstate release diff --git a/data/maps/CeladonCity_DepartmentStore_2F/scripts.inc b/data/maps/CeladonCity_DepartmentStore_2F/scripts.inc index 3289f08b3..24d4771b2 100644 --- a/data/maps/CeladonCity_DepartmentStore_2F/scripts.inc +++ b/data/maps/CeladonCity_DepartmentStore_2F/scripts.inc @@ -14,9 +14,7 @@ CeladonCity_DepartmentStore_2F_EventScript_16BB07:: @ 816BB07 end CeladonCity_DepartmentStore_2F_EventScript_16BB10:: @ 816BB10 - special sub_8110AB4 - compare VAR_RESULT, 2 - goto_if_eq EventScript_1A7AE0 + goto_if_questlog EventScript_ReleaseEnd lock faceplayer message Text_MayIHelpYou @@ -42,9 +40,7 @@ Items_16BB38:: @ 816BB38 end CeladonCity_DepartmentStore_2F_EventScript_16BB4E:: @ 816BB4E - special sub_8110AB4 - compare VAR_RESULT, 2 - goto_if_eq EventScript_1A7AE0 + goto_if_questlog EventScript_ReleaseEnd lock faceplayer message Text_MayIHelpYou diff --git a/data/maps/CeladonCity_DepartmentStore_4F/scripts.inc b/data/maps/CeladonCity_DepartmentStore_4F/scripts.inc index 233bfefc9..f04968b1e 100644 --- a/data/maps/CeladonCity_DepartmentStore_4F/scripts.inc +++ b/data/maps/CeladonCity_DepartmentStore_4F/scripts.inc @@ -14,9 +14,7 @@ CeladonCity_DepartmentStore_4F_EventScript_16BC01:: @ 816BC01 end CeladonCity_DepartmentStore_4F_EventScript_16BC0A:: @ 816BC0A - special sub_8110AB4 - compare VAR_RESULT, 2 - goto_if_eq EventScript_1A7AE0 + goto_if_questlog EventScript_ReleaseEnd lock faceplayer message Text_MayIHelpYou diff --git a/data/maps/CeladonCity_DepartmentStore_5F/scripts.inc b/data/maps/CeladonCity_DepartmentStore_5F/scripts.inc index 5163273c5..9056d2b2d 100644 --- a/data/maps/CeladonCity_DepartmentStore_5F/scripts.inc +++ b/data/maps/CeladonCity_DepartmentStore_5F/scripts.inc @@ -14,9 +14,7 @@ CeladonCity_DepartmentStore_5F_EventScript_16BC53:: @ 816BC53 end CeladonCity_DepartmentStore_5F_EventScript_16BC5C:: @ 816BC5C - special sub_8110AB4 - compare VAR_RESULT, 2 - goto_if_eq EventScript_1A7AE0 + goto_if_questlog EventScript_ReleaseEnd lock faceplayer message Text_MayIHelpYou @@ -40,9 +38,7 @@ Items_16BC84:: @ 816BC84 end CeladonCity_DepartmentStore_5F_EventScript_16BC96:: @ 816BC96 - special sub_8110AB4 - compare VAR_RESULT, 2 - goto_if_eq EventScript_1A7AE0 + goto_if_questlog EventScript_ReleaseEnd lock faceplayer message Text_MayIHelpYou diff --git a/data/maps/CeladonCity_DepartmentStore_Roof/scripts.inc b/data/maps/CeladonCity_DepartmentStore_Roof/scripts.inc index 6b19ebe66..48f682567 100644 --- a/data/maps/CeladonCity_DepartmentStore_Roof/scripts.inc +++ b/data/maps/CeladonCity_DepartmentStore_Roof/scripts.inc @@ -2,9 +2,7 @@ CeladonCity_DepartmentStore_Roof_MapScripts:: @ 816BCCC .byte 0 CeladonCity_DepartmentStore_Roof_EventScript_16BCCD:: @ 816BCCD - special sub_8110AB4 - compare VAR_RESULT, 2 - goto_if_eq EventScript_1A7AE0 + goto_if_questlog EventScript_ReleaseEnd special sub_8112364 lock faceplayer diff --git a/data/maps/CeladonCity_GameCorner/scripts.inc b/data/maps/CeladonCity_GameCorner/scripts.inc index 064e939e4..20b2ba04c 100644 --- a/data/maps/CeladonCity_GameCorner/scripts.inc +++ b/data/maps/CeladonCity_GameCorner/scripts.inc @@ -19,9 +19,7 @@ CeladonCity_GameCorner_EventScript_16C684:: @ 816C684 end CeladonCity_GameCorner_EventScript_16C68D:: @ 816C68D - special sub_8110AB4 - compare VAR_RESULT, 2 - goto_if_eq EventScript_1A7AE0 + goto_if_questlog EventScript_ReleaseEnd lock faceplayer showmoneybox 0, 0, 0 diff --git a/data/maps/CeladonCity_GameCorner_PrizeRoom/scripts.inc b/data/maps/CeladonCity_GameCorner_PrizeRoom/scripts.inc index f14f92430..c9eb1eec6 100644 --- a/data/maps/CeladonCity_GameCorner_PrizeRoom/scripts.inc +++ b/data/maps/CeladonCity_GameCorner_PrizeRoom/scripts.inc @@ -13,9 +13,7 @@ CeladonCity_GameCorner_PrizeRoom_EventScript_16CB88:: @ 816CB88 lock faceplayer goto_if_unset FLAG_GOT_COIN_CASE, EventScript_16CD99 - special sub_8110AB4 - compare VAR_RESULT, 2 - goto_if_eq EventScript_1A7AE0 + goto_if_questlog EventScript_ReleaseEnd showcoinsbox 0, 0 msgbox gUnknown_8197057 goto EventScript_16CBB2 @@ -250,9 +248,7 @@ CeladonCity_GameCorner_PrizeRoom_EventScript_16CE1D:: @ 816CE1D lock faceplayer goto_if_unset FLAG_GOT_COIN_CASE, EventScript_16CD99 - special sub_8110AB4 - compare VAR_RESULT, 2 - goto_if_eq EventScript_1A7AE0 + goto_if_questlog EventScript_ReleaseEnd showcoinsbox 0, 0 msgbox gUnknown_8197057 goto EventScript_16CE47 @@ -347,9 +343,7 @@ CeladonCity_GameCorner_PrizeRoom_EventScript_16CF88:: @ 816CF88 lock faceplayer goto_if_unset FLAG_GOT_COIN_CASE, EventScript_16CD99 - special sub_8110AB4 - compare VAR_RESULT, 2 - goto_if_eq EventScript_1A7AE0 + goto_if_questlog EventScript_ReleaseEnd showcoinsbox 0, 0 msgbox gUnknown_8197057 goto EventScript_16CFB2 diff --git a/data/maps/CeruleanCave_B1F/scripts.inc b/data/maps/CeruleanCave_B1F/scripts.inc index 874bfce06..8fcf7cbf1 100644 --- a/data/maps/CeruleanCave_B1F/scripts.inc +++ b/data/maps/CeruleanCave_B1F/scripts.inc @@ -23,9 +23,7 @@ EventScript_1624F1:: @ 81624F1 return CeruleanCave_B1F_EventScript_1624F5:: @ 81624F5 - special sub_8110AB4 - compare VAR_RESULT, 2 - goto_if_eq EventScript_1A7AE0 + goto_if_questlog EventScript_ReleaseEnd special sub_8112364 lock faceplayer diff --git a/data/maps/CeruleanCity_House4/scripts.inc b/data/maps/CeruleanCity_House4/scripts.inc index 3fb71aeae..3d96fd67c 100644 --- a/data/maps/CeruleanCity_House4/scripts.inc +++ b/data/maps/CeruleanCity_House4/scripts.inc @@ -2,9 +2,7 @@ CeruleanCity_House4_MapScripts:: @ 816ACEE .byte 0 CeruleanCity_House4_EventScript_WonderNewsBerryMan:: @ 816ACEF - special sub_8110AB4 - compare VAR_RESULT, 2 - goto_if_eq EventScript_1A7AE0 + goto_if_questlog EventScript_ReleaseEnd special sub_8112364 lock specialvar VAR_0x8004, Special_GetMENewsJisanItemAndState diff --git a/data/maps/CeruleanCity_House5/scripts.inc b/data/maps/CeruleanCity_House5/scripts.inc index 5f4378c7e..04615b895 100644 --- a/data/maps/CeruleanCity_House5/scripts.inc +++ b/data/maps/CeruleanCity_House5/scripts.inc @@ -174,9 +174,7 @@ CeruleanCity_House5_EventScript_NotEnoughBerryPowder:: @ 816B0CC CeruleanCity_House5_EventScript_BerryCrushRankings:: @ 816B0DA lockall - special sub_8110AB4 - compare VAR_RESULT, 2 - goto_if_eq EventScript_1A7AE0 + goto_if_questlog EventScript_ReleaseEnd special ShowBerryCrushRankings waitstate releaseall diff --git a/data/maps/CeruleanCity_Mart/scripts.inc b/data/maps/CeruleanCity_Mart/scripts.inc index fb4cb7f7c..1ff7b2c47 100644 --- a/data/maps/CeruleanCity_Mart/scripts.inc +++ b/data/maps/CeruleanCity_Mart/scripts.inc @@ -10,9 +10,7 @@ CeruleanCity_Mart_EventScript_Woman:: @ 816ACA7 end CeruleanCity_Mart_EventScript_Clerk:: @ 816ACB0 - special sub_8110AB4 - compare VAR_RESULT, 2 - goto_if_eq EventScript_1A7AE0 + goto_if_questlog EventScript_ReleaseEnd lock faceplayer message Text_MayIHelpYou diff --git a/data/maps/CinnabarIsland_Mart/scripts.inc b/data/maps/CinnabarIsland_Mart/scripts.inc index 5d512a32b..f5ecf68d8 100644 --- a/data/maps/CinnabarIsland_Mart/scripts.inc +++ b/data/maps/CinnabarIsland_Mart/scripts.inc @@ -10,9 +10,7 @@ CinnabarIsland_Mart_EventScript_16EA19:: @ 816EA19 end CinnabarIsland_Mart_EventScript_16EA22:: @ 816EA22 - special sub_8110AB4 - compare VAR_RESULT, 2 - goto_if_eq EventScript_1A7AE0 + goto_if_questlog EventScript_ReleaseEnd lock faceplayer message Text_MayIHelpYou diff --git a/data/maps/FiveIsland_LostCave_Room10/scripts.inc b/data/maps/FiveIsland_LostCave_Room10/scripts.inc index 3b3dffc4d..8610c7c2d 100644 --- a/data/maps/FiveIsland_LostCave_Room10/scripts.inc +++ b/data/maps/FiveIsland_LostCave_Room10/scripts.inc @@ -24,9 +24,7 @@ EventScript_164C52:: @ 8164C52 applymovement 1, Movement_164CC8 waitmovement 0 msgbox gUnknown_817D062 - special sub_8110AB4 - compare VAR_RESULT, 2 - goto_if_eq EventScript_164CB6 + goto_if_questlog EventScript_164CB6 trainerbattle_no_intro TRAINER_LADY_SELPHY, Text_17D086 msgbox gUnknown_817D0B2 closemessage diff --git a/data/maps/FiveIsland_MemorialPillar/scripts.inc b/data/maps/FiveIsland_MemorialPillar/scripts.inc index b193e830e..98de6167e 100644 --- a/data/maps/FiveIsland_MemorialPillar/scripts.inc +++ b/data/maps/FiveIsland_MemorialPillar/scripts.inc @@ -32,9 +32,7 @@ EventScript_168A22:: @ 8168A22 end FiveIsland_MemorialPillar_EventScript_168A48:: @ 8168A48 - special sub_8110AB4 - compare VAR_RESULT, 2 - goto_if_eq EventScript_1A7AE0 + goto_if_questlog EventScript_ReleaseEnd special sub_8112364 lockall goto_if_set FLAG_GOT_TM42_AT_MEMORIAL_PILLAR, EventScript_168B0B diff --git a/data/maps/FiveIsland_ResortGorgeous_House/scripts.inc b/data/maps/FiveIsland_ResortGorgeous_House/scripts.inc index 946508db5..50fe74879 100644 --- a/data/maps/FiveIsland_ResortGorgeous_House/scripts.inc +++ b/data/maps/FiveIsland_ResortGorgeous_House/scripts.inc @@ -2,9 +2,7 @@ FiveIsland_ResortGorgeous_House_MapScripts:: @ 8171EBD .byte 0 FiveIsland_ResortGorgeous_House_EventScript_171EBE:: @ 8171EBE - special sub_8110AB4 - compare VAR_RESULT, 2 - goto_if_eq EventScript_1A7AE0 + goto_if_questlog EventScript_ReleaseEnd special sub_8112364 lock faceplayer diff --git a/data/maps/FiveIsland_WaterLabyrinth/scripts.inc b/data/maps/FiveIsland_WaterLabyrinth/scripts.inc index 605b05065..ed82fc5eb 100644 --- a/data/maps/FiveIsland_WaterLabyrinth/scripts.inc +++ b/data/maps/FiveIsland_WaterLabyrinth/scripts.inc @@ -2,9 +2,7 @@ FiveIsland_WaterLabyrinth_MapScripts:: @ 816884D .byte 0 FiveIsland_WaterLabyrinth_EventScript_16884E:: @ 816884E - special sub_8110AB4 - compare VAR_RESULT, 2 - goto_if_eq EventScript_1A7AE0 + goto_if_questlog EventScript_ReleaseEnd special sub_8112364 lock faceplayer diff --git a/data/maps/FourIsland/scripts.inc b/data/maps/FourIsland/scripts.inc index 8f84b1e6c..576e16390 100644 --- a/data/maps/FourIsland/scripts.inc +++ b/data/maps/FourIsland/scripts.inc @@ -70,9 +70,7 @@ Movement_167D52:: @ 8167D52 step_end FourIsland_EventScript_167D55:: @ 8167D55 - special sub_8110AB4 - compare VAR_RESULT, 2 - goto_if_eq EventScript_1A7AE0 + goto_if_questlog EventScript_ReleaseEnd special sub_8112364 lock faceplayer diff --git a/data/maps/FourIsland_Mart/scripts.inc b/data/maps/FourIsland_Mart/scripts.inc index 0d0d1c6df..5f85eaae4 100644 --- a/data/maps/FourIsland_Mart/scripts.inc +++ b/data/maps/FourIsland_Mart/scripts.inc @@ -2,9 +2,7 @@ FourIsland_Mart_MapScripts:: @ 8171CAD .byte 0 FourIsland_Mart_EventScript_171CAE:: @ 8171CAE - special sub_8110AB4 - compare VAR_RESULT, 2 - goto_if_eq EventScript_1A7AE0 + goto_if_questlog EventScript_ReleaseEnd lock faceplayer message Text_MayIHelpYou diff --git a/data/maps/FourIsland_PokemonDayCare/scripts.inc b/data/maps/FourIsland_PokemonDayCare/scripts.inc index f3b695231..d158be282 100644 --- a/data/maps/FourIsland_PokemonDayCare/scripts.inc +++ b/data/maps/FourIsland_PokemonDayCare/scripts.inc @@ -2,9 +2,7 @@ FourIsland_PokemonDayCare_MapScripts:: @ 817193F .byte 0 FourIsland_PokemonDayCare_EventScript_171940:: @ 8171940 - special sub_8110AB4 - compare VAR_RESULT, 2 - goto_if_eq EventScript_1A7AE0 + goto_if_questlog EventScript_ReleaseEnd lock faceplayer specialvar VAR_RESULT, GetDaycareState diff --git a/data/maps/FuchsiaCity_Mart/scripts.inc b/data/maps/FuchsiaCity_Mart/scripts.inc index 7d2df7e8f..631be4033 100644 --- a/data/maps/FuchsiaCity_Mart/scripts.inc +++ b/data/maps/FuchsiaCity_Mart/scripts.inc @@ -10,9 +10,7 @@ FuchsiaCity_Mart_EventScript_16D4EA:: @ 816D4EA end FuchsiaCity_Mart_EventScript_16D4F3:: @ 816D4F3 - special sub_8110AB4 - compare VAR_RESULT, 2 - goto_if_eq EventScript_1A7AE0 + goto_if_questlog EventScript_ReleaseEnd lock faceplayer message Text_MayIHelpYou diff --git a/data/maps/IndigoPlateau_PokemonCenter_1F/scripts.inc b/data/maps/IndigoPlateau_PokemonCenter_1F/scripts.inc index d1496398b..67a3e4f6a 100644 --- a/data/maps/IndigoPlateau_PokemonCenter_1F/scripts.inc +++ b/data/maps/IndigoPlateau_PokemonCenter_1F/scripts.inc @@ -41,9 +41,7 @@ IndigoPlateau_PokemonCenter_1F_EventScript_16EAC3:: @ 816EAC3 end IndigoPlateau_PokemonCenter_1F_EventScript_16EACC:: @ 816EACC - special sub_8110AB4 - compare VAR_RESULT, 2 - goto_if_eq EventScript_1A7AE0 + goto_if_questlog EventScript_ReleaseEnd lock faceplayer message Text_MayIHelpYou diff --git a/data/maps/LavenderTown_Mart/scripts.inc b/data/maps/LavenderTown_Mart/scripts.inc index 1007b34cf..bd81b99a8 100644 --- a/data/maps/LavenderTown_Mart/scripts.inc +++ b/data/maps/LavenderTown_Mart/scripts.inc @@ -14,9 +14,7 @@ LavenderTown_Mart_EventScript_16B362:: @ 816B362 end LavenderTown_Mart_EventScript_16B36B:: @ 816B36B - special sub_8110AB4 - compare VAR_RESULT, 2 - goto_if_eq EventScript_1A7AE0 + goto_if_questlog EventScript_ReleaseEnd lock faceplayer message Text_MayIHelpYou diff --git a/data/maps/MtEmber_Summit/scripts.inc b/data/maps/MtEmber_Summit/scripts.inc index 76261b037..e7e926ec1 100644 --- a/data/maps/MtEmber_Summit/scripts.inc +++ b/data/maps/MtEmber_Summit/scripts.inc @@ -23,9 +23,7 @@ EventScript_163B2F:: @ 8163B2F return MtEmber_Summit_EventScript_163B33:: @ 8163B33 - special sub_8110AB4 - compare VAR_RESULT, 2 - goto_if_eq EventScript_1A7AE0 + goto_if_questlog EventScript_ReleaseEnd special sub_8112364 lock faceplayer diff --git a/data/maps/NavelRock_Base/scripts.inc b/data/maps/NavelRock_Base/scripts.inc index 4a844fe12..46bc6f2ee 100644 --- a/data/maps/NavelRock_Base/scripts.inc +++ b/data/maps/NavelRock_Base/scripts.inc @@ -29,9 +29,7 @@ NavelRock_Base_EventScript_TryRemoveLugia:: @ 8165120 return NavelRock_Base_EventScript_Lugia:: @ 8165134 - special sub_8110AB4 - compare VAR_RESULT, 2 - goto_if_eq EventScript_1A7AE0 + goto_if_questlog EventScript_ReleaseEnd special sub_8112364 lock faceplayer diff --git a/data/maps/NavelRock_Summit/scripts.inc b/data/maps/NavelRock_Summit/scripts.inc index 97eb64ff2..b151bbbfe 100644 --- a/data/maps/NavelRock_Summit/scripts.inc +++ b/data/maps/NavelRock_Summit/scripts.inc @@ -32,9 +32,7 @@ NavelRock_Summit_EventScript_TryRemoveHoOh:: @ 8164FE7 return NavelRock_Summit_EventScript_HoOh:: @ 8164FFB - special sub_8110AB4 - compare VAR_RESULT, 2 - goto_if_eq EventScript_1A7AE0 + goto_if_questlog EventScript_ReleaseEnd special sub_8112364 lockall setvar VAR_TEMP_1, 1 diff --git a/data/maps/PalletTown_GarysHouse/scripts.inc b/data/maps/PalletTown_GarysHouse/scripts.inc index 80cb0a484..c6222ad7b 100644 --- a/data/maps/PalletTown_GarysHouse/scripts.inc +++ b/data/maps/PalletTown_GarysHouse/scripts.inc @@ -44,9 +44,7 @@ EventScript_168DAF:: @ 8168DAF end EventScript_168DB9:: @ 8168DB9 - special sub_8110AB4 - compare VAR_RESULT, 2 - goto_if_eq EventScript_1A7AE0 + goto_if_questlog EventScript_ReleaseEnd special sub_8112364 compare VAR_MASSAGE_COOLDOWN_STEP_COUNTER, 500 goto_if_lt EventScript_168E46 diff --git a/data/maps/PalletTown_PlayersHouse_2F/scripts.inc b/data/maps/PalletTown_PlayersHouse_2F/scripts.inc index 0c623394d..7e8c8ee73 100644 --- a/data/maps/PalletTown_PlayersHouse_2F/scripts.inc +++ b/data/maps/PalletTown_PlayersHouse_2F/scripts.inc @@ -31,9 +31,7 @@ PalletTown_PlayersHouse_2F_EventScript_168CDB:: @ 8168CDB gUnknown_8168CE4:: @ 8168CE4 PalletTown_PlayersHouse_2F_EventScript_168CE4:: @ 8168CE4 - special sub_8110AB4 - compare VAR_RESULT, 2 - goto_if_eq EventScript_1A7AE0 + goto_if_questlog EventScript_ReleaseEnd lockall setvar VAR_0x8004, 32 special Special_SetSomeVariable diff --git a/data/maps/PalletTown_ProfessorOaksLab/scripts.inc b/data/maps/PalletTown_ProfessorOaksLab/scripts.inc index 0b5008f79..c8f00bfbe 100644 --- a/data/maps/PalletTown_ProfessorOaksLab/scripts.inc +++ b/data/maps/PalletTown_ProfessorOaksLab/scripts.inc @@ -978,9 +978,7 @@ EventScript_1699F9:: @ 81699F9 end EventScript_1699FB:: @ 81699FB - special sub_8110AB4 - compare VAR_RESULT, 2 - goto_if_eq EventScript_1A7AE0 + goto_if_questlog EventScript_ReleaseEnd special sub_8112364 goto_if_set FLAG_OAK_SKIP_22_RIVAL_CHECK, EventScript_169A6E goto_if_set FLAG_GOT_POKEBALLS_FROM_OAK_AFTER_22_RIVAL, EventScript_169A78 diff --git a/data/maps/PewterCity_Mart/scripts.inc b/data/maps/PewterCity_Mart/scripts.inc index 1735013a5..963417631 100644 --- a/data/maps/PewterCity_Mart/scripts.inc +++ b/data/maps/PewterCity_Mart/scripts.inc @@ -10,9 +10,7 @@ PewterCity_Mart_EventScript_Boy:: @ 816A6D7 end PewterCity_Mart_EventScript_Clerk:: @ 816A6E0 - special sub_8110AB4 - compare VAR_RESULT, 2 - goto_if_eq EventScript_1A7AE0 + goto_if_questlog EventScript_ReleaseEnd lock faceplayer message Text_MayIHelpYou diff --git a/data/maps/PokemonLeague_ChampionsRoom/scripts.inc b/data/maps/PokemonLeague_ChampionsRoom/scripts.inc index a0f5b8379..bf0283a1f 100644 --- a/data/maps/PokemonLeague_ChampionsRoom/scripts.inc +++ b/data/maps/PokemonLeague_ChampionsRoom/scripts.inc @@ -55,9 +55,7 @@ EventScript_162B76:: @ 8162B76 delay 20 call_if_unset FLAG_SYS_GAME_CLEAR, EventScript_162CB3 call_if_set FLAG_SYS_GAME_CLEAR, EventScript_162CBC - special sub_8110AB4 - compare VAR_RESULT, 2 - goto_if_eq EventScript_162C68 + goto_if_questlog EventScript_162C68 setflag FLAG_TEMP_3 setflag FLAG_TEMP_5 savebgm MUS_WIN_GYM diff --git a/data/maps/PokemonLeague_LancesRoom/scripts.inc b/data/maps/PokemonLeague_LancesRoom/scripts.inc index 8c6b9924e..56619200c 100644 --- a/data/maps/PokemonLeague_LancesRoom/scripts.inc +++ b/data/maps/PokemonLeague_LancesRoom/scripts.inc @@ -139,7 +139,7 @@ EventScript_162AA1:: @ 8162AA1 EventScript_162AAB:: @ 8162AAB setvar VAR_0x8004, 0 - special sub_8113530 + special Special_TryGainNewFanFromCounter setflag FLAG_DEFEATED_LANCE call EventScript_1A7563 msgbox gUnknown_8178A52 diff --git a/data/maps/PokemonTower_6F/scripts.inc b/data/maps/PokemonTower_6F/scripts.inc index 8f4500615..4cd13a1f1 100644 --- a/data/maps/PokemonTower_6F/scripts.inc +++ b/data/maps/PokemonTower_6F/scripts.inc @@ -5,9 +5,7 @@ PokemonTower_6F_EventScript_1634B8:: @ 81634B8 lockall textcolor 2 msgbox gUnknown_817A2F8 - special sub_8110AB4 - compare VAR_RESULT, 2 - goto_if_eq EventScript_1A7AE0 + goto_if_questlog EventScript_ReleaseEnd setwildbattle SPECIES_MAROWAK, 30, ITEM_NONE special ScrSpecial_StartMarowakBattle waitstate diff --git a/data/maps/PowerPlant/scripts.inc b/data/maps/PowerPlant/scripts.inc index bc6e108f8..f21a5fa26 100644 --- a/data/maps/PowerPlant/scripts.inc +++ b/data/maps/PowerPlant/scripts.inc @@ -34,9 +34,7 @@ EventScript_1637B4:: @ 81637B4 return PowerPlant_EventScript_1637B8:: @ 81637B8 - special sub_8110AB4 - compare VAR_RESULT, 2 - goto_if_eq EventScript_1A7AE0 + goto_if_questlog EventScript_ReleaseEnd special sub_8112364 lock faceplayer @@ -75,9 +73,7 @@ EventScript_163824:: @ 8163824 end PowerPlant_EventScript_16382F:: @ 816382F - special sub_8110AB4 - compare VAR_RESULT, 2 - goto_if_eq EventScript_1A7AE0 + goto_if_questlog EventScript_ReleaseEnd lock faceplayer setwildbattle SPECIES_ELECTRODE, 34, ITEM_NONE @@ -106,9 +102,7 @@ EventScript_163884:: @ 8163884 end PowerPlant_EventScript_16388D:: @ 816388D - special sub_8110AB4 - compare VAR_RESULT, 2 - goto_if_eq EventScript_1A7AE0 + goto_if_questlog EventScript_ReleaseEnd lock faceplayer setwildbattle SPECIES_ELECTRODE, 34, ITEM_NONE diff --git a/data/maps/Route12/scripts.inc b/data/maps/Route12/scripts.inc index 80a037a65..8b80dccee 100644 --- a/data/maps/Route12/scripts.inc +++ b/data/maps/Route12/scripts.inc @@ -14,9 +14,7 @@ Route12_EventScript_168014:: @ 8168014 lock faceplayer goto_if_unset FLAG_GOT_POKE_FLUTE, EventScript_168099 - special sub_8110AB4 - compare VAR_RESULT, 2 - goto_if_eq EventScript_1A7AE0 + goto_if_questlog EventScript_ReleaseEnd special sub_8112364 msgbox gUnknown_81853CC, MSGBOX_YESNO compare VAR_RESULT, NO diff --git a/data/maps/Route12_FishingHouse/scripts.inc b/data/maps/Route12_FishingHouse/scripts.inc index 792f9c883..e1cd920d7 100644 --- a/data/maps/Route12_FishingHouse/scripts.inc +++ b/data/maps/Route12_FishingHouse/scripts.inc @@ -30,9 +30,7 @@ EventScript_16FF75:: @ 816FF75 end EventScript_16FF7F:: @ 816FF7F - special sub_8110AB4 - compare VAR_RESULT, 2 - goto_if_eq EventScript_1A7AE0 + goto_if_questlog EventScript_ReleaseEnd special sub_8112364 setvar VAR_0x8004, SPECIES_MAGIKARP specialvar VAR_RESULT, Special_PlayerPartyContainsSpecies diff --git a/data/maps/Route16/scripts.inc b/data/maps/Route16/scripts.inc index eb866388b..ec6e7270b 100644 --- a/data/maps/Route16/scripts.inc +++ b/data/maps/Route16/scripts.inc @@ -33,9 +33,7 @@ Route16_EventScript_168121:: @ 8168121 lock faceplayer goto_if_unset FLAG_GOT_POKE_FLUTE, EventScript_1681A3 - special sub_8110AB4 - compare VAR_RESULT, 2 - goto_if_eq EventScript_1A7AE0 + goto_if_questlog EventScript_ReleaseEnd special sub_8112364 msgbox gUnknown_81853CC, MSGBOX_YESNO compare VAR_RESULT, NO diff --git a/data/maps/SaffronCity_House1_2F/scripts.inc b/data/maps/SaffronCity_House1_2F/scripts.inc index f7efeddb1..17714d816 100644 --- a/data/maps/SaffronCity_House1_2F/scripts.inc +++ b/data/maps/SaffronCity_House1_2F/scripts.inc @@ -18,9 +18,7 @@ SaffronCity_House1_2F_EventScript_16EB70:: @ 816EB70 end SaffronCity_House1_2F_EventScript_16EB7B:: @ 816EB7B - special sub_8110AB4 - compare VAR_RESULT, 2 - goto_if_eq EventScript_1A7AE0 + goto_if_questlog EventScript_ReleaseEnd special sub_8112364 lock faceplayer diff --git a/data/maps/SaffronCity_Mart/scripts.inc b/data/maps/SaffronCity_Mart/scripts.inc index 78452151b..5361c07a8 100644 --- a/data/maps/SaffronCity_Mart/scripts.inc +++ b/data/maps/SaffronCity_Mart/scripts.inc @@ -10,9 +10,7 @@ SaffronCity_Mart_EventScript_16EFAC:: @ 816EFAC end SaffronCity_Mart_EventScript_16EFB5:: @ 816EFB5 - special sub_8110AB4 - compare VAR_RESULT, 2 - goto_if_eq EventScript_1A7AE0 + goto_if_questlog EventScript_ReleaseEnd lock faceplayer message Text_MayIHelpYou diff --git a/data/maps/SaffronCity_PokemonTrainerFanClub/scripts.inc b/data/maps/SaffronCity_PokemonTrainerFanClub/scripts.inc index ad839b0ad..ffb4678b2 100644 --- a/data/maps/SaffronCity_PokemonTrainerFanClub/scripts.inc +++ b/data/maps/SaffronCity_PokemonTrainerFanClub/scripts.inc @@ -78,38 +78,38 @@ SaffronCity_PokemonTrainerFanClub_OnTransition:: @ 816F144 end EventScript_16F15B:: @ 816F15B - special UpdateMovedSaffronFanClubMembers - setvar VAR_0x8004, 0 - specialvar VAR_RESULT, ShouldMoveSaffronFanClubMember - compare VAR_RESULT, 0 + special Special_TryLoseFansFromPlayTime + setvar VAR_0x8004, FANCLUB_MEMBER1 + specialvar VAR_RESULT, Special_IsFanClubMemberFanOfPlayer + compare VAR_RESULT, FALSE call_if_eq EventScript_16F207 - setvar VAR_0x8004, 1 - specialvar VAR_RESULT, ShouldMoveSaffronFanClubMember - compare VAR_RESULT, 0 + setvar VAR_0x8004, FANCLUB_MEMBER2 + specialvar VAR_RESULT, Special_IsFanClubMemberFanOfPlayer + compare VAR_RESULT, FALSE call_if_eq EventScript_16F213 - setvar VAR_0x8004, 2 - specialvar VAR_RESULT, ShouldMoveSaffronFanClubMember - compare VAR_RESULT, 0 + setvar VAR_0x8004, FANCLUB_MEMBER3 + specialvar VAR_RESULT, Special_IsFanClubMemberFanOfPlayer + compare VAR_RESULT, FALSE call_if_eq EventScript_16F21F - setvar VAR_0x8004, 3 - specialvar VAR_RESULT, ShouldMoveSaffronFanClubMember - compare VAR_RESULT, 0 + setvar VAR_0x8004, FANCLUB_MEMBER4 + specialvar VAR_RESULT, Special_IsFanClubMemberFanOfPlayer + compare VAR_RESULT, FALSE call_if_eq EventScript_16F22B - setvar VAR_0x8004, 4 - specialvar VAR_RESULT, ShouldMoveSaffronFanClubMember - compare VAR_RESULT, 0 + setvar VAR_0x8004, FANCLUB_MEMBER5 + specialvar VAR_RESULT, Special_IsFanClubMemberFanOfPlayer + compare VAR_RESULT, FALSE call_if_eq EventScript_16F237 - setvar VAR_0x8004, 5 - specialvar VAR_RESULT, ShouldMoveSaffronFanClubMember - compare VAR_RESULT, 0 + setvar VAR_0x8004, FANCLUB_MEMBER6 + specialvar VAR_RESULT, Special_IsFanClubMemberFanOfPlayer + compare VAR_RESULT, FALSE call_if_eq EventScript_16F243 - setvar VAR_0x8004, 6 - specialvar VAR_RESULT, ShouldMoveSaffronFanClubMember - compare VAR_RESULT, 0 + setvar VAR_0x8004, FANCLUB_MEMBER7 + specialvar VAR_RESULT, Special_IsFanClubMemberFanOfPlayer + compare VAR_RESULT, FALSE call_if_eq EventScript_16F24F - setvar VAR_0x8004, 7 - specialvar VAR_RESULT, ShouldMoveSaffronFanClubMember - compare VAR_RESULT, 0 + setvar VAR_0x8004, FANCLUB_MEMBER8 + specialvar VAR_RESULT, Special_IsFanClubMemberFanOfPlayer + compare VAR_RESULT, FALSE call_if_eq EventScript_16F25B end @@ -164,22 +164,22 @@ EventScript_16F267:: @ 816F267 SaffronCity_PokemonTrainerFanClub_EventScript_16F281:: @ 816F281 lock faceplayer - setvar VAR_0x8004, 0 - special BufferStreakTrainerText + setvar VAR_0x8004, FANCLUB_MEMBER1 + special Special_BufferFanClubTrainerName compare VAR_MAP_SCENE_SAFFRON_CITY_POKEMON_TRAINER_FAN_CLUB, 0 goto_if_eq EventScript_16F2EE - specialvar VAR_RESULT, ShouldMoveSaffronFanClubMember - compare VAR_RESULT, 1 + specialvar VAR_RESULT, Special_IsFanClubMemberFanOfPlayer + compare VAR_RESULT, TRUE goto_if_eq EventScript_16F2C0 - specialvar VAR_RESULT, GetNumMovedSaffronFanClubMembers - compare VAR_RESULT, 7 + specialvar VAR_RESULT, Special_GetNumFansOfPlayerInTrainerFanClub + compare VAR_RESULT, (NUM_TRAINER_FAN_CLUB_MEMBERS - 1) goto_if_eq EventScript_16F2E4 msgbox gUnknown_819C420 release end EventScript_16F2C0:: @ 816F2C0 - specialvar VAR_RESULT, GetNumMovedSaffronFanClubMembers + specialvar VAR_RESULT, Special_GetNumFansOfPlayerInTrainerFanClub compare VAR_RESULT, 1 goto_if_eq EventScript_16F2DA msgbox gUnknown_819C390 @@ -204,22 +204,22 @@ EventScript_16F2EE:: @ 816F2EE SaffronCity_PokemonTrainerFanClub_EventScript_16F2F8:: @ 816F2F8 lock faceplayer - setvar VAR_0x8004, 3 - special BufferStreakTrainerText + setvar VAR_0x8004, FANCLUB_MEMBER4 + special Special_BufferFanClubTrainerName compare VAR_MAP_SCENE_SAFFRON_CITY_POKEMON_TRAINER_FAN_CLUB, 0 goto_if_eq EventScript_16F365 - specialvar VAR_RESULT, ShouldMoveSaffronFanClubMember - compare VAR_RESULT, 1 + specialvar VAR_RESULT, Special_IsFanClubMemberFanOfPlayer + compare VAR_RESULT, TRUE goto_if_eq EventScript_16F337 - specialvar VAR_RESULT, GetNumMovedSaffronFanClubMembers - compare VAR_RESULT, 7 + specialvar VAR_RESULT, Special_GetNumFansOfPlayerInTrainerFanClub + compare VAR_RESULT, (NUM_TRAINER_FAN_CLUB_MEMBERS - 1) goto_if_eq EventScript_16F35B msgbox gUnknown_819CBD3 release end EventScript_16F337:: @ 816F337 - specialvar VAR_RESULT, GetNumMovedSaffronFanClubMembers + specialvar VAR_RESULT, Special_GetNumFansOfPlayerInTrainerFanClub compare VAR_RESULT, 1 goto_if_eq EventScript_16F351 msgbox gUnknown_819CB32 @@ -244,22 +244,22 @@ EventScript_16F365:: @ 816F365 SaffronCity_PokemonTrainerFanClub_EventScript_16F36F:: @ 816F36F lock faceplayer - setvar VAR_0x8004, 1 - special BufferStreakTrainerText + setvar VAR_0x8004, FANCLUB_MEMBER2 + special Special_BufferFanClubTrainerName compare VAR_MAP_SCENE_SAFFRON_CITY_POKEMON_TRAINER_FAN_CLUB, 0 goto_if_eq EventScript_16F3DC - specialvar VAR_RESULT, ShouldMoveSaffronFanClubMember - compare VAR_RESULT, 1 + specialvar VAR_RESULT, Special_IsFanClubMemberFanOfPlayer + compare VAR_RESULT, TRUE goto_if_eq EventScript_16F3AE - specialvar VAR_RESULT, GetNumMovedSaffronFanClubMembers - compare VAR_RESULT, 7 + specialvar VAR_RESULT, Special_GetNumFansOfPlayerInTrainerFanClub + compare VAR_RESULT, (NUM_TRAINER_FAN_CLUB_MEMBERS - 1) goto_if_eq EventScript_16F3D2 msgbox gUnknown_819C6BA release end EventScript_16F3AE:: @ 816F3AE - specialvar VAR_RESULT, GetNumMovedSaffronFanClubMembers + specialvar VAR_RESULT, Special_GetNumFansOfPlayerInTrainerFanClub compare VAR_RESULT, 1 goto_if_eq EventScript_16F3C8 msgbox gUnknown_819C5A9 @@ -284,22 +284,22 @@ EventScript_16F3DC:: @ 816F3DC SaffronCity_PokemonTrainerFanClub_EventScript_16F3E6:: @ 816F3E6 lock faceplayer - setvar VAR_0x8004, 2 - special BufferStreakTrainerText + setvar VAR_0x8004, FANCLUB_MEMBER3 + special Special_BufferFanClubTrainerName compare VAR_MAP_SCENE_SAFFRON_CITY_POKEMON_TRAINER_FAN_CLUB, 0 goto_if_eq EventScript_16F453 - specialvar VAR_RESULT, ShouldMoveSaffronFanClubMember - compare VAR_RESULT, 1 + specialvar VAR_RESULT, Special_IsFanClubMemberFanOfPlayer + compare VAR_RESULT, TRUE goto_if_eq EventScript_16F425 - specialvar VAR_RESULT, GetNumMovedSaffronFanClubMembers - compare VAR_RESULT, 7 + specialvar VAR_RESULT, Special_GetNumFansOfPlayerInTrainerFanClub + compare VAR_RESULT, (NUM_TRAINER_FAN_CLUB_MEMBERS - 1) goto_if_eq EventScript_16F449 msgbox gUnknown_819C986 release end EventScript_16F425:: @ 816F425 - specialvar VAR_RESULT, GetNumMovedSaffronFanClubMembers + specialvar VAR_RESULT, Special_GetNumFansOfPlayerInTrainerFanClub compare VAR_RESULT, 1 goto_if_eq EventScript_16F43F msgbox gUnknown_819C81E @@ -324,20 +324,20 @@ EventScript_16F453:: @ 816F453 SaffronCity_PokemonTrainerFanClub_EventScript_16F45D:: @ 816F45D lock faceplayer - setvar VAR_0x8004, 5 - special BufferStreakTrainerText - specialvar VAR_RESULT, ShouldMoveSaffronFanClubMember - compare VAR_RESULT, 1 + setvar VAR_0x8004, FANCLUB_MEMBER6 + special Special_BufferFanClubTrainerName + specialvar VAR_RESULT, Special_IsFanClubMemberFanOfPlayer + compare VAR_RESULT, TRUE goto_if_eq EventScript_16F491 - specialvar VAR_RESULT, GetNumMovedSaffronFanClubMembers - compare VAR_RESULT, 7 + specialvar VAR_RESULT, Special_GetNumFansOfPlayerInTrainerFanClub + compare VAR_RESULT, (NUM_TRAINER_FAN_CLUB_MEMBERS - 1) goto_if_eq EventScript_16F4B5 msgbox gUnknown_819D01F release end EventScript_16F491:: @ 816F491 - specialvar VAR_RESULT, GetNumMovedSaffronFanClubMembers + specialvar VAR_RESULT, Special_GetNumFansOfPlayerInTrainerFanClub compare VAR_RESULT, 1 goto_if_eq EventScript_16F4AB msgbox gUnknown_819CEDF @@ -357,20 +357,20 @@ EventScript_16F4B5:: @ 816F4B5 SaffronCity_PokemonTrainerFanClub_EventScript_16F4BF:: @ 816F4BF lock faceplayer - setvar VAR_0x8004, 4 - special BufferStreakTrainerText - specialvar VAR_RESULT, ShouldMoveSaffronFanClubMember - compare VAR_RESULT, 1 + setvar VAR_0x8004, FANCLUB_MEMBER5 + special Special_BufferFanClubTrainerName + specialvar VAR_RESULT, Special_IsFanClubMemberFanOfPlayer + compare VAR_RESULT, TRUE goto_if_eq EventScript_16F4F3 - specialvar VAR_RESULT, GetNumMovedSaffronFanClubMembers - compare VAR_RESULT, 7 + specialvar VAR_RESULT, Special_GetNumFansOfPlayerInTrainerFanClub + compare VAR_RESULT, (NUM_TRAINER_FAN_CLUB_MEMBERS - 1) goto_if_eq EventScript_16F517 msgbox gUnknown_819CDDA release end EventScript_16F4F3:: @ 816F4F3 - specialvar VAR_RESULT, GetNumMovedSaffronFanClubMembers + specialvar VAR_RESULT, Special_GetNumFansOfPlayerInTrainerFanClub compare VAR_RESULT, 1 goto_if_eq EventScript_16F50D msgbox gUnknown_819CCF3 @@ -390,20 +390,20 @@ EventScript_16F517:: @ 816F517 SaffronCity_PokemonTrainerFanClub_EventScript_16F521:: @ 816F521 lock faceplayer - setvar VAR_0x8004, 6 - special BufferStreakTrainerText - specialvar VAR_RESULT, ShouldMoveSaffronFanClubMember - compare VAR_RESULT, 1 + setvar VAR_0x8004, FANCLUB_MEMBER7 + special Special_BufferFanClubTrainerName + specialvar VAR_RESULT, Special_IsFanClubMemberFanOfPlayer + compare VAR_RESULT, TRUE goto_if_eq EventScript_16F555 - specialvar VAR_RESULT, GetNumMovedSaffronFanClubMembers - compare VAR_RESULT, 7 + specialvar VAR_RESULT, Special_GetNumFansOfPlayerInTrainerFanClub + compare VAR_RESULT, (NUM_TRAINER_FAN_CLUB_MEMBERS - 1) goto_if_eq EventScript_16F579 msgbox gUnknown_819D1AE release end EventScript_16F555:: @ 816F555 - specialvar VAR_RESULT, GetNumMovedSaffronFanClubMembers + specialvar VAR_RESULT, Special_GetNumFansOfPlayerInTrainerFanClub compare VAR_RESULT, 1 goto_if_eq EventScript_16F56F msgbox gUnknown_819D0E3 @@ -423,20 +423,20 @@ EventScript_16F579:: @ 816F579 SaffronCity_PokemonTrainerFanClub_EventScript_16F583:: @ 816F583 lock faceplayer - setvar VAR_0x8004, 7 - special BufferStreakTrainerText - specialvar VAR_RESULT, ShouldMoveSaffronFanClubMember - compare VAR_RESULT, 1 + setvar VAR_0x8004, FANCLUB_MEMBER8 + special Special_BufferFanClubTrainerName + specialvar VAR_RESULT, Special_IsFanClubMemberFanOfPlayer + compare VAR_RESULT, TRUE goto_if_eq EventScript_16F5B7 - specialvar VAR_RESULT, GetNumMovedSaffronFanClubMembers - compare VAR_RESULT, 7 + specialvar VAR_RESULT, Special_GetNumFansOfPlayerInTrainerFanClub + compare VAR_RESULT, (NUM_TRAINER_FAN_CLUB_MEMBERS - 1) goto_if_eq EventScript_16F5DB msgbox gUnknown_819D3D2 release end EventScript_16F5B7:: @ 816F5B7 - specialvar VAR_RESULT, GetNumMovedSaffronFanClubMembers + specialvar VAR_RESULT, Special_GetNumFansOfPlayerInTrainerFanClub compare VAR_RESULT, 1 goto_if_eq EventScript_16F5D1 msgbox gUnknown_819D2B4 diff --git a/data/maps/SeafoamIslands_B4F/scripts.inc b/data/maps/SeafoamIslands_B4F/scripts.inc index c18472399..1882fb3a3 100644 --- a/data/maps/SeafoamIslands_B4F/scripts.inc +++ b/data/maps/SeafoamIslands_B4F/scripts.inc @@ -153,9 +153,7 @@ Movement_1631AA:: @ 81631AA step_end SeafoamIslands_B4F_EventScript_1631AC:: @ 81631AC - special sub_8110AB4 - compare VAR_RESULT, 2 - goto_if_eq EventScript_1A7AE0 + goto_if_questlog EventScript_ReleaseEnd special sub_8112364 lock faceplayer diff --git a/data/maps/SevenIsland_Mart/scripts.inc b/data/maps/SevenIsland_Mart/scripts.inc index 0fc710d8a..2757fba07 100644 --- a/data/maps/SevenIsland_Mart/scripts.inc +++ b/data/maps/SevenIsland_Mart/scripts.inc @@ -2,9 +2,7 @@ SevenIsland_Mart_MapScripts:: @ 8170B30 .byte 0 SevenIsland_Mart_EventScript_170B31:: @ 8170B31 - special sub_8110AB4 - compare VAR_RESULT, 2 - goto_if_eq EventScript_1A7AE0 + goto_if_questlog EventScript_ReleaseEnd lock faceplayer message Text_MayIHelpYou diff --git a/data/maps/SevenIsland_TrainerTower_Lobby/scripts.inc b/data/maps/SevenIsland_TrainerTower_Lobby/scripts.inc index 713400e2a..0558b5a8b 100644 --- a/data/maps/SevenIsland_TrainerTower_Lobby/scripts.inc +++ b/data/maps/SevenIsland_TrainerTower_Lobby/scripts.inc @@ -124,9 +124,7 @@ EventScript_164990:: @ 8164990 end SevenIsland_TrainerTower_Lobby_EventScript_164992:: @ 8164992 - special sub_8110AB4 - compare VAR_RESULT, 2 - goto_if_eq EventScript_1A7AE0 + goto_if_questlog EventScript_ReleaseEnd lock faceplayer message Text_MayIHelpYou diff --git a/data/maps/SixIsland_Mart/scripts.inc b/data/maps/SixIsland_Mart/scripts.inc index 1edcae092..777948764 100644 --- a/data/maps/SixIsland_Mart/scripts.inc +++ b/data/maps/SixIsland_Mart/scripts.inc @@ -2,9 +2,7 @@ SixIsland_Mart_MapScripts:: @ 8171E65 .byte 0 SixIsland_Mart_EventScript_171E66:: @ 8171E66 - special sub_8110AB4 - compare VAR_RESULT, 2 - goto_if_eq EventScript_1A7AE0 + goto_if_questlog EventScript_ReleaseEnd lock faceplayer message Text_MayIHelpYou diff --git a/data/maps/SixIsland_WaterPath_House1/scripts.inc b/data/maps/SixIsland_WaterPath_House1/scripts.inc index e8784d75c..a8efb4608 100644 --- a/data/maps/SixIsland_WaterPath_House1/scripts.inc +++ b/data/maps/SixIsland_WaterPath_House1/scripts.inc @@ -4,9 +4,7 @@ SixIsland_WaterPath_House1_MapScripts:: @ 817206C SixIsland_WaterPath_House1_EventScript_17206D:: @ 817206D lock faceplayer - special sub_8110AB4 - compare VAR_RESULT, 2 - goto_if_eq EventScript_1A7AE0 + goto_if_questlog EventScript_ReleaseEnd special sub_8112364 setvar VAR_0x8004, SPECIES_HERACROSS specialvar VAR_RESULT, Special_PlayerPartyContainsSpecies diff --git a/data/maps/ThreeIsland_BerryForest/scripts.inc b/data/maps/ThreeIsland_BerryForest/scripts.inc index 9ac90a4c4..cf1693258 100644 --- a/data/maps/ThreeIsland_BerryForest/scripts.inc +++ b/data/maps/ThreeIsland_BerryForest/scripts.inc @@ -17,9 +17,7 @@ ThreeIsland_BerryForest_EventScript_163C83:: @ 8163C83 applymovement 1, Movement_163D22 waitmovement 0 msgbox gUnknown_817AE8E - special sub_8110AB4 - compare VAR_RESULT, 2 - goto_if_eq EventScript_1A7AE0 + goto_if_questlog EventScript_ReleaseEnd waitse playmoncry SPECIES_HYPNO, 2 waitmoncry diff --git a/data/maps/ThreeIsland_Mart/scripts.inc b/data/maps/ThreeIsland_Mart/scripts.inc index 074d78cd9..02afb8eb4 100644 --- a/data/maps/ThreeIsland_Mart/scripts.inc +++ b/data/maps/ThreeIsland_Mart/scripts.inc @@ -2,9 +2,7 @@ ThreeIsland_Mart_MapScripts:: @ 817188C .byte 0 ThreeIsland_Mart_EventScript_17188D:: @ 817188D - special sub_8110AB4 - compare VAR_RESULT, 2 - goto_if_eq EventScript_1A7AE0 + goto_if_questlog EventScript_ReleaseEnd lock faceplayer message Text_MayIHelpYou diff --git a/data/maps/TwoIsland/scripts.inc b/data/maps/TwoIsland/scripts.inc index 59c4ca6f9..acfb2c38b 100644 --- a/data/maps/TwoIsland/scripts.inc +++ b/data/maps/TwoIsland/scripts.inc @@ -58,9 +58,7 @@ EventScript_167606:: @ 8167606 return TwoIsland_EventScript_16760F:: @ 816760F - special sub_8110AB4 - compare VAR_RESULT, 2 - goto_if_eq EventScript_1A7AE0 + goto_if_questlog EventScript_ReleaseEnd lock faceplayer compare VAR_MAP_SCENE_TWO_ISLAND, 4 diff --git a/data/maps/TwoIsland_House/scripts.inc b/data/maps/TwoIsland_House/scripts.inc index f6268567d..9177de9cb 100644 --- a/data/maps/TwoIsland_House/scripts.inc +++ b/data/maps/TwoIsland_House/scripts.inc @@ -2,9 +2,7 @@ TwoIsland_House_MapScripts:: @ 8171618 .byte 0 TwoIsland_House_EventScript_171619:: @ 8171619 - special sub_8110AB4 - compare VAR_RESULT, 2 - goto_if_eq EventScript_1A7AE0 + goto_if_questlog EventScript_ReleaseEnd special sub_8112364 lock faceplayer diff --git a/data/maps/VermilionCity/scripts.inc b/data/maps/VermilionCity/scripts.inc index 7767bbb2b..ad6a36007 100644 --- a/data/maps/VermilionCity/scripts.inc +++ b/data/maps/VermilionCity/scripts.inc @@ -83,9 +83,7 @@ EventScript_166996:: @ 8166996 end EventScript_1669BB:: @ 81669BB - special sub_8110AB4 - compare VAR_RESULT, 2 - goto_if_eq EventScript_1A7AE0 + goto_if_questlog EventScript_ReleaseEnd special sub_8112364 call EventScript_166958 compare VAR_RESULT, 1 diff --git a/data/maps/VermilionCity_Gym/scripts.inc b/data/maps/VermilionCity_Gym/scripts.inc index baf3d82df..0d95d76f8 100644 --- a/data/maps/VermilionCity_Gym/scripts.inc +++ b/data/maps/VermilionCity_Gym/scripts.inc @@ -136,9 +136,7 @@ VermilionCity_Gym_EventScript_16B837:: @ 816B837 end EventScript_16B843:: @ 816B843 - special sub_8110AB4 - compare VAR_RESULT, 2 - goto_if_eq EventScript_1A7AE0 + goto_if_questlog EventScript_ReleaseEnd special sub_8112364 copyvar VAR_0x8004, VAR_TEMP_0 copyvar VAR_0x8005, VAR_TEMP_1 diff --git a/data/maps/VermilionCity_Mart/scripts.inc b/data/maps/VermilionCity_Mart/scripts.inc index ccb50f313..3af796ada 100644 --- a/data/maps/VermilionCity_Mart/scripts.inc +++ b/data/maps/VermilionCity_Mart/scripts.inc @@ -10,9 +10,7 @@ VermilionCity_Mart_EventScript_16B65D:: @ 816B65D end VermilionCity_Mart_EventScript_16B666:: @ 816B666 - special sub_8110AB4 - compare VAR_RESULT, 2 - goto_if_eq EventScript_1A7AE0 + goto_if_questlog EventScript_ReleaseEnd lock faceplayer message Text_MayIHelpYou diff --git a/data/maps/ViridianCity/scripts.inc b/data/maps/ViridianCity/scripts.inc index cbd813d03..c317a92eb 100644 --- a/data/maps/ViridianCity/scripts.inc +++ b/data/maps/ViridianCity/scripts.inc @@ -140,9 +140,7 @@ EventScript_165A5B:: @ 8165A5B EventScript_165A65:: @ 8165A65 msgbox gUnknown_817DE9B - special sub_8110AB4 - compare VAR_RESULT, 2 - goto_if_eq EventScript_1A7AE0 + goto_if_questlog EventScript_ReleaseEnd special sub_8112364 special ScrSpecial_StartOldManTutorialBattle waitstate @@ -235,9 +233,7 @@ ViridianCity_EventScript_165B2E:: @ 8165B2E EventScript_165B4C:: @ 8165B4C msgbox gUnknown_817DD4E closemessage - special sub_8110AB4 - compare VAR_RESULT, 2 - goto_if_eq EventScript_1A7AE0 + goto_if_questlog EventScript_ReleaseEnd special sub_8112364 special ScrSpecial_StartOldManTutorialBattle waitstate diff --git a/data/maps/ViridianCity_Mart/scripts.inc b/data/maps/ViridianCity_Mart/scripts.inc index fb77b7924..1f66937cf 100644 --- a/data/maps/ViridianCity_Mart/scripts.inc +++ b/data/maps/ViridianCity_Mart/scripts.inc @@ -54,9 +54,7 @@ ViridianCity_Mart_EventScript_16A268:: @ 816A268 faceplayer compare VAR_MAP_SCENE_VIRIDIAN_CITY_MART, 1 goto_if_eq EventScript_16A2A4 - special sub_8110AB4 - compare VAR_RESULT, 2 - goto_if_eq EventScript_1A7AE0 + goto_if_questlog EventScript_ReleaseEnd message Text_MayIHelpYou waitmessage pokemart Items_16A298 diff --git a/data/scripts/cable_club.inc b/data/scripts/cable_club.inc index f51720a7f..c75ebdcfd 100644 --- a/data/scripts/cable_club.inc +++ b/data/scripts/cable_club.inc @@ -14,9 +14,7 @@ EventScript_HideMysteryGiftMan:: @ 81BB1CE return CableClub_EventScript_MysteryGiftMan:: @ 81BB1D2 - special sub_8110AB4 - compare VAR_RESULT, 2 - goto_if_eq EventScript_1A7AE0 + goto_if_questlog EventScript_ReleaseEnd special sub_8112364 execram @@ -599,9 +597,7 @@ Movement_PlayerEnterMinigameRoom:: @ 81BB8A2 step_end CableClub_EventScript_ShowBattleRecords:: @ 81BB8A7 - special sub_8110AB4 - compare VAR_RESULT, 2 - goto_if_eq EventScript_1A7AE0 + goto_if_questlog EventScript_ReleaseEnd lockall fadescreen FADE_TO_BLACK setvar VAR_0x8004, 0 @@ -774,9 +770,7 @@ CableClub_EventScript_DoLinkRoomExit:: @ 81BB9FC end CableClub_EventScript_UnionRoomAttendant:: @ 81BBA04 - special sub_8110AB4 - compare VAR_RESULT, 2 - goto_if_eq EventScript_1A7AE0 + goto_if_questlog EventScript_ReleaseEnd special sub_8112364 lock faceplayer @@ -886,9 +880,7 @@ CableClub_EventScript_DontAskAboutLinking:: @ 81BBB92 return CableClub_EventScript_DirectCornerAttendant:: @ 81BBB9C - special sub_8110AB4 - compare VAR_RESULT, 2 - goto_if_eq EventScript_1A7AE0 + goto_if_questlog EventScript_ReleaseEnd special sub_8112364 lock faceplayer @@ -1149,9 +1141,7 @@ CableClub_EventScript_EnterWirelessLinkRoom:: @ 81BBF88 end CableClub_EventScript_81BBFD8:: @ 81BBFD8 - special sub_8110AB4 - compare VAR_RESULT, 2 - goto_if_eq EventScript_1A7AE0 + goto_if_questlog EventScript_ReleaseEnd lockall goto_if_unset FLAG_SYS_POKEDEX_GET, CableClub_EventScript_NotReadyYet specialvar VAR_RESULT, IsWirelessAdapterConnected @@ -1200,9 +1190,7 @@ CableClub_OnResume:: @ 81BC05C end JoyfulGameCorner_EventScript_InfoMan2:: @ 81BC060 - special sub_8110AB4 - compare VAR_RESULT, 2 - goto_if_eq EventScript_1A7AE0 + goto_if_questlog EventScript_ReleaseEnd special sub_8112364 lock faceplayer @@ -1232,9 +1220,7 @@ CableClub_EventScript_MinigameInfoExit:: @ 81BC0C4 end JoyfulGameCorner_EventScript_MinigameAttendant:: @ 81BC0CE - special sub_8110AB4 - compare VAR_RESULT, 2 - goto_if_eq EventScript_1A7AE0 + goto_if_questlog EventScript_ReleaseEnd special sub_8112364 lock faceplayer @@ -1371,9 +1357,7 @@ CableClub_EventScript_ExplainDodrioBerryPickingRequirements:: @ 81BC2DE return TwoIsland_JoyfulGameCorner_EventScript_ShowPokemonJumpRecords:: @ 81BC2E7 - special sub_8110AB4 - compare VAR_RESULT, 2 - goto_if_eq EventScript_1A7AE0 + goto_if_questlog EventScript_ReleaseEnd lockall special ShowPokemonJumpRecords waitstate @@ -1381,9 +1365,7 @@ TwoIsland_JoyfulGameCorner_EventScript_ShowPokemonJumpRecords:: @ 81BC2E7 end TwoIsland_JoyfulGameCorner_EventScript_ShowDodrioBerryPickingRecords:: @ 81BC2FC - special sub_8110AB4 - compare VAR_RESULT, 2 - goto_if_eq EventScript_1A7AE0 + goto_if_questlog EventScript_ReleaseEnd lockall special ShowDodrioBerryPickingRecords waitstate diff --git a/data/scripts/day_care.inc b/data/scripts/day_care.inc index e96f52e20..9937bf704 100644 --- a/data/scripts/day_care.inc +++ b/data/scripts/day_care.inc @@ -1,7 +1,5 @@ Route5_PokemonDayCare_EventScript_1BF398:: @ 81BF398 - special sub_8110AB4 - compare VAR_RESULT, 2 - goto_if_eq EventScript_1A7AE0 + goto_if_questlog EventScript_ReleaseEnd lock faceplayer showmoneybox 0, 0, 0 diff --git a/data/scripts/field_moves.inc b/data/scripts/field_moves.inc index b5efb263a..73ee4d947 100644 --- a/data/scripts/field_moves.inc +++ b/data/scripts/field_moves.inc @@ -1,7 +1,5 @@ EventScript_InteractWithCutTreeObject:: @ 81BDF13 - special sub_8110AB4 - compare VAR_RESULT, 2 - goto_if_eq EventScript_1A7AE0 + goto_if_questlog EventScript_ReleaseEnd lockall goto_if_unset FLAG_BADGE02_GET, EventScript_CantCutTree checkpartymove MOVE_CUT @@ -61,9 +59,7 @@ Text_TreeCanBeCutDown:: @ 81BDFE3 .string "down!$" EventScript_InteractWithRockSmashRockObject:: @ 81BE00C - special sub_8110AB4 - compare VAR_RESULT, 2 - goto_if_eq EventScript_1A7AE0 + goto_if_questlog EventScript_ReleaseEnd lockall goto_if_unset FLAG_BADGE06_GET, EventScript_CantSmashRock checkpartymove MOVE_ROCK_SMASH @@ -126,9 +122,7 @@ Text_MonMaySmashRock:: @ 81BE0E2 .string "may be able to smash it.$" EventScript_InteractWithStrengthBoulderObject:: @ 81BE11D - special sub_8110AB4 - compare VAR_RESULT, 2 - goto_if_eq EventScript_1A7AE0 + goto_if_questlog EventScript_ReleaseEnd lockall goto_if_unset FLAG_BADGE04_GET, EventScript_CantMoveBoulder goto_if_set FLAG_SYS_STRENGTH_ACTIVE, EventScript_AlreadyUsedStrength @@ -189,9 +183,7 @@ Text_StrengthMadeMovingBouldersPossible:: @ 81BE284 .string "boulders around.$" EventScript_InteractWithWaterfall:: @ 81BE2B7 - special sub_8110AB4 - compare VAR_RESULT, 2 - goto_if_eq EventScript_1A7AE0 + goto_if_questlog EventScript_ReleaseEnd lockall checkpartymove MOVE_WATERFALL compare VAR_RESULT, PARTY_SIZE diff --git a/data/scripts/move_tutors.inc b/data/scripts/move_tutors.inc index 702889e5d..40fcd43db 100644 --- a/data/scripts/move_tutors.inc +++ b/data/scripts/move_tutors.inc @@ -447,9 +447,7 @@ EventScript_BodySlamTaught:: @ 81C4DE2 end TwoIsland_CapeBrink_House_EventScript_StarterTutor:: @ 81C4DEC - special sub_8110AB4 - compare VAR_RESULT, 2 - goto_if_eq EventScript_1A7AE0 + goto_if_questlog EventScript_ReleaseEnd special sub_8112364 lock faceplayer diff --git a/data/scripts/pc.inc b/data/scripts/pc.inc index ff61d2e2e..6e266bdfc 100644 --- a/data/scripts/pc.inc +++ b/data/scripts/pc.inc @@ -1,7 +1,5 @@ EventScript_PC:: @ 81A6955 - special sub_8110AB4 - compare VAR_RESULT, 2 - goto_if_eq EventScript_1A7AE0 + goto_if_questlog EventScript_ReleaseEnd lockall goto_if_set FLAG_SYS_PC_STORAGE_DISABLED, EventScript_PCDisabled setvar VAR_0x8004, 27 diff --git a/data/scripts/pkmn_center_nurse.inc b/data/scripts/pkmn_center_nurse.inc index cfa96774d..fddd3fd72 100644 --- a/data/scripts/pkmn_center_nurse.inc +++ b/data/scripts/pkmn_center_nurse.inc @@ -1,7 +1,5 @@ EventScript_PkmnCenterNurse:: @ 81A6578 - special sub_8110AB4 - compare VAR_RESULT, 2 - goto_if_eq EventScript_1A7AE0 + goto_if_questlog EventScript_ReleaseEnd message Text_WelcomeWantToHealPkmn waitmessage multichoice 19, 8, MULTICHOICE_YES_NO, FALSE | (TRUE << 1) @@ -16,7 +14,7 @@ EventScript_PkmnCenterNurse_HealPkmn:: @ 81A65B8 message Text_TakeYourPkmnForFewSeconds waitmessage call EventScript_PkmnCenterNurse_TakeAndHealPkmn - special sub_80CC524 + special SetUsedPkmnCenterQuestLogEvent goto EventScript_PkmnCenterNurse_CheckTrainerTowerAndUnionRoom end diff --git a/data/scripts/pokedex_rating.inc b/data/scripts/pokedex_rating.inc index c9d836aee..4a3d39042 100644 --- a/data/scripts/pokedex_rating.inc +++ b/data/scripts/pokedex_rating.inc @@ -1,7 +1,5 @@ ProfOak_EventScript_RatePokedexInPerson:: @ 81A737B - special sub_8110AB4 - compare VAR_RESULT, 2 - goto_if_eq EventScript_1A7AE0 + goto_if_questlog EventScript_ReleaseEnd special sub_8112364 call_if_set FLAG_OAK_SAW_DEX_COMPLETION, ProfOak_EventScript_DexCompleteIntro call_if_unset FLAG_OAK_SAW_DEX_COMPLETION, ProfOak_EventScript_NormalIntro diff --git a/data/scripts/seagallop.inc b/data/scripts/seagallop.inc index c14cda778..77ed21b7a 100644 --- a/data/scripts/seagallop.inc +++ b/data/scripts/seagallop.inc @@ -109,9 +109,7 @@ EventScript_1A90CC:: @ 81A90CC EventScript_1A90DA:: @ 81A90DA closemessage delay 20 - special sub_8110AB4 - compare VAR_RESULT, 2 - goto_if_eq EventScript_1A7AE0 + goto_if_questlog EventScript_ReleaseEnd special sub_8112364 fadescreen FADE_TO_BLACK special ScrSpecial_SeagallopFerry diff --git a/data/scripts/surf.inc b/data/scripts/surf.inc index 456cad9e9..e1d44968b 100644 --- a/data/scripts/surf.inc +++ b/data/scripts/surf.inc @@ -1,7 +1,5 @@ EventScript_UseSurf:: @ 81A6AC8 - special sub_8110AB4 - compare VAR_RESULT, 2 - goto_if_eq EventScript_UseSurfEnd + goto_if_questlog EventScript_UseSurfEnd checkpartymove MOVE_SURF compare VAR_RESULT, PARTY_SIZE goto_if_eq EventScript_UseSurfEnd diff --git a/data/scripts/trainer_battle.inc b/data/scripts/trainer_battle.inc index f16e30ada..ccb279300 100644 --- a/data/scripts/trainer_battle.inc +++ b/data/scripts/trainer_battle.inc @@ -48,9 +48,7 @@ EventScript_DoTrainerBattle:: @ 81A4F21 applymovement VAR_LAST_TALKED, Movement_1A4FC5 waitmovement 0 special PlayTrainerEncounterMusic - special sub_8110AB4 - compare VAR_RESULT, 2 - goto_if_eq EventScript_1A501A + goto_if_questlog EventScript_1A501A battlebegin ontrainerbattleend @@ -64,9 +62,7 @@ EventScript_TryDoRematchBattle:: @ 81A4F3E special ScrSpecial_ShowTrainerIntroSpeech waitmessage waitbuttonpress - special sub_8110AB4 - compare VAR_RESULT, 2 - goto_if_eq EventScript_1A4FB8 + goto_if_questlog EventScript_1A4FB8 special ScrSpecial_StartTrainerEyeRematch waitstate releaseall @@ -87,9 +83,7 @@ EventScript_TryDoDoubleRematchBattle:: @ 81A4F73 special ScrSpecial_ShowTrainerIntroSpeech waitmessage waitbuttonpress - special sub_8110AB4 - compare VAR_RESULT, 2 - goto_if_eq EventScript_1A4FB8 + goto_if_questlog EventScript_1A4FB8 special ScrSpecial_StartTrainerEyeRematch waitstate releaseall @@ -122,9 +116,7 @@ EventScript_1A4FC7:: @ 81A4FC7 special ScrSpecial_ShowTrainerIntroSpeech waitmessage waitbuttonpress - special sub_8110AB4 - compare VAR_RESULT, 2 - goto_if_eq EventScript_1A501A + goto_if_questlog EventScript_1A501A battlebegin specialvar VAR_RESULT, ScrSpecial_GetTrainerBattleMode compare VAR_RESULT, 0 diff --git a/data/specials.inc b/data/specials.inc index d554b6c0f..0841bc885 100644 --- a/data/specials.inc +++ b/data/specials.inc @@ -171,14 +171,14 @@ gSpecials:: @ 815FD60 def_special nullsub_75 def_special nullsub_75 def_special nullsub_75 - def_special ShouldMoveSaffronFanClubMember - def_special GetNumMovedSaffronFanClubMembers - def_special BufferStreakTrainerText - def_special sub_8113064 - def_special UpdateMovedSaffronFanClubMembers - def_special sub_8113510 - def_special sub_81130A8 - def_special sub_8113530 + def_special Special_IsFanClubMemberFanOfPlayer + def_special Special_GetNumFansOfPlayerInTrainerFanClub + def_special Special_BufferFanClubTrainerName + def_special Special_TryLoseFansFromPlayTimeAfterLinkBattle + def_special Special_TryLoseFansFromPlayTime + def_special Special_SetPlayerGotFirstFans + def_special Special_UpdateTrainerFanClubGameClear + def_special Special_TryGainNewFanFromCounter def_special ScrSpecial_RockSmashWildEncounter def_special nullsub_75 def_special nullsub_75 @@ -369,7 +369,7 @@ gSpecials:: @ 815FD60 def_special ChangeBoxPokemonNickname def_special Special_UpdateTrainerCardPhotoIcons def_special Special_StickerLadyGetBragFlags - def_special sub_80CC524 + def_special SetUsedPkmnCenterQuestLogEvent def_special IsWirelessAdapterConnected def_special TryBecomeLinkLeader def_special TryJoinLinkGroup @@ -399,7 +399,7 @@ gSpecials:: @ 815FD60 def_special sub_811390C def_special Special_GetMartClerkObjectId def_special Special_BattleCardAction - def_special sub_8110AB4 + def_special Special_GetQuestLogState def_special sub_8112364 def_special Special_GetMENewsJisanItemAndState def_special GetPCBoxToSendMon diff --git a/data/strings.s b/data/strings.s index 50b329490..0b928174f 100644 --- a/data/strings.s +++ b/data/strings.s @@ -1356,10 +1356,10 @@ gText_Withdraw:: gText_ReturnToPC:: @ 84178BE .string "Return to the PC.$" -gUnknown_84178D0:: @ 84178D0 +gText_LtSurge:: @ 84178D0 .string "LT. SURGE$" -gUnknown_84178DA:: @ 84178DA +gText_Koga:: @ 84178DA .string "KOGA$" gUnknown_84178DF:: @ 0x84178DF @@ -2435,7 +2435,7 @@ gUnknown_8418BF3:: @ 0x8418BF3 gUnknown_8418C12:: @ 0x8418C12 .string "ポケモン リ-グ$" -gUnknown_8418C1B:: @ 8418C1B +gText_PokemonCenter:: @ 8418C1B .string "POKéMON CENTER$" gUnknown_8418C2A:: @ 8418C2A diff --git a/data/text/quest_log.inc b/data/text/quest_log.inc index a9a22429b..f03343802 100644 --- a/data/text/quest_log.inc +++ b/data/text/quest_log.inc @@ -1,481 +1,482 @@ -gUnknown_841A155:: @ 841A155 +QuestLog_Text_PreviouslyOnYourQuest:: @ 841A155 .string "Previously on your quest…$" -gUnknown_841A16F:: @ 841A16F +QuestLog_Text_SwitchMon1WithMon2:: @ 841A16F .string "{PLAYER} switched the POKéMON\n" .string "{STR_VAR_1} with {STR_VAR_2}.$" -gUnknown_841A193:: @ 841A193 +QuestLog_Text_SwappedHeldItemsOnMon:: @ 841A193 .string "Took the item {STR_VAR_2} from\n" .string "{STR_VAR_1} and gave it the item\n" .string "{STR_VAR_3} to hold.$" -gUnknown_841A1CD:: @ 841A1CD +QuestLog_Text_TookHeldItemFromMon:: @ 841A1CD .string "Took the item {STR_VAR_2} from\n" .string "{STR_VAR_1}.$" -gUnknown_841A1E7:: @ 841A1E7 +QuestLog_Text_UsedItemOnMonAtThisLocation:: @ 841A1E7 .string "Used the item {STR_VAR_1} on {STR_VAR_2}\n" .string "at this location.$" -gUnknown_841A210:: @ 841A210 +QuestLog_Text_UsedTheItem:: @ 841A210 .string "{PLAYER} used the\n" .string "{STR_VAR_1}.$" -gUnknown_841A220:: @ 841A220 +QuestLog_Text_UsedTheKeyItem:: @ 841A220 .string "Used the item {STR_VAR_1}, which was\n" .string "in the KEY ITEMS POCKET.$" -gUnknown_841A255:: @ 841A255 +QuestLog_Text_MonLearnedMoveFromTM:: @ 841A255 .string "{STR_VAR_1} learned the move\n" .string "{STR_VAR_2} from a TM.$" -gUnknown_841A277:: @ 841A277 +QuestLog_Text_MonReplacedMoveWithTM:: @ 841A277 .string "{STR_VAR_1} learned the move\n" .string "{STR_VAR_2} from a TM and forgot\n" .string "the move {STR_VAR_3}.$" -gUnknown_841A2B0:: @ 841A2B0 +QuestLog_Text_MonsWereFullyRestoredAtCenter:: @ 841A2B0 .string "POKéMON were fully restored\n" .string "at a POKéMON CENTER.$" -gUnknown_841A2E1:: @ 841A2E1 +QuestLog_Text_PlayerBattledChampionRival:: @ 841A2E1 .string "{DYNAMIC 0x00} had a marvelous battle\n" .string "with the CHAMPION, {DYNAMIC 0x01}.$" -gUnknown_841A312:: @ 841A312 +QuestLog_Text_PlayerSentOutMon1RivalSentOutMon2:: @ 841A312 .string "In the end, {DYNAMIC 0x00} sent out {DYNAMIC 0x01}\n" .string "while {DYNAMIC 0x02} countered with\n" .string "{DYNAMIC 0x03}.$" -gUnknown_841A349:: @ 841A349 +QuestLog_Text_WonTheMatchAsAResult:: @ 841A349 .string "And, as a result of battling with every\n" .string "bit of power, {DYNAMIC 0x00} won\n" .string "the match.$" -gUnknown_841A391:: @ 841A391 +QuestLog_Text_StoredItemInPC:: @ 841A391 .string "Removed the item {STR_VAR_1} from\n" .string "the BAG's ITEMS POCKET and stored it\n" .string "on the PC.$" -gUnknown_841A3DA:: @ 841A3DA +QuestLog_Text_WithdrewItemFromPC:: @ 841A3DA .string "{PLAYER} withdrew the item {STR_VAR_1}\n" .string "from the PC.$" -gUnknown_841A3FF:: @ 841A3FF +QuestLog_Text_TradedMon1ForPersonsMon2:: @ 841A3FF .string "Traded {STR_VAR_3} in exchange for\n" .string "{STR_VAR_1}'s {STR_VAR_2}.$" -gUnknown_841A422:: @ 841A422 +QuestLog_Text_SingleBattleWithPersonResultedInOutcome:: @ 841A422 .string "Took on {DYNAMIC 0x00} in a SINGLE BATTLE.\n" .string "It was a hotly contested match that\n" .string "resulted in a {DYNAMIC 0x01}.$" -gUnknown_841A477:: @ 841A477 +QuestLog_Text_DoubleBattleWithPersonResultedInOutcome:: @ 841A477 .string "Took on {DYNAMIC 0x00} in a DOUBLE BATTLE.\n" .string "It was an extended match that resulted\n" .string "in a {DYNAMIC 0x01}.$" -gUnknown_841A4C6:: @ 841A4C6 +QuestLog_Text_MultiBattleWithPeopleResultedInOutcome:: @ 841A4C6 .string "{DYNAMIC 0x00} and {DYNAMIC 0x01} took on\n" .string "{DYNAMIC 0x02} and {DYNAMIC 0x03} in a\n" .string "MULTI BATTLE and got a {DYNAMIC 0x04}.$" -gUnknown_841A502:: +QuestLog_Text_Win:: .string "win$" -gUnknown_841A506:: +QuestLog_Text_Loss:: .string "loss$" -gUnknown_841A50B:: @ 841A50B +QuestLog_Text_MingledInUnionRoom:: @ 841A50B .string "Mingled with other TRAINERS in\n" .string "the UNION ROOM.$" -gUnknown_841A53A:: +QuestLog_Text_DepartedPlaceInTownForNextDestination:: @ 841A53A .string "Departed {STR_VAR_2}\n" .string "in {STR_VAR_1} for the next\n" .string "destination.$" -gUnknown_841A566:: @ 841A566 +QuestLog_Text_SwitchedMonsBetweenBoxes:: @ 841A566 .string "After consideration, switched\n" .string "{DYNAMIC 0x01} in {DYNAMIC 0x00} with\n" .string "{DYNAMIC 0x03} in {DYNAMIC 0x02}.$" -gUnknown_841A59C:: @ 841A59C +QuestLog_Text_MovedMonToNewBox:: @ 841A59C .string "After deep thought, switched\n" .string "{DYNAMIC 0x01} in BOX “{DYNAMIC 0x00}” to\n" .string "the BOX “{DYNAMIC 0x02}.”$" -gUnknown_841A5D9:: @ 841A5D9 +QuestLog_Text_SwitchedMonsWithinBox:: @ 841A5D9 .string "Switched around {DYNAMIC 0x01} and\n" .string "{DYNAMIC 0x02} in {DYNAMIC 0x00}.$" -gUnknown_841A5FA:: @ 841A5FA +QuestLog_Text_MovedMonWithinBox:: @ 841A5FA .string "Moved {DYNAMIC 0x01} in {DYNAMIC 0x00}.$" -gUnknown_841A60A:: @ 841A60A +QuestLog_Text_SwitchedPartyMonForPCMon:: @ 841A60A .string "Switched {DYNAMIC 0x01} in {DYNAMIC 0x00}\n" .string "with {DYNAMIC 0x02} in the party.$" -gUnknown_841A632:: @ 841A632 +QuestLog_Text_WithdrewMonFromPC:: @ 841A632 .string "Added {DYNAMIC 0x01} in {DYNAMIC 0x00}\n" .string "to the party.$" -gUnknown_841A64F:: @ 841A64F +QuestLog_Text_DepositedMonInPC:: @ 841A64F .string "Moved {DYNAMIC 0x00} from the party\n" .string "to {DYNAMIC 0x01}.$" -gUnknown_841A66E:: @ 841A66E +QuestLog_Text_SwitchedMultipleMons:: @ 841A66E .string "Moved a group of POKéMON in\n" .string "{DYNAMIC 0x00} to {DYNAMIC 0x01}.$" -gUnknown_841A694:: @ 841A694 +QuestLog_Text_ADifferentSpot:: @ 841A694 .string "a different spot$" -gUnknown_841A6A5:: @ 841A6A5 +QuestLog_Text_GaveMonHeldItemFromPC:: @ 841A6A5 .string "Removed the item {STR_VAR_1} from\n" .string "{PLAYER}'s PC and gave it to {STR_VAR_2}\n" .string "to hold.$" -gUnknown_841A6E1:: @ 841A6E1 +QuestLog_Text_SwappedHeldItemFromPC:: @ 841A6E1 .string "Removed the item {STR_VAR_1} from\n" .string "a PC, gave it to {STR_VAR_2}, and put\n" .string "the {STR_VAR_3} it held in the BAG.$" -gUnknown_841A732:: @ 841A732 +QuestLog_Text_ChattedWithManyTrainers:: @ 841A732 .string "Chatted with many TRAINERS.$" -gUnknown_841A74E:: +QuestLog_Text_Handily:: .string "handily$" -gUnknown_841A756:: +QuestLog_Text_Tenaciously:: .string "tenaciously$" -gUnknown_841A762:: +QuestLog_Text_Somehow:: .string "somehow$" -gUnknown_841A76A:: @ 841A76A +QuestLog_Text_TradedMon1ForTrainersMon2:: @ 841A76A .string "Met and traded with {STR_VAR_1}.\n" .string "Obtained the TRAINER's {STR_VAR_2} in\n" .string "exchange for {STR_VAR_3}.$" -gUnknown_841A7B0:: @ 841A7B0 +QuestLog_Text_BattledTrainerEndedInOutcome:: @ 841A7B0 .string "Met and battled {STR_VAR_1}.\n" .string "The match ended in a {STR_VAR_2}.$" -gUnknown_841A7DD:: @ 841A7DD +QuestLog_Text_BoughtItem:: @ 841A7DD .string "Went to the POKéMON MART in\n" .string "{DYNAMIC 0x00} and bought one \n" .string "{DYNAMIC 0x01}.$" -gUnknown_841A810:: @ 841A810 +QuestLog_Text_BoughtItemsIncludingItem:: @ 841A810 .string "Went to the POKéMON MART in\n" .string "{DYNAMIC 0x00} and spent ¥{DYNAMIC 0x02} for\n" .string "items including {DYNAMIC 0x01}(s).$" -gUnknown_841A858:: @ 841A858 +QuestLog_Text_SoldNumOfItem:: @ 841A858 .string "{DYNAMIC 0x00} went to the POKéMON MART in\n" .string "{DYNAMIC 0x01} and sold {DYNAMIC 0x03} of\n" .string "the item {DYNAMIC 0x02}.$" -gUnknown_841A896:: @ 841A896 - .string "Sold items including {DYNAMIC 0x01} at\n" +QuestLog_Text_SoldItemsIncludingItem:: @ 841A896 + .string "Sold items including {DYNAMIC 0x01} at\n" .string "the POKéMON MART in {DYNAMIC 0x00},\n" .string "worth ¥{DYNAMIC 0x02}.$" -gUnknown_841A8D4:: @ 841A8D4 +QuestLog_Text_JustOne:: @ 841A8D4 .string "just one$" -gUnknown_841A8DD:: @ 841A8DD +QuestLog_Text_Num:: @ 841A8DD .string "{DYNAMIC 0x04}$" -gUnknown_841A8E0:: @ 841A8E0 +QuestLog_Text_UsedSoftboiled:: @ 841A8E0 .string "{STR_VAR_1} shared its HP using the move\n" .string "SOFTBOILED.$" -gUnknown_841A90C:: @ 841A90C +QuestLog_Text_UsedMilkDrink:: @ 841A90C .string "{STR_VAR_1} shared its HP using the move\n" .string "MILK DRINK.$" -gUnknown_841A938:: @ 841A938 +QuestLog_Text_MonLearnedMoveFromHM:: @ 841A938 .string "{STR_VAR_1} securely learned the move\n" .string "{STR_VAR_2} using an HM.$" -gUnknown_841A965:: @ 841A965 +QuestLog_Text_MonReplacedMoveWithHM:: @ 841A965 .string "{STR_VAR_1} securely learned the move\n" .string "{STR_VAR_2} using an HM and forgot\n" .string "the move {STR_VAR_3}.$" -gUnknown_841A9A9:: @ 841A9A9 +QuestLog_Text_DefeatedWildMon:: @ 841A9A9 .string "{DYNAMIC 0x05} managed to defeat the POKéMON\n" .string "{DYNAMIC 0x01} in {DYNAMIC 0x00}.$" -gUnknown_841A9D4:: @ 841A9D4 +QuestLog_Text_DefeatedWildMons:: @ 841A9D4 .string "Defeated {DYNAMIC 0x02} wild POKéMON including\n" .string "{DYNAMIC 0x01} in {DYNAMIC 0x00}.$" -gUnknown_841AA01:: @ 841AA01 +QuestLog_Text_CaughtWildMon:: @ 841AA01 .string "{DYNAMIC 0x05} managed to catch the POKéMON\n" .string "{DYNAMIC 0x03} in {DYNAMIC 0x00}.$" -gUnknown_841AA2B:: @ 841AA2B +QuestLog_Text_CaughtWildMons:: @ 841AA2B .string "Threw POKé BALLS in a frenzy, catching\n" .string "{DYNAMIC 0x04} POKéMON including {DYNAMIC 0x03} here\n" .string "in {DYNAMIC 0x00}.$" -gUnknown_841AA76:: @ 841AA76 +QuestLog_Text_DefeatedWildMonAndCaughtWildMon:: @ 841AA76 .string "{DYNAMIC 0x05} defeated the POKéMON\n" .string "{DYNAMIC 0x01} and caught one {DYNAMIC 0x03}\n" .string "in {DYNAMIC 0x00}.$" -gUnknown_841AAAA:: @ 841AAAA +QuestLog_Text_DefeatedWildMonAndCaughtWildMons:: @ 841AAAA .string "Defeated the POKéMON {DYNAMIC 0x01}\n" .string "and caught {DYNAMIC 0x04} POKéMON including\n" .string "{DYNAMIC 0x03} in {DYNAMIC 0x00}.$" -gUnknown_841AAEC:: @ 841AAEC +QuestLog_Text_DefeatedWildMonsAndCaughtWildMon:: @ 841AAEC .string "{DYNAMIC 0x05} defeated {DYNAMIC 0x02} POKéMON including\n" .string "{DYNAMIC 0x01} and caught one {DYNAMIC 0x03}\n" .string "in {DYNAMIC 0x00}.$" -gUnknown_841AB29:: @ 841AB29 +QuestLog_Text_DefeatedWildMonsAndCaughtWildMons:: @ 841AB29 .string "Defeated {DYNAMIC 0x02} POKéMON including\n" .string "{DYNAMIC 0x01} and caught {DYNAMIC 0x04} POKéMON\n" .string "including {DYNAMIC 0x03} in {DYNAMIC 0x00}.$" -gUnknown_841AB74:: @ 841AB74 +QuestLog_Text_GaveMonHeldItem:: @ 841AB74 .string "Made {STR_VAR_1} hold the item\n" .string "{STR_VAR_2}.$" -gUnknown_841AB8E:: @ 841AB8E +QuestLog_Text_GaveMonHeldItem2:: @ 841AB8E .string "{PLAYER} made {STR_VAR_1} hold the item\n" .string "{STR_VAR_2}.$" -gUnknown_841ABAB:: @ 841ABAB +QuestLog_Text_UsedCut:: @ 841ABAB .string "{STR_VAR_1} used the Hidden Move\n" .string "CUT here.$" -gUnknown_841ABCD:: @ 841ABCD +QuestLog_Text_UsedFly:: @ 841ABCD .string "{STR_VAR_1} used the Hidden Move\n" .string "FLY and flew to {STR_VAR_2}.$" -gUnknown_841ABF9:: @ 841ABF9 +QuestLog_Text_UsedSurf:: @ 841ABF9 .string "{STR_VAR_1} used the Hidden Move\n" .string "SURF and rode the waves.$" -gUnknown_841AC2A:: @ 841AC2A +QuestLog_Text_UsedStrength:: @ 841AC2A .string "{STR_VAR_1} used the Hidden Move\n" .string "STRENGTH here.$" -gUnknown_841AC51:: @ 841AC51 +QuestLog_Text_UsedFlash:: @ 841AC51 .string "{STR_VAR_1} used the Hidden Move\n" .string "FLASH and illuminated a pitch-black\n" .string "cave.$" -gUnknown_841AC93:: @ 841AC93 +QuestLog_Text_UsedRockSmash:: @ 841AC93 .string "{STR_VAR_1} used the Hidden Move\n" .string "ROCK SMASH here.$" -gUnknown_841ACBC:: @ 841ACBC +QuestLog_Text_UsedWaterfall:: @ 841ACBC .string "{STR_VAR_1} used the Hidden Move\n" .string "WATERFALL to scale a raging torrent.$" -gUnknown_841ACF9:: @ 841ACF9 - .string "{STR_VAR_1}è êÉÁ Ñこª& òざÏ\n" - .string "éで+わざ\n" - .string "ダ¡ビング& ÚÉっŒ!$" +@ Unused +QuestLog_Text_UsedDive:: @ 841ACF9 + .string "{STR_VAR_1}は ふかい ところを めざし\n" + .string "ひでんわざ\n" + .string "ダイビングを つかった!$" -gUnknown_841AD1D:: @ 841AD1D +QuestLog_Text_UsedDigInLocation:: @ 841AD1D .string "{STR_VAR_1} used DIG to escape from\n" .string "{STR_VAR_2}.$" -gUnknown_841AD3C:: @ 841AD3C +QuestLog_Text_UsedSweetScent:: @ 841AD3C .string "{STR_VAR_1} used SWEET SCENT to attract\n" .string "wild POKéMON.$" -gUnknown_841AD69:: @ 841AD69 +QuestLog_Text_UsedTeleportToLocation:: @ 841AD69 .string "{STR_VAR_1} used TELEPORT, transporting\n" .string "the party to {STR_VAR_2}'s\n" .string "{STR_VAR_3}.$" -gUnknown_841AD9E:: @ 841AD9E +QuestLog_Text_LeftTownsLocationForNextDestination:: @ 841AD9E .string "{PLAYER} left {STR_VAR_1}'s\n" .string "{STR_VAR_2} for the next\n" .string "destination.$" -gUnknown_841ADC8:: @ 841ADC8 +QuestLog_Text_PlayedGamesAtGameCorner:: @ 841ADC8 .string "Played a lot of games at the ROCKET\n" .string "GAME CORNER in {STR_VAR_1}.$" -gUnknown_841ADFF:: @ 841ADFF +QuestLog_Text_RestedAtHome:: @ 841ADFF .string "{PLAYER} rested comfortably at home.$" -gUnknown_841AE1E:: @ 841AE1E +QuestLog_Text_LeftOaksLab:: @ 841AE1E .string "{PLAYER} left PROF. OAK's POKéMON\n" .string "RESEARCH LAB.$" -gUnknown_841AE48:: @ 841AE48 +QuestLog_Text_GymWasFullOfToughTrainers:: @ 841AE48 .string "The GYM in {STR_VAR_1} was full of\n" .string "tough TRAINERS…\n" .string "Preparations had to be made.$" -gUnknown_841AE8F:: @ 841AE8F +QuestLog_Text_DepartedGym:: @ 841AE8F .string "Departed the GYM in {STR_VAR_1}.$" -gUnknown_841AEA7:: @ 841AEA7 +QuestLog_Text_HadGreatTimeInSafariZone:: @ 841AEA7 .string "{PLAYER} had a great time with POKéMON\n" .string "in the SAFARI ZONE.$" -gUnknown_841AEDC:: @ 841AEDC +QuestLog_Text_ManagedToGetOutOfLocation:: @ 841AEDC .string "Managed to get out of {STR_VAR_2}\n" .string "after wandering about.$" -gUnknown_841AF0C:: @ 841AF0C +QuestLog_Text_TookOnGymLeadersMonWithMonAndWon:: @ 841AF0C .string "Took on {DYNAMIC 0x00} GYM LEADER\n" .string "{DYNAMIC 0x01}'s {DYNAMIC 0x02} with {DYNAMIC 0x03}\n" .string "and won {DYNAMIC 0x04}!$" -gUnknown_841AF3E:: @ 841AF3E +QuestLog_Text_TookOnEliteFoursMonWithMonAndWon:: @ 841AF3E .string "Took on ELITE FOUR {DYNAMIC 0x00}'s\n" .string "{DYNAMIC 0x01} with {DYNAMIC 0x02} and\n" .string "won {DYNAMIC 0x03}!$" -gUnknown_841AF6D:: @ 841AF6D +QuestLog_Text_TookOnTrainersMonWithMonAndWon:: @ 841AF6D .string "In {DYNAMIC 0x00}, took on\n" .string "{DYNAMIC 0x01}'s {DYNAMIC 0x02} with {DYNAMIC 0x03}\n" .string "and won {DYNAMIC 0x04}!$" -gUnknown_841AF98:: @ 841AF98 +QuestLog_Text_Coolly:: @ 841AF98 .string "coolly$" -gUnknown_841AF9F:: @ 841AF9F +QuestLog_Text_Barely:: @ 841AF9F .string "barely$" -gUnknown_841AFA6:: @ 841AFA6 +QuestLog_Text_UsedEscapeRope:: @ 841AFA6 .string "{PLAYER} used an ESCAPE ROPE to get\n" .string "out from {STR_VAR_2}.$" -gUnknown_841AFD1:: @ 841AFD1 +QuestLog_Text_Draw:: @ 841AFD1 .string "draw$" -gUnknown_841AFD6:: @ 841AFD6 +QuestLog_Text_DepartedTheLocationForNextDestination:: @ 841AFD6 .string "Departed from the {STR_VAR_2}\n" .string "for the next destination.$" -gUnknown_841B005:: @ 841B005 +QuestLog_Text_DepartedFromLocationToNextDestination:: @ 841B005 .string "{PLAYER} departed from\n" .string "{STR_VAR_2} and made way\n" .string "to the next destination.$" -gUnknown_841B03F:: @ 841B03F +QuestLog_Text_ObtainedItemInLocation:: @ 841B03F .string "Here in {STR_VAR_1}, {PLAYER}\n" .string "obtained the item {STR_VAR_2}.$" -gUnknown_841B064:: @ 841B064 +QuestLog_Text_ArrivedInLocation:: @ 841B064 .string "Arrived in {STR_VAR_1}.$" -gUnknown_841B073:: @ 841B073 +QuestLog_Text_SavedGameAtLocation:: @ 841B073 .string "And {PLAYER} saved the game at this\n" .string "location: {STR_VAR_1}.$" -gQuestLogString_Home:: @ 841B09F +QuestLog_Text_Home:: @ 841B09F .string "HOME$" -gQuestLogString_OakResearchLab:: @ 841B0A4 +QuestLog_Text_OakResearchLab:: @ 841B0A4 .string "OAK RESEARCH LAB$" -gQuestLogString_Gym:: @ 841B0B5 +QuestLog_Text_Gym:: @ 841B0B5 .string "GYM$" -gQuestLogString_PokemonLeagueGate:: @ 841B0B9 +QuestLog_Text_PokemonLeagueGate:: @ 841B0B9 .string "POKéMON LEAGUE GATE$" -gQuestLogString_ViridianForest:: @ 841B0CD +QuestLog_Text_ViridianForest:: @ 841B0CD .string "VIRIDIAN FOREST$" -gQuestLogString_PewterMuseumOfScience:: @ 841B0DD +QuestLog_Text_PewterMuseumOfScience:: @ 841B0DD .string "PEWTER MUSEUM OF SCIENCE$" -gQuestLogString_MtMoon:: @ 841B0F6 +QuestLog_Text_MtMoon:: @ 841B0F6 .string "MT. MOON$" -gQuestLogString_BikeShop:: @ 841B0FF +QuestLog_Text_BikeShop:: @ 841B0FF .string "BIKE SHOP$" -gQuestLogString_BillSHouse:: @ 841B109 +QuestLog_Text_BillsHouse:: @ 841B109 .string "BILL'S HOUSE$" -gQuestLogString_DayCare:: @ 841B116 +QuestLog_Text_DayCare:: @ 841B116 .string "DAY CARE$" -gQuestLogString_UndergroundPath:: @ 841B11F +QuestLog_Text_UndergroundPath:: @ 841B11F .string "UNDERGROUND PATH$" -gQuestLogString_PokemonFanClub:: @ 841B130 +QuestLog_Text_PokemonFanClub:: @ 841B130 .string "POKéMON FAN CLUB$" -gQuestLogString_SSAnne:: @ 841B141 +QuestLog_Text_SSAnne:: @ 841B141 .string "S.S. ANNE$" -gQuestLogString_DiglettSCave:: @ 841B14B +QuestLog_Text_DiglettsCave:: @ 841B14B .string "DIGLETT'S CAVE$" -gQuestLogString_RockTunnel:: @ 841B15A +QuestLog_Text_RockTunnel:: @ 841B15A .string "ROCK TUNNEL$" -gQuestLogString_PowerPlant:: @ 841B166 +QuestLog_Text_PowerPlant:: @ 841B166 .string "POWER PLANT$" -gQuestLogString_PokemonTower:: @ 841B172 +QuestLog_Text_PokemonTower:: @ 841B172 .string "POKéMON TOWER$" -gQuestLogString_VolunteerHouse:: @ 841B180 +QuestLog_Text_VolunteerHouse:: @ 841B180 .string "VOLUNTEER HOUSE$" -gQuestLogString_NameRaterSHouse:: @ 841B190 +QuestLog_Text_NameRatersHouse:: @ 841B190 .string "NAME RATER'S HOUSE$" -gQuestLogString_CeladonDeptStore:: @ 841B1A3 +QuestLog_Text_CeladonDeptStore:: @ 841B1A3 .string "CELADON DEPT. STORE$" -gQuestLogString_CeladonMansion:: @ 841B1B7 +QuestLog_Text_CeladonMansion:: @ 841B1B7 .string "CELADON MANSION$" -gQuestLogString_RocketGameCorner:: @ 841B1C7 +QuestLog_Text_RocketGameCorner:: @ 841B1C7 .string "ROCKET GAME CORNER$" -gQuestLogString_Restaurant:: @ 841B1DA +QuestLog_Text_Restaurant:: @ 841B1DA .string "RESTAURANT$" -gQuestLogString_RocketHideout:: @ 841B1E5 +QuestLog_Text_RocketHideout:: @ 841B1E5 .string "ROCKET HIDEOUT$" -gQuestLogString_SafariZone:: @ 841B1F4 +QuestLog_Text_SafariZone:: @ 841B1F4 .string "SAFARI ZONE$" -gQuestLogString_WardenSHome:: @ 841B200 +QuestLog_Text_WardensHome:: @ 841B200 .string "WARDEN'S HOME$" -gQuestLogString_FightingDojo:: @ 841B20E +QuestLog_Text_FightingDojo:: @ 841B20E .string "FIGHTING DOJO$" -gQuestLogString_SilphCo:: @ 841B21C +QuestLog_Text_SilphCo:: @ 841B21C .string "SILPH CO.$" -gQuestLogString_SeafoamIslands:: @ 841B226 +QuestLog_Text_SeafoamIslands:: @ 841B226 .string "SEAFOAM ISLANDS$" -gQuestLogString_PokemonMansion:: @ 841B236 +QuestLog_Text_PokemonMansion:: @ 841B236 .string "POKéMON MANSION$" -gQuestLogString_PokemonResearchLab:: @ 841B246 +QuestLog_Text_PokemonResearchLab:: @ 841B246 .string "POKéMON RESEARCH LAB$" -gQuestLogString_VictoryRoad:: @ 841B25B +QuestLog_Text_VictoryRoad:: @ 841B25B .string "VICTORY ROAD$" -gQuestLogString_PokemonLeague:: @ 841B268 +QuestLog_Text_PokemonLeague:: @ 841B268 .string "POKéMON LEAGUE$" -gQuestLogString_CeruleanCave:: @ 841B277 +QuestLog_Text_CeruleanCave:: @ 841B277 .string "CERULEAN CAVE$" diff --git a/include/constants/global.h b/include/constants/global.h index c11945ed8..420a9da71 100644 --- a/include/constants/global.h +++ b/include/constants/global.h @@ -32,6 +32,8 @@ #define BAG_TMHM_COUNT 58 #define BAG_BERRIES_COUNT 43 +#define QUEST_LOG_SCENE_COUNT 4 + #define MALE 0 #define FEMALE 1 diff --git a/include/constants/party_menu.h b/include/constants/party_menu.h index 9b5660f6f..28ce39cd3 100644 --- a/include/constants/party_menu.h +++ b/include/constants/party_menu.h @@ -31,6 +31,20 @@ #define TUTOR_MOVE_BLAST_BURN 16 #define TUTOR_MOVE_HYDRO_CANNON 17 +#define FIELD_MOVE_FLASH 0 +#define FIELD_MOVE_CUT 1 +#define FIELD_MOVE_FLY 2 +#define FIELD_MOVE_STRENGTH 3 +#define FIELD_MOVE_SURF 4 +#define FIELD_MOVE_ROCK_SMASH 5 +#define FIELD_MOVE_WATERFALL 6 +#define FIELD_MOVE_TELEPORT 7 +#define FIELD_MOVE_DIG 8 +#define FIELD_MOVE_MILK_DRINK 9 +#define FIELD_MOVE_SOFT_BOILED 10 +#define FIELD_MOVE_SWEET_SCENT 11 +#define FIELD_MOVE_END 12 + #define PARTY_LAYOUT_SINGLE 0 #define PARTY_LAYOUT_DOUBLE 1 #define PARTY_LAYOUT_MULTI 2 @@ -58,7 +72,7 @@ #define PARTY_ACTION_USE_ITEM 3 #define PARTY_ACTION_ABILITY_PREVENTS 4 #define PARTY_ACTION_GIVE_ITEM 5 -#define PARTY_ACTION_GIVE_PC_ITEM 6 // TODO: rename this one if necessary. Used for quest log. +#define PARTY_ACTION_GIVE_PC_ITEM 6 #define PARTY_ACTION_GIVE_MAILBOX_MAIL 7 #define PARTY_ACTION_SWITCH 8 #define PARTY_ACTION_SWITCHING 9 diff --git a/include/constants/quest_log.h b/include/constants/quest_log.h new file mode 100644 index 000000000..c1eaf3f07 --- /dev/null +++ b/include/constants/quest_log.h @@ -0,0 +1,133 @@ +#ifndef GUARD_CONSTANTS_QUEST_LOG_H +#define GUARD_CONSTANTS_QUEST_LOG_H + +// TODO: Name and use state constants +#define QL_STATE_1 1 +#define QL_STATE_2 2 +#define QL_STATE_3 3 + +#define QL_EVENT_0 0 // Null +#define QL_EVENT_1 1 // Null +#define QL_EVENT_2 2 // Null +#define QL_EVENT_SWITCHED_PARTY_ORDER 3 +#define QL_EVENT_USED_ITEM 4 +#define QL_EVENT_GAVE_HELD_ITEM 5 +#define QL_EVENT_GAVE_HELD_ITEM_BAG 6 +#define QL_EVENT_GAVE_HELD_ITEM_PC 7 +#define QL_EVENT_TOOK_HELD_ITEM 8 +#define QL_EVENT_SWAPPED_HELD_ITEM 9 +#define QL_EVENT_SWAPPED_HELD_ITEM_PC 10 +#define QL_EVENT_USED_PKMN_CENTER 11 +#define QL_EVENT_LINK_TRADED 12 +#define QL_EVENT_LINK_BATTLED_SINGLE 13 +#define QL_EVENT_LINK_BATTLED_DOUBLE 14 +#define QL_EVENT_LINK_BATTLED_MULTI 15 +#define QL_EVENT_USED_UNION_ROOM 16 +#define QL_EVENT_USED_UNION_ROOM_CHAT 17 +#define QL_EVENT_LINK_TRADED_UNION 18 +#define QL_EVENT_LINK_BATTLED_UNION 19 +#define QL_EVENT_SWITCHED_MONS_BETWEEN_BOXES 20 +#define QL_EVENT_SWITCHED_MONS_WITHIN_BOX 21 +#define QL_EVENT_SWITCHED_PARTY_MON_FOR_PC_MON 22 +#define QL_EVENT_MOVED_MON_BETWEEN_BOXES 23 +#define QL_EVENT_MOVED_MON_WITHIN_BOX 24 +#define QL_EVENT_WITHDREW_MON_PC 25 +#define QL_EVENT_DEPOSITED_MON_PC 26 +#define QL_EVENT_SWITCHED_MULTIPLE_MONS 27 +#define QL_EVENT_DEPOSITED_ITEM_PC 28 +#define QL_EVENT_WITHDREW_ITEM_PC 29 +#define QL_EVENT_DEFEATED_GYM_LEADER 30 +#define QL_EVENT_DEFEATED_WILD_MON 31 +#define QL_EVENT_DEFEATED_E4_MEMBER 32 +#define QL_EVENT_DEFEATED_CHAMPION 33 +#define QL_EVENT_DEFEATED_TRAINER 34 +#define QL_EVENT_DEPARTED 35 +#define QL_EVENT_USED_FIELD_MOVE 36 +#define QL_EVENT_BOUGHT_ITEM 37 +#define QL_EVENT_SOLD_ITEM 38 +#define QL_EVENT_39 39 // Null +#define QL_EVENT_OBTAINED_ITEM 40 +#define QL_EVENT_41 41 // Null +#define QL_EVENT_ARRIVED 42 + +#define QL_EVENT_USED_POKEMART QL_EVENT_BOUGHT_ITEM - 1 // Used as a start pos for QL_EVENT_BOUGHT_ITEM / QL_EVENT_SOLD_ITEM + +#define IS_LINK_QL_EVENT(event)((event) >= QL_EVENT_LINK_TRADED && (event) <= QL_EVENT_LINK_BATTLED_UNION) +#define IS_VALID_QL_EVENT(event)((event) >= QL_EVENT_SWITCHED_PARTY_ORDER && (event) <= QL_EVENT_ARRIVED) + +#define QL_LOCATION_HOME 0 +#define QL_LOCATION_OAKS_LAB 1 +#define QL_LOCATION_VIRIDIAN_GYM 2 +#define QL_LOCATION_LEAGUE_GATE_1 3 +#define QL_LOCATION_LEAGUE_GATE_2 4 +#define QL_LOCATION_VIRIDIAN_FOREST_1 5 +#define QL_LOCATION_VIRIDIAN_FOREST_2 6 +#define QL_LOCATION_PEWTER_MUSEUM 7 +#define QL_LOCATION_PEWTER_GYM 8 +#define QL_LOCATION_MT_MOON_1 9 +#define QL_LOCATION_MT_MOON_2 10 +#define QL_LOCATION_CERULEAN_GYM 11 +#define QL_LOCATION_BIKE_SHOP 12 +#define QL_LOCATION_BILLS_HOUSE 13 +#define QL_LOCATION_DAY_CARE 14 +#define QL_LOCATION_UNDERGROUND_PATH_1 15 +#define QL_LOCATION_UNDERGROUND_PATH_2 16 +#define QL_LOCATION_PKMN_FAN_CLUB 17 +#define QL_LOCATION_VERMILION_GYM 18 +#define QL_LOCATION_SS_ANNE 19 +#define QL_LOCATION_DIGLETTS_CAVE_1 20 +#define QL_LOCATION_DIGLETTS_CAVE_2 21 +#define QL_LOCATION_ROCK_TUNNEL_1 22 +#define QL_LOCATION_ROCK_TUNNEL_2 23 +#define QL_LOCATION_POWER_PLANT 24 +#define QL_LOCATION_PKMN_TOWER 25 +#define QL_LOCATION_VOLUNTEER_HOUSE 26 +#define QL_LOCATION_NAME_RATERS_HOUSE 27 +#define QL_LOCATION_UNDERGROUND_PATH_3 28 +#define QL_LOCATION_UNDERGROUND_PATH_4 29 +#define QL_LOCATION_CELADON_DEPT_STORE 30 +#define QL_LOCATION_CELADON_MANSION 31 +#define QL_LOCATION_GAME_CORNER 32 +#define QL_LOCATION_CELADON_GYM 33 +#define QL_LOCATION_CELADON_RESTAURANT 34 +#define QL_LOCATION_ROCKET_HIDEOUT 35 +#define QL_LOCATION_SAFARI_ZONE 36 +#define QL_LOCATION_FUCHSIA_GYM 37 +#define QL_LOCATION_WARDENS_HOME 38 +#define QL_LOCATION_FIGHTING_DOJO 39 +#define QL_LOCATION_SAFFRON_GYM 40 +#define QL_LOCATION_SILPH_CO 41 +#define QL_LOCATION_SEAFOAM_ISLANDS_1 42 +#define QL_LOCATION_SEAFOAM_ISLANDS_2 43 +#define QL_LOCATION_PKMN_MANSION 44 +#define QL_LOCATION_CINNABAR_GYM 45 +#define QL_LOCATION_CINNABAR_LAB 46 +#define QL_LOCATION_VICTORY_ROAD_1 47 +#define QL_LOCATION_VICTORY_ROAD_2 48 +#define QL_LOCATION_PKMN_LEAGUE 49 +#define QL_LOCATION_CERULEAN_CAVE 50 + +#define QL_DEPARTED_TOWN_BUILDING 0 +#define QL_DEPARTED_MUSEUM 1 +#define QL_DEPARTED_GAME_CORNER 2 +#define QL_DEPARTED_HOME 3 +#define QL_DEPARTED_OAKS_LAB 4 +#define QL_DEPARTED_GYM 5 +#define QL_DEPARTED_SAFARI_ZONE 6 +#define QL_DEPARTED_CAVE 7 +#define QL_DEPARTED_MISC_BUILDING_1 8 +#define QL_DEPARTED_MISC_BUILDING_2 9 + + +#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_QUEST_LOG_H diff --git a/include/constants/vars.h b/include/constants/vars.h index 54375e08e..043f5bc39 100644 --- a/include/constants/vars.h +++ b/include/constants/vars.h @@ -98,8 +98,8 @@ #define VAR_RESORT_GOREGEOUS_STEP_COUNTER 0x4035 #define VAR_RESORT_GORGEOUS_REQUESTED_MON 0x4036 #define VAR_PC_BOX_TO_SEND_MON 0x4037 -#define VAR_0x4038 0x4038 -#define VAR_0x4039 0x4039 +#define VAR_FANCLUB_FAN_COUNTER 0x4038 +#define VAR_FANCLUB_LOSE_FAN_TIMER 0x4039 #define VAR_ELEVATOR_FLOOR 0x403A #define VAR_RESORT_GORGEOUS_REWARD 0x403B #define VAR_0x403C 0x403C diff --git a/include/event_scripts.h b/include/event_scripts.h index 2fc045a37..b5e355484 100644 --- a/include/event_scripts.h +++ b/include/event_scripts.h @@ -375,8 +375,9 @@ extern const u8 SecretBase_RedCave1_Text_2751E1[]; extern const u8 SecretBase_RedCave1_Text_2754F6[]; extern const u8 SecretBase_RedCave1_Text_2758CC[]; -extern const u8 gUnknown_84178D0[]; -extern const u8 gUnknown_84178DA[]; +extern const u8 gText_LtSurge[]; +extern const u8 gText_Koga[]; +extern const u8 gText_PokemonCenter[]; // vs_seeker extern const u8 gUnknown_81C137C[]; extern const u8 gUnknown_81C13D6[]; @@ -1177,7 +1178,7 @@ extern const u8 gText_PlayerSavedTheGame[]; extern const u8 gText_DifferentGameFile[]; // script_menu -extern const u8 EventScript_1A7AE0[]; +extern const u8 EventScript_ReleaseEnd[]; extern const u8 CableClub_Text_TradeMonsUsingLinkCable[]; extern const u8 CableClub_Text_BattleUsingLinkCable[]; extern const u8 CableClub_Text_CancelSelectedItem[]; diff --git a/include/global.h b/include/global.h index 6386071c4..180a1e0a3 100644 --- a/include/global.h +++ b/include/global.h @@ -601,17 +601,17 @@ struct QuestLogObjectEvent struct QuestLog { /*0x0000*/ u8 unk_000; - /*0x0001*/ s8 unk_001; - /*0x0002*/ s8 unk_002; - /*0x0003*/ s8 unk_003; - /*0x0004*/ s16 unk_004; - /*0x0006*/ s16 unk_006; + /*0x0001*/ u8 mapGroup; + /*0x0002*/ u8 mapNum; + /*0x0003*/ u8 warpId; + /*0x0004*/ s16 x; + /*0x0006*/ s16 y; /*0x0008*/ struct QuestLogObjectEvent unk_008[OBJECT_EVENTS_COUNT]; // These arrays hold the game state for // playing back the quest log - /*0x0148*/ u8 flags[0x120]; - /*0x02c8*/ u16 vars[0x100]; + /*0x0148*/ u8 flags[FLAGS_COUNT]; + /*0x02c8*/ u16 vars[VARS_COUNT]; /*0x0468*/ struct QuestLogNPCData npcData[64]; /*0x0568*/ u16 unk_568[128]; /*0x0668*/ u16 end[0]; @@ -752,7 +752,7 @@ struct SaveBlock1 /*0x0EE0*/ u8 flags[FLAGS_COUNT]; /*0x1000*/ u16 vars[VARS_COUNT]; /*0x1200*/ u32 gameStats[NUM_GAME_STATS]; - /*0x1300*/ struct QuestLog questLog[4]; + /*0x1300*/ struct QuestLog questLog[QUEST_LOG_SCENE_COUNT]; /*0x2CA0*/ u16 easyChatProfile[6]; /*0x2CAC*/ u16 easyChatBattleStart[6]; /*0x2CB8*/ u16 easyChatBattleWon[6]; diff --git a/include/item.h b/include/item.h index 7a4279976..1d63c1a22 100644 --- a/include/item.h +++ b/include/item.h @@ -62,7 +62,7 @@ u8 ItemId_GetSecondaryId(u16 itemId); u16 itemid_get_market_price(u16 itemId); void ClearBag(void); void ClearPCItemSlots(void); -void sub_809A824(u16 itemId); +void TrySetObtainedItemQuestLogEvent(u16 itemId); bool8 AddBagItem(u16 itemId, u16 amount); void SortPocketAndPlaceHMsFirst(struct BagPocket * pocket); diff --git a/include/party_menu.h b/include/party_menu.h index e2aee442f..cc8889137 100644 --- a/include/party_menu.h +++ b/include/party_menu.h @@ -49,7 +49,7 @@ void CB2_SelectBagItemToGive(void); void CB2_GiveHoldItem(void); bool8 FieldCallback_PrepareFadeInFromMenu(void); void CB2_ReturnToPartyMenuFromFlyMap(void); -void sub_8124C1C(const u8 *healLocCtrlData); +void SetUsedFlyQuestLogEvent(const u8 *healLocCtrlData); void CB2_ShowPartyMenuForItemUse(void); void ItemUseCB_Medicine(u8 taskId, TaskFunc func); void ItemUseCB_MedicineStep(u8 taskId, TaskFunc func); diff --git a/include/quest_log.h b/include/quest_log.h index 3dfd5f35c..eddd4c02a 100644 --- a/include/quest_log.h +++ b/include/quest_log.h @@ -3,6 +3,7 @@ #include "global.h" #include "quest_log_battle.h" +#include "constants/quest_log.h" struct UnkStruct_3005E90 { @@ -15,7 +16,7 @@ struct UnkStruct_3005E90 u8 unk_2; }; -extern u8 gUnknown_203ADFA; +extern u8 gQuestLogState; extern u8 gUnknown_3005E88; extern u16 sNumQuestLogs; extern struct UnkStruct_3005E90 gUnknown_3005E90; @@ -23,7 +24,7 @@ extern struct UnkStruct_203AE98 * gUnknown_3005E94; extern const u16 gUnknown_84566A8[]; void sub_8112720(u8); -void sub_8113550(u16, const u16 *); +void SetQuestLogEvent(u16, const u16 *); void sub_811539C(void); void sub_8115748(u16); u8 sub_8112CAC(void); @@ -35,8 +36,8 @@ u8 CreateHelpMessageWindow(void); void PrintTextOnHelpMessageWindow(const u8 * text, u8 mode); void MapNamePopupWindowIdSetDummy(void); void sub_8111CF0(void); -void sub_811089C(void); -void sub_8113044(void); +void ResetQuestLog(void); +void ResetTrainerFanClub(void); void TrySetUpQuestLogScenes_ElseContinueFromSave(u8 taskId); void sub_8112450(void); void sub_8112364(void); diff --git a/include/quest_log_8150454.h b/include/quest_log_8150454.h deleted file mode 100644 index adf5d193e..000000000 --- a/include/quest_log_8150454.h +++ /dev/null @@ -1,8 +0,0 @@ -#ifndef GUARD_QUEST_LOG_8150454_H -#define GUARD_QUEST_LOG_8150454_H - -#include "global.h" - -void sub_8150454(void); - -#endif //GUARD_QUEST_LOG_8150454_H diff --git a/include/quest_log_815A008.h b/include/quest_log_815A008.h deleted file mode 100644 index 72613be86..000000000 --- a/include/quest_log_815A008.h +++ /dev/null @@ -1,9 +0,0 @@ -#ifndef GUARD_QUEST_LOG_815A008_H -#define GUARD_QUEST_LOG_815A008_H - -#include "global.h" - -void sub_815A008(struct QuestLog *); -void sub_815A1F8(struct QuestLog *, struct ObjectEventTemplate *); - -#endif //GUARD_QUEST_LOG_815A008_H diff --git a/include/quest_log_battle.h b/include/quest_log_battle.h index 45d656e14..3047bb56d 100644 --- a/include/quest_log_battle.h +++ b/include/quest_log_battle.h @@ -3,7 +3,7 @@ #include "global.h" -void sub_812BFDC(void); -void sub_812C224(void); +void TrySetQuestLogBattleEvent(void); +void TrySetQuestLogLinkBattleEvent(void); #endif // GUARD_QUEST_LOG_BATTLE_H diff --git a/include/quest_log_objects.h b/include/quest_log_objects.h new file mode 100644 index 000000000..e582ba27a --- /dev/null +++ b/include/quest_log_objects.h @@ -0,0 +1,9 @@ +#ifndef GUARD_QUEST_LOG_OBJECTS_H +#define GUARD_QUEST_LOG_OBJECTS_H + +#include "global.h" + +void SetQuestLogObjectEventsData(struct QuestLog *); +void sub_815A1F8(struct QuestLog *, struct ObjectEventTemplate *); + +#endif //GUARD_QUEST_LOG_OBJECTS_H diff --git a/include/quest_log_player.h b/include/quest_log_player.h new file mode 100644 index 000000000..9cde1747e --- /dev/null +++ b/include/quest_log_player.h @@ -0,0 +1,8 @@ +#ifndef GUARD_QUEST_LOG_PLAYER_H +#define GUARD_QUEST_LOG_PLAYER_H + +#include "global.h" + +void sub_8150454(void); + +#endif //GUARD_QUEST_LOG_PLAYER_H diff --git a/include/text.h b/include/text.h index e538123fd..cd059e0e5 100644 --- a/include/text.h +++ b/include/text.h @@ -95,6 +95,21 @@ #define TEXT_DYNAMIC_COLOR_5 0xE // Usually blue-green #define TEXT_DYNAMIC_COLOR_6 0xF // Usually cerulean +#define PLACEHOLDER_ID_UNKNOWN 0x0 +#define PLACEHOLDER_ID_PLAYER 0x1 +#define PLACEHOLDER_ID_STRING_VAR_1 0x2 +#define PLACEHOLDER_ID_STRING_VAR_2 0x3 +#define PLACEHOLDER_ID_STRING_VAR_3 0x4 +#define PLACEHOLDER_ID_KUN 0x5 +#define PLACEHOLDER_ID_RIVAL 0x6 +#define PLACEHOLDER_ID_VERSION 0x7 +#define PLACEHOLDER_ID_MAGMA 0x8 +#define PLACEHOLDER_ID_AQUA 0x9 +#define PLACEHOLDER_ID_MAXIE 0xA +#define PLACEHOLDER_ID_ARCHIE 0xB +#define PLACEHOLDER_ID_GROUDON 0xC +#define PLACEHOLDER_ID_KYOGRE 0xD + // battle placeholders are located in battle_message.h #define EXT_CTRL_CODE_COLOR 0x1 #define EXT_CTRL_CODE_HIGHLIGHT 0x2 diff --git a/ld_script.txt b/ld_script.txt index da1f2b676..ecf5857f1 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -279,10 +279,10 @@ SECTIONS { src/wireless_communication_status_screen.o(.text); src/braille_text.o(.text); src/text_window.o(.text); - src/quest_log_8150454.o(.text); + src/quest_log_player.o(.text); asm/dodrio_berry_picking.o(.text); src/battle_controller_pokedude.o(.text); - src/quest_log_815A008.o(.text); + src/quest_log_objects.o(.text); src/dodrio_berry_picking_2.o(.text); asm/dodrio_berry_picking_2.o(.text); src/teachy_tv.o(.text); @@ -562,7 +562,7 @@ SECTIONS { src/wireless_communication_status_screen.o(.rodata); src/braille_text.o(.rodata); src/text_window_graphics.o(.rodata); - src/quest_log_8150454.o(.rodata); + src/quest_log_player.o(.rodata); data/berry_powder.o(.rodata); src/dodrio_berry_picking.o(.rodata); src/battle_controller_pokedude.o(.rodata); diff --git a/src/battle_main.c b/src/battle_main.c index d307d4f55..9f3477659 100644 --- a/src/battle_main.c +++ b/src/battle_main.c @@ -1826,7 +1826,7 @@ static void sub_8011BB0(void) if (!gPaletteFade.active) { SetMainCallback2(gMain.savedCallback); - sub_812C224(); + TrySetQuestLogLinkBattleEvent(); FreeMonSpritesGfx(); FreeBattleSpritesData(); FreeBattleResources(); @@ -3782,7 +3782,7 @@ static void HandleEndTurn_FinishBattle(void) } } } - sub_812BFDC(); + TrySetQuestLogBattleEvent(); if (gBattleTypeFlags & BATTLE_TYPE_TRAINER) sub_810CB90(); BeginFastPaletteFade(3); diff --git a/src/battle_message.c b/src/battle_message.c index 2513aaff6..568682031 100644 --- a/src/battle_message.c +++ b/src/battle_message.c @@ -2027,7 +2027,7 @@ u32 BattleStringExpandPlaceholders(const u8 *src, u8 *dst) if (gTrainers[gTrainerBattleOpponent_A].trainerClass == CLASS_RIVAL || gTrainers[gTrainerBattleOpponent_A].trainerClass == CLASS_RIVAL_2 || gTrainers[gTrainerBattleOpponent_A].trainerClass == CLASS_CHAMPION_2) - toCpy = GetExpandedPlaceholder(6); + toCpy = GetExpandedPlaceholder(PLACEHOLDER_ID_RIVAL); else toCpy = gTrainers[gTrainerBattleOpponent_A].trainerName; } diff --git a/src/battle_setup.c b/src/battle_setup.c index 056fe9273..994ed858a 100644 --- a/src/battle_setup.c +++ b/src/battle_setup.c @@ -997,8 +997,8 @@ void PlayTrainerEncounterMusic(void) { u16 music; - if (gUnknown_203ADFA != 2 - && gUnknown_203ADFA != 3 + if (gQuestLogState != 2 + && gQuestLogState != 3 && sTrainerBattleMode != TRAINER_BATTLE_CONTINUE_SCRIPT_NO_MUSIC && sTrainerBattleMode != TRAINER_BATTLE_CONTINUE_SCRIPT_DOUBLE_NO_MUSIC) { diff --git a/src/data/party_menu.h b/src/data/party_menu.h index fa74d1ad8..2ada2b5f4 100644 --- a/src/data/party_menu.h +++ b/src/data/party_menu.h @@ -1094,23 +1094,6 @@ enum MENU_FIELD_MOVES, }; -enum -{ - FIELD_MOVE_FLASH, - FIELD_MOVE_CUT, - FIELD_MOVE_FLY, - FIELD_MOVE_STRENGTH, - FIELD_MOVE_SURF, - FIELD_MOVE_ROCK_SMASH, - FIELD_MOVE_WATERFALL, - FIELD_MOVE_TELEPORT, - FIELD_MOVE_DIG, - FIELD_MOVE_MILK_DRINK, - FIELD_MOVE_SOFT_BOILED, - FIELD_MOVE_SWEET_SCENT, - FIELD_MOVE_END, -}; - static struct { const u8 *text; diff --git a/src/data/trainers.h b/src/data/trainers.h index 46c4ef210..4cb0b8443 100644 --- a/src/data/trainers.h +++ b/src/data/trainers.h @@ -1,3 +1,5 @@ +// TODO: Use NELEMS/ARRAY_COUNT in .partySize, name trainer parties + const struct Trainer gTrainers[] = { [TRAINER_NONE] = { .partyFlags = 0, diff --git a/src/field_specials.c b/src/field_specials.c index 5ecaffa96..5f44a090d 100644 --- a/src/field_specials.c +++ b/src/field_specials.c @@ -1766,9 +1766,9 @@ u8 Special_GetMartClerkObjectId(void) return 1; } -void sub_80CC524(void) +void SetUsedPkmnCenterQuestLogEvent(void) { - sub_8113550(11, NULL); + SetQuestLogEvent(QL_EVENT_USED_PKMN_CENTER, NULL); } static const struct { @@ -1868,7 +1868,7 @@ void sub_80CC59C(void) sp0.unk1 = r5; else sp0.unk1 = r5 + 1; - sub_8113550(35, (void *)&sp0); + SetQuestLogEvent(QL_EVENT_DEPARTED, (void *)&sp0); FlagClear(FLAG_0x808); return; } @@ -1882,7 +1882,7 @@ void sub_80CC59C(void) sp0.unk1 = r5; else sp0.unk1 = r5 + 1; - sub_8113550(35, (void *)&sp0); + SetQuestLogEvent(QL_EVENT_DEPARTED, (void *)&sp0); FlagClear(FLAG_0x808); return; } @@ -1903,7 +1903,7 @@ void sub_80CC59C(void) if (x != 67 || y != 15) sp0.unk1++; } - sub_8113550(35, (void *)&sp0); + SetQuestLogEvent(QL_EVENT_DEPARTED, (void *)&sp0); FlagClear(FLAG_0x808); if (r5 == 35) { @@ -2447,7 +2447,7 @@ void Special_BrailleCursorToggle(void) // 8005 = y // 8006 = action (0 = create, 1 = delete) u16 x; - if (gUnknown_203ADFA != 2) + if (gQuestLogState != 2) { x = gSpecialVar_0x8004 + 27; if (gSpecialVar_0x8006 == 0) diff --git a/src/field_tasks.c b/src/field_tasks.c index 67717c567..c64fb1924 100644 --- a/src/field_tasks.c +++ b/src/field_tasks.c @@ -57,7 +57,7 @@ static void Task_RunTimeBasedEvents(u8 taskId) if (!ScriptContext2_IsEnabled()) { - if (gUnknown_203ADFA != 2 && gUnknown_203ADFA != 3) + if (gQuestLogState != 2 && gQuestLogState != 3) { sub_8056078(&data[1], &data[2]); } diff --git a/src/help_system_812B1E0.c b/src/help_system_812B1E0.c index 1f3acdb2d..df892152a 100644 --- a/src/help_system_812B1E0.c +++ b/src/help_system_812B1E0.c @@ -1012,7 +1012,7 @@ void HelpSystem_Disable(void) void HelpSystem_Enable(void) { - if (gUnknown_203ADFA != 2 && gUnknown_203ADFA != 3) + if (gQuestLogState != 2 && gQuestLogState != 3) { gHelpSystemEnabled = TRUE; sub_812B4B8(); diff --git a/src/item.c b/src/item.c index e16d5055c..d1f732b4d 100644 --- a/src/item.c +++ b/src/item.c @@ -564,13 +564,15 @@ u16 BagGetQuantityByItemId(u16 itemId) return 0; } -void sub_809A824(u16 itemId) +void TrySetObtainedItemQuestLogEvent(u16 itemId) { struct QuestLogStruct_809A824 { u16 itemId; u8 mapSectionId; } * ptr; + + // Only some key items trigger this event if ( itemId == ITEM_OAKS_PARCEL @@ -600,7 +602,7 @@ void sub_809A824(u16 itemId) ptr = malloc(sizeof(*ptr)); ptr->itemId = itemId; ptr->mapSectionId = gMapHeader.regionMapSectionId; - sub_8113550(40, (void *)ptr); + SetQuestLogEvent(QL_EVENT_OBTAINED_ITEM, (void *)ptr); free(ptr); } } diff --git a/src/item_pc.c b/src/item_pc.c index 3e0c50b60..217acc829 100644 --- a/src/item_pc.c +++ b/src/item_pc.c @@ -27,6 +27,7 @@ #include "task.h" #include "text_window.h" #include "constants/items.h" +#include "constants/quest_log.h" #include "constants/songs.h" struct ItemPcResources @@ -901,7 +902,7 @@ static void ItemPc_DoWithdraw(u8 taskId) if (AddBagItem(itemId, data[8]) == TRUE) { - ItemUse_SetQuestLogEvent(29, NULL, itemId, 0xFFFF); + ItemUse_SetQuestLogEvent(QL_EVENT_WITHDREW_ITEM_PC, NULL, itemId, 0xFFFF); CopyItemName(itemId, gStringVar1); ConvertIntToDecimalStringN(gStringVar2, data[8], STR_CONV_MODE_LEFT_ALIGN, 3); StringExpandPlaceholders(gStringVar4, gText_WithdrewQuantItem); diff --git a/src/item_use.c b/src/item_use.c index 46bd066f9..d5db22ca1 100644 --- a/src/item_use.c +++ b/src/item_use.c @@ -343,7 +343,7 @@ void FieldUseFunc_CoinCase(u8 taskId) { ConvertIntToDecimalStringN(gStringVar1, GetCoins(), STR_CONV_MODE_LEFT_ALIGN, 4); StringExpandPlaceholders(gStringVar4, gUnknown_8416537); - ItemUse_SetQuestLogEvent(4, NULL, gSpecialVar_ItemId, 0xFFFF); + ItemUse_SetQuestLogEvent(QL_EVENT_USED_ITEM, NULL, gSpecialVar_ItemId, 0xFFFF); if (gTasks[taskId].data[3] == 0) DisplayItemMessageInBag(taskId, 2, gStringVar4, sub_810A1F8); else @@ -354,7 +354,7 @@ void FieldUseFunc_PowderJar(u8 taskId) { ConvertIntToDecimalStringN(gStringVar1, GetBerryPowder(), STR_CONV_MODE_LEFT_ALIGN, 5); StringExpandPlaceholders(gStringVar4, gUnknown_8416644); - ItemUse_SetQuestLogEvent(4, NULL, gSpecialVar_ItemId, 0xFFFF); + ItemUse_SetQuestLogEvent(QL_EVENT_USED_ITEM, NULL, gSpecialVar_ItemId, 0xFFFF); if (gTasks[taskId].data[3] == 0) DisplayItemMessageInBag(taskId, 2, gStringVar4, sub_810A1F8); else @@ -374,7 +374,7 @@ void FieldUseFunc_PokeFlute(u8 taskId) if (wokeSomeoneUp) { - ItemUse_SetQuestLogEvent(4, NULL, gSpecialVar_ItemId, 0xFFFF); + ItemUse_SetQuestLogEvent(QL_EVENT_USED_ITEM, NULL, gSpecialVar_ItemId, 0xFFFF); if (gTasks[taskId].data[3] == 0) DisplayItemMessageInBag(taskId, 2, gUnknown_8416690, sub_80A1648); else @@ -523,7 +523,7 @@ static void InitBerryPouchFromBattle(void) void FieldUseFunc_TeachyTv(u8 taskId) { - ItemUse_SetQuestLogEvent(4, NULL, gSpecialVar_ItemId, 0xFFFF); + ItemUse_SetQuestLogEvent(QL_EVENT_USED_ITEM, NULL, gSpecialVar_ItemId, 0xFFFF); if (gTasks[taskId].data[3] == 0) { ItemMenu_SetExitCallback(InitTeachyTvFromBag); @@ -569,7 +569,7 @@ static void sub_80A19E8(u8 taskId) { if (!IsSEPlaying()) { - ItemUse_SetQuestLogEvent(4, NULL, gSpecialVar_ItemId, 0xFFFF); + ItemUse_SetQuestLogEvent(QL_EVENT_USED_ITEM, NULL, gSpecialVar_ItemId, 0xFFFF); VarSet(VAR_REPEL_STEP_COUNT, ItemId_GetHoldEffectParam(gSpecialVar_ItemId)); sub_80A1A44(); DisplayItemMessageInBag(taskId, 2, gStringVar4, sub_810A1F8); @@ -587,7 +587,7 @@ static void sub_80A1A44(void) void FieldUseFunc_BlackFlute(u8 taskId) { - ItemUse_SetQuestLogEvent(4, NULL, gSpecialVar_ItemId, 0xFFFF); + ItemUse_SetQuestLogEvent(QL_EVENT_USED_ITEM, NULL, gSpecialVar_ItemId, 0xFFFF); if (gSpecialVar_ItemId == ITEM_WHITE_FLUTE) { FlagSet(FLAG_SYS_WHITE_FLUTE_ACTIVE); @@ -629,7 +629,7 @@ void ItemUseOutOfBattle_EscapeRope(u8 taskId) { if (CanUseEscapeRopeOnCurrMap() == TRUE) { - ItemUse_SetQuestLogEvent(4, NULL, gSpecialVar_ItemId, gMapHeader.regionMapSectionId); + ItemUse_SetQuestLogEvent(QL_EVENT_USED_ITEM, NULL, gSpecialVar_ItemId, gMapHeader.regionMapSectionId); sItemUseOnFieldCB = sub_80A1C08; sub_80A103C(taskId); } @@ -685,7 +685,7 @@ static void sub_80A1CC0(u8 taskId) void FieldUseFunc_FameChecker(u8 taskId) { - ItemUse_SetQuestLogEvent(4, NULL, gSpecialVar_ItemId, 0xFFFF); + ItemUse_SetQuestLogEvent(QL_EVENT_USED_ITEM, NULL, gSpecialVar_ItemId, 0xFFFF); if (gTasks[taskId].data[3] == 0) { ItemMenu_SetExitCallback(sub_80A1D58); @@ -832,7 +832,7 @@ void BattleUseFunc_PokeDoll(u8 taskId) if (!(gBattleTypeFlags & BATTLE_TYPE_TRAINER)) { sub_80A1A44(); - ItemUse_SetQuestLogEvent(4, 0, gSpecialVar_ItemId, 0xFFFF); + ItemUse_SetQuestLogEvent(QL_EVENT_USED_ITEM, 0, gSpecialVar_ItemId, 0xFFFF); DisplayItemMessageInBag(taskId, 2, gStringVar4, ItemMenu_StartFadeToExitCallback); } else @@ -935,6 +935,6 @@ void ItemUse_SetQuestLogEvent(u8 eventId, struct Pokemon * pokemon, u16 itemId, questLog->species = GetMonData(pokemon, MON_DATA_SPECIES2); else questLog->species = 0xFFFF; - sub_8113550(eventId, (void *)questLog); + SetQuestLogEvent(eventId, (void *)questLog); Free(questLog); } diff --git a/src/link.c b/src/link.c index 04313bade..dfb21f126 100644 --- a/src/link.c +++ b/src/link.c @@ -229,7 +229,7 @@ static const u8 sLinkErrorTextColor[] = { 0x00, 0x01, 0x02 }; bool8 IsWirelessAdapterConnected(void) { - if (gUnknown_203ADFA == 2 || gUnknown_203ADFA == 3) + if (gQuestLogState == 2 || gQuestLogState == 3) return FALSE; sub_800B1F4(); diff --git a/src/link_rfu_2.c b/src/link_rfu_2.c index bda154544..41fe72e20 100644 --- a/src/link_rfu_2.c +++ b/src/link_rfu_2.c @@ -495,7 +495,7 @@ void sub_80F8DC0(void) { u8 i; - if (gUnknown_203ADFA == 2 || gUnknown_203ADFA == 3) + if (gQuestLogState == 2 || gQuestLogState == 3) return; sub_80FD52C(); @@ -534,7 +534,7 @@ void sub_80F8DC0(void) static void sub_80F8E74(void) { - if (gUnknown_203ADFA == 2 || gUnknown_203ADFA == 3) + if (gQuestLogState == 2 || gQuestLogState == 3) return; Rfu.unk_67 = CreateTask(sub_80F8738, 1); } @@ -560,7 +560,7 @@ static bool32 sub_80F8ECC(void) static void sub_80F8F10(void) { - if (gUnknown_203ADFA == 2 || gUnknown_203ADFA == 3) + if (gQuestLogState == 2 || gQuestLogState == 3) return; Rfu.unk_67 = CreateTask(sub_80F893C, 1); } @@ -2460,7 +2460,7 @@ void sub_80FBBD8(void) void sub_80FBC00(void) { - if (gUnknown_203ADFA == 2 || gUnknown_203ADFA == 3) + if (gQuestLogState == 2 || gQuestLogState == 3) return; Rfu.unk_0c = 2; sub_80FAF1C(); diff --git a/src/map_name_popup.c b/src/map_name_popup.c index fe15cc129..10e549cbd 100644 --- a/src/map_name_popup.c +++ b/src/map_name_popup.c @@ -21,7 +21,7 @@ static u8 *MapNamePopupAppendFloorNum(u8 *dest, s8 flags); void CreateMapNamePopupIfNotAlreadyRunning(bool32 palIntoFadedBuffer) { u8 taskId; - if (FlagGet(FLAG_SPECIAL_FLAG_0x4000) != TRUE && !(gUnknown_203ADFA == 2 || gUnknown_203ADFA == 3)) + if (FlagGet(FLAG_SPECIAL_FLAG_0x4000) != TRUE && !(gQuestLogState == 2 || gQuestLogState == 3)) { taskId = FindTaskIdByFunc(Task_MapNamePopup); if (taskId == 0xFF) diff --git a/src/map_preview_screen.c b/src/map_preview_screen.c index c5b41a7c1..bb748ae91 100644 --- a/src/map_preview_screen.c +++ b/src/map_preview_screen.c @@ -366,7 +366,7 @@ bool8 sub_80F8110(u8 mapsec, u8 forceFirstTime) bool8 sub_80F8154(u8 mapsec, u8 forceFirstTime) { - if (gUnknown_203ADFA == 2) + if (gQuestLogState == 2) { return FALSE; } diff --git a/src/new_game.c b/src/new_game.c index 0d71a5652..471c49e67 100644 --- a/src/new_game.c +++ b/src/new_game.c @@ -101,7 +101,7 @@ void ResetMenuAndMonGlobals(void) sub_81089BC(); ResetTMCaseCursorPos(); BerryPouch_CursorResetToTop(); - sub_811089C(); + ResetQuestLog(); SeedWildEncounterRng(Random()); ResetSpecialVars(); } @@ -142,7 +142,7 @@ void NewGameInitData(void) NewGameInitPCItems(); sub_809C794(); InitEasyChatPhrases(); - sub_8113044(); + ResetTrainerFanClub(); copy_strings_to_sav1(); ResetMiniGamesResults(); sub_8143D24(); diff --git a/src/new_menu_helpers.c b/src/new_menu_helpers.c index d2421ed9f..39340ca55 100644 --- a/src/new_menu_helpers.c +++ b/src/new_menu_helpers.c @@ -459,7 +459,7 @@ void AddTextPrinterWithCustomSpeedForMessage(bool8 allowSkippingDelayWithButtonP void LoadStdWindowFrameGfx(void) { - if (gUnknown_203ADFA == 2) + if (gQuestLogState == 2) { gTextFlags.autoScroll = 1; TextWindow_LoadTilesStdFrame1(0, DLG_WINDOW_BASE_TILE_NUM); @@ -497,7 +497,7 @@ void ClearDialogWindowAndFrame(u8 windowId, bool8 copyToVram) ClearWindowTilemap(windowId); if (copyToVram == TRUE) CopyWindowToVram(windowId, 3); - if (gUnknown_203ADFA == 2) + if (gQuestLogState == 2) sub_8111134(); } @@ -529,7 +529,7 @@ static void WindowFunc_DrawStandardFrame(u8 bg, u8 tilemapLeft, u8 tilemapTop, u static void WindowFunc_DrawDialogueFrame(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 paletteNum) { - if (!IsMsgSignPost() || gUnknown_203ADFA == 2) + if (!IsMsgSignPost() || gQuestLogState == 2) { FillBgTilemapBufferRect(bg, DLG_WINDOW_BASE_TILE_NUM + 0, tilemapLeft - 2, tilemapTop - 1, 1, 1, DLG_WINDOW_PALETTE_NUM); FillBgTilemapBufferRect(bg, DLG_WINDOW_BASE_TILE_NUM + 1, tilemapLeft - 1, tilemapTop - 1, 1, 1, DLG_WINDOW_PALETTE_NUM); @@ -613,7 +613,7 @@ void SetStdWindowBorderStyle(u8 windowId, bool8 copyToVram) void sub_80F7768(u8 windowId, bool8 copyToVram) { - if (gUnknown_203ADFA == 2) + if (gQuestLogState == 2) { gTextFlags.autoScroll = 1; TextWindow_LoadTilesStdFrame1(0, DLG_WINDOW_BASE_TILE_NUM); diff --git a/src/party_menu.c b/src/party_menu.c index 7022852d6..d12a17e6c 100644 --- a/src/party_menu.c +++ b/src/party_menu.c @@ -75,6 +75,7 @@ #include "constants/maps.h" #include "constants/moves.h" #include "constants/pokemon.h" +#include "constants/quest_log.h" #include "constants/songs.h" #include "constants/species.h" #include "constants/vars.h" @@ -248,7 +249,7 @@ static void UpdatePartySelectionDoubleLayout(s8 *slotPtr, s8 movementDir); static s8 GetNewSlotDoubleLayout(s8 slotId, s8 movementDir); static void Task_PrintAndWaitForText(u8 taskId); static void PartyMenuPrintText(const u8 *text); -static void sub_8124B60(struct Pokemon *mon, u16 item, u16 item2); +static void SetSwappedHeldItemQuestLogEvent(struct Pokemon *mon, u16 item, u16 item2); static bool16 IsMonAllowedInPokemonJump(struct Pokemon *mon); static bool16 IsMonAllowedInDodrioBerryPicking(struct Pokemon *mon); static void Task_CancelParticipationYesNo(u8 taskId); @@ -286,7 +287,6 @@ static void Task_HandleSwitchItemsYesNoInput(u8 taskId); static void Task_SwitchItemsYesNo(u8 taskId); static void Task_WriteMailToGiveMonAfterText(u8 taskId); static void CB2_ReturnToPartyMenuFromWritingMail(void); -static void CB2_ReturnToPartyMenuFromWritingMail(void); static void Task_DisplayGaveMailFromPartyMessage(u8 taskId); static void CB2_ReadHeldMail(void); static void CB2_ReturnToPartyMenuFromReadingMail(void); @@ -382,8 +382,8 @@ static void sub_8120FB0(void); static void sub_8122084(u8 windowId, const u8 *str); static u8 sub_81220D4(void); static void sub_8122110(u8 windowId); -static void sub_812358C(void); -static void sub_8124BB0(struct Pokemon *mon, u8 fieldMove); +static void SetSwitchedPartyOrderQuestLogEvent(void); +static void SetUsedFieldMoveQuestLogEvent(struct Pokemon *mon, u8 fieldMove); static void sub_8124DE0(void); static void sub_8124E48(void); static void sub_812580C(u8 taskId); @@ -1603,14 +1603,14 @@ static void Task_ReturnToChooseMonAfterText(u8 taskId) } } -static void DisplayGaveHeldItemMessage(struct Pokemon *mon, u16 item, bool8 keepOpen, u8 a4) +static void DisplayGaveHeldItemMessage(struct Pokemon *mon, u16 item, bool8 keepOpen, bool8 fromBagMenu) { - if (!a4) - ItemUse_SetQuestLogEvent(5, mon, item, 0xFFFF); + if (!fromBagMenu) // Used Give option from party menu + ItemUse_SetQuestLogEvent(QL_EVENT_GAVE_HELD_ITEM, mon, item, 0xFFFF); else if (gPartyMenu.action == PARTY_ACTION_GIVE_PC_ITEM) - ItemUse_SetQuestLogEvent(7, mon, item, 0xFFFF); + ItemUse_SetQuestLogEvent(QL_EVENT_GAVE_HELD_ITEM_PC, mon, item, 0xFFFF); else - ItemUse_SetQuestLogEvent(6, mon, item, 0xFFFF); + ItemUse_SetQuestLogEvent(QL_EVENT_GAVE_HELD_ITEM_BAG, mon, item, 0xFFFF); GetMonNickname(mon, gStringVar1); CopyItemName(item, gStringVar2); StringExpandPlaceholders(gStringVar4, gText_PkmnWasGivenItem); @@ -1620,7 +1620,7 @@ static void DisplayGaveHeldItemMessage(struct Pokemon *mon, u16 item, bool8 keep static void DisplayTookHeldItemMessage(struct Pokemon *mon, u16 item, bool8 keepOpen) { - ItemUse_SetQuestLogEvent(8, mon, item, 0xFFFF); + ItemUse_SetQuestLogEvent(QL_EVENT_TOOK_HELD_ITEM, mon, item, 0xFFFF); GetMonNickname(mon, gStringVar1); CopyItemName(item, gStringVar2); StringExpandPlaceholders(gStringVar4, gText_ReceivedItemFromPkmn); @@ -1639,7 +1639,7 @@ static void DisplayAlreadyHoldingItemSwitchMessage(struct Pokemon *mon, u16 item static void DisplaySwitchedHeldItemMessage(u16 item, u16 item2, bool8 keepOpen) { - sub_8124B60(&gPlayerParty[gPartyMenu.slotId], item2, item); + SetSwappedHeldItemQuestLogEvent(&gPlayerParty[gPartyMenu.slotId], item2, item); CopyItemName(item, gStringVar1); CopyItemName(item2, gStringVar2); StringExpandPlaceholders(gStringVar4, gText_SwitchedPkmnItem); @@ -3180,7 +3180,7 @@ static void SwitchSelectedMons(u8 taskId) else { // Initialize switching party mons slide animation - sub_812358C(); + SetSwitchedPartyOrderQuestLogEvent(); windowIds[0] = sPartyMenuBoxes[gPartyMenu.slotId].windowId; tSlot1Left = GetWindowAttribute(windowIds[0], WINDOW_TILEMAP_LEFT); tSlot1Top = GetWindowAttribute(windowIds[0], WINDOW_TILEMAP_TOP); @@ -3383,13 +3383,13 @@ static void SwitchPartyMon(void) SwitchMenuBoxSprites(&menuBoxes[0]->statusSpriteId, &menuBoxes[1]->statusSpriteId); } -static void sub_812358C(void) +static void SetSwitchedPartyOrderQuestLogEvent(void) { u16 *buffer = Alloc(2 * sizeof(u16)); buffer[0] = GetMonData(&gPlayerParty[gPartyMenu.slotId], MON_DATA_SPECIES2); buffer[1] = GetMonData(&gPlayerParty[gPartyMenu.slotId2], MON_DATA_SPECIES2); - sub_8113550(3, buffer); + SetQuestLogEvent(QL_EVENT_SWITCHED_PARTY_ORDER, buffer); Free(buffer); } @@ -3490,7 +3490,7 @@ static void Task_GiveHoldItem(u8 taskId) if (!gPaletteFade.active) { item = gSpecialVar_ItemId; - DisplayGaveHeldItemMessage(&gPlayerParty[gPartyMenu.slotId], item, FALSE, 0); + DisplayGaveHeldItemMessage(&gPlayerParty[gPartyMenu.slotId], item, FALSE, FALSE); GiveItemToMon(&gPlayerParty[gPartyMenu.slotId], item); RemoveBagItem(item, 1); gTasks[taskId].func = Task_UpdateHeldItemSprite; @@ -3598,7 +3598,7 @@ static void Task_DisplayGaveMailFromPartyMessage(u8 taskId) if (!gPaletteFade.active) { if (sPartyMenuItemId == ITEM_NONE) - DisplayGaveHeldItemMessage(&gPlayerParty[gPartyMenu.slotId], gSpecialVar_ItemId, FALSE, 0); + DisplayGaveHeldItemMessage(&gPlayerParty[gPartyMenu.slotId], gSpecialVar_ItemId, FALSE, FALSE); else DisplaySwitchedHeldItemMessage(gSpecialVar_ItemId, sPartyMenuItemId, FALSE); gTasks[taskId].func = Task_UpdateHeldItemSprite; @@ -3986,7 +3986,7 @@ static void CursorCB_FieldMove(u8 taskId) break; default: gPartyMenu.exitCallback = CB2_ReturnToField; - sub_8124BB0(&gPlayerParty[GetCursorSelectionMonId()], fieldMove); + SetUsedFieldMoveQuestLogEvent(&gPlayerParty[GetCursorSelectionMonId()], fieldMove); Task_ClosePartyMenu(taskId); break; } @@ -4032,7 +4032,7 @@ static void Task_HandleFieldMoveExitAreaYesNoInput(u8 taskId) { case 0: gPartyMenu.exitCallback = CB2_ReturnToField; - sub_8124BB0(&gPlayerParty[GetCursorSelectionMonId()], sPartyMenuInternal->data[0]); + SetUsedFieldMoveQuestLogEvent(&gPlayerParty[GetCursorSelectionMonId()], sPartyMenuInternal->data[0]); Task_ClosePartyMenu(taskId); break; case MENU_B_PRESSED: @@ -4159,7 +4159,7 @@ static bool8 SetUpFieldMove_Waterfall(void) return FALSE; } -static void sub_8124B60(struct Pokemon *mon, u16 item, u16 item2) +static void SetSwappedHeldItemQuestLogEvent(struct Pokemon *mon, u16 item, u16 item2) { u16 *ptr = Alloc(4 * sizeof(u16)); @@ -4167,9 +4167,9 @@ static void sub_8124B60(struct Pokemon *mon, u16 item, u16 item2) ptr[0] = item; ptr[1] = item2; if (gPartyMenu.action == PARTY_ACTION_GIVE_PC_ITEM) - sub_8113550(10, ptr); + SetQuestLogEvent(QL_EVENT_SWAPPED_HELD_ITEM_PC, ptr); else - sub_8113550(9, ptr); + SetQuestLogEvent(QL_EVENT_SWAPPED_HELD_ITEM, ptr); Free(ptr); } @@ -4180,7 +4180,7 @@ struct FieldMoveWarpParams u8 regionMapSectionId; }; -static void sub_8124BB0(struct Pokemon *mon, u8 fieldMove) +static void SetUsedFieldMoveQuestLogEvent(struct Pokemon *mon, u8 fieldMove) { struct FieldMoveWarpParams *ptr = Alloc(sizeof(*ptr)); @@ -4197,11 +4197,11 @@ static void sub_8124BB0(struct Pokemon *mon, u8 fieldMove) default: ptr->regionMapSectionId = 0xFF; } - sub_8113550(36, (u16 *)ptr); + SetQuestLogEvent(QL_EVENT_USED_FIELD_MOVE, (u16 *)ptr); Free(ptr); } -void sub_8124C1C(const u8 *healLocCtrlData) +void SetUsedFlyQuestLogEvent(const u8 *healLocCtrlData) { const struct MapHeader *mapHeader; struct FieldMoveWarpParams *ptr2; @@ -4220,7 +4220,7 @@ void sub_8124C1C(const u8 *healLocCtrlData) ptr2->species = GetMonData(&gPlayerParty[GetCursorSelectionMonId()], MON_DATA_SPECIES2); ptr2->fieldMove = FIELD_MOVE_FLY; ptr2->regionMapSectionId = mapHeader->regionMapSectionId; - sub_8113550(36, (u16 *)ptr2); + SetQuestLogEvent(QL_EVENT_USED_FIELD_MOVE, (u16 *)ptr2); Free(ptr2); } @@ -4345,7 +4345,7 @@ static void sub_8124EFC(void) RemoveMonPPBonus(mon, moveIdx); SetMonMoveSlot(mon, ItemIdToBattleMoveId(gSpecialVar_ItemId), moveIdx); AdjustFriendship(mon, 4); - ItemUse_SetQuestLogEvent(4, mon, gSpecialVar_ItemId, move); + ItemUse_SetQuestLogEvent(QL_EVENT_USED_ITEM, mon, gSpecialVar_ItemId, move); if (gSpecialVar_ItemId <= ITEM_TM50) RemoveBagItem(gSpecialVar_ItemId, 1); SetMainCallback2(gPartyMenu.exitCallback); @@ -4498,7 +4498,7 @@ void ItemUseCB_Medicine(u8 taskId, TaskFunc func) } else { - ItemUse_SetQuestLogEvent(4, mon, item, 0xFFFF); + ItemUse_SetQuestLogEvent(QL_EVENT_USED_ITEM, mon, item, 0xFFFF); sub_8124DC0(taskId); gItemUseCB = ItemUseCB_MedicineStep; } @@ -4703,7 +4703,7 @@ static void sub_8125898(u8 taskId, UNUSED TaskFunc func) ExecuteTableBasedItemEffect_(gPartyMenu.slotId, gSpecialVar_ItemId, (u8)gPartyMenu.data1); gPartyMenuUseExitCallback = TRUE; - ItemUse_SetQuestLogEvent(4, mon, gSpecialVar_ItemId, 0xFFFF); + ItemUse_SetQuestLogEvent(QL_EVENT_USED_ITEM, mon, gSpecialVar_ItemId, 0xFFFF); PlaySE(SE_KAIFUKU); RemoveBagItem(gSpecialVar_ItemId, 1); move = GetMonData(mon, gPartyMenu.data1 + MON_DATA_MOVE1); @@ -4734,7 +4734,7 @@ static void TryUsePPItem(u8 taskId) { gPartyMenuUseExitCallback = TRUE; mon = &gPlayerParty[ptr->slotId]; - ItemUse_SetQuestLogEvent(4, mon, item, 0xFFFF); + ItemUse_SetQuestLogEvent(QL_EVENT_USED_ITEM, mon, item, 0xFFFF); PlaySE(SE_KAIFUKU); RemoveBagItem(item, 1); move = GetMonData(mon, MON_DATA_MOVE1 + *moveSlot); @@ -4821,7 +4821,7 @@ void ItemUseCB_TMHM(u8 taskId, UNUSED TaskFunc func) } if (GiveMoveToMon(mon, move[0]) != MON_HAS_MAX_MOVES) { - ItemUse_SetQuestLogEvent(4, mon, item, 0xFFFF); + ItemUse_SetQuestLogEvent(QL_EVENT_USED_ITEM, mon, item, 0xFFFF); sub_8124DC0(taskId); gItemUseCB = ItemUseCB_LearnedMove; } @@ -4962,7 +4962,7 @@ static void sub_8125F5C(u8 taskId) u8 moveIdx = GetMoveSlotToReplace(); u16 move = GetMonData(mon, moveIdx + MON_DATA_MOVE1); - ItemUse_SetQuestLogEvent(4, mon, gSpecialVar_ItemId, move); + ItemUse_SetQuestLogEvent(QL_EVENT_USED_ITEM, mon, gSpecialVar_ItemId, move); GetMonNickname(mon, gStringVar1); StringCopy(gStringVar2, gMoveNames[move]); RemoveMonPPBonus(mon, moveIdx); @@ -5090,7 +5090,7 @@ static void ItemUseCB_RareCandyStep(u8 taskId, UNUSED TaskFunc func) ExecuteTableBasedItemEffect_(gPartyMenu.slotId, gSpecialVar_ItemId, 0); BufferMonStatsToTaskData(mon, &ptr->data[NUM_STATS]); gPartyMenuUseExitCallback = TRUE; - ItemUse_SetQuestLogEvent(4, mon, gSpecialVar_ItemId, 0xFFFF); + ItemUse_SetQuestLogEvent(QL_EVENT_USED_ITEM, mon, gSpecialVar_ItemId, 0xFFFF); PlayFanfareByFanfareNum(0); UpdateMonDisplayInfoAfterRareCandy(gPartyMenu.slotId, mon); RemoveBagItem(gSpecialVar_ItemId, 1); @@ -5305,7 +5305,7 @@ static void Task_SacredAshLoop(u8 taskId) { gPartyMenuUseExitCallback = TRUE; if (gPartyMenu.menuType != PARTY_MENU_TYPE_IN_BATTLE) - ItemUse_SetQuestLogEvent(4, sSacredAshQuestLogMonBackup, gSpecialVar_ItemId, 0xFFFF); + ItemUse_SetQuestLogEvent(QL_EVENT_USED_ITEM, sSacredAshQuestLogMonBackup, gSpecialVar_ItemId, 0xFFFF); RemoveBagItem(gSpecialVar_ItemId, 1); } gTasks[taskId].func = Task_ClosePartyMenuAfterText; @@ -5354,7 +5354,7 @@ static void sub_8126BD4(void) { gCB2_AfterEvolution = gPartyMenu.exitCallback; ExecuteTableBasedItemEffect_(gPartyMenu.slotId, gSpecialVar_ItemId, 0); - ItemUse_SetQuestLogEvent(4, &gPlayerParty[gPartyMenu.slotId], gSpecialVar_ItemId, 0xFFFF); + ItemUse_SetQuestLogEvent(QL_EVENT_USED_ITEM, &gPlayerParty[gPartyMenu.slotId], gSpecialVar_ItemId, 0xFFFF); RemoveBagItem(gSpecialVar_ItemId, 1); } @@ -5531,7 +5531,7 @@ static void GiveItemToSelectedMon(u8 taskId) if (!gPaletteFade.active) { item = gPartyMenu.bagItem; - DisplayGaveHeldItemMessage(&gPlayerParty[gPartyMenu.slotId], item, FALSE, 1); + DisplayGaveHeldItemMessage(&gPlayerParty[gPartyMenu.slotId], item, FALSE, TRUE); GiveItemToMon(&gPlayerParty[gPartyMenu.slotId], item); RemoveItemToGiveFromBag(item); gTasks[taskId].func = Task_UpdateHeldItemSpriteAndClosePartyMenu; @@ -5586,7 +5586,7 @@ static void Task_DisplayGaveMailFromBagMessage(u8 taskId) if (sPartyMenuItemId != ITEM_NONE) DisplaySwitchedHeldItemMessage(gPartyMenu.bagItem, sPartyMenuItemId, FALSE); else - DisplayGaveHeldItemMessage(&gPlayerParty[gPartyMenu.slotId], gPartyMenu.bagItem, FALSE, 1); + DisplayGaveHeldItemMessage(&gPlayerParty[gPartyMenu.slotId], gPartyMenu.bagItem, FALSE, TRUE); gTasks[taskId].func = Task_UpdateHeldItemSpriteAndClosePartyMenu; } } diff --git a/src/quest_log.c b/src/quest_log.c index 4d94c78ad..38b3733ea 100644 --- a/src/quest_log.c +++ b/src/quest_log.c @@ -1,6 +1,4 @@ #include "global.h" -#include "constants/species.h" -#include "constants/items.h" #include "data.h" #include "malloc.h" #include "main.h" @@ -34,22 +32,33 @@ #include "pokemon_storage_system.h" #include "save.h" #include "link.h" -#include "quest_log_815A008.h" -#include "quest_log_8150454.h" +#include "quest_log_objects.h" +#include "quest_log_player.h" #include "quest_log.h" #include "new_menu_helpers.h" #include "strings.h" +#include "constants/event_objects.h" +#include "constants/maps.h" +#include "constants/party_menu.h" +#include "constants/quest_log.h" +#include "constants/trainer_classes.h" +#include "constants/species.h" +#include "constants/items.h" u8 gUnknown_3005E88; -struct Var4038Struct +struct TrainerFanClub { - u8 unk_0_0:7; - u8 unk_0_7:1; - u8 unk_1; + u8 timer:7; + u8 gotInitialFans:1; + u8 fanFlags; }; -#define VAR_0x4038_STRUCT ((struct Var4038Struct *)GetVarPointer(VAR_0x4038)) +#define TRAINER_FAN_CLUB ((struct TrainerFanClub *)GetVarPointer(VAR_FANCLUB_FAN_COUNTER)) + +#define GET_TRAINER_FAN_CLUB_FLAG(flag) (fanClub->fanFlags >> (flag) & 1) +#define SET_TRAINER_FAN_CLUB_FLAG(flag) (fanClub->fanFlags |= 1 << (flag)) +#define FLIP_TRAINER_FAN_CLUB_FLAG(flag)(fanClub->fanFlags ^= 1 << (flag)) struct UnkStruct_203AE94 { @@ -93,9 +102,9 @@ struct UnkStruct_203AE98 * gUnknown_3005E94; static struct UnkStruct_300201C * sFlagOrVarRecords; static u16 sNumFlagsOrVars; -static EWRAM_DATA u8 gUnknown_203ADF8 = 0; +static EWRAM_DATA u8 sCurrentSceneNum = 0; static EWRAM_DATA u8 sNumScenes = 0; -EWRAM_DATA u8 gUnknown_203ADFA = 0; +EWRAM_DATA u8 gQuestLogState = 0; static EWRAM_DATA u16 gUnknown_203ADFC = 0; static EWRAM_DATA u8 gUnknown_203ADFE[3] = {0}; static EWRAM_DATA u16 *gUnknown_203AE04 = NULL; @@ -116,7 +125,7 @@ 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 u8 gUnknown_203B04A = 0; -static EWRAM_DATA u8 gUnknown_203B04B = 0; +static EWRAM_DATA bool8 gUnknown_203B04B = 0; static void sub_8110A00(void); static void sub_8110A3C(void); @@ -137,47 +146,47 @@ static void sub_8111688(void); static void sub_811175C(u8, struct UnkStruct_203AE98 *); static void sub_81118F4(s8); static void QuestLog_AdvancePlayhead(void); -static void QuestLog_EndPlayback(void); +static void QuestLog_StartFinalScene(void); static void Task_RunPlaybackCB(u8); static void sub_8111AD8(void); static void sub_8111B80(void); static u8 sub_8111BD4(void); -static void sub_8111D10(void); +static void DrawQuestLogSceneDescription(void); static void sub_8111D90(u8); -static void sub_8111E20(void); +static void QuestLog_CloseTextWindow(void); static void QuestLog_SkipToEndOfPlayback(s8); static void QuestLog_WaitFadeAndCancelPlayback(void); static bool8 sub_8111F60(void); static void sub_8111F8C(u8); -static void sub_8111FCC(u8); -static void sub_8112044(u8); -static void sub_81120AC(u8); +static void Task_QuestLogScene_SavedGame(u8); +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 sub_8112940(u8, struct UnkStruct_203AE98 *, u16); static bool8 sub_8112CEC(void); static bool8 sub_8112D1C(void); -static void sub_8113078(struct Var4038Struct *); -static void sub_81130BC(struct Var4038Struct *); -static u8 sub_8113194(struct Var4038Struct *); -static u16 sub_81132A0(struct Var4038Struct *); -static void sub_81132E0(struct Var4038Struct *); -static bool16 sub_811337C(struct Var4038Struct *); -static void sub_8113390(struct Var4038Struct *); -static void sub_8113414(struct LinkBattleRecords *, u8, u8); -static void sub_81134CC(struct Var4038Struct *); -static bool8 sub_8113508(struct Var4038Struct * ); -static void sub_8113524(struct Var4038Struct *); -static bool8 sub_81136D4(void); +static void TryLoseFansFromPlayTimeAfterLinkBattle(struct TrainerFanClub *); +static void UpdateTrainerFanClubGameClear(struct TrainerFanClub *); +static u8 PlayerGainRandomTrainerFan(struct TrainerFanClub *); +static u16 GetNumFansOfPlayerInTrainerFanClub(struct TrainerFanClub *); +static void TryLoseFansFromPlayTime(struct TrainerFanClub *); +static bool16 IsFanClubMemberFanOfPlayer(struct TrainerFanClub *); +static void SetInitialFansOfPlayer(struct TrainerFanClub *); +static void BufferFanClubTrainerName(struct LinkBattleRecords *, u8, u8); +static void UpdateTrainerFansAfterLinkBattle(struct TrainerFanClub *); +static bool8 DidPlayerGetFirstFans(struct TrainerFanClub * ); +static void SetPlayerGotFirstFans(struct TrainerFanClub *); +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 sub_81138A0(u16, const u16 *); -static bool8 sub_8113954(u16, const u16 *); +static bool8 TrySetLinkQuestLogEvent(u16, const u16 *); +static bool8 TrySetTrainerBattleQuestLogEvent(u16, const u16 *); static void sub_8113A1C(u16); static void sub_811381C(void); -static bool8 sub_8113A44(u16, const u16 *); +static bool8 IsQuestLogEventWithSpecialEncounterSpecies(u16, const u16 *); static u16 *QuestLog_SkipCommand(u16 *, u16 **); static void sub_8113ABC(const u16 *); static bool8 sub_8113AE8(const u16 *); @@ -193,213 +202,212 @@ 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_8113F14(u16 *, const u16 *); -static const u16 *sub_8113F3C(const u16 *); -static u16 *sub_8113F80(u16 *, const u16 *); -static const u16 *sub_8113FBC(const u16 *); -static u16 *sub_8114174(u16 *, const u16 *); -static const u16 *sub_8114188(const u16 *); -static u16 *sub_81141D0(u16 *, const u16 *); -static const u16 *sub_81141E4(const u16 *); -static u16 *sub_811422C(u16 *, const u16 *); -static const u16 *sub_8114240(const u16 *); -static u16 *sub_8114288(u16 *, const u16 *); -static const u16 *sub_811429C(const u16 *); -static u16 *sub_8114310(u16 *, const u16 *); -static const u16 *sub_8114324(const u16 *); -static u16 *sub_8114380(u16 *, const u16 *); -static const u16 *sub_8114394(const u16 *); -static u16 *sub_81143F0(u16 *, const u16 *); -static const u16 *sub_811443C(const u16 *); -static u16 *sub_811445C(u16 *, const u16 *); -static const u16 *sub_811448C(const u16 *); -static u16 *sub_81144EC(u16 *, const u16 *); -static const u16 *sub_8114518(const u16 *); -static u16 *sub_8114578(u16 *, const u16 *); -static const u16 *sub_81145A4(const u16 *); -static u16 *sub_8114604(u16 *, const u16 *); -static const u16 *sub_811464C(const u16 *); -static u16 *sub_8114710(u16 *, const u16 *); -static const u16 *sub_8114724(const u16 *); -static u16 *sub_8114744(u16 *, const u16 *); -static const u16 *sub_8114758(const u16 *); -static u16 *sub_8114778(u16 *, const u16 *); -static const u16 *sub_81147A8(const u16 *); -static u16 *sub_8114808(u16 *, const u16 *); -static const u16 *sub_8114834(const u16 *); -static u16 *sub_811488C(u16 *, const u16 *); -static const u16 *sub_81148BC(const u16 *); -static u16 *sub_8114918(u16 *, const u16 *); -static const u16 *sub_8114944(const u16 *); -static u16 *sub_8114990(u16 *, const u16 *); -static const u16 *sub_81149D0(const u16 *); -static u16 *sub_8114A1C(u16 *, const u16 *); -static const u16 *sub_8114A4C(const u16 *); -static u16 *sub_8114AA0(u16 *, const u16 *); -static const u16 *sub_8114AC8(const u16 *); -static u16 *sub_8114B0C(u16 *, const u16 *); -static const u16 *sub_8114B34(const u16 *); -static u16 *sub_8114B78(u16 *, const u16 *); -static const u16 *sub_8114BA0(const u16 *); -static u16 *sub_8114BE4(u16 *, const u16 *); -static const u16 *sub_8114C0C(const u16 *); -static u16 *sub_8114C68(u16 *, const u16 *); -static const u16 *sub_8114C8C(const u16 *); -static u16 *sub_8114CC0(u16 *, const u16 *); -static const u16 *sub_8114CE4(const u16 *); -static u16 *sub_8114D4C(u16 *, const u16 *); -static const u16 *sub_8114D68(const u16 *); -static u16 *sub_8114DE8(u16 *, const u16 *); -static const u16 *sub_8114E68(const u16 *); -static bool8 sub_8114FBC(u16); -static u16 *sub_8114FF0(u16 *, const u16 *); -static const u16 *sub_811500C(const u16 *); -static u16 *sub_8115078(u16 *, const u16 *); -static const u16 *sub_81150CC(const u16 *); -static u16 *sub_81151C0(u16 *, const u16 *); -static const u16 *sub_81151DC(const u16 *); -static u16 *sub_8115280(u16 *, const u16 *); -static const u16 *sub_81152BC(const u16 *); +static u16 *BufferQuestLogData_SwitchedPartyOrder(u16 *, const u16 *); +static u16 *BufferQuestLogData_UsedItem(u16 *, const u16 *); +static u16 *BufferQuestLogData_GaveHeldItemFromPartyMenu(u16 *, const u16 *); +static u16 *BufferQuestLogData_GaveHeldItemFromBagMenu(u16 *, const u16 *); +static u16 *BufferQuestLogData_GaveHeldItemFromPC(u16 *, const u16 *); +static u16 *BufferQuestLogData_TookHeldItem(u16 *, const u16 *); +static u16 *BufferQuestLogData_SwappedHeldItem(u16 *, const u16 *); +static u16 *BufferQuestLogData_SwappedHeldItemFromPC(u16 *, const u16 *); +static u16 *BufferQuestLogData_UsedPkmnCenter(u16 *, const u16 *); +static u16 *BufferQuestLogData_LinkTraded(u16 *, const u16 *); +static u16 *BufferQuestLogData_LinkBattledSingle(u16 *, const u16 *); +static u16 *BufferQuestLogData_LinkBattledDouble(u16 *, const u16 *); +static u16 *BufferQuestLogData_LinkBattledMulti(u16 *, const u16 *); +static u16 *BufferQuestLogData_UsedUnionRoom(u16 *, const u16 *); +static u16 *BufferQuestLogData_UsedUnionRoomChat(u16 *, const u16 *); +static u16 *BufferQuestLogData_LinkTradedUnionRoom(u16 *, const u16 *); +static u16 *BufferQuestLogData_LinkBattledUnionRoom(u16 *, const u16 *); +static u16 *BufferQuestLogData_SwitchedMonsBetweenBoxes(u16 *, const u16 *); +static u16 *BufferQuestLogData_SwitchedMonsWithinBox(u16 *, const u16 *); +static u16 *BufferQuestLogData_SwitchedPartyMonForPCMon(u16 *, const u16 *); +static u16 *BufferQuestLogData_MovedMonBetweenBoxes(u16 *, const u16 *); +static u16 *BufferQuestLogData_MovedMonWithinBox(u16 *, const u16 *); +static u16 *BufferQuestLogData_WithdrewMonFromPC(u16 *, const u16 *); +static u16 *BufferQuestLogData_DepositedMonInPC(u16 *, const u16 *); +static u16 *BufferQuestLogData_SwitchedMultipleMons(u16 *, const u16 *); +static u16 *BufferQuestLogData_DepositedItemInPC(u16 *, const u16 *); +static u16 *BufferQuestLogData_WithdrewItemFromPC(u16 *, const u16 *); +static u16 *BufferQuestLogData_DefeatedGymLeader(u16 *, const u16 *); +static u16 *BufferQuestLogData_DefeatedWildMon(u16 *, const u16 *); +static u16 *BufferQuestLogData_DefeatedEliteFourMember(u16 *, const u16 *); +static u16 *BufferQuestLogData_DefeatedChampion(u16 *, const u16 *); +static u16 *BufferQuestLogData_DefeatedTrainer(u16 *, const u16 *); +static u16 *BufferQuestLogData_DepartedLocation(u16 *, const u16 *); +static u16 *BufferQuestLogData_UsedFieldMove(u16 *, const u16 *); +static u16 *BufferQuestLogData_BoughtItem(u16 *, const u16 *); +static u16 *BufferQuestLogData_SoldItem(u16 *, const u16 *); +static u16 *BufferQuestLogData_ObtainedItem(u16 *, const u16 *); +static u16 *BufferQuestLogData_ArrivedInLocation(u16 *, const u16 *); +static const u16 *BufferQuestLogText_SwitchedPartyOrder(const u16 *); +static const u16 *BufferQuestLogText_UsedItem(const u16 *); +static const u16 *BufferQuestLogText_GaveHeldItemFromPartyMenu(const u16 *); +static const u16 *BufferQuestLogText_GaveHeldItemFromBagMenu(const u16 *); +static const u16 *BufferQuestLogText_GaveHeldItemFromPC(const u16 *); +static const u16 *BufferQuestLogText_TookHeldItem(const u16 *); +static const u16 *BufferQuestLogText_SwappedHeldItem(const u16 *); +static const u16 *BufferQuestLogText_SwappedHeldItemFromPC(const u16 *); +static const u16 *BufferQuestLogText_UsedPkmnCenter(const u16 *); +static const u16 *BufferQuestLogText_LinkTraded(const u16 *); +static const u16 *BufferQuestLogText_LinkBattledSingle(const u16 *); +static const u16 *BufferQuestLogText_LinkBattledDouble(const u16 *); +static const u16 *BufferQuestLogText_LinkBattledMulti(const u16 *); +static const u16 *BufferQuestLogText_UsedUnionRoom(const u16 *); +static const u16 *BufferQuestLogText_UsedUnionRoomChat(const u16 *); +static const u16 *BufferQuestLogText_LinkTradedUnionRoom(const u16 *); +static const u16 *BufferQuestLogText_LinkBattledUnionRoom(const u16 *); +static const u16 *BufferQuestLogText_SwitchedMonsBetweenBoxes(const u16 *); +static const u16 *BufferQuestLogText_SwitchedMonsWithinBox(const u16 *); +static const u16 *BufferQuestLogText_SwitchedPartyMonForPCMon(const u16 *); +static const u16 *BufferQuestLogText_MovedMonBetweenBoxes(const u16 *); +static const u16 *BufferQuestLogText_MovedMonWithinBox(const u16 *); +static const u16 *BufferQuestLogText_WithdrewMonFromPC(const u16 *); +static const u16 *BufferQuestLogText_DepositedMonInPC(const u16 *); +static const u16 *BufferQuestLogText_SwitchedMultipleMons(const u16 *); +static const u16 *BufferQuestLogText_DepositedItemInPC(const u16 *); +static const u16 *BufferQuestLogText_WithdrewItemFromPC(const u16 *); +static const u16 *BufferQuestLogText_DefeatedGymLeader(const u16 *); +static const u16 *BufferQuestLogText_DefeatedWildMon(const u16 *); +static const u16 *BufferQuestLogText_DefeatedEliteFourMember(const u16 *); +static const u16 *BufferQuestLogText_DefeatedChampion(const u16 *); +static const u16 *BufferQuestLogText_DefeatedTrainer(const u16 *); +static const u16 *BufferQuestLogText_DepartedLocation(const u16 *); +static const u16 *BufferQuestLogText_UsedFieldMove(const u16 *); +static const u16 *BufferQuestLogText_BoughtItem(const u16 *); +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 u16 *sub_8115410(u16 *, const u16 *); -static const u16 *sub_8115460(const u16 *); -static u16 *sub_81154DC(u16 *, const u16 *); -static const u16 *sub_8115518(const u16 *); -static u16 *sub_81155A4(u16 *, const u16 *); -static const u16 *sub_81155E0(const u16 *); -static u16 *sub_81156D8(u16 *, const u16 *); -static const u16 *sub_8115700(const u16 *); -static u16 *sub_81157DC(u16 *, const u16 *); -static const u16 *sub_8115800(const u16 *); -void sub_8115834(u8 *); - -extern const u8 gUnknown_841A155[]; -extern const u8 gUnknown_841A16F[]; -extern const u8 gUnknown_841A193[]; -extern const u8 gUnknown_841A1CD[]; -extern const u8 gUnknown_841A1E7[]; -extern const u8 gUnknown_841A210[]; -extern const u8 gUnknown_841A220[]; -extern const u8 gUnknown_841A255[]; -extern const u8 gUnknown_841A277[]; -extern const u8 gUnknown_841A2B0[]; -extern const u8 gUnknown_841A2E1[]; -extern const u8 gUnknown_841A312[]; -extern const u8 gUnknown_841A349[]; -extern const u8 gUnknown_841A391[]; -extern const u8 gUnknown_841A3DA[]; -extern const u8 gUnknown_841A3FF[]; -extern const u8 gUnknown_841A422[]; -extern const u8 gUnknown_841A477[]; -extern const u8 gUnknown_841A4C6[]; -extern const u8 gUnknown_841A502[]; -extern const u8 gUnknown_841A506[]; -extern const u8 gUnknown_841A50B[]; -extern const u8 gUnknown_841A53A[]; -extern const u8 gUnknown_841A566[]; -extern const u8 gUnknown_841A59C[]; -extern const u8 gUnknown_841A5D9[]; -extern const u8 gUnknown_841A5FA[]; -extern const u8 gUnknown_841A60A[]; -extern const u8 gUnknown_841A632[]; -extern const u8 gUnknown_841A64F[]; -extern const u8 gUnknown_841A66E[]; -extern const u8 gUnknown_841A694[]; -extern const u8 gUnknown_841A6A5[]; -extern const u8 gUnknown_841A6E1[]; -extern const u8 gUnknown_841A732[]; -extern const u8 gUnknown_841A74E[]; -extern const u8 gUnknown_841A756[]; -extern const u8 gUnknown_841A762[]; -extern const u8 gUnknown_841A76A[]; -extern const u8 gUnknown_841A7B0[]; -extern const u8 gUnknown_841A7DD[]; -extern const u8 gUnknown_841A810[]; -extern const u8 gUnknown_841A858[]; -extern const u8 gUnknown_841A896[]; -extern const u8 gUnknown_841A8D4[]; -extern const u8 gUnknown_841A8DD[]; -extern const u8 gUnknown_841A8E0[]; -extern const u8 gUnknown_841A90C[]; -extern const u8 gUnknown_841A938[]; -extern const u8 gUnknown_841A965[]; -extern const u8 gUnknown_841A9A9[]; -extern const u8 gUnknown_841A9D4[]; -extern const u8 gUnknown_841AA01[]; -extern const u8 gUnknown_841AA2B[]; -extern const u8 gUnknown_841AA76[]; -extern const u8 gUnknown_841AAAA[]; -extern const u8 gUnknown_841AAEC[]; -extern const u8 gUnknown_841AB29[]; -extern const u8 gUnknown_841AB74[]; -extern const u8 gUnknown_841AB8E[]; -extern const u8 gUnknown_841ABAB[]; -extern const u8 gUnknown_841ABCD[]; -extern const u8 gUnknown_841ABF9[]; -extern const u8 gUnknown_841AC2A[]; -extern const u8 gUnknown_841AC51[]; -extern const u8 gUnknown_841AC93[]; -extern const u8 gUnknown_841ACBC[]; -extern const u8 gUnknown_841ACF9[]; -extern const u8 gUnknown_841AD1D[]; -extern const u8 gUnknown_841AD3C[]; -extern const u8 gUnknown_841AD69[]; -extern const u8 gUnknown_841AD9E[]; -extern const u8 gUnknown_841ADC8[]; -extern const u8 gUnknown_841ADFF[]; -extern const u8 gUnknown_841AE1E[]; -extern const u8 gUnknown_841AE48[]; -extern const u8 gUnknown_841AE8F[]; -extern const u8 gUnknown_841AEA7[]; -extern const u8 gUnknown_841AEDC[]; -extern const u8 gUnknown_841AF0C[]; -extern const u8 gUnknown_841AF3E[]; -extern const u8 gUnknown_841AF6D[]; -extern const u8 gUnknown_841AF98[]; -extern const u8 gUnknown_841AF9F[]; -extern const u8 gUnknown_841AFA6[]; -extern const u8 gUnknown_841AFD1[]; -extern const u8 gUnknown_841AFD6[]; -extern const u8 gUnknown_841B005[]; -extern const u8 gUnknown_841B03F[]; -extern const u8 gUnknown_841B064[]; -extern const u8 gUnknown_841B073[]; -extern const u8 gQuestLogString_Home[]; -extern const u8 gQuestLogString_OakResearchLab[]; -extern const u8 gQuestLogString_Gym[]; -extern const u8 gQuestLogString_PokemonLeagueGate[]; -extern const u8 gQuestLogString_ViridianForest[]; -extern const u8 gQuestLogString_PewterMuseumOfScience[]; -extern const u8 gQuestLogString_MtMoon[]; -extern const u8 gQuestLogString_BikeShop[]; -extern const u8 gQuestLogString_BillSHouse[]; -extern const u8 gQuestLogString_DayCare[]; -extern const u8 gQuestLogString_UndergroundPath[]; -extern const u8 gQuestLogString_PokemonFanClub[]; -extern const u8 gQuestLogString_SSAnne[]; -extern const u8 gQuestLogString_DiglettSCave[]; -extern const u8 gQuestLogString_RockTunnel[]; -extern const u8 gQuestLogString_PowerPlant[]; -extern const u8 gQuestLogString_PokemonTower[]; -extern const u8 gQuestLogString_VolunteerHouse[]; -extern const u8 gQuestLogString_NameRaterSHouse[]; -extern const u8 gQuestLogString_CeladonDeptStore[]; -extern const u8 gQuestLogString_CeladonMansion[]; -extern const u8 gQuestLogString_RocketGameCorner[]; -extern const u8 gQuestLogString_Restaurant[]; -extern const u8 gQuestLogString_RocketHideout[]; -extern const u8 gQuestLogString_SafariZone[]; -extern const u8 gQuestLogString_WardenSHome[]; -extern const u8 gQuestLogString_FightingDojo[]; -extern const u8 gQuestLogString_SilphCo[]; -extern const u8 gQuestLogString_SeafoamIslands[]; -extern const u8 gQuestLogString_PokemonMansion[]; -extern const u8 gQuestLogString_PokemonResearchLab[]; -extern const u8 gQuestLogString_VictoryRoad[]; -extern const u8 gQuestLogString_PokemonLeague[]; -extern const u8 gQuestLogString_CeruleanCave[]; -extern const u8 gUnknown_8418C1B[]; +static void BufferLinkPartnersName(u8 *); + +extern const u8 QuestLog_Text_PreviouslyOnYourQuest[]; +extern const u8 QuestLog_Text_SwitchMon1WithMon2[]; +extern const u8 QuestLog_Text_SwappedHeldItemsOnMon[]; +extern const u8 QuestLog_Text_TookHeldItemFromMon[]; +extern const u8 QuestLog_Text_UsedItemOnMonAtThisLocation[]; +extern const u8 QuestLog_Text_UsedTheItem[]; +extern const u8 QuestLog_Text_UsedTheKeyItem[]; +extern const u8 QuestLog_Text_MonLearnedMoveFromTM[]; +extern const u8 QuestLog_Text_MonReplacedMoveWithTM[]; +extern const u8 QuestLog_Text_MonsWereFullyRestoredAtCenter[]; +extern const u8 QuestLog_Text_PlayerBattledChampionRival[]; +extern const u8 QuestLog_Text_PlayerSentOutMon1RivalSentOutMon2[]; +extern const u8 QuestLog_Text_WonTheMatchAsAResult[]; +extern const u8 QuestLog_Text_StoredItemInPC[]; +extern const u8 QuestLog_Text_WithdrewItemFromPC[]; +extern const u8 QuestLog_Text_TradedMon1ForPersonsMon2[]; +extern const u8 QuestLog_Text_SingleBattleWithPersonResultedInOutcome[]; +extern const u8 QuestLog_Text_DoubleBattleWithPersonResultedInOutcome[]; +extern const u8 QuestLog_Text_MultiBattleWithPeopleResultedInOutcome[]; +extern const u8 QuestLog_Text_Win[]; +extern const u8 QuestLog_Text_Loss[]; +extern const u8 QuestLog_Text_MingledInUnionRoom[]; +extern const u8 QuestLog_Text_DepartedPlaceInTownForNextDestination[]; +extern const u8 QuestLog_Text_SwitchedMonsBetweenBoxes[]; +extern const u8 QuestLog_Text_MovedMonToNewBox[]; +extern const u8 QuestLog_Text_SwitchedMonsWithinBox[]; +extern const u8 QuestLog_Text_MovedMonWithinBox[]; +extern const u8 QuestLog_Text_SwitchedPartyMonForPCMon[]; +extern const u8 QuestLog_Text_WithdrewMonFromPC[]; +extern const u8 QuestLog_Text_DepositedMonInPC[]; +extern const u8 QuestLog_Text_SwitchedMultipleMons[]; +extern const u8 QuestLog_Text_ADifferentSpot[]; +extern const u8 QuestLog_Text_GaveMonHeldItemFromPC[]; +extern const u8 QuestLog_Text_SwappedHeldItemFromPC[]; +extern const u8 QuestLog_Text_ChattedWithManyTrainers[]; +extern const u8 QuestLog_Text_Handily[]; +extern const u8 QuestLog_Text_Tenaciously[]; +extern const u8 QuestLog_Text_Somehow[]; +extern const u8 QuestLog_Text_TradedMon1ForTrainersMon2[]; +extern const u8 QuestLog_Text_BattledTrainerEndedInOutcome[]; +extern const u8 QuestLog_Text_BoughtItem[]; +extern const u8 QuestLog_Text_BoughtItemsIncludingItem[]; +extern const u8 QuestLog_Text_SoldNumOfItem[]; +extern const u8 QuestLog_Text_SoldItemsIncludingItem[]; +extern const u8 QuestLog_Text_JustOne[]; +extern const u8 QuestLog_Text_Num[]; +extern const u8 QuestLog_Text_UsedSoftboiled[]; +extern const u8 QuestLog_Text_UsedMilkDrink[]; +extern const u8 QuestLog_Text_MonLearnedMoveFromHM[]; +extern const u8 QuestLog_Text_MonReplacedMoveWithHM[]; +extern const u8 QuestLog_Text_DefeatedWildMon[]; +extern const u8 QuestLog_Text_DefeatedWildMons[]; +extern const u8 QuestLog_Text_CaughtWildMon[]; +extern const u8 QuestLog_Text_CaughtWildMons[]; +extern const u8 QuestLog_Text_DefeatedWildMonAndCaughtWildMon[]; +extern const u8 QuestLog_Text_DefeatedWildMonAndCaughtWildMons[]; +extern const u8 QuestLog_Text_DefeatedWildMonsAndCaughtWildMon[]; +extern const u8 QuestLog_Text_DefeatedWildMonsAndCaughtWildMons[]; +extern const u8 QuestLog_Text_GaveMonHeldItem[]; +extern const u8 QuestLog_Text_GaveMonHeldItem2[]; +extern const u8 QuestLog_Text_UsedCut[]; +extern const u8 QuestLog_Text_UsedFly[]; +extern const u8 QuestLog_Text_UsedSurf[]; +extern const u8 QuestLog_Text_UsedStrength[]; +extern const u8 QuestLog_Text_UsedFlash[]; +extern const u8 QuestLog_Text_UsedRockSmash[]; +extern const u8 QuestLog_Text_UsedWaterfall[]; +extern const u8 QuestLog_Text_UsedDive[]; +extern const u8 QuestLog_Text_UsedDigInLocation[]; +extern const u8 QuestLog_Text_UsedSweetScent[]; +extern const u8 QuestLog_Text_UsedTeleportToLocation[]; +extern const u8 QuestLog_Text_LeftTownsLocationForNextDestination[]; +extern const u8 QuestLog_Text_PlayedGamesAtGameCorner[]; +extern const u8 QuestLog_Text_RestedAtHome[]; +extern const u8 QuestLog_Text_LeftOaksLab[]; +extern const u8 QuestLog_Text_GymWasFullOfToughTrainers[]; +extern const u8 QuestLog_Text_DepartedGym[]; +extern const u8 QuestLog_Text_HadGreatTimeInSafariZone[]; +extern const u8 QuestLog_Text_ManagedToGetOutOfLocation[]; +extern const u8 QuestLog_Text_TookOnGymLeadersMonWithMonAndWon[]; +extern const u8 QuestLog_Text_TookOnEliteFoursMonWithMonAndWon[]; +extern const u8 QuestLog_Text_TookOnTrainersMonWithMonAndWon[]; +extern const u8 QuestLog_Text_Coolly[]; +extern const u8 QuestLog_Text_Barely[]; +extern const u8 QuestLog_Text_UsedEscapeRope[]; +extern const u8 QuestLog_Text_Draw[]; +extern const u8 QuestLog_Text_DepartedTheLocationForNextDestination[]; +extern const u8 QuestLog_Text_DepartedFromLocationToNextDestination[]; +extern const u8 QuestLog_Text_ObtainedItemInLocation[]; +extern const u8 QuestLog_Text_ArrivedInLocation[]; +extern const u8 QuestLog_Text_SavedGameAtLocation[]; +extern const u8 QuestLog_Text_Home[]; +extern const u8 QuestLog_Text_OakResearchLab[]; +extern const u8 QuestLog_Text_Gym[]; +extern const u8 QuestLog_Text_PokemonLeagueGate[]; +extern const u8 QuestLog_Text_ViridianForest[]; +extern const u8 QuestLog_Text_PewterMuseumOfScience[]; +extern const u8 QuestLog_Text_MtMoon[]; +extern const u8 QuestLog_Text_BikeShop[]; +extern const u8 QuestLog_Text_BillsHouse[]; +extern const u8 QuestLog_Text_DayCare[]; +extern const u8 QuestLog_Text_UndergroundPath[]; +extern const u8 QuestLog_Text_PokemonFanClub[]; +extern const u8 QuestLog_Text_SSAnne[]; +extern const u8 QuestLog_Text_DiglettsCave[]; +extern const u8 QuestLog_Text_RockTunnel[]; +extern const u8 QuestLog_Text_PowerPlant[]; +extern const u8 QuestLog_Text_PokemonTower[]; +extern const u8 QuestLog_Text_VolunteerHouse[]; +extern const u8 QuestLog_Text_NameRatersHouse[]; +extern const u8 QuestLog_Text_CeladonDeptStore[]; +extern const u8 QuestLog_Text_CeladonMansion[]; +extern const u8 QuestLog_Text_RocketGameCorner[]; +extern const u8 QuestLog_Text_Restaurant[]; +extern const u8 QuestLog_Text_RocketHideout[]; +extern const u8 QuestLog_Text_SafariZone[]; +extern const u8 QuestLog_Text_WardensHome[]; +extern const u8 QuestLog_Text_FightingDojo[]; +extern const u8 QuestLog_Text_SilphCo[]; +extern const u8 QuestLog_Text_SeafoamIslands[]; +extern const u8 QuestLog_Text_PokemonMansion[]; +extern const u8 QuestLog_Text_PokemonResearchLab[]; +extern const u8 QuestLog_Text_VictoryRoad[]; +extern const u8 QuestLog_Text_PokemonLeague[]; +extern const u8 QuestLog_Text_CeruleanCave[]; static const struct WindowTemplate gUnknown_845661C[3] = { @@ -408,36 +416,36 @@ static const struct WindowTemplate gUnknown_845661C[3] = { { 0, 0, 14, 30, 6, 15, 0x14c } }; -static const u8 gUnknown_8456634[3] = {15, 1, 12}; +static const u8 sTextColors[3] = {TEXT_DYNAMIC_COLOR_6, TEXT_COLOR_WHITE, TEXT_DYNAMIC_COLOR_3}; static const u16 gUnknown_8456638[] = INCBIN_U16("data/graphics/unknown_8456638.bin"); -static const u8 gUnknown_8456698[] = {17, 10, 3}; +static const u8 sQuestLogTextLineYCoords[] = {17, 10, 3}; void sub_8110840(void * oldPointer) { ptrdiff_t offset = (void *)gSaveBlock1Ptr - oldPointer; if (gUnknown_203AE04) gUnknown_203AE04 = (void *)gUnknown_203AE04 + offset; - if (gUnknown_203ADFA != 0) + if (gQuestLogState != 0) { if (gUnknown_203AE08) gUnknown_203AE08 = (void *)gUnknown_203AE08 + offset; - if (gUnknown_203ADFA == 2) + if (gQuestLogState == 2) { int r3; - for (r3 = 0; r3 < 0x20; r3++) + for (r3 = 0; r3 < (int)NELEMS(gUnknown_203AE0C); r3++) if (gUnknown_203AE0C[r3]) gUnknown_203AE0C[r3] = (void *)gUnknown_203AE0C[r3] + offset; } } } -void sub_811089C(void) +void ResetQuestLog(void) { memset(gSaveBlock1Ptr->questLog, 0, sizeof(gSaveBlock1Ptr->questLog)); - gUnknown_203ADF8 = 0; - gUnknown_203ADFA = 0; + sCurrentSceneNum = 0; + gQuestLogState = 0; sQuestLogCB = NULL; gUnknown_203AE08 = NULL; gUnknown_203AE04 = NULL; @@ -462,11 +470,11 @@ void RunQuestLogCB(void) sQuestLogCB(); } -bool8 sub_8110944(const void * a0, size_t a1) +bool8 sub_8110944(const void * a0, size_t cmdSize) { - void * r2 = gSaveBlock1Ptr->questLog[gUnknown_203ADF8].unk_568; - void * r0 = gSaveBlock1Ptr->questLog[gUnknown_203ADF8].end; - r0 -= a1; + void * r2 = gSaveBlock1Ptr->questLog[sCurrentSceneNum].unk_568; + void * r0 = gSaveBlock1Ptr->questLog[sCurrentSceneNum].end; + r0 -= cmdSize; if ((const void *)a0 < r2 || (const void *)a0 > r0) return FALSE; return TRUE; @@ -474,18 +482,18 @@ bool8 sub_8110944(const void * a0, size_t a1) bool8 sub_8110988(u16 *a0, size_t a1) { - void * r2 = gSaveBlock1Ptr->questLog[gUnknown_203ADF8].unk_568; - void * r0 = gSaveBlock1Ptr->questLog[gUnknown_203ADF8].end; + void * r2 = gSaveBlock1Ptr->questLog[sCurrentSceneNum].unk_568; + void * r0 = gSaveBlock1Ptr->questLog[sCurrentSceneNum].end; r0 -= a1; if ((void *)a0 < r2 || (void *)a0 > r0) return FALSE; return TRUE; } -void sub_81109CC(u8 a0) +static void SetQuestLogState(u8 state) { - gUnknown_203ADFA = a0; - if (a0 == 1) + gQuestLogState = state; + if (state == 1) sQuestLogCB = sub_8110A00; else sQuestLogCB = sub_8110A3C; @@ -497,7 +505,7 @@ static void sub_8110A00(void) { gUnknown_3005E88 = 0; sub_8110E3C(); - gUnknown_203ADFA = 0; + gQuestLogState = 0; sQuestLogCB = NULL; } } @@ -520,56 +528,56 @@ static void sub_8110A3C(void) } } -void sub_8110AB4(void) +void Special_GetQuestLogState(void) { - gSpecialVar_Result = gUnknown_203ADFA; + gSpecialVar_Result = gQuestLogState; } u8 sub_8110AC8(void) { - return gSaveBlock1Ptr->questLog[gUnknown_203ADF8].unk_000; + return gSaveBlock1Ptr->questLog[sCurrentSceneNum].unk_000; } -void sub_8110AEC(u16 a0) +void sub_8110AEC(u16 eventId) { - if (gUnknown_203ADF8 > 3) - gUnknown_203ADF8 = 0; + if (sCurrentSceneNum >= QUEST_LOG_SCENE_COUNT) + sCurrentSceneNum = 0; - sub_81108F0(gUnknown_203ADF8); + sub_81108F0(sCurrentSceneNum); sub_8113B88(); - gUnknown_203AE08 = gSaveBlock1Ptr->questLog[gUnknown_203ADF8].unk_568; - if ((a0 >= 12 && a0 < 20) || a0 == 35) - gSaveBlock1Ptr->questLog[gUnknown_203ADF8].unk_000 = 2; + gUnknown_203AE08 = gSaveBlock1Ptr->questLog[sCurrentSceneNum].unk_568; + if (IS_LINK_QL_EVENT(eventId) || eventId == QL_EVENT_DEPARTED) + gSaveBlock1Ptr->questLog[sCurrentSceneNum].unk_000 = 2; else - gSaveBlock1Ptr->questLog[gUnknown_203ADF8].unk_000 = 1; + gSaveBlock1Ptr->questLog[sCurrentSceneNum].unk_000 = 1; QuestLog_GetSaneMonCounts(); - sub_8110BB0(gUnknown_203ADF8); - sub_8110BE8(gUnknown_203ADF8); + sub_8110BB0(sCurrentSceneNum); + sub_8110BE8(sCurrentSceneNum); sub_8110D94(); sub_8110E20(); - sub_8110D48(gUnknown_203ADF8); + sub_8110D48(sCurrentSceneNum); gUnknown_203ADFC = 0; sub_8112940(2, gUnknown_203AE98, 0x100); sub_8110E68(gUnknown_203AE98); - sub_81109CC(1); + SetQuestLogState(1); } -static void sub_8110BB0(u8 a0) +static void sub_8110BB0(u8 sceneNum) { - struct QuestLog * questLog = &gSaveBlock1Ptr->questLog[a0]; - questLog->unk_001 = gSaveBlock1Ptr->location.mapGroup; - questLog->unk_002 = gSaveBlock1Ptr->location.mapNum; - questLog->unk_003 = gSaveBlock1Ptr->location.warpId; - questLog->unk_004 = gSaveBlock1Ptr->pos.x; - questLog->unk_006 = gSaveBlock1Ptr->pos.y; + struct QuestLog * questLog = &gSaveBlock1Ptr->questLog[sceneNum]; + questLog->mapGroup = gSaveBlock1Ptr->location.mapGroup; + questLog->mapNum = gSaveBlock1Ptr->location.mapNum; + questLog->warpId = gSaveBlock1Ptr->location.warpId; + questLog->x = gSaveBlock1Ptr->pos.x; + questLog->y = gSaveBlock1Ptr->pos.y; } -static void sub_8110BE8(u8 a0) +static void sub_8110BE8(u8 sceneNum) { - struct QuestLog * questLog = &gSaveBlock1Ptr->questLog[a0]; + struct QuestLog * questLog = &gSaveBlock1Ptr->questLog[sceneNum]; u16 i; - sub_815A008(questLog); + SetQuestLogObjectEventsData(questLog); for (i = 0; i < NELEMS(gSaveBlock1Ptr->objectEventTemplates); i++) { @@ -598,9 +606,9 @@ static void sub_8110BE8(u8 a0) } } -static void sub_8110D48(u8 a0) +static void sub_8110D48(u8 sceneNum) { - struct QuestLog * questLog = &gSaveBlock1Ptr->questLog[a0]; + struct QuestLog * questLog = &gSaveBlock1Ptr->questLog[sceneNum]; CpuCopy16(gSaveBlock1Ptr->flags, questLog->flags, FLAGS_COUNT * sizeof(u8)); CpuCopy16(gSaveBlock1Ptr->vars, questLog->vars, VARS_COUNT * sizeof(u16)); @@ -633,8 +641,8 @@ static void sub_8110E20(void) static void sub_8110E3C(void) { sub_8113BF4(gUnknown_203AE08); - if (++gUnknown_203ADF8 > 3) - gUnknown_203ADF8 = 0; + if (++sCurrentSceneNum >= QUEST_LOG_SCENE_COUNT) + sCurrentSceneNum = 0; } static bool8 sub_8110E68(struct UnkStruct_203AE98 * a0) @@ -677,7 +685,7 @@ void TrySetUpQuestLogScenes_ElseContinueFromSave(u8 taskId) sub_811381C(); sNumScenes = 0; - for (i = 0; i < 4; i++) + for (i = 0; i < QUEST_LOG_SCENE_COUNT; i++) { if (gSaveBlock1Ptr->questLog[i].unk_000) sNumScenes++; @@ -701,7 +709,7 @@ static void sub_8110F90(u8 unused) gSaveBlock1Ptr->location.mapGroup = 3; gSaveBlock1Ptr->location.mapNum = 19; gSaveBlock1Ptr->location.warpId = -1; - gUnknown_203ADF8 = 0; + sCurrentSceneNum = 0; gDisableMapMusicChangeOnMapLoad = 1; DisableWildEncounters(TRUE); sub_8111368(); @@ -709,16 +717,16 @@ static void sub_8110F90(u8 unused) void sub_8110FCC(void) { - sub_811175C(gUnknown_203ADF8, gUnknown_203AE98); + sub_811175C(sCurrentSceneNum, gUnknown_203AE98); sub_8113B88(); sub_8112940(1, gUnknown_203AE98, 0x100); - sub_8111150(gUnknown_203ADF8); + sub_8111150(sCurrentSceneNum); } bool8 sub_8111000(void) { LoadPalette(stdpal_get(4), 0xF0, 0x20); - sub_81109CC(2); + SetQuestLogState(2); sub_807DF64(); gUnknown_203AE94 = (struct UnkStruct_203AE94){}; gUnknown_203AE94.unk_0_0 = 2; @@ -728,14 +736,14 @@ bool8 sub_8111000(void) bool8 sub_8111038(void) { LoadPalette(stdpal_get(4), 0xF0, 0x20); - sub_81109CC(2); + SetQuestLogState(2); sub_807DF7C(); gUnknown_203AE94 = (struct UnkStruct_203AE94){}; gUnknown_203AE94.unk_0_0 = 2; return 1; } -void sub_8111070(u8 a0) +void DrawPreviouslyOnQuestHeader(u8 sceneNum) { u8 i; @@ -745,16 +753,16 @@ void sub_8111070(u8 a0) FillWindowPixelRect(gUnknown_203ADFE[i], 15, 0, 0, gUnknown_845661C[i].width * 8, gUnknown_845661C[i].height * 8); } - // _("Previously on your quest…$") - StringExpandPlaceholders(gStringVar4, gUnknown_841A155); + StringExpandPlaceholders(gStringVar4, QuestLog_Text_PreviouslyOnYourQuest); - if (a0) + // Scene numbers count from 4 to 0, 0 being where the player saved + if (sceneNum != 0) { - ConvertIntToDecimalStringN(gStringVar1, a0, STR_CONV_MODE_LEFT_ALIGN, 1); + ConvertIntToDecimalStringN(gStringVar1, sceneNum, STR_CONV_MODE_LEFT_ALIGN, 1); StringAppend(gStringVar4, gStringVar1); } - AddTextPrinterParameterized4(gUnknown_203ADFE[0], 2, 2, 2, 1, 2, gUnknown_8456634, 0, gStringVar4); + 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); @@ -768,9 +776,9 @@ void sub_8111134(void) CopyWindowToVram(gUnknown_203ADFE[1], 1); } -static void sub_8111150(u8 a0) +static void sub_8111150(u8 sceneNum) { - struct QuestLog *questLog = &gSaveBlock1Ptr->questLog[a0]; + struct QuestLog *questLog = &gSaveBlock1Ptr->questLog[sceneNum]; u16 i; for (i = 0; i < 64; i++) @@ -790,44 +798,44 @@ static void sub_8111150(u8 a0) sub_815A1F8(questLog, gSaveBlock1Ptr->objectEventTemplates); } -void sub_8111274(u8 a0, u8 a1) +void sub_8111274(u8 sceneNum, bool8 a1) { struct WarpData sp0; if (!a1) { - gSaveBlock1Ptr->location.mapGroup = gSaveBlock1Ptr->questLog[a0].unk_001; - gSaveBlock1Ptr->location.mapNum = gSaveBlock1Ptr->questLog[a0].unk_002; - gSaveBlock1Ptr->location.warpId = gSaveBlock1Ptr->questLog[a0].unk_003; - gSaveBlock1Ptr->pos.x = gSaveBlock1Ptr->questLog[a0].unk_004; - gSaveBlock1Ptr->pos.y = gSaveBlock1Ptr->questLog[a0].unk_006; + gSaveBlock1Ptr->location.mapGroup = gSaveBlock1Ptr->questLog[sceneNum].mapGroup; + gSaveBlock1Ptr->location.mapNum = gSaveBlock1Ptr->questLog[sceneNum].mapNum; + gSaveBlock1Ptr->location.warpId = gSaveBlock1Ptr->questLog[sceneNum].warpId; + gSaveBlock1Ptr->pos.x = gSaveBlock1Ptr->questLog[sceneNum].x; + gSaveBlock1Ptr->pos.y = gSaveBlock1Ptr->questLog[sceneNum].y; } else { - sp0.mapGroup = gSaveBlock1Ptr->questLog[a0].unk_001; - sp0.mapNum = gSaveBlock1Ptr->questLog[a0].unk_002; - sp0.warpId = gSaveBlock1Ptr->questLog[a0].unk_003; - sp0.x = gSaveBlock1Ptr->questLog[a0].unk_004; - sp0.y = gSaveBlock1Ptr->questLog[a0].unk_006; + sp0.mapGroup = gSaveBlock1Ptr->questLog[sceneNum].mapGroup; + sp0.mapNum = gSaveBlock1Ptr->questLog[sceneNum].mapNum; + sp0.warpId = gSaveBlock1Ptr->questLog[sceneNum].warpId; + sp0.x = gSaveBlock1Ptr->questLog[sceneNum].x; + sp0.y = gSaveBlock1Ptr->questLog[sceneNum].y; sub_8055D5C(&sp0); } } static void sub_8111368(void) { - gUnknown_203ADFA = 2; + gQuestLogState = 2; ResetSpecialVars(); ClearBag(); ClearPCItemSlots(); if (sub_8110AC8() == 1) { - sub_8111274(gUnknown_203ADF8, 0); + sub_8111274(sCurrentSceneNum, FALSE); gFieldCallback2 = sub_8111038; SetMainCallback2(sub_80572A8); } else { - sub_8111274(gUnknown_203ADF8, 1); + sub_8111274(sCurrentSceneNum, TRUE); WarpIntoMap(); gFieldCallback2 = sub_8111000; SetMainCallback2(sub_805726C); @@ -836,7 +844,7 @@ static void sub_8111368(void) void sub_81113E4(void) { - struct QuestLog * questLog = &gSaveBlock1Ptr->questLog[gUnknown_203ADF8]; + struct QuestLog * questLog = &gSaveBlock1Ptr->questLog[sCurrentSceneNum]; CpuCopy16(questLog->flags, gSaveBlock1Ptr->flags, FLAGS_COUNT * sizeof(u8)); CpuCopy16(questLog->vars, gSaveBlock1Ptr->vars, VARS_COUNT * sizeof(u16)); @@ -992,7 +1000,7 @@ void sub_8111708(void) } } -static void sub_811175C(u8 a0, struct UnkStruct_203AE98 * a1) +static void sub_811175C(u8 sceneNum, struct UnkStruct_203AE98 * a1) { u16 i; u16 *r4; @@ -1000,30 +1008,30 @@ static void sub_811175C(u8 a0, struct UnkStruct_203AE98 * a1) u16 r9 = 0; memset(a1, 0, 32 * sizeof(struct UnkStruct_203AE98)); - for (i = 0; i < 32; i++) + for (i = 0; i < NELEMS(gUnknown_203AE0C); i++) { gUnknown_203AE0C[i] = NULL; } - r4 = gSaveBlock1Ptr->questLog[a0].unk_568; + r4 = gSaveBlock1Ptr->questLog[sceneNum].unk_568; for (i = 0; i < 32; i++) { switch (r4[0] & 0xFFF) { - case 0: + case QL_EVENT_0: r4 = sub_8113D08(r4, &a1[r6]); r6++; break; - case 1: - case 2: + case QL_EVENT_1: + case QL_EVENT_2: r4 = sub_8113D94(r4, &a1[r6]); r6++; break; - case 39: + case QL_EVENT_39: r4 = sub_8113C20(r4, &a1[r6]); r6++; break; - case 41: + case QL_EVENT_41: r4 = sub_8113C8C(r4, &a1[r6]); r6++; break; @@ -1050,7 +1058,7 @@ static void QuestLog_AdvancePlayhead(void) if (!gPaletteFade.active) { ScriptContext2_Enable(); - if (++gUnknown_203ADF8 < 4 && gSaveBlock1Ptr->questLog[gUnknown_203ADF8].unk_000) + if (++sCurrentSceneNum < QUEST_LOG_SCENE_COUNT && gSaveBlock1Ptr->questLog[sCurrentSceneNum].unk_000) { sNumScenes--; sub_8111368(); @@ -1058,12 +1066,12 @@ static void QuestLog_AdvancePlayhead(void) else { gUnknown_3005E88 = 0; - QuestLog_EndPlayback(); + QuestLog_StartFinalScene(); } } } -static void QuestLog_EndPlayback(void) +static void QuestLog_StartFinalScene(void) { ResetSpecialVars(); Save_ResetSaveCounters(); @@ -1071,7 +1079,7 @@ static void QuestLog_EndPlayback(void) SetMainCallback2(sub_8057430); gFieldCallback2 = sub_8111F60; FreeAllWindowBuffers(); - gUnknown_203ADFA = 3; + gQuestLogState = 3; sQuestLogCB = NULL; } @@ -1084,7 +1092,7 @@ bool8 QuestLog_SchedulePlaybackCB(void (*callback)(void)) { u8 taskId; - switch (gUnknown_203ADFA) + switch (gQuestLogState) { case 1: sub_8112364(); @@ -1144,12 +1152,12 @@ static void sub_8111AD8(void) { if (++gUnknown_203AE94.unk_3 > 15) { - sub_8111E20(); + QuestLog_CloseTextWindow(); gUnknown_203AE94.unk_0_4 = 0; gUnknown_203AE94.unk_3 = 0; } } - if (gUnknown_203AE94.unk_1 < 32) + if (gUnknown_203AE94.unk_1 < NELEMS(gUnknown_203AE0C)) { if (sub_8113B44(gUnknown_203AE0C[gUnknown_203AE94.unk_1]) == 1) sub_8111B80(); @@ -1170,7 +1178,7 @@ static void sub_8111B80(void) gUnknown_203AE94.unk_1++; if (gUnknown_203AE94.unk_1 > 32) return; - sub_8111D10(); + DrawQuestLogSceneDescription(); } sub_8112888(1); } @@ -1197,7 +1205,7 @@ static u8 sub_8111BD4(void) bool8 sub_8111C2C(void) { - if (gUnknown_203ADFA != 2) + if (gQuestLogState != 2) return FALSE; if (gUnknown_3005E88 == 0 || gUnknown_203AE94.unk_0_0 == 1 || gUnknown_203AE94.unk_0_0 == 2) return TRUE; @@ -1232,24 +1240,24 @@ bool8 sub_8111CD0(void) void sub_8111CF0(void) { - if (gUnknown_203ADFA == 2) - sub_8111070(sNumScenes); + if (gQuestLogState == 2) + DrawPreviouslyOnQuestHeader(sNumScenes); } -static void sub_8111D10(void) +static void DrawQuestLogSceneDescription(void) { u16 i; - u8 count = 0; + u8 numLines = 0; for (i = 0; i < 0x100 && gStringVar4[i] != EOS; i++) { if (gStringVar4[i] == CHAR_NEWLINE) - count++; + numLines++; } PutWindowTilemap(gUnknown_203ADFE[2]); sub_8111D90(gUnknown_203ADFE[2]); - AddTextPrinterParameterized4(gUnknown_203ADFE[2], 2, 2, gUnknown_8456698[count], 1, 0, gUnknown_8456634, 0, gStringVar4); + AddTextPrinterParameterized4(gUnknown_203ADFE[2], 2, 2, sQuestLogTextLineYCoords[numLines], 1, 0, sTextColors, 0, gStringVar4); ScheduleBgCopyTilemapToVram(0); } @@ -1290,7 +1298,7 @@ static void sub_8111D90(u8 a0) } } -static void sub_8111E20(void) +static void QuestLog_CloseTextWindow(void) { ClearWindowTilemap(gUnknown_203ADFE[2]); FillWindowPixelRect(gUnknown_203ADFE[2], 15, 0, 0, 0xf0, 0x30); @@ -1310,20 +1318,20 @@ static void QuestLog_WaitFadeAndCancelPlayback(void) if (!gPaletteFade.active) { ScriptContext2_Enable(); - for (gUnknown_203ADF8 = gUnknown_203ADF8; gUnknown_203ADF8 < 4; gUnknown_203ADF8++) + for (sCurrentSceneNum = sCurrentSceneNum; sCurrentSceneNum < QUEST_LOG_SCENE_COUNT; sCurrentSceneNum++) { - if (gSaveBlock1Ptr->questLog[gUnknown_203ADF8].unk_000 == 0) + if (gSaveBlock1Ptr->questLog[sCurrentSceneNum].unk_000 == 0) break; - sub_811175C(gUnknown_203ADF8, gUnknown_203AE98); + sub_811175C(sCurrentSceneNum, gUnknown_203AE98); } gUnknown_3005E88 = 0; - QuestLog_EndPlayback(); + QuestLog_StartFinalScene(); } } void sub_8111F14(void) { - if (gUnknown_203ADFA == 3) + if (gQuestLogState == 3) gUnknown_203AE90 = AllocZeroed(0x200 * sizeof(u16)); } @@ -1335,7 +1343,7 @@ void sub_8111F38(u16 a0, u16 a1) static bool8 sub_8111F60(void) { LoadPalette(stdpal_get(4), 0xF0, 0x20); - sub_8111070(0); + DrawPreviouslyOnQuestHeader(0); sub_807DF7C(); CreateTask(sub_8111F8C, 0xFF); return TRUE; @@ -1351,11 +1359,11 @@ static void sub_8111F8C(u8 taskId) sub_805C270(); sub_805C780(); ScriptContext2_Enable(); - task->func = sub_8111FCC; + task->func = Task_QuestLogScene_SavedGame; } } -static void sub_8111FCC(u8 taskId) +static void Task_QuestLogScene_SavedGame(u8 taskId) { struct Task *task = &gTasks[taskId]; @@ -1364,45 +1372,52 @@ static void sub_8111FCC(u8 taskId) if (gUnknown_203AE94.unk_0_6 != 1) { GetMapNameGeneric(gStringVar1, gMapHeader.regionMapSectionId); - StringExpandPlaceholders(gStringVar4, gUnknown_841B073); - sub_8111D10(); + StringExpandPlaceholders(gStringVar4, QuestLog_Text_SavedGameAtLocation); + DrawQuestLogSceneDescription(); } task->data[0] = 0; task->data[1] = 0; - task->func = sub_8112044; + task->func = Task_WaitAtEndOfQuestLog; FreezeObjectEvents(); ScriptContext2_Enable(); } } -static void sub_8112044(u8 taskId) +#define tTimer data[0] + +static void Task_WaitAtEndOfQuestLog(u8 taskId) { struct Task *task = &gTasks[taskId]; - if (gMain.newKeys & (A_BUTTON | B_BUTTON) || task->data[0] >= 0x7f || gUnknown_203AE94.unk_0_6 == 1) + if (gMain.newKeys & (A_BUTTON | B_BUTTON) || task->tTimer >= 127 || gUnknown_203AE94.unk_0_6 == 1) { - sub_8111E20(); - task->data[0] = 0; - task->func = sub_81120AC; - gUnknown_203ADFA = 0; + QuestLog_CloseTextWindow(); + task->tTimer = 0; + task->func = Task_EndQuestLog; + gQuestLogState = 0; } else - task->data[0]++; + task->tTimer++; } -static void sub_81120AC(u8 taskId) +#undef tTimer + +#define tState data[0] +#define tTimer data[1] + +static void Task_EndQuestLog(u8 taskId) { s16 *data = gTasks[taskId].data; u8 i; - switch (data[0]) + switch (tState) { case 0: gDisableMapMusicChangeOnMapLoad = 0; Overworld_PlaySpecialMapMusic(); sub_811229C(); FillWindowPixelRect(gUnknown_203ADFE[0], 0xF, 0, 0, gUnknown_845661C[0].width * 8, gUnknown_845661C[0].height * 8); - data[0]++; + tState++; break; case 1: if (sub_81121D8(taskId)) @@ -1413,15 +1428,15 @@ static void sub_81120AC(u8 taskId) CopyWindowToVram(gUnknown_203ADFE[i], 1); RemoveWindow(gUnknown_203ADFE[i]); } - data[1] = 0; - data[0]++; + tTimer = 0; + tState++; } break; case 2: - if (data[1] < 32) - data[1]++; + if (tTimer < 32) + tTimer++; else - data[0]++; + tState++; break; default: if (gUnknown_203AE94.unk_0_6 == 1) @@ -1440,6 +1455,9 @@ static void sub_81120AC(u8 taskId) } } +#undef tState +#undef tTimer + static bool8 sub_81121D8(u8 taskId) { s16 *data = gTasks[taskId].data; @@ -1472,11 +1490,11 @@ static void sub_811229C(void) void sub_811231C(void) { - if (gUnknown_203ADFA == 1) + if (gQuestLogState == 1) { sub_8110E68(gUnknown_203AE98); sub_8110E3C(); - gUnknown_203ADFA = 0; + gQuestLogState = 0; sQuestLogCB = NULL; gUnknown_203AE04 = NULL; gUnknown_203AE08 = NULL; @@ -1486,13 +1504,13 @@ void sub_811231C(void) void sub_8112364(void) { - if (gUnknown_3005E88 && gUnknown_203ADFA == 1) + if (gUnknown_3005E88 && gQuestLogState == 1) { sub_8110E68(gUnknown_203AE98); sub_8113A1C(1); sub_8110E3C(); gUnknown_3005E88 = 0; - gUnknown_203ADFA = 0; + gQuestLogState = 0; sQuestLogCB = NULL; } gUnknown_203AE04 = NULL; @@ -1501,29 +1519,29 @@ void sub_8112364(void) void sub_81123BC(void) { - struct QuestLog * buffer = AllocZeroed(4 * sizeof(struct QuestLog)); + struct QuestLog * buffer = AllocZeroed(QUEST_LOG_SCENE_COUNT * sizeof(struct QuestLog)); u8 i; - u8 r4 = gUnknown_203ADF8; + u8 sceneNum = sCurrentSceneNum; u8 count = 0; - for (i = 0; i < 4; i++) + for (i = 0; i < QUEST_LOG_SCENE_COUNT; i++) { - if (r4 > 3) - r4 = 0; - if (gSaveBlock1Ptr->questLog[r4].unk_000) + if (sceneNum >= QUEST_LOG_SCENE_COUNT) + sceneNum = 0; + if (gSaveBlock1Ptr->questLog[sceneNum].unk_000) { - buffer[count] = gSaveBlock1Ptr->questLog[r4]; + buffer[count] = gSaveBlock1Ptr->questLog[sceneNum]; count++; } - r4++; + sceneNum++; } - gUnknown_203ADF8 = count % 4; - CpuCopy16(buffer, gSaveBlock1Ptr->questLog, 4 * sizeof(struct QuestLog)); + sCurrentSceneNum = count % QUEST_LOG_SCENE_COUNT; + CpuCopy16(buffer, gSaveBlock1Ptr->questLog, QUEST_LOG_SCENE_COUNT * sizeof(struct QuestLog)); Free(buffer); } void sub_8112450(void) { - if (MenuHelpers_LinkSomething() != 1) + if (MenuHelpers_LinkSomething() != TRUE) { sub_8112364(); sub_81123BC(); @@ -1533,26 +1551,26 @@ void sub_8112450(void) void sub_811246C(struct Sprite *sprite) { struct ObjectEvent *objectEvent = &gObjectEvents[sprite->data[0]]; - if (objectEvent->localId == 0xFF) + if (objectEvent->localId == OBJ_EVENT_ID_PLAYER) { - if (gUnknown_203AF9A[0][0] != 0xFF) + if (gUnknown_203AF9A[0][0] != OBJ_EVENT_ID_PLAYER) { ObjectEventSetHeldMovement(objectEvent, gUnknown_203AF9A[0][0]); - gUnknown_203AF9A[0][0] = 0xFF; + gUnknown_203AF9A[0][0] = OBJ_EVENT_ID_PLAYER; } - if (gUnknown_203AF9A[0][1] != 0xFF) + if (gUnknown_203AF9A[0][1] != OBJ_EVENT_ID_PLAYER) { sub_8150454(); - gUnknown_203AF9A[0][1] = 0xFF; + gUnknown_203AF9A[0][1] = OBJ_EVENT_ID_PLAYER; } sub_8063E28(objectEvent, sprite); } else { - if (gUnknown_203AF9A[objectEvent->localId][0] != 0xFF) + if (gUnknown_203AF9A[objectEvent->localId][0] != OBJ_EVENT_ID_PLAYER) { ObjectEventSetHeldMovement(objectEvent, gUnknown_203AF9A[objectEvent->localId][0]); - gUnknown_203AF9A[objectEvent->localId][0] = 0xFF; + gUnknown_203AF9A[objectEvent->localId][0] = OBJ_EVENT_ID_PLAYER; } sub_8063E28(objectEvent, sprite); } @@ -1745,18 +1763,18 @@ static void sub_8112940(u8 a0, struct UnkStruct_203AE98 *a1, u16 a2) gUnknown_3005E94[sQuestLogIdx].unk_0 = 0; switch (GetPlayerFacingDirection()) { - case 0: - case 1: - gUnknown_3005E94[sQuestLogIdx].unk_3 = 0; + case DIR_NONE: + case DIR_SOUTH: + gUnknown_3005E94[sQuestLogIdx].unk_3 = DIR_SOUTH - 1; break; - case 4: - gUnknown_3005E94[sQuestLogIdx].unk_3 = 3; + case DIR_EAST: + gUnknown_3005E94[sQuestLogIdx].unk_3 = DIR_EAST - 1; break; - case 2: - gUnknown_3005E94[sQuestLogIdx].unk_3 = 1; + case DIR_NORTH: + gUnknown_3005E94[sQuestLogIdx].unk_3 = DIR_NORTH - 1; break; - case 3: - gUnknown_3005E94[sQuestLogIdx].unk_3 = 2; + case DIR_WEST: + gUnknown_3005E94[sQuestLogIdx].unk_3 = DIR_WEST - 1; break; } gUnknown_203B01C = 0; @@ -1935,6 +1953,10 @@ void sub_8112E3C(u8 a0, struct UnkStruct_300201C * a1, u16 a2) } } + +// Probable file boundary, help_message.c below, quest_log.c above + + const u16 gUnknown_84566A8[] = INCBIN_U16("data/graphics/unknown_84566a8.bin"); static const struct WindowTemplate sHelpMessageWindowTemplate = { @@ -2101,60 +2123,62 @@ void sub_8112F18(u8 windowId) } #endif -void sub_8112FD0(void) +static void sub_8112FD0(void) { sub_8112F18(sHelpMessageWindowId); } -static const u8 gUnknown_8456930[3] = { - 0, 10, 2 -}; +static const u8 sHelpMessageTextColors[3] = {TEXT_COLOR_TRANSPARENT, TEXT_DYNAMIC_COLOR_1, TEXT_COLOR_DARK_GREY}; -void sub_8112FE4(const u8 *a0) +static void PrintHelpMessageText(const u8 *text) { - AddTextPrinterParameterized4(sHelpMessageWindowId, 0x02, 2, 5, 1, 1, gUnknown_8456930, -1, a0); + AddTextPrinterParameterized4(sHelpMessageWindowId, 2, 2, 5, 1, 1, sHelpMessageTextColors, -1, text); } void PrintTextOnHelpMessageWindow(const u8 *text, u8 mode) { sub_8112FD0(); - sub_8112FE4(text); + PrintHelpMessageText(text); if (mode) CopyWindowToVram(sHelpMessageWindowId, mode); } -void sub_8113044(void) + +// Probable file boundary, trainer_fan_club.c below, help_message.c above + + +void ResetTrainerFanClub(void) { - VarSet(VAR_0x4038, 0); - VarSet(VAR_0x4039, 0); + VarSet(VAR_FANCLUB_FAN_COUNTER, 0); + VarSet(VAR_FANCLUB_LOSE_FAN_TIMER, 0); } -void sub_8113064(void) +void Special_TryLoseFansFromPlayTimeAfterLinkBattle(void) { - sub_8113078(VAR_0x4038_STRUCT); + TryLoseFansFromPlayTimeAfterLinkBattle(TRAINER_FAN_CLUB); } -static void sub_8113078(struct Var4038Struct * varPtr) +static void TryLoseFansFromPlayTimeAfterLinkBattle(struct TrainerFanClub *fanClub) { - if (sub_8113508(varPtr)) + if (DidPlayerGetFirstFans(fanClub)) { - sub_81132E0(varPtr); - VarSet(VAR_0x4039, gSaveBlock2Ptr->playTimeHours); + TryLoseFansFromPlayTime(fanClub); + VarSet(VAR_FANCLUB_LOSE_FAN_TIMER, gSaveBlock2Ptr->playTimeHours); } } -void sub_81130A8(void) +void Special_UpdateTrainerFanClubGameClear(void) { - sub_81130BC(VAR_0x4038_STRUCT); + UpdateTrainerFanClubGameClear(TRAINER_FAN_CLUB); } -static void sub_81130BC(struct Var4038Struct * varPtr) +static void UpdateTrainerFanClubGameClear(struct TrainerFanClub *fanClub) { - if (!varPtr->unk_0_7) + if (!fanClub->gotInitialFans) { - sub_8113524(varPtr); - sub_8113390(varPtr); - VarSet(VAR_0x4039, gSaveBlock2Ptr->playTimeHours); + SetPlayerGotFirstFans(fanClub); + SetInitialFansOfPlayer(fanClub); + VarSet(VAR_FANCLUB_LOSE_FAN_TIMER, gSaveBlock2Ptr->playTimeHours); FlagClear(FLAG_HIDE_SAFFRON_FAN_CLUB_BLACKBELT); FlagClear(FLAG_HIDE_SAFFRON_FAN_CLUB_ROCKER); FlagClear(FLAG_HIDE_SAFFRON_FAN_CLUB_WOMAN); @@ -2163,199 +2187,221 @@ static void sub_81130BC(struct Var4038Struct * varPtr) } } -ALIGNED(4) const u8 gUnknown_8456934[] = {2, 1, 2, 1}; +ALIGNED(4) const u8 sCounterIncrements[] = {2, 1, 2, 1}; -u8 sub_8113114(struct Var4038Struct * a0, u8 a1) +static u8 TryGainNewFanFromCounter(struct TrainerFanClub *fanClub, u8 a1) { if (VarGet(VAR_MAP_SCENE_SAFFRON_CITY_POKEMON_TRAINER_FAN_CLUB) == 2) { - if (a0->unk_0_0 + gUnknown_8456934[a1] >= 20) + if (fanClub->timer + sCounterIncrements[a1] >= 20) { - if (sub_81132A0(a0) < 3) + if (GetNumFansOfPlayerInTrainerFanClub(fanClub) < 3) { - sub_8113194(a0); - a0->unk_0_0 = 0; + PlayerGainRandomTrainerFan(fanClub); + fanClub->timer = 0; } else - a0->unk_0_0 = 20; + fanClub->timer = 20; } else - a0->unk_0_0 += gUnknown_8456934[a1]; + fanClub->timer += sCounterIncrements[a1]; } - return a0->unk_0_0; + return fanClub->timer; } -static const u8 gUnknown_8456938[] = { - 1, 3, 5, 0, 7, 6, 4, 2 -}; -static u8 sub_8113194(struct Var4038Struct * a0) +static u8 PlayerGainRandomTrainerFan(struct TrainerFanClub *fanClub) { + static const u8 sFanClubMemberIds[] = + { + FANCLUB_MEMBER2, + FANCLUB_MEMBER4, + FANCLUB_MEMBER6, + FANCLUB_MEMBER1, + FANCLUB_MEMBER8, + FANCLUB_MEMBER7, + FANCLUB_MEMBER5, + FANCLUB_MEMBER3 + }; + u8 i; - u8 retval = 0; + u8 idx = 0; - for (i = 0; i < 8; i++) + for (i = 0; i < NUM_TRAINER_FAN_CLUB_MEMBERS; i++) { - if (!((a0->unk_1 >> gUnknown_8456938[i]) & 1)) + if (!(GET_TRAINER_FAN_CLUB_FLAG(sFanClubMemberIds[i]))) { - retval = i; + idx = i; if (Random() % 2) { - a0->unk_1 |= 1 << gUnknown_8456938[i]; - return gUnknown_8456938[i]; + SET_TRAINER_FAN_CLUB_FLAG(sFanClubMemberIds[i]); + return sFanClubMemberIds[i]; } } } - a0->unk_1 |= 1 << gUnknown_8456938[retval]; - return gUnknown_8456938[retval]; -} -static const u8 gUnknown_8456940[] = { - 5, 6, 3, 7, 4, 1, 0, 2 -}; + SET_TRAINER_FAN_CLUB_FLAG(sFanClubMemberIds[idx]); + return sFanClubMemberIds[idx]; +} -u8 sub_81131FC(struct Var4038Struct * a0) +static u8 PlayerLoseRandomTrainerFan(struct TrainerFanClub *fanClub) { + static const u8 sFanClubMemberIds[] = + { + FANCLUB_MEMBER6, + FANCLUB_MEMBER7, + FANCLUB_MEMBER4, + FANCLUB_MEMBER8, + FANCLUB_MEMBER5, + FANCLUB_MEMBER2, + FANCLUB_MEMBER1, + FANCLUB_MEMBER3 + }; + u8 i; - u8 retval = 0; + u8 idx = 0; - if (sub_81132A0(a0) == 1) + if (GetNumFansOfPlayerInTrainerFanClub(fanClub) == 1) return 0; - for (i = 0; i < 8; i++) + for (i = 0; i < NUM_TRAINER_FAN_CLUB_MEMBERS; i++) { - if ((a0->unk_1 >> gUnknown_8456940[i]) & 1) + if (GET_TRAINER_FAN_CLUB_FLAG(sFanClubMemberIds[i])) { - retval = i; + idx = i; if (Random() % 2) { - a0->unk_1 ^= 1 << gUnknown_8456940[i]; - return gUnknown_8456940[i]; + FLIP_TRAINER_FAN_CLUB_FLAG(sFanClubMemberIds[i]); + return sFanClubMemberIds[i]; } } } - if ((a0->unk_1 >> gUnknown_8456940[retval]) & 1) - a0->unk_1 ^= 1 << gUnknown_8456940[retval]; - return gUnknown_8456940[retval]; + + if (GET_TRAINER_FAN_CLUB_FLAG(sFanClubMemberIds[idx])) + FLIP_TRAINER_FAN_CLUB_FLAG(sFanClubMemberIds[idx]); + + return sFanClubMemberIds[idx]; } -u16 GetNumMovedSaffronFanClubMembers(void) +u16 Special_GetNumFansOfPlayerInTrainerFanClub(void) { - return sub_81132A0(VAR_0x4038_STRUCT); + return GetNumFansOfPlayerInTrainerFanClub(TRAINER_FAN_CLUB); } -static u16 sub_81132A0(struct Var4038Struct * a0) +static u16 GetNumFansOfPlayerInTrainerFanClub(struct TrainerFanClub *fanClub) { u8 count = 0; u8 i; - for (i = 0; i < 8; i++) + for (i = 0; i < NUM_TRAINER_FAN_CLUB_MEMBERS; i++) { - if ((a0->unk_1 >> i) & 1) + if (GET_TRAINER_FAN_CLUB_FLAG(i)) count++; } return count; } -void UpdateMovedSaffronFanClubMembers(void) +void Special_TryLoseFansFromPlayTime(void) { - sub_81132E0(VAR_0x4038_STRUCT); + TryLoseFansFromPlayTime(TRAINER_FAN_CLUB); } -static void sub_81132E0(struct Var4038Struct * a0) +static void TryLoseFansFromPlayTime(struct TrainerFanClub *fanClub) { u8 i = 0; - u16 var_4039; + u16 timer; if (gSaveBlock2Ptr->playTimeHours < 999) { while (1) { - if (sub_81132A0(a0) < 5) + if (GetNumFansOfPlayerInTrainerFanClub(fanClub) < 5) { - VarSet(VAR_0x4039, gSaveBlock2Ptr->playTimeHours); + VarSet(VAR_FANCLUB_LOSE_FAN_TIMER, gSaveBlock2Ptr->playTimeHours); break; } - if (i == 8) + if (i == NUM_TRAINER_FAN_CLUB_MEMBERS) break; - var_4039 = VarGet(VAR_0x4039); - if (gSaveBlock2Ptr->playTimeHours - var_4039 < 12) + + timer = VarGet(VAR_FANCLUB_LOSE_FAN_TIMER); + if (gSaveBlock2Ptr->playTimeHours - timer < 12) break; - sub_81131FC(a0); - var_4039 = VarGet(VAR_0x4039); - VarSet(VAR_0x4039, var_4039 + 12); + + PlayerLoseRandomTrainerFan(fanClub); + timer = VarGet(VAR_FANCLUB_LOSE_FAN_TIMER); + VarSet(VAR_FANCLUB_LOSE_FAN_TIMER, timer + 12); i++; } } } -bool16 ShouldMoveSaffronFanClubMember(void) +bool16 Special_IsFanClubMemberFanOfPlayer(void) { - return sub_811337C(VAR_0x4038_STRUCT); + return IsFanClubMemberFanOfPlayer(TRAINER_FAN_CLUB); } -static bool16 sub_811337C(struct Var4038Struct * a0) +static bool16 IsFanClubMemberFanOfPlayer(struct TrainerFanClub *fanClub) { - return (a0->unk_1 >> gSpecialVar_0x8004) & 1; + return GET_TRAINER_FAN_CLUB_FLAG(gSpecialVar_0x8004); } -static void sub_8113390(struct Var4038Struct * a0) +static void SetInitialFansOfPlayer(struct TrainerFanClub *fanClub) { - a0->unk_1 |= 1; - a0->unk_1 |= 2; - a0->unk_1 |= 4; + SET_TRAINER_FAN_CLUB_FLAG(FANCLUB_MEMBER1); + SET_TRAINER_FAN_CLUB_FLAG(FANCLUB_MEMBER2); + SET_TRAINER_FAN_CLUB_FLAG(FANCLUB_MEMBER3); } -void BufferStreakTrainerText(void) +void Special_BufferFanClubTrainerName(void) { - u8 r3 = 0; - u8 r2 = 0; + u8 whichLinkTrainer = 0; + u8 whichNPCTrainer = 0; switch (gSpecialVar_0x8004) { - case 0: - r2 = 0; - r3 = 0; + case FANCLUB_MEMBER1: + whichNPCTrainer = 0; + whichLinkTrainer = 0; break; - case 1: - case 2: - case 3: - case 7: + case FANCLUB_MEMBER2: + case FANCLUB_MEMBER3: + case FANCLUB_MEMBER4: + case FANCLUB_MEMBER8: break; - case 4: - r2 = 1; - r3 = 0; + case FANCLUB_MEMBER5: + whichNPCTrainer = 1; + whichLinkTrainer = 0; break; - case 5: - r2 = 0; - r3 = 1; + case FANCLUB_MEMBER6: + whichNPCTrainer = 0; + whichLinkTrainer = 1; break; - case 6: - r2 = 2; - r3 = 1; + case FANCLUB_MEMBER7: + whichNPCTrainer = 2; + whichLinkTrainer = 1; break; } - sub_8113414(&gSaveBlock2Ptr->linkBattleRecords, r3, r2); + BufferFanClubTrainerName(&gSaveBlock2Ptr->linkBattleRecords, whichLinkTrainer, whichNPCTrainer); } -static void sub_8113414(struct LinkBattleRecords * a0, u8 a1, u8 a2) +static void BufferFanClubTrainerName(struct LinkBattleRecords *linkRecords, u8 whichLinkTrainer, u8 whichNPCTrainer) { u8 *str; - const u8 *src = a0->entries[a1].name; - if (src[0] == EOS) + const u8 *linkTrainerName = linkRecords->entries[whichLinkTrainer].name; + if (linkTrainerName[0] == EOS) { - switch (a2) + switch (whichNPCTrainer) { case 0: StringCopy(gStringVar1, gSaveBlock1Ptr->rivalName); break; case 1: - StringCopy(gStringVar1, gUnknown_84178D0); // LT. SURGE + StringCopy(gStringVar1, gText_LtSurge); break; case 2: - StringCopy(gStringVar1, gUnknown_84178DA); // KOGA + StringCopy(gStringVar1, gText_Koga); break; default: StringCopy(gStringVar1, gSaveBlock1Ptr->rivalName); @@ -2365,8 +2411,8 @@ static void sub_8113414(struct LinkBattleRecords * a0, u8 a1, u8 a2) else { str = gStringVar1; - StringCopyN(str, src, 7); - str[7] = EOS; + StringCopyN(str, linkTrainerName, PLAYER_NAME_LENGTH - 1); + str[PLAYER_NAME_LENGTH - 1] = EOS; if ( str[0] == EXT_CTRL_CODE_BEGIN && str[1] == EXT_CTRL_CODE_JPN) { @@ -2380,109 +2426,113 @@ static void sub_8113414(struct LinkBattleRecords * a0, u8 a1, u8 a2) } } -void sub_81134B8(void) +void Special_UpdateTrainerFansAfterLinkBattle(void) { - sub_81134CC(VAR_0x4038_STRUCT); + UpdateTrainerFansAfterLinkBattle(TRAINER_FAN_CLUB); } -static void sub_81134CC(struct Var4038Struct * a0) +static void UpdateTrainerFansAfterLinkBattle(struct TrainerFanClub *fanClub) { if (VarGet(VAR_MAP_SCENE_SAFFRON_CITY_POKEMON_TRAINER_FAN_CLUB) == 2) { - sub_8113078(a0); + TryLoseFansFromPlayTimeAfterLinkBattle(fanClub); if (gBattleOutcome == B_OUTCOME_WON) - sub_8113194(a0); + PlayerGainRandomTrainerFan(fanClub); else - sub_81131FC(a0); + PlayerLoseRandomTrainerFan(fanClub); } } -static bool8 sub_8113508(struct Var4038Struct * a0) +static bool8 DidPlayerGetFirstFans(struct TrainerFanClub *fanClub) { - return a0->unk_0_7; + return fanClub->gotInitialFans; } -void sub_8113510(void) +void Special_SetPlayerGotFirstFans(void) { - sub_8113524(VAR_0x4038_STRUCT); + SetPlayerGotFirstFans(TRAINER_FAN_CLUB); } -static void sub_8113524(struct Var4038Struct * a0) +static void SetPlayerGotFirstFans(struct TrainerFanClub *fanClub) { - a0->unk_0_7 = TRUE; + fanClub->gotInitialFans = TRUE; } -u8 sub_8113530(void) +u8 Special_TryGainNewFanFromCounter(void) { - return sub_8113114(VAR_0x4038_STRUCT, gSpecialVar_0x8004); + return TryGainNewFanFromCounter(TRAINER_FAN_CLUB, gSpecialVar_0x8004); } + +// Probable file boundary, quest_log_events.c below, trainer_fan_club.c above + + static u16 *(*const sQuestLogStorageCBs[])(u16 *, const u16 *) = { - NULL, - NULL, - NULL, - sub_8113F14, - sub_8113F80, - sub_8114174, - sub_81141D0, - sub_811422C, - sub_8114288, - sub_8114310, - sub_8114380, - sub_81143F0, - sub_811445C, - sub_81144EC, - sub_8114578, - sub_8114604, - sub_8114710, - sub_8114744, - sub_8114778, - sub_8114808, - sub_811488C, - sub_8114918, - sub_8114990, - sub_8114A1C, - sub_8114AA0, - sub_8114B0C, - sub_8114B78, - sub_8114BE4, - sub_8114C68, - sub_8114CC0, - sub_8114D4C, - sub_8114DE8, - sub_8114FF0, - sub_8115078, - sub_81151C0, - sub_8115280, - sub_8115410, - sub_81154DC, - sub_81155A4, - NULL, - sub_81156D8, - NULL, - sub_81157DC + [QL_EVENT_0] = NULL, + [QL_EVENT_1] = NULL, + [QL_EVENT_2] = NULL, + [QL_EVENT_SWITCHED_PARTY_ORDER] = BufferQuestLogData_SwitchedPartyOrder, + [QL_EVENT_USED_ITEM] = BufferQuestLogData_UsedItem, + [QL_EVENT_GAVE_HELD_ITEM] = BufferQuestLogData_GaveHeldItemFromPartyMenu, + [QL_EVENT_GAVE_HELD_ITEM_BAG] = BufferQuestLogData_GaveHeldItemFromBagMenu, + [QL_EVENT_GAVE_HELD_ITEM_PC] = BufferQuestLogData_GaveHeldItemFromPC, + [QL_EVENT_TOOK_HELD_ITEM] = BufferQuestLogData_TookHeldItem, + [QL_EVENT_SWAPPED_HELD_ITEM] = BufferQuestLogData_SwappedHeldItem, + [QL_EVENT_SWAPPED_HELD_ITEM_PC] = BufferQuestLogData_SwappedHeldItemFromPC, + [QL_EVENT_USED_PKMN_CENTER] = BufferQuestLogData_UsedPkmnCenter, + [QL_EVENT_LINK_TRADED] = BufferQuestLogData_LinkTraded, + [QL_EVENT_LINK_BATTLED_SINGLE] = BufferQuestLogData_LinkBattledSingle, + [QL_EVENT_LINK_BATTLED_DOUBLE] = BufferQuestLogData_LinkBattledDouble, + [QL_EVENT_LINK_BATTLED_MULTI] = BufferQuestLogData_LinkBattledMulti, + [QL_EVENT_USED_UNION_ROOM] = BufferQuestLogData_UsedUnionRoom, + [QL_EVENT_USED_UNION_ROOM_CHAT] = BufferQuestLogData_UsedUnionRoomChat, + [QL_EVENT_LINK_TRADED_UNION] = BufferQuestLogData_LinkTradedUnionRoom, + [QL_EVENT_LINK_BATTLED_UNION] = BufferQuestLogData_LinkBattledUnionRoom, + [QL_EVENT_SWITCHED_MONS_BETWEEN_BOXES] = BufferQuestLogData_SwitchedMonsBetweenBoxes, + [QL_EVENT_SWITCHED_MONS_WITHIN_BOX] = BufferQuestLogData_SwitchedMonsWithinBox, + [QL_EVENT_SWITCHED_PARTY_MON_FOR_PC_MON] = BufferQuestLogData_SwitchedPartyMonForPCMon, + [QL_EVENT_MOVED_MON_BETWEEN_BOXES] = BufferQuestLogData_MovedMonBetweenBoxes, + [QL_EVENT_MOVED_MON_WITHIN_BOX] = BufferQuestLogData_MovedMonWithinBox, + [QL_EVENT_WITHDREW_MON_PC] = BufferQuestLogData_WithdrewMonFromPC, + [QL_EVENT_DEPOSITED_MON_PC] = BufferQuestLogData_DepositedMonInPC, + [QL_EVENT_SWITCHED_MULTIPLE_MONS] = BufferQuestLogData_SwitchedMultipleMons, + [QL_EVENT_DEPOSITED_ITEM_PC] = BufferQuestLogData_DepositedItemInPC, + [QL_EVENT_WITHDREW_ITEM_PC] = BufferQuestLogData_WithdrewItemFromPC, + [QL_EVENT_DEFEATED_GYM_LEADER] = BufferQuestLogData_DefeatedGymLeader, + [QL_EVENT_DEFEATED_WILD_MON] = BufferQuestLogData_DefeatedWildMon, + [QL_EVENT_DEFEATED_E4_MEMBER] = BufferQuestLogData_DefeatedEliteFourMember, + [QL_EVENT_DEFEATED_CHAMPION] = BufferQuestLogData_DefeatedChampion, + [QL_EVENT_DEFEATED_TRAINER] = BufferQuestLogData_DefeatedTrainer, + [QL_EVENT_DEPARTED] = BufferQuestLogData_DepartedLocation, + [QL_EVENT_USED_FIELD_MOVE] = BufferQuestLogData_UsedFieldMove, + [QL_EVENT_BOUGHT_ITEM] = BufferQuestLogData_BoughtItem, + [QL_EVENT_SOLD_ITEM] = BufferQuestLogData_SoldItem, + [QL_EVENT_39] = NULL, + [QL_EVENT_OBTAINED_ITEM] = BufferQuestLogData_ObtainedItem, + [QL_EVENT_41] = NULL, + [QL_EVENT_ARRIVED] = BufferQuestLogData_ArrivedInLocation }; -void sub_8113550(u16 a0, const u16 *a1) +void SetQuestLogEvent(u16 eventId, const u16 *eventData) { u16 *r1; - if (a0 == 35 && gUnknown_203B048 == 2) + if (eventId == QL_EVENT_DEPARTED && gUnknown_203B048 == 2) { sub_811381C(); return; } sub_811381C(); - if (gUnknown_203ADFA == 2) + if (gQuestLogState == 2) return; - if (a0 < 3 || a0 > 42) + if (!IS_VALID_QL_EVENT(eventId)) return; - if (sub_81136D4() == TRUE) + if (InQuestLogDisabledLocation() == TRUE) return; - if (sub_81138A0(a0, a1) == TRUE) + if (TrySetLinkQuestLogEvent(eventId, eventData) == TRUE) return; if (MenuHelpers_LinkSomething() == TRUE) @@ -2491,54 +2541,54 @@ void sub_8113550(u16 a0, const u16 *a1) if (InUnionRoom() == TRUE) return; - if (sub_8113954(a0, a1) == TRUE) + if (TrySetTrainerBattleQuestLogEvent(eventId, eventData) == TRUE) return; - if (sub_8113A44(a0, a1) == TRUE) + if (IsQuestLogEventWithSpecialEncounterSpecies(eventId, eventData) == TRUE) return; - if (sub_81153E4(a0, a1) == FALSE) + if (sub_81153E4(eventId, eventData) == FALSE) return; if (gUnknown_3005E88 == 0) { - if (sub_8113778(a0, a1) == TRUE) + if (sub_8113778(eventId, eventData) == TRUE) return; - if (a0 != 31 || gUnknown_203AE04 == NULL) + if (eventId != QL_EVENT_DEFEATED_WILD_MON || gUnknown_203AE04 == NULL) { - if (sub_81153A8(a0, a1) == FALSE) + if (sub_81153A8(eventId, eventData) == FALSE) return; - sub_8110AEC(a0); + sub_8110AEC(eventId); } } - else if (a0 == 40) + else if (eventId == QL_EVENT_OBTAINED_ITEM) return; - sub_8113B94(a0); - if (a0 == 31) + sub_8113B94(eventId); + if (eventId == QL_EVENT_DEFEATED_WILD_MON) { if (gUnknown_203AE04 == NULL) { gUnknown_203AE04 = gUnknown_203AE08; - r1 = sQuestLogStorageCBs[a0](gUnknown_203AE04, a1); + r1 = sQuestLogStorageCBs[eventId](gUnknown_203AE04, eventData); } else { - sQuestLogStorageCBs[a0](gUnknown_203AE04, a1); + sQuestLogStorageCBs[eventId](gUnknown_203AE04, eventData); return; } } else { gUnknown_203AE04 = NULL; - r1 = sQuestLogStorageCBs[a0](gUnknown_203AE08, a1); + r1 = sQuestLogStorageCBs[eventId](gUnknown_203AE08, eventData); } if (r1 == NULL) { sub_811231C(); - r1 = sub_8113828(a0, a1); + r1 = sub_8113828(eventId, eventData); if (r1 == NULL) return; } @@ -2549,18 +2599,38 @@ void sub_8113550(u16 a0, const u16 *a1) sub_811231C(); } -static bool8 sub_81136D4(void) -{ - if (gSaveBlock1Ptr->location.mapGroup == 2 && (gSaveBlock1Ptr->location.mapNum == 1 || gSaveBlock1Ptr->location.mapNum == 2 || gSaveBlock1Ptr->location.mapNum == 3 || gSaveBlock1Ptr->location.mapNum == 4 || gSaveBlock1Ptr->location.mapNum == 5 || gSaveBlock1Ptr->location.mapNum == 6 || gSaveBlock1Ptr->location.mapNum == 7 || gSaveBlock1Ptr->location.mapNum == 8 || gSaveBlock1Ptr->location.mapNum == 9 || gSaveBlock1Ptr->location.mapNum == 10 || gSaveBlock1Ptr->location.mapNum == 11)) +static bool8 InQuestLogDisabledLocation(void) +{ + // In Trainer Tower + if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(SEVEN_ISLAND_TRAINER_TOWER_1F) + && (gSaveBlock1Ptr->location.mapNum == MAP_NUM(SEVEN_ISLAND_TRAINER_TOWER_1F) + || gSaveBlock1Ptr->location.mapNum == MAP_NUM(SEVEN_ISLAND_TRAINER_TOWER_2F) + || gSaveBlock1Ptr->location.mapNum == MAP_NUM(SEVEN_ISLAND_TRAINER_TOWER_3F) + || gSaveBlock1Ptr->location.mapNum == MAP_NUM(SEVEN_ISLAND_TRAINER_TOWER_4F) + || gSaveBlock1Ptr->location.mapNum == MAP_NUM(SEVEN_ISLAND_TRAINER_TOWER_5F) + || gSaveBlock1Ptr->location.mapNum == MAP_NUM(SEVEN_ISLAND_TRAINER_TOWER_6F) + || gSaveBlock1Ptr->location.mapNum == MAP_NUM(SEVEN_ISLAND_TRAINER_TOWER_7F) + || gSaveBlock1Ptr->location.mapNum == MAP_NUM(SEVEN_ISLAND_TRAINER_TOWER_8F) + || gSaveBlock1Ptr->location.mapNum == MAP_NUM(SEVEN_ISLAND_TRAINER_TOWER_ROOF) + || gSaveBlock1Ptr->location.mapNum == MAP_NUM(SEVEN_ISLAND_TRAINER_TOWER_LOBBY) + || gSaveBlock1Ptr->location.mapNum == MAP_NUM(SEVEN_ISLAND_TRAINER_TOWER_ELEVATOR))) return TRUE; - if (gSaveBlock1Ptr->location.mapGroup == 14 && gSaveBlock1Ptr->location.mapNum == 9) + // In pokemon trainer fan club + if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(SAFFRON_CITY_POKEMON_TRAINER_FAN_CLUB) && gSaveBlock1Ptr->location.mapNum == MAP_NUM(SAFFRON_CITY_POKEMON_TRAINER_FAN_CLUB)) return TRUE; - if (gSaveBlock1Ptr->location.mapGroup == 31 && (gSaveBlock1Ptr->location.mapNum == 0 || gSaveBlock1Ptr->location.mapNum == 1)) + // In E-Reader house + if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(SEVEN_ISLAND_HOUSE_ROOM1) && + (gSaveBlock1Ptr->location.mapNum == MAP_NUM(SEVEN_ISLAND_HOUSE_ROOM1) + || gSaveBlock1Ptr->location.mapNum == MAP_NUM(SEVEN_ISLAND_HOUSE_ROOM2))) return TRUE; - if ((gSaveBlock1Ptr->location.mapGroup == 1 && gSaveBlock1Ptr->location.mapNum == 46) || (gSaveBlock1Ptr->location.mapGroup == 1 && gSaveBlock1Ptr->location.mapNum == 58) || (gSaveBlock1Ptr->location.mapGroup == 2 && gSaveBlock1Ptr->location.mapNum == 11) || (gSaveBlock1Ptr->location.mapGroup == 10 && gSaveBlock1Ptr->location.mapNum == 6)) + // In elevator + if ((gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(ROCKET_HIDEOUT_ELEVATOR) && gSaveBlock1Ptr->location.mapNum == MAP_NUM(ROCKET_HIDEOUT_ELEVATOR)) + || (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(SILPH_CO_ELEVATOR) && gSaveBlock1Ptr->location.mapNum == MAP_NUM(SILPH_CO_ELEVATOR)) + || (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(SEVEN_ISLAND_TRAINER_TOWER_ELEVATOR) && gSaveBlock1Ptr->location.mapNum == MAP_NUM(SEVEN_ISLAND_TRAINER_TOWER_ELEVATOR)) + || (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(CELADON_CITY_DEPARTMENT_STORE_ELEVATOR) && gSaveBlock1Ptr->location.mapNum == MAP_NUM(CELADON_CITY_DEPARTMENT_STORE_ELEVATOR))) return TRUE; return FALSE; @@ -2568,47 +2638,56 @@ static bool8 sub_81136D4(void) bool8 sub_8113748(void) { - if (sub_81136D4() != TRUE) + if (InQuestLogDisabledLocation() != TRUE) return FALSE; - if (gUnknown_203ADFA == 2) + if (gQuestLogState == 2) return TRUE; - if (gUnknown_203ADFA == 1) + if (gQuestLogState == 1) sub_8112364(); return FALSE; } -static bool8 sub_8113778(u16 a0, const u16 *a1) +static bool8 sub_8113778(u16 eventId, const u16 *eventData) { - if (a0 == 36 || a0 == 11) + if (eventId == QL_EVENT_USED_FIELD_MOVE || eventId == QL_EVENT_USED_PKMN_CENTER) return TRUE; if (!FlagGet(FLAG_SYS_GAME_CLEAR)) { - if (a0 == 3 || a0 == 31 || sub_81137E4(a0, a1) == TRUE) + if (eventId == QL_EVENT_SWITCHED_PARTY_ORDER || eventId == QL_EVENT_DEFEATED_WILD_MON || sub_81137E4(eventId, eventData) == TRUE) return TRUE; } if (!FlagGet(FLAG_SYS_CAN_LINK_WITH_RS)) { - if (a0 == 4 || a0 == 5 || a0 == 6 || a0 == 7 || a0 == 8 || a0 == 9 || a0 == 10 || a0 == 22 || a0 == 25 || a0 == 26) + if (eventId == QL_EVENT_USED_ITEM + || eventId == QL_EVENT_GAVE_HELD_ITEM + || eventId == QL_EVENT_GAVE_HELD_ITEM_BAG + || eventId == QL_EVENT_GAVE_HELD_ITEM_PC + || eventId == QL_EVENT_TOOK_HELD_ITEM + || eventId == QL_EVENT_SWAPPED_HELD_ITEM + || eventId == QL_EVENT_SWAPPED_HELD_ITEM_PC + || eventId == QL_EVENT_SWITCHED_PARTY_MON_FOR_PC_MON + || eventId == QL_EVENT_WITHDREW_MON_PC + || eventId == QL_EVENT_DEPOSITED_MON_PC) return TRUE; } return FALSE; } -static bool8 sub_81137E4(u16 a0, const u16 *a1) +static bool8 sub_81137E4(u16 eventId, const u16 *eventData) { - if (a0 == 34) + if (eventId == QL_EVENT_DEFEATED_TRAINER) { - u8 trainerClass = gTrainers[*a1].trainerClass; - if ( trainerClass == 0x51 - || trainerClass == 0x59 - || trainerClass == 0x5A - || trainerClass == 0x53) + u8 trainerClass = gTrainers[*eventData].trainerClass; + if ( trainerClass == CLASS_RIVAL + || trainerClass == CLASS_RIVAL_2 + || trainerClass == CLASS_CHAMPION_2 + || trainerClass == CLASS_BOSS) return FALSE; return TRUE; } @@ -2620,39 +2699,39 @@ static void sub_811381C(void) gUnknown_203B048 = 0; } -static u16 *sub_8113828(u16 a0, const u16 *a1) +static u16 *sub_8113828(u16 eventId, const u16 *eventData) { - if (sub_8113778(a0, a1) == TRUE) + if (sub_8113778(eventId, eventData) == TRUE) return NULL; - if (sub_81153A8(a0, a1) == FALSE) + if (sub_81153A8(eventId, eventData) == FALSE) return NULL; - sub_8110AEC(a0); - sub_8113B94(a0); + sub_8110AEC(eventId); + sub_8113B94(eventId); - if (a0 == 31) + if (eventId == QL_EVENT_DEFEATED_WILD_MON) gUnknown_203AE04 = gUnknown_203AE08; else gUnknown_203AE04 = NULL; - return sQuestLogStorageCBs[a0](gUnknown_203AE08, a1); + return sQuestLogStorageCBs[eventId](gUnknown_203AE08, eventData); } -static bool8 sub_81138A0(u16 a0, const u16 *a1) +static bool8 TrySetLinkQuestLogEvent(u16 eventId, const u16 *eventData) { - if (a0 < 12 || a0 > 19) + if (!IS_LINK_QL_EVENT(eventId)) return FALSE; sub_81138F8(); - gUnknown_203B024.unk_00 = a0; + gUnknown_203B024.unk_00 = eventId; - if (a0 < 16 || a0 > 17) + if (eventId != QL_EVENT_USED_UNION_ROOM && eventId != QL_EVENT_USED_UNION_ROOM_CHAT) { - if (a0 == 12 || a0 == 18) - memcpy(gUnknown_203B024.unk_04, a1, 12); + if (eventId == QL_EVENT_LINK_TRADED || eventId == QL_EVENT_LINK_TRADED_UNION) + memcpy(gUnknown_203B024.unk_04, eventData, 12); else - memcpy(gUnknown_203B024.unk_04, a1, 24); + memcpy(gUnknown_203B024.unk_04, eventData, 24); } return TRUE; } @@ -2664,7 +2743,7 @@ void sub_81138F8(void) void sub_811390C(void) { - if (gUnknown_203B024.unk_00 != 0) + if (gUnknown_203B024.unk_00 != QL_EVENT_0) { u16 *resp; gUnknown_203B04A = 0; @@ -2675,22 +2754,26 @@ void sub_811390C(void) } } -static bool8 sub_8113954(u16 a0, const u16 *a1) +static bool8 TrySetTrainerBattleQuestLogEvent(u16 eventId, const u16 *eventData) { - if (a0 != 34 && a0 != 30 && a0 != 32 && a0 != 33) + if (eventId != QL_EVENT_DEFEATED_TRAINER + && eventId != QL_EVENT_DEFEATED_GYM_LEADER + && eventId != QL_EVENT_DEFEATED_E4_MEMBER + && eventId != QL_EVENT_DEFEATED_CHAMPION) return FALSE; + sub_81138F8(); - if (gUnknown_3005E88 || FlagGet(FLAG_SYS_GAME_CLEAR) || sub_81137E4(a0, a1) != TRUE) + if (gUnknown_3005E88 || FlagGet(FLAG_SYS_GAME_CLEAR) || sub_81137E4(eventId, eventData) != TRUE) { - gUnknown_203B024.unk_00 = a0; - memcpy(gUnknown_203B024.unk_04, a1, 8); + gUnknown_203B024.unk_00 = eventId; + memcpy(gUnknown_203B024.unk_04, eventData, 8); } return TRUE; } void sub_81139BC(void) { - if (gUnknown_203B024.unk_00 != 0) + if (gUnknown_203B024.unk_00 != QL_EVENT_0) { u16 *resp; if (gUnknown_3005E88 == 0) @@ -2713,128 +2796,131 @@ static void sub_8113A1C(u16 a0) sQuestLogIdx++; } -static bool8 sub_8113A44(u16 a0, const u16 *a1) +static bool8 IsQuestLogEventWithSpecialEncounterSpecies(u16 eventId, const u16 *eventData) { - if (a0 != 31) + if (eventId != QL_EVENT_DEFEATED_WILD_MON) return FALSE; - if (sub_8114FBC(a1[0]) == TRUE) + if (IsSpeciesFromSpecialEncounter(eventData[0]) == TRUE) return TRUE; - if (sub_8114FBC(a1[1]) == TRUE) + if (IsSpeciesFromSpecialEncounter(eventData[1]) == TRUE) return TRUE; return FALSE; } -static const u16 *(*const sQuestLogScriptParsingCBs[])(const u16 *) = { - NULL, - NULL, - NULL, - sub_8113F3C, - sub_8113FBC, - sub_8114188, - sub_81141E4, - sub_8114240, - sub_811429C, - sub_8114324, - sub_8114394, - sub_811443C, - sub_811448C, - sub_8114518, - sub_81145A4, - sub_811464C, - sub_8114724, - sub_8114758, - sub_81147A8, - sub_8114834, - sub_81148BC, - sub_8114944, - sub_81149D0, - sub_8114A4C, - sub_8114AC8, - sub_8114B34, - sub_8114BA0, - sub_8114C0C, - sub_8114C8C, - sub_8114CE4, - sub_8114D68, - sub_8114E68, - sub_811500C, - sub_81150CC, - sub_81151DC, - sub_81152BC, - sub_8115460, - sub_8115518, - sub_81155E0, - NULL, - sub_8115700, - NULL, - sub_8115800 +static const u16 *(*const sQuestLogEventTextBufferCBs[])(const u16 *) = { + [QL_EVENT_0] = NULL, + [QL_EVENT_1] = NULL, + [QL_EVENT_2] = NULL, + [QL_EVENT_SWITCHED_PARTY_ORDER] = BufferQuestLogText_SwitchedPartyOrder, + [QL_EVENT_USED_ITEM] = BufferQuestLogText_UsedItem, + [QL_EVENT_GAVE_HELD_ITEM] = BufferQuestLogText_GaveHeldItemFromPartyMenu, + [QL_EVENT_GAVE_HELD_ITEM_BAG] = BufferQuestLogText_GaveHeldItemFromBagMenu, + [QL_EVENT_GAVE_HELD_ITEM_PC] = BufferQuestLogText_GaveHeldItemFromPC, + [QL_EVENT_TOOK_HELD_ITEM] = BufferQuestLogText_TookHeldItem, + [QL_EVENT_SWAPPED_HELD_ITEM] = BufferQuestLogText_SwappedHeldItem, + [QL_EVENT_SWAPPED_HELD_ITEM_PC] = BufferQuestLogText_SwappedHeldItemFromPC, + [QL_EVENT_USED_PKMN_CENTER] = BufferQuestLogText_UsedPkmnCenter, + [QL_EVENT_LINK_TRADED] = BufferQuestLogText_LinkTraded, + [QL_EVENT_LINK_BATTLED_SINGLE] = BufferQuestLogText_LinkBattledSingle, + [QL_EVENT_LINK_BATTLED_DOUBLE] = BufferQuestLogText_LinkBattledDouble, + [QL_EVENT_LINK_BATTLED_MULTI] = BufferQuestLogText_LinkBattledMulti, + [QL_EVENT_USED_UNION_ROOM] = BufferQuestLogText_UsedUnionRoom, + [QL_EVENT_USED_UNION_ROOM_CHAT] = BufferQuestLogText_UsedUnionRoomChat, + [QL_EVENT_LINK_TRADED_UNION] = BufferQuestLogText_LinkTradedUnionRoom, + [QL_EVENT_LINK_BATTLED_UNION] = BufferQuestLogText_LinkBattledUnionRoom, + [QL_EVENT_SWITCHED_MONS_BETWEEN_BOXES] = BufferQuestLogText_SwitchedMonsBetweenBoxes, + [QL_EVENT_SWITCHED_MONS_WITHIN_BOX] = BufferQuestLogText_SwitchedMonsWithinBox, + [QL_EVENT_SWITCHED_PARTY_MON_FOR_PC_MON] = BufferQuestLogText_SwitchedPartyMonForPCMon, + [QL_EVENT_MOVED_MON_BETWEEN_BOXES] = BufferQuestLogText_MovedMonBetweenBoxes, + [QL_EVENT_MOVED_MON_WITHIN_BOX] = BufferQuestLogText_MovedMonWithinBox, + [QL_EVENT_WITHDREW_MON_PC] = BufferQuestLogText_WithdrewMonFromPC, + [QL_EVENT_DEPOSITED_MON_PC] = BufferQuestLogText_DepositedMonInPC, + [QL_EVENT_SWITCHED_MULTIPLE_MONS] = BufferQuestLogText_SwitchedMultipleMons, + [QL_EVENT_DEPOSITED_ITEM_PC] = BufferQuestLogText_DepositedItemInPC, + [QL_EVENT_WITHDREW_ITEM_PC] = BufferQuestLogText_WithdrewItemFromPC, + [QL_EVENT_DEFEATED_GYM_LEADER] = BufferQuestLogText_DefeatedGymLeader, + [QL_EVENT_DEFEATED_WILD_MON] = BufferQuestLogText_DefeatedWildMon, + [QL_EVENT_DEFEATED_E4_MEMBER] = BufferQuestLogText_DefeatedEliteFourMember, + [QL_EVENT_DEFEATED_CHAMPION] = BufferQuestLogText_DefeatedChampion, + [QL_EVENT_DEFEATED_TRAINER] = BufferQuestLogText_DefeatedTrainer, + [QL_EVENT_DEPARTED] = BufferQuestLogText_DepartedLocation, + [QL_EVENT_USED_FIELD_MOVE] = BufferQuestLogText_UsedFieldMove, + [QL_EVENT_BOUGHT_ITEM] = BufferQuestLogText_BoughtItem, + [QL_EVENT_SOLD_ITEM] = BufferQuestLogText_SoldItem, + [QL_EVENT_39] = NULL, + [QL_EVENT_OBTAINED_ITEM] = BufferQuestLogText_ObtainedItem, + [QL_EVENT_41] = NULL, + [QL_EVENT_ARRIVED] = BufferQuestLogText_ArrivedInLocation }; static const u8 sQuestLogEventCmdSizes[] = { - 0x08, - 0x08, - 0x08, - 0x08, - 0x0a, - 0x08, - 0x08, - 0x08, - 0x08, - 0x0a, - 0x0a, - 0x04, - 0x10, - 0x0c, - 0x0c, - 0x1a, - 0x04, - 0x04, - 0x10, - 0x0c, - 0x0a, - 0x0a, - 0x0a, - 0x08, - 0x08, - 0x08, - 0x08, - 0x06, - 0x06, - 0x06, - 0x0c, - 0x0c, - 0x0c, - 0x0a, - 0x0c, - 0x06, - 0x08, - 0x0e, - 0x0e, - 0x02, - 0x08, - 0x04, - 0x06 + [QL_EVENT_0] = 0x08, + [QL_EVENT_1] = 0x08, + [QL_EVENT_2] = 0x08, + [QL_EVENT_SWITCHED_PARTY_ORDER] = 0x08, + [QL_EVENT_USED_ITEM] = 0x0a, + [QL_EVENT_GAVE_HELD_ITEM] = 0x08, + [QL_EVENT_GAVE_HELD_ITEM_BAG] = 0x08, + [QL_EVENT_GAVE_HELD_ITEM_PC] = 0x08, + [QL_EVENT_TOOK_HELD_ITEM] = 0x08, + [QL_EVENT_SWAPPED_HELD_ITEM] = 0x0a, + [QL_EVENT_SWAPPED_HELD_ITEM_PC] = 0x0a, + [QL_EVENT_USED_PKMN_CENTER] = 0x04, + [QL_EVENT_LINK_TRADED] = 0x10, + [QL_EVENT_LINK_BATTLED_SINGLE] = 0x0c, + [QL_EVENT_LINK_BATTLED_DOUBLE] = 0x0c, + [QL_EVENT_LINK_BATTLED_MULTI] = 0x1a, + [QL_EVENT_USED_UNION_ROOM] = 0x04, + [QL_EVENT_USED_UNION_ROOM_CHAT] = 0x04, + [QL_EVENT_LINK_TRADED_UNION] = 0x10, + [QL_EVENT_LINK_BATTLED_UNION] = 0x0c, + [QL_EVENT_SWITCHED_MONS_BETWEEN_BOXES] = 0x0a, + [QL_EVENT_SWITCHED_MONS_WITHIN_BOX] = 0x0a, + [QL_EVENT_SWITCHED_PARTY_MON_FOR_PC_MON] = 0x0a, + [QL_EVENT_MOVED_MON_BETWEEN_BOXES] = 0x08, + [QL_EVENT_MOVED_MON_WITHIN_BOX] = 0x08, + [QL_EVENT_WITHDREW_MON_PC] = 0x08, + [QL_EVENT_DEPOSITED_MON_PC] = 0x08, + [QL_EVENT_SWITCHED_MULTIPLE_MONS] = 0x06, + [QL_EVENT_DEPOSITED_ITEM_PC] = 0x06, + [QL_EVENT_WITHDREW_ITEM_PC] = 0x06, + [QL_EVENT_DEFEATED_GYM_LEADER] = 0x0c, + [QL_EVENT_DEFEATED_WILD_MON] = 0x0c, + [QL_EVENT_DEFEATED_E4_MEMBER] = 0x0c, + [QL_EVENT_DEFEATED_CHAMPION] = 0x0a, + [QL_EVENT_DEFEATED_TRAINER] = 0x0c, + [QL_EVENT_DEPARTED] = 0x06, + [QL_EVENT_USED_FIELD_MOVE] = 0x08, + [QL_EVENT_BOUGHT_ITEM] = 0x0e, + [QL_EVENT_SOLD_ITEM] = 0x0e, + [QL_EVENT_39] = 0x02, + [QL_EVENT_OBTAINED_ITEM] = 0x08, + [QL_EVENT_41] = 0x04, + [QL_EVENT_ARRIVED] = 0x06 }; static u16 *QuestLog_SkipCommand(u16 *curPtr, u16 **prevPtr_p) { - u16 idx = curPtr[0] & 0xfff; + u16 eventId = curPtr[0] & 0xfff; u16 cnt = curPtr[0] >> 12; - if (idx == 33) + + if (eventId == QL_EVENT_DEFEATED_CHAMPION) cnt = 0; - if (idx < 3 || idx > 42) + + if (!IS_VALID_QL_EVENT(eventId)) return NULL; + *prevPtr_p = curPtr; - return sQuestLogEventCmdSizes[idx] + (sQuestLogEventCmdSizes[idx] - 4) * cnt + (void *)curPtr; + return sQuestLogEventCmdSizes[eventId] + (sQuestLogEventCmdSizes[eventId] - 4) * cnt + (void *)curPtr; } static void sub_8113ABC(const u16 *a0) { const u8 *r2 = (const u8 *)(a0 + 2); - if ((a0[0] & 0xFFF) != 35) + if ((a0[0] & 0xFFF) != QL_EVENT_DEPARTED) gUnknown_203B04A = 0; else gUnknown_203B04A = r2[1] + 1; @@ -2851,7 +2937,7 @@ static bool8 sub_8113AE8(const u16 *a0) if (r0 == NULL || r0[1] > sQuestLogIdx) return FALSE; - sQuestLogScriptParsingCBs[a0[0] & 0xFFF](a0); + sQuestLogEventTextBufferCBs[a0[0] & 0xFFF](a0); gUnknown_203B044.unk_0 = a0[0]; gUnknown_203B044.unk_1 = (a0[0] & 0xF000) >> 12; if (gUnknown_203B044.unk_1 != 0) @@ -2864,7 +2950,7 @@ static bool8 sub_8113B44(const u16 *a0) if (gUnknown_203B044.unk_2 == 0) return FALSE; - sQuestLogScriptParsingCBs[gUnknown_203B044.unk_0](a0); + sQuestLogEventTextBufferCBs[gUnknown_203B044.unk_0](a0); gUnknown_203B044.unk_2++; if (gUnknown_203B044.unk_2 > gUnknown_203B044.unk_1) sub_8113B88(); @@ -2876,11 +2962,11 @@ static void sub_8113B88(void) gUnknown_203B044 = (struct UnkStruct_203B044){}; } -static void sub_8113B94(u16 a0) +static void sub_8113B94(u16 eventId) { - if (gUnknown_203B044.unk_0 != (u8)a0 || gUnknown_203B044.unk_2 != sQuestLogIdx) + if (gUnknown_203B044.unk_0 != (u8)eventId || gUnknown_203B044.unk_2 != sQuestLogIdx) { - gUnknown_203B044.unk_0 = a0; + gUnknown_203B044.unk_0 = eventId; gUnknown_203B044.unk_1 = 0; gUnknown_203B044.unk_2 = sQuestLogIdx; } @@ -2892,20 +2978,20 @@ static void sub_8113BD8(void) { gUnknown_203B049 = 0; gUnknown_203B04A = 0; - gUnknown_203B04B = 0; + gUnknown_203B04B = FALSE; } static u16 *sub_8113BF4(u16 *a0) { - if (!sub_8110988(a0, sQuestLogEventCmdSizes[39])) + if (!sub_8110988(a0, sQuestLogEventCmdSizes[QL_EVENT_39])) return NULL; - a0[0] = 39; + a0[0] = QL_EVENT_39; return a0 + 1; } static u16 *sub_8113C20(u16 *a0, struct UnkStruct_203AE98 * a1) { - if (!sub_8110988(a0, sQuestLogEventCmdSizes[39])) + if (!sub_8110988(a0, sQuestLogEventCmdSizes[QL_EVENT_39])) return NULL; a1->unk_6 = 0xFF; a1->unk_4 = 0; @@ -2918,16 +3004,16 @@ static u16 *sub_8113C20(u16 *a0, struct UnkStruct_203AE98 * a1) static u16 *sub_8113C5C(u16 *a0, u16 a1) { - if (!sub_8110988(a0, sQuestLogEventCmdSizes[41])) + if (!sub_8110988(a0, sQuestLogEventCmdSizes[QL_EVENT_41])) return NULL; - a0[0] = 41; + a0[0] = QL_EVENT_41; a0[1] = a1; return a0 + 2; } static u16 *sub_8113C8C(u16 *a0, struct UnkStruct_203AE98 * a1) { - if (!sub_8110988(a0, sQuestLogEventCmdSizes[41])) + if (!sub_8110988(a0, sQuestLogEventCmdSizes[QL_EVENT_41])) return NULL; a1->unk_6 = 0xFE; a1->unk_4 = a0[1]; @@ -2942,7 +3028,7 @@ static u16 *sub_8113CC8(u16 *a0, struct UnkStruct_203AE98 * a1) { u8 *r6 = (u8 *)a0 + 4; - if (!sub_8110988(a0, sQuestLogEventCmdSizes[0])) + if (!sub_8110988(a0, sQuestLogEventCmdSizes[QL_EVENT_0])) return NULL; a0[0] = 0; a0[1] = a1->unk_4; @@ -2957,7 +3043,7 @@ static u16 *sub_8113D08(u16 *a0, struct UnkStruct_203AE98 * a1) { u8 *r6 = (u8 *)a0 + 4; - if (!sub_8110988(a0, sQuestLogEventCmdSizes[0])) + if (!sub_8110988(a0, sQuestLogEventCmdSizes[QL_EVENT_0])) return NULL; a1->unk_6 = 2; a1->unk_4 = a0[1]; @@ -2973,7 +3059,7 @@ static u16 *sub_8113D48(u16 *a0, struct UnkStruct_203AE98 * a1) u16 *r4 = a0; u8 *r6 = (u8 *)a0 + 4; - if (!sub_8110988(r4, sQuestLogEventCmdSizes[2])) + if (!sub_8110988(r4, sQuestLogEventCmdSizes[QL_EVENT_2])) return NULL; if (a1->unk_6 == 0) r4[0] = 2; @@ -2992,7 +3078,7 @@ static u16 *sub_8113D94(u16 *a0, struct UnkStruct_203AE98 * a1) u16 *r5 = a0; u8 *r6 = (u8 *)a0 + 4; - if (!sub_8110988(r5, sQuestLogEventCmdSizes[2])) + if (!sub_8110988(r5, sQuestLogEventCmdSizes[QL_EVENT_2])) return NULL; if (r5[0] == 2) a1->unk_6 = 0; @@ -3006,33 +3092,33 @@ static u16 *sub_8113D94(u16 *a0, struct UnkStruct_203AE98 * a1) return (u16 *)(r6 + 4); } -u16 *sub_8113DE0(u16 a0, u16 *a1) +u16 *sub_8113DE0(u16 eventId, u16 *a1) { - u8 r6; + u8 cmdSize; u16 *r5; u8 r4; u8 r1; if (gUnknown_203B044.unk_1 == 0) - r6 = sQuestLogEventCmdSizes[a0]; + cmdSize = sQuestLogEventCmdSizes[eventId]; else - r6 = sQuestLogEventCmdSizes[a0] - 4; - if (!sub_8110944(a1, r6)) + cmdSize = sQuestLogEventCmdSizes[eventId] - 4; + if (!sub_8110944(a1, cmdSize)) return NULL; r5 = (void *)a1; if (gUnknown_203B044.unk_1 != 0) - r5 = (void *)r5 - (gUnknown_203B044.unk_1 * r6 + 4); + r5 = (void *)r5 - (gUnknown_203B044.unk_1 * cmdSize + 4); if (gUnknown_203B044.unk_1 == 5) { for (r4 = 0; r4 < 4; r4++) { memcpy( - (void *)r5 + (r4 * r6 + 4), - (void *)r5 + ((r4 + 1) * r6 + 4), - r6 + (void *)r5 + (r4 * cmdSize + 4), + (void *)r5 + ((r4 + 1) * cmdSize + 4), + cmdSize ); } r1 = 4; @@ -3040,76 +3126,76 @@ u16 *sub_8113DE0(u16 a0, u16 *a1) else r1 = gUnknown_203B044.unk_1; - r5[0] = a0 + (r1 << 12); + r5[0] = eventId + (r1 << 12); r5[1] = sQuestLogIdx; - r5 = (void *)r5 + (r1 * r6 + 4); + r5 = (void *)r5 + (r1 * cmdSize + 4); return r5; } -static const u16 *sub_8113E88(u16 a0, const u16 *a1) +static const u16 *sub_8113E88(u16 eventId, const u16 *eventData) { - a1 = (const void *)a1 + (gUnknown_203B044.unk_2 * (sQuestLogEventCmdSizes[a0] - 4) + 4); - return a1; + eventData = (const void *)eventData + (gUnknown_203B044.unk_2 * (sQuestLogEventCmdSizes[eventId] - 4) + 4); + return eventData; } -void QuestLog_AutoGetSpeciesName(u16 a0, u8 *a1, u8 a2) +static void QuestLog_GetSpeciesName(u16 species, u8 *dest, u8 stringVarId) { - if (a1 != NULL) + if (dest != NULL) { - if (a0 != SPECIES_EGG) - GetSpeciesName(a1, a0); + if (species != SPECIES_EGG) + GetSpeciesName(dest, species); else - StringCopy(a1, gText_EggNickname); + StringCopy(dest, gText_EggNickname); } else { - if (a0 != SPECIES_EGG) - DynamicPlaceholderTextUtil_SetPlaceholderPtr(a2, gSpeciesNames[a0]); + if (species != SPECIES_EGG) + DynamicPlaceholderTextUtil_SetPlaceholderPtr(stringVarId, gSpeciesNames[species]); else - DynamicPlaceholderTextUtil_SetPlaceholderPtr(a2, gText_EggNickname); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(stringVarId, gText_EggNickname); } } -static u16 *sub_8113F14(u16 *a0, const u16 *a1) +static u16 *BufferQuestLogData_SwitchedPartyOrder(u16 *a0, const u16 *eventData) { - u16 *r2 = sub_8113DE0(3, a0); + u16 *r2 = sub_8113DE0(QL_EVENT_SWITCHED_PARTY_ORDER, a0); if (r2 == NULL) return NULL; - r2[0] = a1[0]; - r2[1] = a1[1]; + r2[0] = eventData[0]; + r2[1] = eventData[1]; return r2 + 2; } -static const u16 *sub_8113F3C(const u16 *a0) +static const u16 *BufferQuestLogText_SwitchedPartyOrder(const u16 *eventData) { - const u16 *r4 = sub_8113E88(3, a0); - QuestLog_AutoGetSpeciesName(r4[0], gStringVar1, 0); - QuestLog_AutoGetSpeciesName(r4[1], gStringVar2, 0); - StringExpandPlaceholders(gStringVar4, gUnknown_841A16F); + const u16 *r4 = sub_8113E88(QL_EVENT_SWITCHED_PARTY_ORDER, eventData); + QuestLog_GetSpeciesName(r4[0], gStringVar1, 0); + QuestLog_GetSpeciesName(r4[1], gStringVar2, 0); + StringExpandPlaceholders(gStringVar4, QuestLog_Text_SwitchMon1WithMon2); r4 += 2; return r4; } -static u16 *sub_8113F80(u16 *a0, const u16 *a1) +static u16 *BufferQuestLogData_UsedItem(u16 *a0, const u16 *eventData) { - u16 *r2 = sub_8113DE0(4, a0); + u16 *r2 = sub_8113DE0(QL_EVENT_USED_ITEM, a0); if (r2 == NULL) return NULL; - r2[0] = a1[0]; - r2[1] = a1[2]; - r2[2] = a1[3]; + r2[0] = eventData[0]; + r2[1] = eventData[2]; + r2[2] = eventData[3]; - if (a1[0] == ITEM_ESCAPE_ROPE) + if (eventData[0] == ITEM_ESCAPE_ROPE) gUnknown_203B048 = 2; return r2 + 3; } -static const u16 *sub_8113FBC(const u16 *a0) +static const u16 *BufferQuestLogText_UsedItem(const u16 *eventData) { - const u16 *r5 = sub_8113E88(4, a0); + const u16 *r5 = sub_8113E88(QL_EVENT_USED_ITEM, eventData); switch (ItemId_GetPocket(r5[0])) { @@ -3120,631 +3206,630 @@ static const u16 *sub_8113FBC(const u16 *a0) if (r5[0] == ITEM_ESCAPE_ROPE) { GetMapNameGeneric(gStringVar2, (u8)r5[2]); - StringExpandPlaceholders(gStringVar4, gUnknown_841AFA6); + StringExpandPlaceholders(gStringVar4, QuestLog_Text_UsedEscapeRope); } else if (r5[1] != 0xFFFF) { - QuestLog_AutoGetSpeciesName(r5[1], gStringVar2, 0); - StringExpandPlaceholders(gStringVar4, gUnknown_841A1E7); + QuestLog_GetSpeciesName(r5[1], gStringVar2, 0); + StringExpandPlaceholders(gStringVar4, QuestLog_Text_UsedItemOnMonAtThisLocation); } else { - StringExpandPlaceholders(gStringVar4, gUnknown_841A210); + StringExpandPlaceholders(gStringVar4, QuestLog_Text_UsedTheItem); } break; case POCKET_KEY_ITEMS: StringCopy(gStringVar1, ItemId_GetName(r5[0])); - StringExpandPlaceholders(gStringVar4, gUnknown_841A220); + StringExpandPlaceholders(gStringVar4, QuestLog_Text_UsedTheKeyItem); break; case POCKET_TM_CASE: - QuestLog_AutoGetSpeciesName(r5[1], gStringVar1, 0); + QuestLog_GetSpeciesName(r5[1], gStringVar1, 0); StringCopy(gStringVar2, gMoveNames[ItemIdToBattleMoveId(r5[0])]); if (r5[2] != 0xFFFF) { StringCopy(gStringVar3, gMoveNames[r5[2]]); if (r5[0] > ITEM_TM50) - StringExpandPlaceholders(gStringVar4, gUnknown_841A965); + StringExpandPlaceholders(gStringVar4, QuestLog_Text_MonReplacedMoveWithHM); else - StringExpandPlaceholders(gStringVar4, gUnknown_841A277); + StringExpandPlaceholders(gStringVar4, QuestLog_Text_MonReplacedMoveWithTM); } else { if (r5[0] > ITEM_TM50) - StringExpandPlaceholders(gStringVar4, gUnknown_841A938); + StringExpandPlaceholders(gStringVar4, QuestLog_Text_MonLearnedMoveFromHM); else - StringExpandPlaceholders(gStringVar4, gUnknown_841A255); + StringExpandPlaceholders(gStringVar4, QuestLog_Text_MonLearnedMoveFromTM); } break; } return r5 + 3; } -u16 *sub_811414C(u16 a0, u16 *a1, const u16 *a2) +u16 *BufferQuestLogData_GiveTakeHeldItem(u16 eventId, u16 *a1, const u16 *eventData) { - u16 *r1 = sub_8113DE0(a0, a1); + u16 *r1 = sub_8113DE0(eventId, a1); if (r1 == NULL) return NULL; - r1[0] = a2[0]; - r1[1] = a2[2]; + r1[0] = eventData[0]; + r1[1] = eventData[2]; return r1 + 2; } -static u16 *sub_8114174(u16 *a0, const u16 *a1) +static u16 *BufferQuestLogData_GaveHeldItemFromPartyMenu(u16 *a0, const u16 *eventData) { - return sub_811414C(5, a0, a1); + return BufferQuestLogData_GiveTakeHeldItem(QL_EVENT_GAVE_HELD_ITEM, a0, eventData); } -static const u16 *sub_8114188(const u16 *a0) +static const u16 *BufferQuestLogText_GaveHeldItemFromPartyMenu(const u16 *eventData) { - const u16 *r4 = sub_8113E88(5, a0); - QuestLog_AutoGetSpeciesName(r4[1], gStringVar1, 0); + const u16 *r4 = sub_8113E88(QL_EVENT_GAVE_HELD_ITEM, eventData); + QuestLog_GetSpeciesName(r4[1], gStringVar1, 0); StringCopy(gStringVar2, ItemId_GetName(r4[0])); - StringExpandPlaceholders(gStringVar4, gUnknown_841AB74); + StringExpandPlaceholders(gStringVar4, QuestLog_Text_GaveMonHeldItem); r4 += 2; return r4; } -static u16 *sub_81141D0(u16 *a0, const u16 *a1) +static u16 *BufferQuestLogData_GaveHeldItemFromBagMenu(u16 *a0, const u16 *eventData) { - return sub_811414C(6, a0, a1); + return BufferQuestLogData_GiveTakeHeldItem(QL_EVENT_GAVE_HELD_ITEM_BAG, a0, eventData); } -static const u16 *sub_81141E4(const u16 *a0) +static const u16 *BufferQuestLogText_GaveHeldItemFromBagMenu(const u16 *eventData) { - const u16 *r4 = sub_8113E88(6, a0); - - QuestLog_AutoGetSpeciesName(r4[1], gStringVar1, 0); + const u16 *r4 = sub_8113E88(QL_EVENT_GAVE_HELD_ITEM_BAG, eventData); + QuestLog_GetSpeciesName(r4[1], gStringVar1, 0); StringCopy(gStringVar2, ItemId_GetName(r4[0])); - StringExpandPlaceholders(gStringVar4, gUnknown_841AB8E); + StringExpandPlaceholders(gStringVar4, QuestLog_Text_GaveMonHeldItem2); r4 += 2; return r4; } -static u16 *sub_811422C(u16 *a0, const u16 *a1) +static u16 *BufferQuestLogData_GaveHeldItemFromPC(u16 *a0, const u16 *eventData) { - return sub_811414C(7, a0, a1); + return BufferQuestLogData_GiveTakeHeldItem(QL_EVENT_GAVE_HELD_ITEM_PC, a0, eventData); } -static const u16 *sub_8114240(const u16 *a0) +static const u16 *BufferQuestLogText_GaveHeldItemFromPC(const u16 *eventData) { - const u16 *r4 = sub_8113E88(7, a0); + const u16 *r4 = sub_8113E88(QL_EVENT_GAVE_HELD_ITEM_PC, eventData); - QuestLog_AutoGetSpeciesName(r4[1], gStringVar2, 0); + QuestLog_GetSpeciesName(r4[1], gStringVar2, 0); StringCopy(gStringVar1, ItemId_GetName(r4[0])); - StringExpandPlaceholders(gStringVar4, gUnknown_841A6A5); + StringExpandPlaceholders(gStringVar4, QuestLog_Text_GaveMonHeldItemFromPC); r4 += 2; return r4; } -static u16 *sub_8114288(u16 *a0, const u16 *a1) +static u16 *BufferQuestLogData_TookHeldItem(u16 *a0, const u16 *eventData) { - return sub_811414C(8, a0, a1); + return BufferQuestLogData_GiveTakeHeldItem(QL_EVENT_TOOK_HELD_ITEM, a0, eventData); } -static const u16 *sub_811429C(const u16 *a0) +static const u16 *BufferQuestLogText_TookHeldItem(const u16 *eventData) { - const u16 *r4 = sub_8113E88(8, a0); + const u16 *r4 = sub_8113E88(QL_EVENT_TOOK_HELD_ITEM, eventData); - QuestLog_AutoGetSpeciesName(r4[1], gStringVar1, 0); + QuestLog_GetSpeciesName(r4[1], gStringVar1, 0); StringCopy(gStringVar2, ItemId_GetName(r4[0])); - StringExpandPlaceholders(gStringVar4, gUnknown_841A1CD); + StringExpandPlaceholders(gStringVar4, QuestLog_Text_TookHeldItemFromMon); r4 += 2; return r4; } -u16 *sub_81142E4(u16 a0, u16 *a1, const u16 *a2) +u16 *BufferQuestLogData_SwappedHeldItem_(u16 eventId, u16 *a1, const u16 *eventData) { - u16 *r1 = sub_8113DE0(a0, a1); + u16 *r1 = sub_8113DE0(eventId, a1); if (r1 == NULL) return NULL; - r1[0] = a2[0]; - r1[1] = a2[1]; - r1[2] = a2[2]; + r1[0] = eventData[0]; + r1[1] = eventData[1]; + r1[2] = eventData[2]; return r1 + 3; } -static u16 *sub_8114310(u16 *a0, const u16 *a1) +static u16 *BufferQuestLogData_SwappedHeldItem(u16 *a0, const u16 *eventData) { - return sub_81142E4(9, a0, a1); + return BufferQuestLogData_SwappedHeldItem_(QL_EVENT_SWAPPED_HELD_ITEM, a0, eventData); } -static const u16 *sub_8114324(const u16 *a0) +static const u16 *BufferQuestLogText_SwappedHeldItem(const u16 *eventData) { - const u16 *r4 = sub_8113E88(9, a0); - QuestLog_AutoGetSpeciesName(r4[2], gStringVar1, 0); - StringCopy(gStringVar2, ItemId_GetName(r4[0])); - StringCopy(gStringVar3, ItemId_GetName(r4[1])); - StringExpandPlaceholders(gStringVar4, gUnknown_841A193); + const u16 *r4 = sub_8113E88(QL_EVENT_SWAPPED_HELD_ITEM, eventData); + QuestLog_GetSpeciesName(r4[2], gStringVar1, 0); + StringCopy(gStringVar2, ItemId_GetName(r4[0])); // Item taken + StringCopy(gStringVar3, ItemId_GetName(r4[1])); // Item given + StringExpandPlaceholders(gStringVar4, QuestLog_Text_SwappedHeldItemsOnMon); r4 += 3; return r4; } -static u16 *sub_8114380(u16 *a0, const u16 *a1) +static u16 *BufferQuestLogData_SwappedHeldItemFromPC(u16 *a0, const u16 *eventData) { - return sub_81142E4(10, a0, a1); + return BufferQuestLogData_SwappedHeldItem_(QL_EVENT_SWAPPED_HELD_ITEM_PC, a0, eventData); } -static const u16 *sub_8114394(const u16 *a0) +static const u16 *BufferQuestLogText_SwappedHeldItemFromPC(const u16 *eventData) { - const u16 *r4 = sub_8113E88(10, a0); - QuestLog_AutoGetSpeciesName(r4[2], gStringVar2, 0); + const u16 *r4 = sub_8113E88(QL_EVENT_SWAPPED_HELD_ITEM_PC, eventData); + QuestLog_GetSpeciesName(r4[2], gStringVar2, 0); StringCopy(gStringVar3, ItemId_GetName(r4[0])); StringCopy(gStringVar1, ItemId_GetName(r4[1])); - StringExpandPlaceholders(gStringVar4, gUnknown_841A6E1); + StringExpandPlaceholders(gStringVar4, QuestLog_Text_SwappedHeldItemFromPC); r4 += 3; return r4; } -static u16 *sub_81143F0(u16 *a0, const u16 *a1) +static u16 *BufferQuestLogData_UsedPkmnCenter(u16 *a0, const u16 *eventData) { u16 *r4 = a0; - if (gUnknown_203B044.unk_0 == 11 && gUnknown_203B044.unk_1 != 0) + if (gUnknown_203B044.unk_0 == QL_EVENT_USED_PKMN_CENTER && gUnknown_203B044.unk_1 != 0) return r4; - if (!sub_8110944(a0, sQuestLogEventCmdSizes[11])) + if (!sub_8110944(a0, sQuestLogEventCmdSizes[QL_EVENT_USED_PKMN_CENTER])) return NULL; - r4[0] = 11; + r4[0] = QL_EVENT_USED_PKMN_CENTER; r4[1] = sQuestLogIdx; return r4 + 2; } -static const u16 *sub_811443C(const u16 *a0) +static const u16 *BufferQuestLogText_UsedPkmnCenter(const u16 *a0) { - StringExpandPlaceholders(gStringVar4, gUnknown_841A2B0); + StringExpandPlaceholders(gStringVar4, QuestLog_Text_MonsWereFullyRestoredAtCenter); a0 += 2; return a0; } -static u16 *sub_811445C(u16 *a0, const u16 *a1) +static u16 *BufferQuestLogData_LinkTraded(u16 *a0, const u16 *eventData) { u16 *r4 = a0 + 4; - a0[0] = 12; + a0[0] = QL_EVENT_LINK_TRADED; a0[1] = sQuestLogIdx; - a0[2] = a1[0]; - a0[3] = a1[1]; - a1 += 2; - memcpy(r4, a1, 7); + a0[2] = eventData[0]; + a0[3] = eventData[1]; + eventData += 2; + memcpy(r4, eventData, 7); r4 += 4; return r4; } -static const u16 *sub_811448C(const u16 *a0) +static const u16 *BufferQuestLogText_LinkTraded(const u16 *a0) { const u16 *r6 = a0 + 4; - memset(gStringVar1, EOS, 8); - memcpy(gStringVar1, r6, 7); + memset(gStringVar1, EOS, PLAYER_NAME_LENGTH); + memcpy(gStringVar1, r6, PLAYER_NAME_LENGTH - 1); - sub_8115834(gStringVar1); - QuestLog_AutoGetSpeciesName(a0[3], gStringVar2, 0); - QuestLog_AutoGetSpeciesName(a0[2], gStringVar3, 0); - StringExpandPlaceholders(gStringVar4, gUnknown_841A3FF); + BufferLinkPartnersName(gStringVar1); + QuestLog_GetSpeciesName(a0[3], gStringVar2, 0); // Mon received + QuestLog_GetSpeciesName(a0[2], gStringVar3, 0); // Mon sent + StringExpandPlaceholders(gStringVar4, QuestLog_Text_TradedMon1ForPersonsMon2); r6 += 4; return r6; } -static const u8 *const gUnknown_8456ACC[] = { - gUnknown_841A74E, - gUnknown_841A756, - gUnknown_841A762 +static const u8 *const sDefeatedOpponentFlavorTexts[] = { + QuestLog_Text_Handily, + QuestLog_Text_Tenaciously, + QuestLog_Text_Somehow }; -static const u8 *const gUnknown_8456AD8[] = { - gUnknown_841AF98, - gUnknown_841A762, - gUnknown_841AF9F +static const u8 *const sDefeatedChampionFlavorTexts[] = { + QuestLog_Text_Coolly, + QuestLog_Text_Somehow, + QuestLog_Text_Barely }; -static const u8 *const gUnknown_8456AE4[] = { - gUnknown_841A502, - gUnknown_841A506, - gUnknown_841AFD1 +static const u8 *const sBattleOutcomeTexts[] = { + QuestLog_Text_Win, + QuestLog_Text_Loss, + QuestLog_Text_Draw }; -static u16 *sub_81144EC(u16 *a0, const u16 *a1) +static u16 *BufferQuestLogData_LinkBattledSingle(u16 *a0, const u16 *eventData) { - a0[0] = 13; + a0[0] = QL_EVENT_LINK_BATTLED_SINGLE; a0[1] = sQuestLogIdx; - *((u8 *)a0 + 4) = *((const u8 *)a1 + 0); - memcpy((u8 *)a0 + 5, (const u8 *)a1 + 1, 7); + *((u8 *)a0 + 4) = *((const u8 *)eventData + 0); + memcpy((u8 *)a0 + 5, (const u8 *)eventData + 1, PLAYER_NAME_LENGTH - 1); a0 += 6; return a0; } -static const u16 *sub_8114518(const u16 *a0) +static const u16 *BufferQuestLogText_LinkBattledSingle(const u16 *a0) { DynamicPlaceholderTextUtil_Reset(); - memset(gStringVar1, EOS, 8); - memcpy(gStringVar1, (const u8 *)a0 + 5, 7); - sub_8115834(gStringVar1); + memset(gStringVar1, EOS, PLAYER_NAME_LENGTH); + memcpy(gStringVar1, (const u8 *)a0 + 5, PLAYER_NAME_LENGTH - 1); + BufferLinkPartnersName(gStringVar1); DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gStringVar1); - DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, gUnknown_8456AE4[((const u8 *)a0)[4]]); - DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841A422); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, sBattleOutcomeTexts[((const u8 *)a0)[4]]); + DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, QuestLog_Text_SingleBattleWithPersonResultedInOutcome); a0 += 6; return a0; } -static u16 *sub_8114578(u16 *a0, const u16 *a1) +static u16 *BufferQuestLogData_LinkBattledDouble(u16 *a0, const u16 *eventData) { - a0[0] = 14; + a0[0] = QL_EVENT_LINK_BATTLED_DOUBLE; a0[1] = sQuestLogIdx; - *((u8 *)a0 + 4) = *((const u8 *)a1 + 0); - memcpy((u8 *)a0 + 5, (const u8 *)a1 + 1, 7); + *((u8 *)a0 + 4) = *((const u8 *)eventData + 0); + memcpy((u8 *)a0 + 5, (const u8 *)eventData + 1, PLAYER_NAME_LENGTH - 1); a0 += 6; return a0; } -static const u16 *sub_81145A4(const u16 *a0) +static const u16 *BufferQuestLogText_LinkBattledDouble(const u16 *a0) { DynamicPlaceholderTextUtil_Reset(); - memset(gStringVar1, EOS, 8); - memcpy(gStringVar1, (const u8 *)a0 + 5, 7); - sub_8115834(gStringVar1); + memset(gStringVar1, EOS, PLAYER_NAME_LENGTH); + memcpy(gStringVar1, (const u8 *)a0 + 5, PLAYER_NAME_LENGTH - 1); + BufferLinkPartnersName(gStringVar1); DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gStringVar1); - DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, gUnknown_8456AE4[((const u8 *)a0)[4]]); - DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841A477); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, sBattleOutcomeTexts[((const u8 *)a0)[4]]); + DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, QuestLog_Text_DoubleBattleWithPersonResultedInOutcome); a0 += 6; return a0; } -static u16 *sub_8114604(u16 *a0, const u16 *a1) +static u16 *BufferQuestLogData_LinkBattledMulti(u16 *a0, const u16 *eventData) { - a0[0] = 15; + a0[0] = QL_EVENT_LINK_BATTLED_MULTI; a0[1] = sQuestLogIdx; - *((u8 *)a0 + 4) = *((const u8 *)a1 + 0); - memcpy((u8 *)a0 + 5, (const u8 *)a1 + 1, 7); - memcpy((u8 *)a0 + 12, (const u8 *)a1 + 8, 7); - memcpy((u8 *)a0 + 19, (const u8 *)a1 + 15, 7); + *((u8 *)a0 + 4) = *((const u8 *)eventData + 0); + memcpy((u8 *)a0 + 5, (const u8 *)eventData + 1, PLAYER_NAME_LENGTH - 1); + memcpy((u8 *)a0 + 12, (const u8 *)eventData + 8, PLAYER_NAME_LENGTH - 1); + memcpy((u8 *)a0 + 19, (const u8 *)eventData + 15, PLAYER_NAME_LENGTH - 1); a0 += 13; return a0; } -static const u16 *sub_811464C(const u16 *a0) +static const u16 *BufferQuestLogText_LinkBattledMulti(const u16 *a0) { DynamicPlaceholderTextUtil_Reset(); - memset(gStringVar1, EOS, 8); - memset(gStringVar2, EOS, 8); - memset(gStringVar3, EOS, 8); + memset(gStringVar1, EOS, PLAYER_NAME_LENGTH); + memset(gStringVar2, EOS, PLAYER_NAME_LENGTH); + memset(gStringVar3, EOS, PLAYER_NAME_LENGTH); StringCopy7(gStringVar1, (const u8 *)a0 + 5); StringCopy7(gStringVar2, (const u8 *)a0 + 12); StringCopy7(gStringVar3, (const u8 *)a0 + 19); - sub_8115834(gStringVar1); - sub_8115834(gStringVar2); - sub_8115834(gStringVar3); + BufferLinkPartnersName(gStringVar1); + BufferLinkPartnersName(gStringVar2); + BufferLinkPartnersName(gStringVar3); DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gSaveBlock2Ptr->playerName); - DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, gStringVar1); - DynamicPlaceholderTextUtil_SetPlaceholderPtr(2, gStringVar2); - DynamicPlaceholderTextUtil_SetPlaceholderPtr(3, gStringVar3); - DynamicPlaceholderTextUtil_SetPlaceholderPtr(4, gUnknown_8456AE4[((const u8 *)a0)[4]]); - DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841A4C6); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, gStringVar1); // partner + DynamicPlaceholderTextUtil_SetPlaceholderPtr(2, gStringVar2); // opponent 1 + DynamicPlaceholderTextUtil_SetPlaceholderPtr(3, gStringVar3); // opponent 2 + DynamicPlaceholderTextUtil_SetPlaceholderPtr(4, sBattleOutcomeTexts[((const u8 *)a0)[4]]); + DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, QuestLog_Text_MultiBattleWithPeopleResultedInOutcome); a0 += 13; return a0; } -static u16 *sub_8114710(u16 *a0, const u16 *a1) +static u16 *BufferQuestLogData_UsedUnionRoom(u16 *a0, const u16 *eventData) { - a0[0] = 16; + a0[0] = QL_EVENT_USED_UNION_ROOM; a0[1] = sQuestLogIdx; return a0 + 2; } -static const u16 *sub_8114724(const u16 *a0) +static const u16 *BufferQuestLogText_UsedUnionRoom(const u16 *a0) { - StringExpandPlaceholders(gStringVar4, gUnknown_841A50B); + StringExpandPlaceholders(gStringVar4, QuestLog_Text_MingledInUnionRoom); a0 += 2; return a0; } -static u16 *sub_8114744(u16 *a0, const u16 *a1) +static u16 *BufferQuestLogData_UsedUnionRoomChat(u16 *a0, const u16 *eventData) { - a0[0] = 17; + a0[0] = QL_EVENT_USED_UNION_ROOM_CHAT; a0[1] = sQuestLogIdx; return a0 + 2; } -static const u16 *sub_8114758(const u16 *a0) +static const u16 *BufferQuestLogText_UsedUnionRoomChat(const u16 *a0) { - StringExpandPlaceholders(gStringVar4, gUnknown_841A732); + StringExpandPlaceholders(gStringVar4, QuestLog_Text_ChattedWithManyTrainers); a0 += 2; return a0; } -static u16 *sub_8114778(u16 *a0, const u16 *a1) +static u16 *BufferQuestLogData_LinkTradedUnionRoom(u16 *a0, const u16 *eventData) { u8 *r4 = (u8 *)(a0 + 4); - a0[0] = 18; + a0[0] = QL_EVENT_LINK_TRADED_UNION; a0[1] = sQuestLogIdx; - a0[2] = a1[0]; - a0[3] = a1[1]; - memcpy(r4, a1 + 2, 7); + a0[2] = eventData[0]; + a0[3] = eventData[1]; + memcpy(r4, eventData + 2, PLAYER_NAME_LENGTH - 1); r4 += 8; return (u16 *)r4; } -static const u16 *sub_81147A8(const u16 *a0) +static const u16 *BufferQuestLogText_LinkTradedUnionRoom(const u16 *a0) { const u8 *r6 = (const u8 *)(a0 + 4); - memset(gStringVar1, EOS, 8); - memcpy(gStringVar1, r6, 7); - sub_8115834(gStringVar1); - QuestLog_AutoGetSpeciesName(a0[3], gStringVar2, 0); - QuestLog_AutoGetSpeciesName(a0[2], gStringVar3, 0); - StringExpandPlaceholders(gStringVar4, gUnknown_841A76A); + memset(gStringVar1, EOS, PLAYER_NAME_LENGTH); + memcpy(gStringVar1, r6, PLAYER_NAME_LENGTH - 1); + BufferLinkPartnersName(gStringVar1); + QuestLog_GetSpeciesName(a0[3], gStringVar2, 0); + QuestLog_GetSpeciesName(a0[2], gStringVar3, 0); + StringExpandPlaceholders(gStringVar4, QuestLog_Text_TradedMon1ForTrainersMon2); r6 += 8; return (const u16 *)r6; } -static u16 *sub_8114808(u16 *a0, const u16 *a1) +static u16 *BufferQuestLogData_LinkBattledUnionRoom(u16 *a0, const u16 *eventData) { - a0[0] = 19; + a0[0] = QL_EVENT_LINK_BATTLED_UNION; a0[1] = sQuestLogIdx; - *(u8 *)&a0[2] = *(const u8 *)&a1[0]; - memcpy((u8 *)a0 + 5, (const u8 *)a1 + 1, 7); + *(u8 *)&a0[2] = *(const u8 *)&eventData[0]; + memcpy((u8 *)a0 + 5, (const u8 *)eventData + 1, PLAYER_NAME_LENGTH - 1); a0 += 6; return a0; } -static const u16 *sub_8114834(const u16 *a0) +static const u16 *BufferQuestLogText_LinkBattledUnionRoom(const u16 *a0) { - memset(gStringVar1, EOS, 8); - memcpy(gStringVar1, (const u8 *)a0 + 5, 7); - sub_8115834(gStringVar1); - StringCopy(gStringVar2, gUnknown_8456AE4[*(const u8 *)&a0[2]]); - StringExpandPlaceholders(gStringVar4, gUnknown_841A7B0); + memset(gStringVar1, EOS, PLAYER_NAME_LENGTH); + memcpy(gStringVar1, (const u8 *)a0 + 5, PLAYER_NAME_LENGTH - 1); + BufferLinkPartnersName(gStringVar1); + StringCopy(gStringVar2, sBattleOutcomeTexts[*(const u8 *)&a0[2]]); + StringExpandPlaceholders(gStringVar4, QuestLog_Text_BattledTrainerEndedInOutcome); a0 += 6; return a0; } -static u16 *sub_811488C(u16 *a0, const u16 *a1) +static u16 *BufferQuestLogData_SwitchedMonsBetweenBoxes(u16 *a0, const u16 *eventData) { - a0 = sub_8113DE0(20, a0); + a0 = sub_8113DE0(QL_EVENT_SWITCHED_MONS_BETWEEN_BOXES, a0); if (a0 == NULL) return NULL; - a0[0] = a1[0]; - a0[1] = a1[1]; - *((u8 *)a0 + 4) = *((const u8 *)a1 + 4); - *((u8 *)a0 + 5) = *((const u8 *)a1 + 5); + a0[0] = eventData[0]; + a0[1] = eventData[1]; + *((u8 *)a0 + 4) = *((const u8 *)eventData + 4); + *((u8 *)a0 + 5) = *((const u8 *)eventData + 5); return a0 + 3; } -static const u16 *sub_81148BC(const u16 *a0) +static const u16 *BufferQuestLogText_SwitchedMonsBetweenBoxes(const u16 *eventData) { const u8 *boxIdxs; - a0 = sub_8113E88(20, a0); - boxIdxs = (const u8 *)a0 + 4; + eventData = sub_8113E88(QL_EVENT_SWITCHED_MONS_BETWEEN_BOXES, eventData); + boxIdxs = (const u8 *)eventData + 4; DynamicPlaceholderTextUtil_Reset(); DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, GetBoxNamePtr(boxIdxs[0])); - QuestLog_AutoGetSpeciesName(a0[0], NULL, 1); + QuestLog_GetSpeciesName(eventData[0], NULL, 1); DynamicPlaceholderTextUtil_SetPlaceholderPtr(2, GetBoxNamePtr(boxIdxs[1])); - QuestLog_AutoGetSpeciesName(a0[1], NULL, 3); - DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841A566); - return a0 + 3; + QuestLog_GetSpeciesName(eventData[1], NULL, 3); + DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, QuestLog_Text_SwitchedMonsBetweenBoxes); + return eventData + 3; } -static u16 *sub_8114918(u16 *a0, const u16 *a1) +static u16 *BufferQuestLogData_SwitchedMonsWithinBox(u16 *a0, const u16 *eventData) { - a0 = sub_8113DE0(21, a0); + a0 = sub_8113DE0(QL_EVENT_SWITCHED_MONS_WITHIN_BOX, a0); if (a0 == NULL) return NULL; - a0[0] = a1[0]; - a0[1] = a1[1]; - *((u8 *)a0 + 4) = *((const u8 *)a1 + 4); + a0[0] = eventData[0]; + a0[1] = eventData[1]; + *((u8 *)a0 + 4) = *((const u8 *)eventData + 4); return a0 + 3; } -static const u16 *sub_8114944(const u16 *a0) +static const u16 *BufferQuestLogText_SwitchedMonsWithinBox(const u16 *eventData) { const u8 *boxIdxs; - a0 = sub_8113E88(21, a0); - boxIdxs = (const u8 *)a0 + 4; + eventData = sub_8113E88(QL_EVENT_SWITCHED_MONS_WITHIN_BOX, eventData); + boxIdxs = (const u8 *)eventData + 4; DynamicPlaceholderTextUtil_Reset(); DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, GetBoxNamePtr(boxIdxs[0])); - QuestLog_AutoGetSpeciesName(a0[0], NULL, 1); - QuestLog_AutoGetSpeciesName(a0[1], NULL, 2); - DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841A5D9); - return a0 + 3; + QuestLog_GetSpeciesName(eventData[0], NULL, 1); + QuestLog_GetSpeciesName(eventData[1], NULL, 2); + DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, QuestLog_Text_SwitchedMonsWithinBox); + return eventData + 3; } -static u16 *sub_8114990(u16 *a0, const u16 *a1) +static u16 *BufferQuestLogData_SwitchedPartyMonForPCMon(u16 *a0, const u16 *eventData) { u16 *r2; u16 *ret; - r2 = sub_8113DE0(22, a0); + r2 = sub_8113DE0(QL_EVENT_SWITCHED_PARTY_MON_FOR_PC_MON, a0); if (r2 == NULL) return NULL; ret = r2 + 2; - if (*((const u8 *)a1 + 4) == TOTAL_BOXES_COUNT) + if (*((const u8 *)eventData + 4) == TOTAL_BOXES_COUNT) { - r2[0] = a1[1]; - r2[1] = a1[0]; - *((u8 *)r2 + 4) = *((const u8 *)a1 + 5); + r2[0] = eventData[1]; + r2[1] = eventData[0]; + *((u8 *)r2 + 4) = *((const u8 *)eventData + 5); } else { - r2[0] = a1[0]; - r2[1] = a1[1]; - *((u8 *)r2 + 4) = *((const u8 *)a1 + 4); + r2[0] = eventData[0]; + r2[1] = eventData[1]; + *((u8 *)r2 + 4) = *((const u8 *)eventData + 4); } return ret + 1; } -static const u16 *sub_81149D0(const u16 *a0) +static const u16 *BufferQuestLogText_SwitchedPartyMonForPCMon(const u16 *eventData) { const u8 *boxIdxs; - a0 = sub_8113E88(22, a0); - boxIdxs = (const u8 *)a0 + 4; + eventData = sub_8113E88(QL_EVENT_SWITCHED_PARTY_MON_FOR_PC_MON, eventData); + boxIdxs = (const u8 *)eventData + 4; DynamicPlaceholderTextUtil_Reset(); DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, GetBoxNamePtr(boxIdxs[0])); - QuestLog_AutoGetSpeciesName(a0[0], NULL, 1); - QuestLog_AutoGetSpeciesName(a0[1], NULL, 2); - DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841A60A); - return a0 + 3; + QuestLog_GetSpeciesName(eventData[0], NULL, 1); + QuestLog_GetSpeciesName(eventData[1], NULL, 2); + DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, QuestLog_Text_SwitchedPartyMonForPCMon); + return eventData + 3; } -static u16 *sub_8114A1C(u16 *a0, const u16 *a1) +static u16 *BufferQuestLogData_MovedMonBetweenBoxes(u16 *a0, const u16 *eventData) { u16 *r2; u16 *ret; - r2 = sub_8113DE0(23, a0); + r2 = sub_8113DE0(QL_EVENT_MOVED_MON_BETWEEN_BOXES, a0); if (r2 == NULL) return NULL; - r2[0] = a1[0]; + r2[0] = eventData[0]; ret = r2 + 1; - *((u8 *)ret + 0) = *((const u8 *)a1 + 4); - *((u8 *)ret + 1) = *((const u8 *)a1 + 5); + *((u8 *)ret + 0) = *((const u8 *)eventData + 4); + *((u8 *)ret + 1) = *((const u8 *)eventData + 5); return ret + 1; } -static const u16 *sub_8114A4C(const u16 *a0) +static const u16 *BufferQuestLogText_MovedMonBetweenBoxes(const u16 *eventData) { const u8 *boxIdxs; - a0 = sub_8113E88(23, a0); - boxIdxs = (const u8 *)a0 + 2; + eventData = sub_8113E88(QL_EVENT_MOVED_MON_BETWEEN_BOXES, eventData); + boxIdxs = (const u8 *)eventData + 2; DynamicPlaceholderTextUtil_Reset(); DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, GetBoxNamePtr(boxIdxs[0])); - QuestLog_AutoGetSpeciesName(a0[0], NULL, 1); + QuestLog_GetSpeciesName(eventData[0], NULL, 1); DynamicPlaceholderTextUtil_SetPlaceholderPtr(2, GetBoxNamePtr(boxIdxs[1])); - DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841A59C); + DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, QuestLog_Text_MovedMonToNewBox); return (const u16 *)boxIdxs + 1; } -static u16 *sub_8114AA0(u16 *a0, const u16 *a1) +static u16 *BufferQuestLogData_MovedMonWithinBox(u16 *a0, const u16 *eventData) { u16 *r2; - r2 = sub_8113DE0(24, a0); + r2 = sub_8113DE0(QL_EVENT_MOVED_MON_WITHIN_BOX, a0); if (r2 == NULL) return NULL; - r2[0] = a1[0]; - *((u8 *)r2 + 2) = *((const u8 *)a1 + 4); + r2[0] = eventData[0]; + *((u8 *)r2 + 2) = *((const u8 *)eventData + 4); return r2 + 2; } -static const u16 *sub_8114AC8(const u16 *a0) +static const u16 *BufferQuestLogText_MovedMonWithinBox(const u16 *eventData) { const u8 *boxIdxs; - a0 = sub_8113E88(24, a0); - boxIdxs = (const u8 *)a0 + 2; + eventData = sub_8113E88(QL_EVENT_MOVED_MON_WITHIN_BOX, eventData); + boxIdxs = (const u8 *)eventData + 2; DynamicPlaceholderTextUtil_Reset(); DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, GetBoxNamePtr(boxIdxs[0])); - QuestLog_AutoGetSpeciesName(a0[0], NULL, 1); - DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841A5FA); + QuestLog_GetSpeciesName(eventData[0], NULL, 1); + DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, QuestLog_Text_MovedMonWithinBox); return (const u16 *)boxIdxs + 1; } -static u16 *sub_8114B0C(u16 *a0, const u16 *a1) +static u16 *BufferQuestLogData_WithdrewMonFromPC(u16 *a0, const u16 *eventData) { u16 *r2; - r2 = sub_8113DE0(25, a0); + r2 = sub_8113DE0(QL_EVENT_WITHDREW_MON_PC, a0); if (r2 == NULL) return NULL; - r2[0] = a1[0]; - *((u8 *)r2 + 2) = *((const u8 *)a1 + 4); + r2[0] = eventData[0]; + *((u8 *)r2 + 2) = *((const u8 *)eventData + 4); return r2 + 2; } -static const u16 *sub_8114B34(const u16 *a0) +static const u16 *BufferQuestLogText_WithdrewMonFromPC(const u16 *eventData) { const u8 *boxIdxs; - a0 = sub_8113E88(25, a0); - boxIdxs = (const u8 *)a0 + 2; + eventData = sub_8113E88(QL_EVENT_WITHDREW_MON_PC, eventData); + boxIdxs = (const u8 *)eventData + 2; DynamicPlaceholderTextUtil_Reset(); DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, GetBoxNamePtr(boxIdxs[0])); - QuestLog_AutoGetSpeciesName(a0[0], NULL, 1); - DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841A632); + QuestLog_GetSpeciesName(eventData[0], NULL, 1); + DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, QuestLog_Text_WithdrewMonFromPC); return (const u16 *)boxIdxs + 1; } -static u16 *sub_8114B78(u16 *a0, const u16 *a1) +static u16 *BufferQuestLogData_DepositedMonInPC(u16 *a0, const u16 *eventData) { u16 *r2; - r2 = sub_8113DE0(26, a0); + r2 = sub_8113DE0(QL_EVENT_DEPOSITED_MON_PC, a0); if (r2 == NULL) return NULL; - r2[0] = a1[0]; - *((u8 *)r2 + 2) = *((const u8 *)a1 + 4); + r2[0] = eventData[0]; + *((u8 *)r2 + 2) = *((const u8 *)eventData + 4); return r2 + 2; } -static const u16 *sub_8114BA0(const u16 *a0) +static const u16 *BufferQuestLogText_DepositedMonInPC(const u16 *eventData) { const u8 *boxIdxs; - a0 = sub_8113E88(26, a0); - boxIdxs = (const u8 *)a0 + 2; + eventData = sub_8113E88(QL_EVENT_DEPOSITED_MON_PC, eventData); + boxIdxs = (const u8 *)eventData + 2; DynamicPlaceholderTextUtil_Reset(); - QuestLog_AutoGetSpeciesName(a0[0], NULL, 0); + QuestLog_GetSpeciesName(eventData[0], NULL, 0); DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, GetBoxNamePtr(boxIdxs[0])); - DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841A64F); + DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, QuestLog_Text_DepositedMonInPC); return (const u16 *)boxIdxs + 1; } -static u16 *sub_8114BE4(u16 *a0, const u16 *a1) +static u16 *BufferQuestLogData_SwitchedMultipleMons(u16 *a0, const u16 *eventData) { u16 *r2; - r2 = sub_8113DE0(27, a0); + r2 = sub_8113DE0(QL_EVENT_SWITCHED_MULTIPLE_MONS, a0); if (r2 == NULL) return NULL; - *((u8 *)r2 + 0) = *((const u8 *)a1 + 4); - *((u8 *)r2 + 1) = *((const u8 *)a1 + 5); + *((u8 *)r2 + 0) = *((const u8 *)eventData + 4); + *((u8 *)r2 + 1) = *((const u8 *)eventData + 5); return r2 + 1; } -static const u16 *sub_8114C0C(const u16 *a0) +static const u16 *BufferQuestLogText_SwitchedMultipleMons(const u16 *eventData) { - const u16 *r4 = sub_8113E88(27, a0); + const u16 *r4 = sub_8113E88(QL_EVENT_SWITCHED_MULTIPLE_MONS, eventData); DynamicPlaceholderTextUtil_Reset(); DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, GetBoxNamePtr(*((const u8 *)r4 + 0))); if (*((const u8 *)r4 + 0) == *((const u8 *)r4 + 1)) - DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, gUnknown_841A694); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, QuestLog_Text_ADifferentSpot); else DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, GetBoxNamePtr(*((const u8 *)r4 + 1))); - DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841A66E); + DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, QuestLog_Text_SwitchedMultipleMons); return r4 + 1; } -static u16 *sub_8114C68(u16 *a0, const u16 *a1) +static u16 *BufferQuestLogData_DepositedItemInPC(u16 *a0, const u16 *eventData) { - a0 = sub_8113DE0(28, a0); + a0 = sub_8113DE0(QL_EVENT_DEPOSITED_ITEM_PC, a0); if (a0 == NULL) return NULL; - a0[0] = a1[0]; + a0[0] = eventData[0]; return a0 + 1; } -static const u16 *sub_8114C8C(const u16 *a0) +static const u16 *BufferQuestLogText_DepositedItemInPC(const u16 *eventData) { - const u16 *r4 = sub_8113E88(28, a0); + const u16 *r4 = sub_8113E88(QL_EVENT_DEPOSITED_ITEM_PC, eventData); CopyItemName(r4[0], gStringVar1); - StringExpandPlaceholders(gStringVar4, gUnknown_841A391); + StringExpandPlaceholders(gStringVar4, QuestLog_Text_StoredItemInPC); return r4 + 1; } -static u16 *sub_8114CC0(u16 *a0, const u16 *a1) +static u16 *BufferQuestLogData_WithdrewItemFromPC(u16 *a0, const u16 *eventData) { - a0 = sub_8113DE0(29, a0); + a0 = sub_8113DE0(QL_EVENT_WITHDREW_ITEM_PC, a0); if (a0 == NULL) return NULL; - a0[0] = a1[0]; + a0[0] = eventData[0]; return a0 + 1; } -static const u16 *sub_8114CE4(const u16 *a0) +static const u16 *BufferQuestLogText_WithdrewItemFromPC(const u16 *eventData) { - const u16 *r4 = sub_8113E88(29, a0); + const u16 *r4 = sub_8113E88(QL_EVENT_WITHDREW_ITEM_PC, eventData); CopyItemName(r4[0], gStringVar1); - StringExpandPlaceholders(gStringVar4, gUnknown_841A3DA); + StringExpandPlaceholders(gStringVar4, QuestLog_Text_WithdrewItemFromPC); return r4 + 1; } -u16 *sub_8114D18(u16 a0, u16 *a1, const u16 *a2) +u16 *BufferQuestLogData_DefeatedTrainer_(u16 eventId, u16 *a1, const u16 *a2) { - a1 = sub_8113DE0(a0, a1); + a1 = sub_8113DE0(eventId, a1); if (a1 == NULL) return NULL; a1[0] = a2[1]; @@ -3755,149 +3840,153 @@ u16 *sub_8114D18(u16 a0, u16 *a1, const u16 *a2) return a1 + 4; } -static u16 *sub_8114D4C(u16 *a0, const u16 *a1) +static u16 *BufferQuestLogData_DefeatedGymLeader(u16 *a0, const u16 *eventData) { - gUnknown_203B048 = TRUE; - return sub_8114D18(30, a0, a1); + gUnknown_203B048 = 1; + return BufferQuestLogData_DefeatedTrainer_(QL_EVENT_DEFEATED_GYM_LEADER, a0, eventData); } -static const u16 *sub_8114D68(const u16 *a0) +static const u16 *BufferQuestLogText_DefeatedGymLeader(const u16 *eventData) { const u8 *r6; - a0 = sub_8113E88(30, a0); - r6 = (const u8 *)a0 + 6; + eventData = sub_8113E88(QL_EVENT_DEFEATED_GYM_LEADER, eventData); + r6 = (const u8 *)eventData + 6; DynamicPlaceholderTextUtil_Reset(); GetMapNameGeneric(gStringVar1, r6[0]); DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gStringVar1); - DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, gTrainers[a0[2]].trainerName); - QuestLog_AutoGetSpeciesName(a0[0], 0, 2); - QuestLog_AutoGetSpeciesName(a0[1], 0, 3); - DynamicPlaceholderTextUtil_SetPlaceholderPtr(4, gUnknown_8456ACC[r6[1]]); - DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841AF0C); - return a0 + 4; + DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, gTrainers[eventData[2]].trainerName); + QuestLog_GetSpeciesName(eventData[0], 0, 2); + QuestLog_GetSpeciesName(eventData[1], 0, 3); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(4, sDefeatedOpponentFlavorTexts[r6[1]]); + DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, QuestLog_Text_TookOnGymLeadersMonWithMonAndWon); + return eventData + 4; } -static u16 *sub_8114DE8(u16 *a0, const u16 *a1) +static u16 *BufferQuestLogData_DefeatedWildMon(u16 *a0, const u16 *eventData) { u16 *r4 = a0; u8 *r5 = (u8 *)a0 + 8; - if (!sub_8110944(r4, sQuestLogEventCmdSizes[31])) + if (!sub_8110944(r4, sQuestLogEventCmdSizes[QL_EVENT_DEFEATED_WILD_MON])) return NULL; if (r5[0] == 0 && r5[1] == 0) { - r4[0] = 31; + r4[0] = QL_EVENT_DEFEATED_WILD_MON; r4[1] = sQuestLogIdx; } - if (a1[0]) - r4[2] = a1[0]; - if (a1[1]) - r4[3] = a1[1]; - if (a1[0] && r5[0] != 0xFF) + if (eventData[0]) + r4[2] = eventData[0]; + if (eventData[1]) + r4[3] = eventData[1]; + if (eventData[0] && r5[0] != 0xFF) r5[0]++; - if (a1[1] && r5[1] != 0xFF) + if (eventData[1] && r5[1] != 0xFF) r5[1]++; - r5[2] = *((const u8 *)a1 + 4); + r5[2] = *((const u8 *)eventData + 4); return (u16 *)(r5 + 4); } -static const u16 *sub_8114E68(const u16 *a0) +static const u16 *BufferQuestLogText_DefeatedWildMon(const u16 *a0) { - const u8 *r6; - if (!sub_8110944(a0, sQuestLogEventCmdSizes[31])) + const u8 *data; + if (!sub_8110944(a0, sQuestLogEventCmdSizes[QL_EVENT_DEFEATED_WILD_MON])) return NULL; - r6 = (const u8 *)a0 + 8; + data = (const u8 *)a0 + 8; DynamicPlaceholderTextUtil_Reset(); - GetMapNameGeneric(gStringVar1, r6[2]); + GetMapNameGeneric(gStringVar1, data[2]); DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gStringVar1); - QuestLog_AutoGetSpeciesName(a0[2], NULL, 1); - ConvertIntToDecimalStringN(gStringVar2, r6[0], STR_CONV_MODE_LEFT_ALIGN, 3); + QuestLog_GetSpeciesName(a0[2], NULL, 1); + ConvertIntToDecimalStringN(gStringVar2, data[0], STR_CONV_MODE_LEFT_ALIGN, 3); DynamicPlaceholderTextUtil_SetPlaceholderPtr(2, gStringVar2); - QuestLog_AutoGetSpeciesName(a0[3], NULL, 3); - ConvertIntToDecimalStringN(gStringVar3, r6[1], STR_CONV_MODE_LEFT_ALIGN, 3); + QuestLog_GetSpeciesName(a0[3], NULL, 3); + ConvertIntToDecimalStringN(gStringVar3, data[1], STR_CONV_MODE_LEFT_ALIGN, 3); DynamicPlaceholderTextUtil_SetPlaceholderPtr(4, gStringVar3); DynamicPlaceholderTextUtil_SetPlaceholderPtr(5, gSaveBlock2Ptr->playerName); - if (r6[0] == 0) + if (data[0] == 0) { - if (r6[1] == 1) - DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841AA01); + if (data[1] == 1) + DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, QuestLog_Text_CaughtWildMon); else - DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841AA2B); + DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, QuestLog_Text_CaughtWildMons); } - else if (r6[1] == 0) + else if (data[1] == 0) { - if (r6[0] == 1) - DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841A9A9); + if (data[0] == 1) + DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, QuestLog_Text_DefeatedWildMon); else - DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841A9D4); + DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, QuestLog_Text_DefeatedWildMons); } - else if (r6[0] == 1) + else if (data[0] == 1) { - if (r6[1] == 1) - DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841AA76); + if (data[1] == 1) + DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, QuestLog_Text_DefeatedWildMonAndCaughtWildMon); else - DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841AAAA); + DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, QuestLog_Text_DefeatedWildMonAndCaughtWildMons); } else { - if (r6[1] == 1) - DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841AAEC); + if (data[1] == 1) + DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, QuestLog_Text_DefeatedWildMonsAndCaughtWildMon); else - DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841AB29); + DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, QuestLog_Text_DefeatedWildMonsAndCaughtWildMons); } - return (const u16 *)(r6 + 4); + return (const u16 *)(data + 4); } -static bool8 sub_8114FBC(u16 a0) +static bool8 IsSpeciesFromSpecialEncounter(u16 species) { - switch (a0) + switch (species) { - case 0x96: - case 0x8F ... 0x92: - case 0xF9 ... 0xFA: - case 0x19A: + case SPECIES_SNORLAX: + case SPECIES_ARTICUNO: + case SPECIES_ZAPDOS: + case SPECIES_MOLTRES: + case SPECIES_MEWTWO: + case SPECIES_LUGIA: + case SPECIES_HO_OH: + case SPECIES_DEOXYS: return TRUE; } return FALSE; } -static u16 *sub_8114FF0(u16 *a0, const u16 *a1) +static u16 *BufferQuestLogData_DefeatedEliteFourMember(u16 *a0, const u16 *eventData) { - gUnknown_203B048 = TRUE; - return sub_8114D18(32, a0, a1); + gUnknown_203B048 = 1; + return BufferQuestLogData_DefeatedTrainer_(QL_EVENT_DEFEATED_E4_MEMBER, a0, eventData); } -static const u16 *sub_811500C(const u16 *a0) +static const u16 *BufferQuestLogText_DefeatedEliteFourMember(const u16 *eventData) { const u8 *r5; - a0 = sub_8113E88(32, a0); - r5 = (const u8 *)a0 + 6; + eventData = sub_8113E88(QL_EVENT_DEFEATED_E4_MEMBER, eventData); + r5 = (const u8 *)eventData + 6; DynamicPlaceholderTextUtil_Reset(); - DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gTrainers[a0[2]].trainerName); - QuestLog_AutoGetSpeciesName(a0[0], NULL, 1); - QuestLog_AutoGetSpeciesName(a0[1], NULL, 2); - DynamicPlaceholderTextUtil_SetPlaceholderPtr(3, gUnknown_8456ACC[r5[1]]); - DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841AF3E); - return a0 + 4; + DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gTrainers[eventData[2]].trainerName); + QuestLog_GetSpeciesName(eventData[0], NULL, 1); + QuestLog_GetSpeciesName(eventData[1], NULL, 2); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(3, sDefeatedOpponentFlavorTexts[r5[1]]); + DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, QuestLog_Text_TookOnEliteFoursMonWithMonAndWon); + return eventData + 4; } -static u16 *sub_8115078(u16 *a0, const u16 *a1) +static u16 *BufferQuestLogData_DefeatedChampion(u16 *a0, const u16 *eventData) { - if (!sub_8110944(a0, sQuestLogEventCmdSizes[33])) + if (!sub_8110944(a0, sQuestLogEventCmdSizes[QL_EVENT_DEFEATED_CHAMPION])) return NULL; a0[0] = 0x2021; a0[1] = sQuestLogIdx; - a0[2] = a1[1]; - a0[3] = a1[2]; - *((u8 *)a0 + 8) = *((const u8 *)a1 + 6); - gUnknown_203B048 = TRUE; + a0[2] = eventData[1]; + a0[3] = eventData[2]; + *((u8 *)a0 + 8) = *((const u8 *)eventData + 6); + gUnknown_203B048 = 1; return a0 + 5; } -static const u16 *sub_81150CC(const u16 *a0) +static const u16 *BufferQuestLogText_DefeatedChampion(const u16 *a0) { const u8 *r5; - if (!sub_8110944(a0, sQuestLogEventCmdSizes[33])) + if (!sub_8110944(a0, sQuestLogEventCmdSizes[QL_EVENT_DEFEATED_CHAMPION])) return NULL; r5 = (const u8 *)a0 + 8; @@ -3908,170 +3997,173 @@ static const u16 *sub_81150CC(const u16 *a0) case 0: DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gSaveBlock2Ptr->playerName); DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, gSaveBlock1Ptr->rivalName); - DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841A2E1); + DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, QuestLog_Text_PlayerBattledChampionRival); break; case 1: DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gSaveBlock1Ptr->rivalName); - QuestLog_AutoGetSpeciesName(a0[2], NULL, 1); + QuestLog_GetSpeciesName(a0[2], NULL, 1); DynamicPlaceholderTextUtil_SetPlaceholderPtr(2, gSaveBlock2Ptr->playerName); - QuestLog_AutoGetSpeciesName(a0[3], NULL, 3); - DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841A312); + QuestLog_GetSpeciesName(a0[3], NULL, 3); + DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, QuestLog_Text_PlayerSentOutMon1RivalSentOutMon2); break; case 2: - DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gUnknown_8456AD8[r5[0]]); - DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841A349); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, sDefeatedChampionFlavorTexts[r5[0]]); + DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, QuestLog_Text_WonTheMatchAsAResult); break; } return (const u16 *)(r5 + 2); } -static u16 *sub_81151C0(u16 *a0, const u16 *a1) +static u16 *BufferQuestLogData_DefeatedTrainer(u16 *a0, const u16 *eventData) { - gUnknown_203B048 = TRUE; - return sub_8114D18(34, a0, a1); + gUnknown_203B048 = 1; + return BufferQuestLogData_DefeatedTrainer_(QL_EVENT_DEFEATED_TRAINER, a0, eventData); } -static const u16 *sub_81151DC(const u16 *a0) +static const u16 *BufferQuestLogText_DefeatedTrainer(const u16 *eventData) { - const u16 *r5 = sub_8113E88(34, a0); + const u16 *r5 = sub_8113E88(QL_EVENT_DEFEATED_TRAINER, eventData); const u8 *r6 = (const u8 *)r5 + 6; DynamicPlaceholderTextUtil_Reset(); GetMapNameGeneric(gStringVar1, r6[0]); DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gStringVar1); - if ( - gTrainers[r5[2]].trainerClass == 0x51 - || gTrainers[r5[2]].trainerClass == 0x59 - || gTrainers[r5[2]].trainerClass == 0x5A - ) - DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, GetExpandedPlaceholder(6)); + + if (gTrainers[r5[2]].trainerClass == CLASS_RIVAL + || gTrainers[r5[2]].trainerClass == CLASS_RIVAL_2 + || gTrainers[r5[2]].trainerClass == CLASS_CHAMPION_2) + DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, GetExpandedPlaceholder(PLACEHOLDER_ID_RIVAL)); else DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, gTrainers[r5[2]].trainerName); - QuestLog_AutoGetSpeciesName(r5[0], NULL, 2); - QuestLog_AutoGetSpeciesName(r5[1], NULL, 3); - DynamicPlaceholderTextUtil_SetPlaceholderPtr(4, gUnknown_8456ACC[r6[1]]); - DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841AF6D); + + QuestLog_GetSpeciesName(r5[0], NULL, 2); + QuestLog_GetSpeciesName(r5[1], NULL, 3); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(4, sDefeatedOpponentFlavorTexts[r6[1]]); + DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, QuestLog_Text_TookOnTrainersMonWithMonAndWon); return (const u16 *)(r6 + 2); } -static const u8 *const gUnknown_8456AF0[] = { - gQuestLogString_Home, - gQuestLogString_OakResearchLab, - gQuestLogString_Gym, - gQuestLogString_PokemonLeagueGate, - gQuestLogString_PokemonLeagueGate, - gQuestLogString_ViridianForest, - gQuestLogString_ViridianForest, - gQuestLogString_PewterMuseumOfScience, - gQuestLogString_Gym, - gQuestLogString_MtMoon, - gQuestLogString_MtMoon, - gQuestLogString_Gym, - gQuestLogString_BikeShop, - gQuestLogString_BillSHouse, - gQuestLogString_DayCare, - gQuestLogString_UndergroundPath, - gQuestLogString_UndergroundPath, - gQuestLogString_PokemonFanClub, - gQuestLogString_Gym, - gQuestLogString_SSAnne, - gQuestLogString_DiglettSCave, - gQuestLogString_DiglettSCave, - gQuestLogString_RockTunnel, - gQuestLogString_RockTunnel, - gQuestLogString_PowerPlant, - gQuestLogString_PokemonTower, - gQuestLogString_VolunteerHouse, - gQuestLogString_NameRaterSHouse, - gQuestLogString_UndergroundPath, - gQuestLogString_UndergroundPath, - gQuestLogString_CeladonDeptStore, - gQuestLogString_CeladonMansion, - gQuestLogString_RocketGameCorner, - gQuestLogString_Gym, - gQuestLogString_Restaurant, - gQuestLogString_RocketHideout, - gQuestLogString_SafariZone, - gQuestLogString_Gym, - gQuestLogString_WardenSHome, - gQuestLogString_FightingDojo, - gQuestLogString_Gym, - gQuestLogString_SilphCo, - gQuestLogString_SeafoamIslands, - gQuestLogString_SeafoamIslands, - gQuestLogString_PokemonMansion, - gQuestLogString_Gym, - gQuestLogString_PokemonResearchLab, - gQuestLogString_VictoryRoad, - gQuestLogString_VictoryRoad, - gQuestLogString_PokemonLeague, - gQuestLogString_CeruleanCave +static const u8 *const sLocationNameTexts[] = +{ + [QL_LOCATION_HOME] = QuestLog_Text_Home, + [QL_LOCATION_OAKS_LAB] = QuestLog_Text_OakResearchLab, + [QL_LOCATION_VIRIDIAN_GYM] = QuestLog_Text_Gym, + [QL_LOCATION_LEAGUE_GATE_1] = QuestLog_Text_PokemonLeagueGate, + [QL_LOCATION_LEAGUE_GATE_2] = QuestLog_Text_PokemonLeagueGate, + [QL_LOCATION_VIRIDIAN_FOREST_1] = QuestLog_Text_ViridianForest, + [QL_LOCATION_VIRIDIAN_FOREST_2] = QuestLog_Text_ViridianForest, + [QL_LOCATION_PEWTER_MUSEUM] = QuestLog_Text_PewterMuseumOfScience, + [QL_LOCATION_PEWTER_GYM] = QuestLog_Text_Gym, + [QL_LOCATION_MT_MOON_1] = QuestLog_Text_MtMoon, + [QL_LOCATION_MT_MOON_2] = QuestLog_Text_MtMoon, + [QL_LOCATION_CERULEAN_GYM] = QuestLog_Text_Gym, + [QL_LOCATION_BIKE_SHOP] = QuestLog_Text_BikeShop, + [QL_LOCATION_BILLS_HOUSE] = QuestLog_Text_BillsHouse, + [QL_LOCATION_DAY_CARE] = QuestLog_Text_DayCare, + [QL_LOCATION_UNDERGROUND_PATH_1] = QuestLog_Text_UndergroundPath, + [QL_LOCATION_UNDERGROUND_PATH_2] = QuestLog_Text_UndergroundPath, + [QL_LOCATION_PKMN_FAN_CLUB] = QuestLog_Text_PokemonFanClub, + [QL_LOCATION_VERMILION_GYM] = QuestLog_Text_Gym, + [QL_LOCATION_SS_ANNE] = QuestLog_Text_SSAnne, + [QL_LOCATION_DIGLETTS_CAVE_1] = QuestLog_Text_DiglettsCave, + [QL_LOCATION_DIGLETTS_CAVE_2] = QuestLog_Text_DiglettsCave, + [QL_LOCATION_ROCK_TUNNEL_1] = QuestLog_Text_RockTunnel, + [QL_LOCATION_ROCK_TUNNEL_2] = QuestLog_Text_RockTunnel, + [QL_LOCATION_POWER_PLANT] = QuestLog_Text_PowerPlant, + [QL_LOCATION_PKMN_TOWER] = QuestLog_Text_PokemonTower, + [QL_LOCATION_VOLUNTEER_HOUSE] = QuestLog_Text_VolunteerHouse, + [QL_LOCATION_NAME_RATERS_HOUSE] = QuestLog_Text_NameRatersHouse, + [QL_LOCATION_UNDERGROUND_PATH_3] = QuestLog_Text_UndergroundPath, + [QL_LOCATION_UNDERGROUND_PATH_4] = QuestLog_Text_UndergroundPath, + [QL_LOCATION_CELADON_DEPT_STORE] = QuestLog_Text_CeladonDeptStore, + [QL_LOCATION_CELADON_MANSION] = QuestLog_Text_CeladonMansion, + [QL_LOCATION_GAME_CORNER] = QuestLog_Text_RocketGameCorner, + [QL_LOCATION_CELADON_GYM] = QuestLog_Text_Gym, + [QL_LOCATION_CELADON_RESTAURANT] = QuestLog_Text_Restaurant, + [QL_LOCATION_ROCKET_HIDEOUT] = QuestLog_Text_RocketHideout, + [QL_LOCATION_SAFARI_ZONE] = QuestLog_Text_SafariZone, + [QL_LOCATION_FUCHSIA_GYM] = QuestLog_Text_Gym, + [QL_LOCATION_WARDENS_HOME] = QuestLog_Text_WardensHome, + [QL_LOCATION_FIGHTING_DOJO] = QuestLog_Text_FightingDojo, + [QL_LOCATION_SAFFRON_GYM] = QuestLog_Text_Gym, + [QL_LOCATION_SILPH_CO] = QuestLog_Text_SilphCo, + [QL_LOCATION_SEAFOAM_ISLANDS_1] = QuestLog_Text_SeafoamIslands, + [QL_LOCATION_SEAFOAM_ISLANDS_2] = QuestLog_Text_SeafoamIslands, + [QL_LOCATION_PKMN_MANSION] = QuestLog_Text_PokemonMansion, + [QL_LOCATION_CINNABAR_GYM] = QuestLog_Text_Gym, + [QL_LOCATION_CINNABAR_LAB] = QuestLog_Text_PokemonResearchLab, + [QL_LOCATION_VICTORY_ROAD_1] = QuestLog_Text_VictoryRoad, + [QL_LOCATION_VICTORY_ROAD_2] = QuestLog_Text_VictoryRoad, + [QL_LOCATION_PKMN_LEAGUE] = QuestLog_Text_PokemonLeague, + [QL_LOCATION_CERULEAN_CAVE] = QuestLog_Text_CeruleanCave }; -static const u8 *const gUnknown_8456BBC[] = { - gUnknown_841A53A, - gUnknown_841AD9E, - gUnknown_841ADC8, - gUnknown_841ADFF, - gUnknown_841AE1E, - gUnknown_841AE48, - gUnknown_841AEA7, - gUnknown_841AEDC, - gUnknown_841AFD6, - gUnknown_841B005 +static const u8 *const sDepartedLocationTexts[] = +{ + [QL_DEPARTED_TOWN_BUILDING] = QuestLog_Text_DepartedPlaceInTownForNextDestination, + [QL_DEPARTED_MUSEUM] = QuestLog_Text_LeftTownsLocationForNextDestination, + [QL_DEPARTED_GAME_CORNER] = QuestLog_Text_PlayedGamesAtGameCorner, + [QL_DEPARTED_HOME] = QuestLog_Text_RestedAtHome, + [QL_DEPARTED_OAKS_LAB] = QuestLog_Text_LeftOaksLab, + [QL_DEPARTED_GYM] = QuestLog_Text_GymWasFullOfToughTrainers, + [QL_DEPARTED_SAFARI_ZONE] = QuestLog_Text_HadGreatTimeInSafariZone, + [QL_DEPARTED_CAVE] = QuestLog_Text_ManagedToGetOutOfLocation, + [QL_DEPARTED_MISC_BUILDING_1] = QuestLog_Text_DepartedTheLocationForNextDestination, + [QL_DEPARTED_MISC_BUILDING_2] = QuestLog_Text_DepartedFromLocationToNextDestination }; -static const u8 gUnknown_8456BE4[] = { - 0x03, - 0x04, - 0x05, - 0x08, - 0x08, - 0x07, - 0x07, - 0x01, - 0x05, - 0x07, - 0x07, - 0x05, - 0x00, - 0x00, - 0x00, - 0x08, - 0x08, - 0x00, - 0x05, - 0x08, - 0x07, - 0x07, - 0x07, - 0x07, - 0x08, - 0x08, - 0x00, - 0x00, - 0x08, - 0x08, - 0x00, - 0x00, - 0x02, - 0x05, - 0x00, - 0x08, - 0x06, - 0x05, - 0x00, - 0x00, - 0x05, - 0x09, - 0x07, - 0x07, - 0x09, - 0x05, - 0x00, - 0x07, - 0x07, - 0x08, - 0x07 +static const u8 sLocationToDepartedTextId[] = +{ + [QL_LOCATION_HOME] = QL_DEPARTED_HOME, + [QL_LOCATION_OAKS_LAB] = QL_DEPARTED_OAKS_LAB, + [QL_LOCATION_VIRIDIAN_GYM] = QL_DEPARTED_GYM, + [QL_LOCATION_LEAGUE_GATE_1] = QL_DEPARTED_MISC_BUILDING_1, + [QL_LOCATION_LEAGUE_GATE_2] = QL_DEPARTED_MISC_BUILDING_1, + [QL_LOCATION_VIRIDIAN_FOREST_1] = QL_DEPARTED_CAVE, + [QL_LOCATION_VIRIDIAN_FOREST_2] = QL_DEPARTED_CAVE, + [QL_LOCATION_PEWTER_MUSEUM] = QL_DEPARTED_MUSEUM, + [QL_LOCATION_PEWTER_GYM] = QL_DEPARTED_GYM, + [QL_LOCATION_MT_MOON_1] = QL_DEPARTED_CAVE, + [QL_LOCATION_MT_MOON_2] = QL_DEPARTED_CAVE, + [QL_LOCATION_CERULEAN_GYM] = QL_DEPARTED_GYM, + [QL_LOCATION_BIKE_SHOP] = QL_DEPARTED_TOWN_BUILDING, + [QL_LOCATION_BILLS_HOUSE] = QL_DEPARTED_TOWN_BUILDING, + [QL_LOCATION_DAY_CARE] = QL_DEPARTED_TOWN_BUILDING, + [QL_LOCATION_UNDERGROUND_PATH_1] = QL_DEPARTED_MISC_BUILDING_1, + [QL_LOCATION_UNDERGROUND_PATH_2] = QL_DEPARTED_MISC_BUILDING_1, + [QL_LOCATION_PKMN_FAN_CLUB] = QL_DEPARTED_TOWN_BUILDING, + [QL_LOCATION_VERMILION_GYM] = QL_DEPARTED_GYM, + [QL_LOCATION_SS_ANNE] = QL_DEPARTED_MISC_BUILDING_1, + [QL_LOCATION_DIGLETTS_CAVE_1] = QL_DEPARTED_CAVE, + [QL_LOCATION_DIGLETTS_CAVE_2] = QL_DEPARTED_CAVE, + [QL_LOCATION_ROCK_TUNNEL_1] = QL_DEPARTED_CAVE, + [QL_LOCATION_ROCK_TUNNEL_2] = QL_DEPARTED_CAVE, + [QL_LOCATION_POWER_PLANT] = QL_DEPARTED_MISC_BUILDING_1, + [QL_LOCATION_PKMN_TOWER] = QL_DEPARTED_MISC_BUILDING_1, + [QL_LOCATION_VOLUNTEER_HOUSE] = QL_DEPARTED_TOWN_BUILDING, + [QL_LOCATION_NAME_RATERS_HOUSE] = QL_DEPARTED_TOWN_BUILDING, + [QL_LOCATION_UNDERGROUND_PATH_3] = QL_DEPARTED_MISC_BUILDING_1, + [QL_LOCATION_UNDERGROUND_PATH_4] = QL_DEPARTED_MISC_BUILDING_1, + [QL_LOCATION_CELADON_DEPT_STORE] = QL_DEPARTED_TOWN_BUILDING, + [QL_LOCATION_CELADON_MANSION] = QL_DEPARTED_TOWN_BUILDING, + [QL_LOCATION_GAME_CORNER] = QL_DEPARTED_GAME_CORNER, + [QL_LOCATION_CELADON_GYM] = QL_DEPARTED_GYM, + [QL_LOCATION_CELADON_RESTAURANT] = QL_DEPARTED_TOWN_BUILDING, + [QL_LOCATION_ROCKET_HIDEOUT] = QL_DEPARTED_MISC_BUILDING_1, + [QL_LOCATION_SAFARI_ZONE] = QL_DEPARTED_SAFARI_ZONE, + [QL_LOCATION_FUCHSIA_GYM] = QL_DEPARTED_GYM, + [QL_LOCATION_WARDENS_HOME] = QL_DEPARTED_TOWN_BUILDING, + [QL_LOCATION_FIGHTING_DOJO] = QL_DEPARTED_TOWN_BUILDING, + [QL_LOCATION_SAFFRON_GYM] = QL_DEPARTED_GYM, + [QL_LOCATION_SILPH_CO] = QL_DEPARTED_MISC_BUILDING_2, + [QL_LOCATION_SEAFOAM_ISLANDS_1] = QL_DEPARTED_CAVE, + [QL_LOCATION_SEAFOAM_ISLANDS_2] = QL_DEPARTED_CAVE, + [QL_LOCATION_PKMN_MANSION] = QL_DEPARTED_MISC_BUILDING_2, + [QL_LOCATION_CINNABAR_GYM] = QL_DEPARTED_GYM, + [QL_LOCATION_CINNABAR_LAB] = QL_DEPARTED_TOWN_BUILDING, + [QL_LOCATION_VICTORY_ROAD_1] = QL_DEPARTED_CAVE, + [QL_LOCATION_VICTORY_ROAD_2] = QL_DEPARTED_CAVE, + [QL_LOCATION_PKMN_LEAGUE] = QL_DEPARTED_MISC_BUILDING_1, + [QL_LOCATION_CERULEAN_CAVE] = QL_DEPARTED_CAVE }; static const u8 gUnknown_8456C17[] = { @@ -4085,57 +4177,58 @@ static const u8 gUnknown_8456C17[] = { 0x59 }; -static const u8 *const gUnknown_8456C20[] = { - gUnknown_841AC51, - gUnknown_841ABAB, - gUnknown_841ABCD, - gUnknown_841AC2A, - gUnknown_841ABF9, - gUnknown_841AC93, - gUnknown_841ACBC, - gUnknown_841AD69, - gUnknown_841AD1D, - gUnknown_841A90C, - gUnknown_841A8E0, - gUnknown_841AD3C +static const u8 *const sUsedFieldMoveTexts[] = +{ + [FIELD_MOVE_FLASH] = QuestLog_Text_UsedFlash, + [FIELD_MOVE_CUT] = QuestLog_Text_UsedCut, + [FIELD_MOVE_FLY] = QuestLog_Text_UsedFly, + [FIELD_MOVE_STRENGTH] = QuestLog_Text_UsedStrength, + [FIELD_MOVE_SURF] = QuestLog_Text_UsedSurf, + [FIELD_MOVE_ROCK_SMASH] = QuestLog_Text_UsedRockSmash, + [FIELD_MOVE_WATERFALL] = QuestLog_Text_UsedWaterfall, + [FIELD_MOVE_TELEPORT] = QuestLog_Text_UsedTeleportToLocation, + [FIELD_MOVE_DIG] = QuestLog_Text_UsedDigInLocation, + [FIELD_MOVE_MILK_DRINK] = QuestLog_Text_UsedMilkDrink, + [FIELD_MOVE_SOFT_BOILED] = QuestLog_Text_UsedSoftboiled, + [FIELD_MOVE_SWEET_SCENT] = QuestLog_Text_UsedSweetScent }; -static u16 *sub_8115280(u16 *a0, const u16 *a1) +static u16 *BufferQuestLogData_DepartedLocation(u16 *a0, const u16 *eventData) { - u16 *r2 = sub_8113DE0(35, a0); + u16 *r2 = sub_8113DE0(QL_EVENT_DEPARTED, a0); if (r2 == NULL) return NULL; - *((u8 *)r2 + 0) = *((const u8 *)a1 + 0); - if ((*((u8 *)r2 + 1) = *((const u8 *)a1 + 1)) == 0x24) - gUnknown_203B048 = TRUE; + *((u8 *)r2 + 0) = *((const u8 *)eventData + 0); + if ((*((u8 *)r2 + 1) = *((const u8 *)eventData + 1)) == 0x24) + gUnknown_203B048 = 1; return r2 + 1; } -static const u16 *sub_81152BC(const u16 *a0) +static const u16 *BufferQuestLogText_DepartedLocation(const u16 *eventData) { - u8 r4, r6; - const u16 *r5 = sub_8113E88(35, a0); + u8 r4, locationId; + const u16 *r5 = sub_8113E88(QL_EVENT_DEPARTED, eventData); const u8 *r5_2 = (const u8 *)r5 + 0; - r6 = r5_2[1]; + locationId = r5_2[1]; GetMapNameGeneric(gStringVar1, r5_2[0]); - StringCopy(gStringVar2, gUnknown_8456AF0[r6]); - if (gUnknown_8456BE4[r6] == 5) + StringCopy(gStringVar2, sLocationNameTexts[locationId]); + if (sLocationToDepartedTextId[locationId] == QL_DEPARTED_GYM) { for (r4 = 0; r4 < ARRAY_COUNT(gUnknown_8456C17); r4++) { if (r5_2[0] != gUnknown_8456C17[r4]) continue; if (FlagGet(FLAG_BADGE01_GET + r4) == TRUE) - StringExpandPlaceholders(gStringVar4, gUnknown_841AE8F); + StringExpandPlaceholders(gStringVar4, QuestLog_Text_DepartedGym); else - StringExpandPlaceholders(gStringVar4, gUnknown_841AE48); + StringExpandPlaceholders(gStringVar4, QuestLog_Text_GymWasFullOfToughTrainers); break; } if (r4 == 8) - StringExpandPlaceholders(gStringVar4, gUnknown_8456BBC[gUnknown_8456BE4[r6]]); + StringExpandPlaceholders(gStringVar4, sDepartedLocationTexts[sLocationToDepartedTextId[locationId]]); } else - StringExpandPlaceholders(gStringVar4, gUnknown_8456BBC[gUnknown_8456BE4[r6]]); + StringExpandPlaceholders(gStringVar4, sDepartedLocationTexts[sLocationToDepartedTextId[locationId]]); return (const u16 *)(r5_2 + 2); } @@ -4145,81 +4238,86 @@ void sub_811539C(void) gUnknown_203B04B = TRUE; } -static bool8 sub_81153A8(u16 a0, const u16 *a1) +static bool8 sub_81153A8(u16 eventId, const u16 *eventData) { - if (a0 != 35) + if (eventId != QL_EVENT_DEPARTED) { gUnknown_203B04A = 0; return TRUE; } - if (gUnknown_203B04A == *((u8 *)a1 + 1) + 1) + if (gUnknown_203B04A == *((u8 *)eventData + 1) + 1) return FALSE; - gUnknown_203B04A = *((u8 *)a1 + 1) + 1; + gUnknown_203B04A = *((u8 *)eventData + 1) + 1; return TRUE; } -static bool8 sub_81153E4(u16 a0, const u16 *a1) +static bool8 sub_81153E4(u16 eventId, const u16 *eventData) { - if (a0 != 35) + if (eventId != QL_EVENT_DEPARTED) return TRUE; - if (*((u8 *)a1 + 1) == 32 && gUnknown_203B04B == 0) + + if (*((u8 *)eventData + 1) == 32 && !gUnknown_203B04B) return FALSE; - gUnknown_203B04B = 0; + + gUnknown_203B04B = FALSE; return TRUE; } -static u16 *sub_8115410(u16 *a0, const u16 *a1) +static u16 *BufferQuestLogData_UsedFieldMove(u16 *a0, const u16 *eventData) { u8 *r3; - a0 = sub_8113DE0(36, a0); + a0 = sub_8113DE0(QL_EVENT_USED_FIELD_MOVE, a0); if (a0 == NULL) return NULL; - a0[0] = a1[0]; + a0[0] = eventData[0]; r3 = (u8 *)a0 + 2; - r3[0] = *((const u8 *)a1 + 2); - r3[1] = *((const u8 *)a1 + 3); - if (r3[0] == 7 || r3[0] == 8) + 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; else gUnknown_203B048 = 1; return (u16 *)(r3 + 2); } -static const u16 *sub_8115460(const u16 *a0) +static const u16 *BufferQuestLogText_UsedFieldMove(const u16 *eventData) { - const u16 *r4 = sub_8113E88(36, a0); + const u16 *r4 = sub_8113E88(QL_EVENT_USED_FIELD_MOVE, eventData); const u8 *r5 = (const u8 *)r4 + 2; - QuestLog_AutoGetSpeciesName(r4[0], gStringVar1, 0); + QuestLog_GetSpeciesName(r4[0], gStringVar1, 0); if (r5[1] != 0xFF) GetMapNameGeneric(gStringVar2, r5[1]); - if (r5[0] == 7) + + // If used Teleport, get name of destination + if (r5[0] == FIELD_MOVE_TELEPORT) { if (r5[1] == 0x58) - StringCopy(gStringVar3, gQuestLogString_Home); + StringCopy(gStringVar3, QuestLog_Text_Home); else - StringCopy(gStringVar3, gUnknown_8418C1B); + StringCopy(gStringVar3, gText_PokemonCenter); } - StringExpandPlaceholders(gStringVar4, gUnknown_8456C20[r5[0]]); + + StringExpandPlaceholders(gStringVar4, sUsedFieldMoveTexts[r5[0]]); return (const u16 *)(r5 + 2); } -static u16 *sub_81154DC(u16 *a0, const u16 *a1) +static u16 *BufferQuestLogData_BoughtItem(u16 *a0, const u16 *eventData) { - a0 = sub_8113DE0(37, a0); + a0 = sub_8113DE0(QL_EVENT_BOUGHT_ITEM, a0); if (a0 == NULL) return NULL; - a0[0] = a1[2]; - a0[1] = a1[3]; - a0[2] = *((const u32 *)a1) >> 16; - a0[3] = *((const u32 *)a1); - *((u8 *)a0 + 8) = *((const u8 *)a1 + 8); + a0[0] = eventData[2]; + a0[1] = eventData[3]; + a0[2] = *((const u32 *)eventData) >> 16; + a0[3] = *((const u32 *)eventData); + *((u8 *)a0 + 8) = *((const u8 *)eventData + 8); *((u8 *)a0 + 9) = 1; return a0 + 5; } -static const u16 *sub_8115518(const u16 *a0) +static const u16 *BufferQuestLogText_BoughtItem(const u16 *eventData) { - const u16 *r4 = sub_8113E88(37, a0); + const u16 *r4 = sub_8113E88(QL_EVENT_BOUGHT_ITEM, eventData); const u8 *r7 = (const u8 *)r4 + 8; u32 r6 = (r4[2] << 16) + r4[3]; DynamicPlaceholderTextUtil_Reset(); @@ -4227,32 +4325,33 @@ static const u16 *sub_8115518(const u16 *a0) DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gStringVar1); DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, ItemId_GetName(r4[0])); if (r4[1] < 2) - DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841A7DD); + DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, QuestLog_Text_BoughtItem); else { ConvertIntToDecimalStringN(gStringVar2, r6, STR_CONV_MODE_LEFT_ALIGN, 6); DynamicPlaceholderTextUtil_SetPlaceholderPtr(2, gStringVar2); - DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841A810); + DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, QuestLog_Text_BoughtItemsIncludingItem); } return (const u16 *)(r7 + 2); } -static u16 *sub_81155A4(u16 *a0, const u16 *a1) +static u16 *BufferQuestLogData_SoldItem(u16 *a0, const u16 *eventData) { - a0 = sub_8113DE0(38, a0); + a0 = sub_8113DE0(QL_EVENT_SOLD_ITEM, a0); if (a0 == NULL) return NULL; - a0[0] = a1[2]; - a0[1] = a1[3]; - a0[2] = *((const u32 *)a1) >> 16; - a0[3] = *((const u32 *)a1); - *((u8 *)a0 + 8) = *((const u8 *)a1 + 8); - *((u8 *)a0 + 9) = *((const u8 *)a1 + 9); + a0[0] = eventData[2]; + a0[1] = eventData[3]; + a0[2] = *((const u32 *)eventData) >> 16; + a0[3] = *((const u32 *)eventData); + *((u8 *)a0 + 8) = *((const u8 *)eventData + 8); + *((u8 *)a0 + 9) = *((const u8 *)eventData + 9); return a0 + 5; } -static const u16 *sub_81155E0(const u16 *a0) { - const u16 *r5 = sub_8113E88(38, a0); +static const u16 *BufferQuestLogText_SoldItem(const u16 *eventData) +{ + const u16 *r5 = sub_8113E88(QL_EVENT_SOLD_ITEM, eventData); const u8 *r7 = (const u8 *) r5 + 8; u32 r6 = (r5[2] << 16) + r5[3]; DynamicPlaceholderTextUtil_Reset(); @@ -4262,15 +4361,15 @@ static const u16 *sub_81155E0(const u16 *a0) { DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, gStringVar1); DynamicPlaceholderTextUtil_SetPlaceholderPtr(2, ItemId_GetName(r5[0])); if (r5[1] == 1) - DynamicPlaceholderTextUtil_SetPlaceholderPtr(3, gUnknown_841A8D4); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(3, QuestLog_Text_JustOne); else { ConvertIntToDecimalStringN(gStringVar2, r5[1], STR_CONV_MODE_LEFT_ALIGN, 3); DynamicPlaceholderTextUtil_SetPlaceholderPtr(4, gStringVar2); - DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar3, gUnknown_841A8DD); + DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar3, QuestLog_Text_Num); DynamicPlaceholderTextUtil_SetPlaceholderPtr(3, gStringVar3); } - DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841A858); + DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, QuestLog_Text_SoldNumOfItem); } else { @@ -4278,61 +4377,64 @@ static const u16 *sub_81155E0(const u16 *a0) { DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, ItemId_GetName(r5[0])); ConvertIntToDecimalStringN(gStringVar2, r6, STR_CONV_MODE_LEFT_ALIGN, 6); DynamicPlaceholderTextUtil_SetPlaceholderPtr(2, gStringVar2); - DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841A896); + DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, QuestLog_Text_SoldItemsIncludingItem); } return (const u16 *)(r7 + 2); } -static u16 *sub_81156D8(u16 *a0, const u16 *a1) +static u16 *BufferQuestLogData_ObtainedItem(u16 *a0, const u16 *eventData) { - a0 = sub_8113DE0(40, a0); + a0 = sub_8113DE0(QL_EVENT_OBTAINED_ITEM, a0); if (a0 == NULL) return NULL; - a0[0] = a1[0]; - *((u8 *)a0 + 2) = *((const u8 *)a1 + 2); + a0[0] = eventData[0]; + *((u8 *)a0 + 2) = *((const u8 *)eventData + 2); return a0 + 2; } -static const u16 *sub_8115700(const u16 *a0) +static const u16 *BufferQuestLogText_ObtainedItem(const u16 *eventData) { - const u16 *r4 = sub_8113E88(40, a0); + const u16 *r4 = sub_8113E88(QL_EVENT_OBTAINED_ITEM, eventData); const u8 *r5 = (const u8 *)r4 + 2; GetMapNameGeneric(gStringVar1, r5[0]); StringCopy(gStringVar2, ItemId_GetName(r4[0])); - StringExpandPlaceholders(gStringVar4, gUnknown_841B03F); + StringExpandPlaceholders(gStringVar4, QuestLog_Text_ObtainedItemInLocation); return (const u16 *)(r5 + 2); } -static const u16 gUnknown_8456C50[] = { - 0x0891, - 0x0892, - 0x0893, - 0x0894, - 0x0895, - 0x0896, - 0x0897, - 0x0898, - 0x0899, - 0x089a, - 0x089b, - 0x089c, - 0x089d, - 0x089e, - 0x089f, - 0x08a0, - 0x08a1 +static const u16 sQuestLogWorldMapFlags[] = +{ + FLAG_WORLD_MAP_VIRIDIAN_CITY, + FLAG_WORLD_MAP_PEWTER_CITY, + FLAG_WORLD_MAP_CERULEAN_CITY, + FLAG_WORLD_MAP_LAVENDER_TOWN, + FLAG_WORLD_MAP_VERMILION_CITY, + FLAG_WORLD_MAP_CELADON_CITY, + FLAG_WORLD_MAP_FUCHSIA_CITY, + FLAG_WORLD_MAP_CINNABAR_ISLAND, + FLAG_WORLD_MAP_INDIGO_PLATEAU_EXTERIOR, + FLAG_WORLD_MAP_SAFFRON_CITY, + FLAG_WORLD_MAP_ONE_ISLAND, + FLAG_WORLD_MAP_TWO_ISLAND, + FLAG_WORLD_MAP_THREE_ISLAND, + FLAG_WORLD_MAP_FOUR_ISLAND, + FLAG_WORLD_MAP_FIVE_ISLAND, + FLAG_WORLD_MAP_SEVEN_ISLAND, + FLAG_WORLD_MAP_SIX_ISLAND }; -void sub_8115748(u16 a0) +void sub_8115748(u16 worldMapFlag) { s32 i; - if (gUnknown_203ADFA == 2 || gUnknown_203ADFA == 3) + + if (gQuestLogState == 2 || gQuestLogState == 3) return; - for (i = 0; i < 17; i++) + + for (i = 0; i < (int)NELEMS(sQuestLogWorldMapFlags); i++) { - if (a0 == gUnknown_8456C50[i]) + if (worldMapFlag == sQuestLogWorldMapFlags[i]) { - if (!FlagGet(a0)) + if (!FlagGet(worldMapFlag)) { gUnknown_203B049 = TRUE; break; @@ -4350,47 +4452,47 @@ void sub_8115748(u16 a0) void sub_8115798(void) { u16 sp0; - if (gUnknown_203ADFA != 2 && gUnknown_203ADFA != 3) + if (gQuestLogState != 2 && gQuestLogState != 3) { if (gUnknown_203B049) { sp0 = gMapHeader.regionMapSectionId; - sub_8113550(42, &sp0); + SetQuestLogEvent(QL_EVENT_ARRIVED, &sp0); gUnknown_203B049 = FALSE; } } } -static u16 *sub_81157DC(u16 *a0, const u16 *a1) +static u16 *BufferQuestLogData_ArrivedInLocation(u16 *a0, const u16 *eventData) { - a0 = sub_8113DE0(42, a0); + a0 = sub_8113DE0(QL_EVENT_ARRIVED, a0); if (a0 == NULL) return NULL; - a0[0] = a1[0]; + a0[0] = eventData[0]; return a0 + 1; } -static const u16 *sub_8115800(const u16 *a0) +static const u16 *BufferQuestLogText_ArrivedInLocation(const u16 *eventData) { - const u16 *r4 = sub_8113E88(42, a0); + const u16 *r4 = sub_8113E88(QL_EVENT_ARRIVED, eventData); GetMapNameGeneric(gStringVar1, (u8)r4[0]); - StringExpandPlaceholders(gStringVar4, gUnknown_841B064); + StringExpandPlaceholders(gStringVar4, QuestLog_Text_ArrivedInLocation); return r4 + 1; } -void sub_8115834(u8 *a0) +static void BufferLinkPartnersName(u8 *dest) { s32 i; - if (*a0++ == EXT_CTRL_CODE_BEGIN && *a0++ == EXT_CTRL_CODE_JPN) + if (*dest++ == EXT_CTRL_CODE_BEGIN && *dest++ == EXT_CTRL_CODE_JPN) { for (i = 0; i < 5; i++) { - if (*a0 == EXT_CTRL_CODE_BEGIN) + if (*dest == EXT_CTRL_CODE_BEGIN) break; - a0++; + dest++; } - *a0++ = EXT_CTRL_CODE_BEGIN; - *a0++ = EXT_CTRL_CODE_ENG; - *a0++ = EOS; + *dest++ = EXT_CTRL_CODE_BEGIN; + *dest++ = EXT_CTRL_CODE_ENG; + *dest++ = EOS; } } diff --git a/src/quest_log_battle.c b/src/quest_log_battle.c index efe866dea..7ae4d7c2c 100644 --- a/src/quest_log_battle.c +++ b/src/quest_log_battle.c @@ -6,6 +6,7 @@ #include "link.h" #include "overworld.h" #include "quest_log.h" +#include "constants/trainer_classes.h" struct QuestLogStruct_TrainerBattleRecord { @@ -18,20 +19,20 @@ struct QuestLogStruct_TrainerBattleRecord struct QuestLogStruct_WildBattleRecord { - u16 v0; - u16 v2; - u8 v4; + u16 defeatedSpecies; + u16 caughtSpecies; + u8 mapSec; }; static void sub_812C334(s32 *, s32 *); -void sub_812BFDC(void) +void TrySetQuestLogBattleEvent(void) { if (!(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_OLD_MAN_TUTORIAL | BATTLE_TYPE_POKEDUDE)) && (gBattleOutcome == B_OUTCOME_WON || gBattleOutcome == B_OUTCOME_CAUGHT)) { struct QuestLogStruct_TrainerBattleRecord * questLogTrainerBattleRecord = Alloc(sizeof(struct QuestLogStruct_TrainerBattleRecord)); struct QuestLogStruct_WildBattleRecord * questLogWildBattleRecord = Alloc(sizeof(struct QuestLogStruct_WildBattleRecord)); - u16 questLogMessageType; + u16 eventId; u16 playerEndingHP; u16 playerMaxHP; @@ -39,17 +40,17 @@ void sub_812BFDC(void) { switch (gTrainers[gTrainerBattleOpponent_A].trainerClass) { - case 0x54: - questLogMessageType = 30; + case CLASS_LEADER_2: + eventId = QL_EVENT_DEFEATED_GYM_LEADER; break; - case 0x5a: - questLogMessageType = 33; + case CLASS_CHAMPION_2: + eventId = QL_EVENT_DEFEATED_CHAMPION; break; - case 0x57: - questLogMessageType = 32; + case CLASS_ELITE_FOUR_2: + eventId = QL_EVENT_DEFEATED_E4_MEMBER; break; default: - questLogMessageType = 34; + eventId = QL_EVENT_DEFEATED_TRAINER; break; } questLogTrainerBattleRecord->v0 = gTrainerBattleOpponent_A; @@ -78,22 +79,22 @@ void sub_812BFDC(void) questLogTrainerBattleRecord->v6 = 1; if (playerEndingHP < playerMaxHP / 3) questLogTrainerBattleRecord->v6++; - sub_8113550(questLogMessageType, (const u16 *)questLogTrainerBattleRecord); + SetQuestLogEvent(eventId, (const u16 *)questLogTrainerBattleRecord); } else { if (gBattleOutcome == B_OUTCOME_WON) { - questLogWildBattleRecord->v0 = GetMonData(gEnemyParty + 0, MON_DATA_SPECIES); - questLogWildBattleRecord->v2 = SPECIES_NONE; + questLogWildBattleRecord->defeatedSpecies = GetMonData(gEnemyParty, MON_DATA_SPECIES); + questLogWildBattleRecord->caughtSpecies = SPECIES_NONE; } - else + else // gBattleOutcome == B_OUTCOME_CAUGHT { - questLogWildBattleRecord->v0 = SPECIES_NONE; - questLogWildBattleRecord->v2 = GetMonData(gEnemyParty + 0, MON_DATA_SPECIES); + questLogWildBattleRecord->defeatedSpecies = SPECIES_NONE; + questLogWildBattleRecord->caughtSpecies = GetMonData(gEnemyParty, MON_DATA_SPECIES); } - questLogWildBattleRecord->v4 = GetCurrentRegionMapSectionId(); - sub_8113550(31, (const u16 *)questLogWildBattleRecord); + questLogWildBattleRecord->mapSec = GetCurrentRegionMapSectionId(); + SetQuestLogEvent(QL_EVENT_DEFEATED_WILD_MON, (const u16 *)questLogWildBattleRecord); } Free(questLogTrainerBattleRecord); Free(questLogWildBattleRecord); @@ -106,13 +107,13 @@ struct QuestLogStruct_LinkBattleRecord u8 v1[3][7]; }; -void sub_812C224(void) +void TrySetQuestLogLinkBattleEvent(void) { s32 sp0; s32 sp4[2]; - u16 r8; + u16 eventId; s32 r3; - u32 r0; + bool32 inUnionRoom; if (gBattleTypeFlags & BATTLE_TYPE_LINK) { @@ -120,7 +121,7 @@ void sub_812C224(void) r5->v0 = gBattleOutcome - 1; // 0 = won, 1 = lost, 2 = drew if (gBattleTypeFlags & BATTLE_TYPE_MULTI) { - r8 = 15; + eventId = QL_EVENT_LINK_BATTLED_MULTI; sub_812C334(&sp0, sp4); for (r3 = 0; r3 < 7; r3++) { @@ -132,20 +133,21 @@ void sub_812C224(void) else { if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) - r8 = 14; + eventId = QL_EVENT_LINK_BATTLED_DOUBLE; else { - r0 = InUnionRoom(); - r8 = 13; - if (r0 == TRUE) - r8 = 19; + inUnionRoom = InUnionRoom(); + eventId = QL_EVENT_LINK_BATTLED_SINGLE; + + if (inUnionRoom == TRUE) + eventId = QL_EVENT_LINK_BATTLED_UNION; } for (r3 = 0; r3 < 7; r3++) { r5->v1[0][r3] = gLinkPlayers[gBattleStruct->multiplayerId ^ 1].name[r3]; } } - sub_8113550(r8, (const u16 *)r5); + SetQuestLogEvent(eventId, (const u16 *)r5); Free(r5); } } diff --git a/src/quest_log_815A008.c b/src/quest_log_objects.c index 32d0becbf..7917d03e9 100644 --- a/src/quest_log_815A008.c +++ b/src/quest_log_objects.c @@ -7,7 +7,7 @@ #include "link.h" #include "link_rfu.h" -void sub_815A008(struct QuestLog * questLog) +void SetQuestLogObjectEventsData(struct QuestLog * questLog) { u32 i; @@ -134,7 +134,7 @@ void sub_815A1F8(const struct QuestLog * questLog, const struct ObjectEventTempl void sub_815A540(void) { - if (gUnknown_203ADFA == 2) + if (gQuestLogState == 2) { s16 x, y; diff --git a/src/quest_log_8150454.c b/src/quest_log_player.c index 7665a8a92..7665a8a92 100644 --- a/src/quest_log_8150454.c +++ b/src/quest_log_player.c diff --git a/src/region_map.c b/src/region_map.c index 271ce548f..d526f9aaa 100644 --- a/src/region_map.c +++ b/src/region_map.c @@ -4389,7 +4389,7 @@ static void sub_80C527C(u16 mapsec) if (sMapsecToSpawn[idx][2]) { sub_805546C(sMapsecToSpawn[idx][2]); - sub_8124C1C(sMapsecToSpawn[idx]); + SetUsedFlyQuestLogEvent(sMapsecToSpawn[idx]); } else { diff --git a/src/scrcmd.c b/src/scrcmd.c index c36270636..51e7d2c35 100644 --- a/src/scrcmd.c +++ b/src/scrcmd.c @@ -469,7 +469,7 @@ bool8 ScrCmd_additem(struct ScriptContext *ctx) u32 quantity = VarGet(ScriptReadHalfword(ctx)); gSpecialVar_Result = AddBagItem(itemId, (u8)quantity); - sub_809A824(itemId); + TrySetObtainedItemQuestLogEvent(itemId); return FALSE; } @@ -929,7 +929,7 @@ bool8 ScrCmd_playbgm(struct ScriptContext *ctx) u16 songId = ScriptReadHalfword(ctx); bool8 val = ScriptReadByte(ctx); - if (gUnknown_203ADFA == 2 || gUnknown_203ADFA == 3) + if (gQuestLogState == 2 || gQuestLogState == 3) return FALSE; if (val == TRUE) Overworld_SetSavedMusic(songId); @@ -945,7 +945,7 @@ bool8 ScrCmd_savebgm(struct ScriptContext *ctx) bool8 ScrCmd_fadedefaultbgm(struct ScriptContext *ctx) { - if (gUnknown_203ADFA == 2 || gUnknown_203ADFA == 3) + if (gQuestLogState == 2 || gQuestLogState == 3) return FALSE; Overworld_ChangeMusicToDefault(); return FALSE; @@ -954,7 +954,7 @@ bool8 ScrCmd_fadedefaultbgm(struct ScriptContext *ctx) bool8 ScrCmd_fadenewbgm(struct ScriptContext *ctx) { u16 music = ScriptReadHalfword(ctx); - if (gUnknown_203ADFA == 2 || gUnknown_203ADFA == 3) + if (gQuestLogState == 2 || gQuestLogState == 3) return FALSE; Overworld_ChangeMusicTo(music); return FALSE; @@ -964,7 +964,7 @@ bool8 ScrCmd_fadeoutbgm(struct ScriptContext *ctx) { u8 speed = ScriptReadByte(ctx); - if (gUnknown_203ADFA == 2 || gUnknown_203ADFA == 3) + if (gQuestLogState == 2 || gQuestLogState == 3) return FALSE; if (speed != 0) FadeOutBGMTemporarily(4 * speed); @@ -978,7 +978,7 @@ bool8 ScrCmd_fadeinbgm(struct ScriptContext *ctx) { u8 speed = ScriptReadByte(ctx); - if (gUnknown_203ADFA == 2 || gUnknown_203ADFA == 3) + if (gQuestLogState == 2 || gQuestLogState == 3) return FALSE; if (speed != 0) FadeInBGM(4 * speed); @@ -1328,7 +1328,7 @@ static bool8 WaitForAorBPress(void) sub_8069998(r4); if (r4) { - if (gUnknown_203ADFA != 2) + if (gQuestLogState != 2) { sub_80699F8(); if (r4 < 9 || r4 > 10) @@ -1342,7 +1342,7 @@ static bool8 WaitForAorBPress(void) } } } - if (sub_8112CAC() == 1 || gUnknown_203ADFA == 2) + if (sub_8112CAC() == 1 || gQuestLogState == 2) { if (gUnknown_20370AC == 120) return TRUE; @@ -1407,7 +1407,7 @@ bool8 ScrCmd_waitbuttonpress(struct ScriptContext *ctx) { gUnknown_3005070 = ctx; - if (sub_8112CAC() == 1 || gUnknown_203ADFA == 2) + if (sub_8112CAC() == 1 || gQuestLogState == 2) gUnknown_20370AC = 0; SetupNativeScript(ctx, WaitForAorBPress); return TRUE; diff --git a/src/script.c b/src/script.c index f18a8568b..0a4b69bac 100644 --- a/src/script.c +++ b/src/script.c @@ -1,11 +1,11 @@ #include "global.h" #include "script.h" #include "event_data.h" +#include "quest_log.h" #define RAM_SCRIPT_MAGIC 51 #define SCRIPT_STACK_SIZE 20 -extern u8 gUnknown_203ADFA; extern void sub_80CBDE8(void); // field_specials extern u16 CalcCRC16WithTable(u8 *data, int length); // util @@ -435,7 +435,7 @@ bool8 mapheader_run_first_tag2_script_list_match(void) { u8 *ptr; - if(gUnknown_203ADFA == 3) + if(gQuestLogState == 3) return 0; ptr = mapheader_get_first_match_from_tagged_ptr_list(2); diff --git a/src/script_menu.c b/src/script_menu.c index 2a81a7bce..42be3b539 100644 --- a/src/script_menu.c +++ b/src/script_menu.c @@ -1176,7 +1176,7 @@ void QLPlaybackCB_DestroyScriptMenuMonPicSprites(void) { u8 taskId; s16 *data; - ScriptContext1_SetupScript(EventScript_1A7AE0); + ScriptContext1_SetupScript(EventScript_ReleaseEnd); taskId = FindTaskIdByFunc(Task_ScriptShowMonPic); if (taskId != 0xFF) { diff --git a/src/shop.c b/src/shop.c index 0eb4baaa1..b410b32b9 100644 --- a/src/shop.c +++ b/src/shop.c @@ -1127,11 +1127,11 @@ static void RecordQuestLogItemPurchase(void) v = gShopMenuHistory[0].unkA; if (v != 0) - sub_8113550(v + 0x24, (const u16 *)&gShopMenuHistory[0]); + SetQuestLogEvent(v + QL_EVENT_USED_POKEMART, (const u16 *)&gShopMenuHistory[0]); v = gShopMenuHistory[1].unkA; if (v != 0) - sub_8113550(v + 0x24, (const u16 *)&gShopMenuHistory[1]); + SetQuestLogEvent(v + QL_EVENT_USED_POKEMART, (const u16 *)&gShopMenuHistory[1]); } void CreatePokemartMenu(const u16 *itemsForSale) diff --git a/src/sound.c b/src/sound.c index 325ff783a..ebd755838 100644 --- a/src/sound.c +++ b/src/sound.c @@ -2,6 +2,7 @@ #include "gba/m4a_internal.h" #include "sound.h" #include "battle.h" +#include "quest_log.h" #include "m4a.h" #include "main.h" #include "pokemon.h" @@ -16,7 +17,6 @@ struct Fanfare // TODO: what are these extern u8 gDisableMapMusicChangeOnMapLoad; -extern u8 gUnknown_203ADFA; extern u8 gUnknown_203F174; // ewram @@ -193,7 +193,7 @@ void PlayFanfareByFanfareNum(u8 fanfareNum) { u16 songNum; - if(gUnknown_203ADFA == 2) + if(gQuestLogState == 2) { sFanfareCounter = 0xFF; } @@ -362,7 +362,7 @@ void PlayCry4(u16 species, s8 pan, u8 mode) void PlayCry7(u16 species, u8 mode) // exclusive to FR/LG { - if((u8)(gUnknown_203ADFA - 2) >= 2) + if (gQuestLogState != 2 && gQuestLogState != 3) { m4aMPlayVolumeControl(&gMPlayInfo_BGM, 0xFFFF, 85); PlayCryInternal(species, 0, CRY_VOLUME, 10, mode); @@ -571,7 +571,7 @@ void PlayBGM(u16 songNum) void PlaySE(u16 songNum) { - if(gDisableMapMusicChangeOnMapLoad == 0 && gUnknown_203ADFA != 2) + if(gDisableMapMusicChangeOnMapLoad == 0 && gQuestLogState != 2) m4aSongNumStart(songNum); } diff --git a/src/string_util.c b/src/string_util.c index ccef95f71..4c1106df8 100644 --- a/src/string_util.c +++ b/src/string_util.c @@ -472,20 +472,20 @@ u8 *GetExpandedPlaceholder(u32 id) static const ExpandPlaceholderFunc funcs[] = { - ExpandPlaceholder_UnknownStringVar, - ExpandPlaceholder_PlayerName, - ExpandPlaceholder_StringVar1, - ExpandPlaceholder_StringVar2, - ExpandPlaceholder_StringVar3, - ExpandPlaceholder_KunChan, - ExpandPlaceholder_RivalName, - ExpandPlaceholder_Version, - ExpandPlaceholder_Magma, - ExpandPlaceholder_Aqua, - ExpandPlaceholder_Maxie, - ExpandPlaceholder_Archie, - ExpandPlaceholder_Groudon, - ExpandPlaceholder_Kyogre, + [PLACEHOLDER_ID_UNKNOWN] = ExpandPlaceholder_UnknownStringVar, + [PLACEHOLDER_ID_PLAYER] = ExpandPlaceholder_PlayerName, + [PLACEHOLDER_ID_STRING_VAR_1] = ExpandPlaceholder_StringVar1, + [PLACEHOLDER_ID_STRING_VAR_2] = ExpandPlaceholder_StringVar2, + [PLACEHOLDER_ID_STRING_VAR_3] = ExpandPlaceholder_StringVar3, + [PLACEHOLDER_ID_KUN] = ExpandPlaceholder_KunChan, + [PLACEHOLDER_ID_RIVAL] = ExpandPlaceholder_RivalName, + [PLACEHOLDER_ID_VERSION] = ExpandPlaceholder_Version, + [PLACEHOLDER_ID_MAGMA] = ExpandPlaceholder_Magma, + [PLACEHOLDER_ID_AQUA] = ExpandPlaceholder_Aqua, + [PLACEHOLDER_ID_MAXIE] = ExpandPlaceholder_Maxie, + [PLACEHOLDER_ID_ARCHIE] = ExpandPlaceholder_Archie, + [PLACEHOLDER_ID_GROUDON] = ExpandPlaceholder_Groudon, + [PLACEHOLDER_ID_KYOGRE] = ExpandPlaceholder_Kyogre, }; if (id >= ARRAY_COUNT(funcs)) diff --git a/src/text.c b/src/text.c index a0da0399f..83f089c12 100644 --- a/src/text.c +++ b/src/text.c @@ -527,7 +527,7 @@ void TextPrinterClearDownArrow(struct TextPrinter *textPrinter) bool8 TextPrinterWaitAutoMode(struct TextPrinter *textPrinter) { struct TextPrinterSubStruct *subStruct = &textPrinter->subUnion.sub; - u8 delay = (gUnknown_203ADFA == 2) ? 50 : 120; + u8 delay = (gQuestLogState == 2) ? 50 : 120; if (subStruct->autoScrollDelay == delay) { @@ -716,7 +716,7 @@ u16 RenderText(struct TextPrinter *textPrinter) textPrinter->printerTemplate.currentChar++; currChar |= *textPrinter->printerTemplate.currentChar << 8; textPrinter->printerTemplate.currentChar++; - if ((u8)(gUnknown_203ADFA - 2u) > 1) + if (gQuestLogState != 2 && gQuestLogState != 3) PlayBGM(currChar); return 2; case 16: diff --git a/src/trade_scene.c b/src/trade_scene.c index fc0e97573..9e3c1d0ce 100644 --- a/src/trade_scene.c +++ b/src/trade_scene.c @@ -2585,11 +2585,11 @@ static void sub_8053E8C(void) case 50: if (InUnionRoom()) { - sub_8113550(18, sTradeData->monSpecies); + SetQuestLogEvent(QL_EVENT_LINK_TRADED_UNION, sTradeData->monSpecies); } else { - sub_8113550(12, sTradeData->monSpecies); + SetQuestLogEvent(QL_EVENT_LINK_TRADED, sTradeData->monSpecies); IncrementGameStat(GAME_STAT_POKEMON_TRADES); } if (gWirelessCommType) diff --git a/src/vs_seeker.c b/src/vs_seeker.c index 7d288865c..b88a7f15c 100644 --- a/src/vs_seeker.c +++ b/src/vs_seeker.c @@ -29,6 +29,7 @@ #include "constants/trainers.h" #include "constants/maps.h" #include "constants/items.h" +#include "constants/quest_log.h" typedef enum { @@ -744,7 +745,7 @@ void Task_VsSeeker_0(u8 taskId) } else if (respval == 2) { - ItemUse_SetQuestLogEvent(4, 0, gSpecialVar_ItemId, 0xffff); + ItemUse_SetQuestLogEvent(QL_EVENT_USED_ITEM, 0, gSpecialVar_ItemId, 0xffff); FieldEffectStart(FLDEFF_UNK_41); // TODO: name this enum gTasks[taskId].func = Task_VsSeeker_1; gTasks[taskId].data[0] = 15; diff --git a/src/wild_encounter.c b/src/wild_encounter.c index f17e1f79b..b32eb583a 100644 --- a/src/wild_encounter.c +++ b/src/wild_encounter.c @@ -584,7 +584,7 @@ bool8 UpdateRepelCounter(void) if (InUnionRoom() == TRUE) return FALSE; - if (gUnknown_203ADFA == 2) + if (gQuestLogState == 2) return FALSE; steps = VarGet(VAR_REPEL_STEP_COUNT); |