summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <PikalaxALT@users.noreply.github.com>2020-01-16 09:53:08 -0500
committerGitHub <noreply@github.com>2020-01-16 09:53:08 -0500
commitfad367402892e1c25634c4448936d84a621c341c (patch)
treeb796aba2ae57729cae5f78767336082dd46a6b21
parent0bc479db34154988c6322bf5f2bb6d48556f62c3 (diff)
parent884b46a5dc26ae9e0c0abcf7e0d69c1122a30e22 (diff)
Merge pull request #225 from GriffinRichards/doc-questlog
Document some quest log
-rw-r--r--asm/cable_club.s2
-rw-r--r--asm/field_control_avatar.s12
-rw-r--r--asm/field_effect.s4
-rw-r--r--asm/field_message_box.s4
-rw-r--r--asm/macros/event.inc8
-rw-r--r--asm/overworld.s8
-rw-r--r--asm/pokemon_storage_system.s2
-rw-r--r--asm/union_room.s4
-rw-r--r--asm/union_room_chat.s2
-rw-r--r--data/event_scripts.s13
-rw-r--r--data/maps/BirthIsland_Exterior/scripts.inc4
-rw-r--r--data/maps/CeladonCity_Condominiums_3F/scripts.inc4
-rw-r--r--data/maps/CeladonCity_DepartmentStore_2F/scripts.inc8
-rw-r--r--data/maps/CeladonCity_DepartmentStore_4F/scripts.inc4
-rw-r--r--data/maps/CeladonCity_DepartmentStore_5F/scripts.inc8
-rw-r--r--data/maps/CeladonCity_DepartmentStore_Roof/scripts.inc4
-rw-r--r--data/maps/CeladonCity_GameCorner/scripts.inc4
-rw-r--r--data/maps/CeladonCity_GameCorner_PrizeRoom/scripts.inc12
-rw-r--r--data/maps/CeruleanCave_B1F/scripts.inc4
-rw-r--r--data/maps/CeruleanCity_House4/scripts.inc4
-rw-r--r--data/maps/CeruleanCity_House5/scripts.inc4
-rw-r--r--data/maps/CeruleanCity_Mart/scripts.inc4
-rw-r--r--data/maps/CinnabarIsland_Mart/scripts.inc4
-rw-r--r--data/maps/FiveIsland_LostCave_Room10/scripts.inc4
-rw-r--r--data/maps/FiveIsland_MemorialPillar/scripts.inc4
-rw-r--r--data/maps/FiveIsland_ResortGorgeous_House/scripts.inc4
-rw-r--r--data/maps/FiveIsland_WaterLabyrinth/scripts.inc4
-rw-r--r--data/maps/FourIsland/scripts.inc4
-rw-r--r--data/maps/FourIsland_Mart/scripts.inc4
-rw-r--r--data/maps/FourIsland_PokemonDayCare/scripts.inc4
-rw-r--r--data/maps/FuchsiaCity_Mart/scripts.inc4
-rw-r--r--data/maps/IndigoPlateau_PokemonCenter_1F/scripts.inc4
-rw-r--r--data/maps/LavenderTown_Mart/scripts.inc4
-rw-r--r--data/maps/MtEmber_Summit/scripts.inc4
-rw-r--r--data/maps/NavelRock_Base/scripts.inc4
-rw-r--r--data/maps/NavelRock_Summit/scripts.inc4
-rw-r--r--data/maps/PalletTown_GarysHouse/scripts.inc4
-rw-r--r--data/maps/PalletTown_PlayersHouse_2F/scripts.inc4
-rw-r--r--data/maps/PalletTown_ProfessorOaksLab/scripts.inc4
-rw-r--r--data/maps/PewterCity_Mart/scripts.inc4
-rw-r--r--data/maps/PokemonLeague_ChampionsRoom/scripts.inc4
-rw-r--r--data/maps/PokemonLeague_LancesRoom/scripts.inc2
-rw-r--r--data/maps/PokemonTower_6F/scripts.inc4
-rw-r--r--data/maps/PowerPlant/scripts.inc12
-rw-r--r--data/maps/Route12/scripts.inc4
-rw-r--r--data/maps/Route12_FishingHouse/scripts.inc4
-rw-r--r--data/maps/Route16/scripts.inc4
-rw-r--r--data/maps/SaffronCity_House1_2F/scripts.inc4
-rw-r--r--data/maps/SaffronCity_Mart/scripts.inc4
-rw-r--r--data/maps/SaffronCity_PokemonTrainerFanClub/scripts.inc162
-rw-r--r--data/maps/SeafoamIslands_B4F/scripts.inc4
-rw-r--r--data/maps/SevenIsland_Mart/scripts.inc4
-rw-r--r--data/maps/SevenIsland_TrainerTower_Lobby/scripts.inc4
-rw-r--r--data/maps/SixIsland_Mart/scripts.inc4
-rw-r--r--data/maps/SixIsland_WaterPath_House1/scripts.inc4
-rw-r--r--data/maps/ThreeIsland_BerryForest/scripts.inc4
-rw-r--r--data/maps/ThreeIsland_Mart/scripts.inc4
-rw-r--r--data/maps/TwoIsland/scripts.inc4
-rw-r--r--data/maps/TwoIsland_House/scripts.inc4
-rw-r--r--data/maps/VermilionCity/scripts.inc4
-rw-r--r--data/maps/VermilionCity_Gym/scripts.inc4
-rw-r--r--data/maps/VermilionCity_Mart/scripts.inc4
-rw-r--r--data/maps/ViridianCity/scripts.inc8
-rw-r--r--data/maps/ViridianCity_Mart/scripts.inc4
-rw-r--r--data/scripts/cable_club.inc36
-rw-r--r--data/scripts/day_care.inc4
-rw-r--r--data/scripts/field_moves.inc16
-rw-r--r--data/scripts/move_tutors.inc4
-rw-r--r--data/scripts/pc.inc4
-rw-r--r--data/scripts/pkmn_center_nurse.inc6
-rw-r--r--data/scripts/pokedex_rating.inc4
-rw-r--r--data/scripts/seagallop.inc4
-rw-r--r--data/scripts/surf.inc4
-rw-r--r--data/scripts/trainer_battle.inc16
-rw-r--r--data/specials.inc20
-rw-r--r--data/strings.s6
-rw-r--r--data/text/quest_log.inc259
-rw-r--r--include/constants/global.h2
-rw-r--r--include/constants/party_menu.h16
-rw-r--r--include/constants/quest_log.h133
-rw-r--r--include/constants/vars.h4
-rw-r--r--include/event_scripts.h7
-rw-r--r--include/global.h16
-rw-r--r--include/item.h2
-rw-r--r--include/party_menu.h2
-rw-r--r--include/quest_log.h9
-rw-r--r--include/quest_log_8150454.h8
-rw-r--r--include/quest_log_815A008.h9
-rw-r--r--include/quest_log_battle.h4
-rw-r--r--include/quest_log_objects.h9
-rw-r--r--include/quest_log_player.h8
-rw-r--r--include/text.h15
-rw-r--r--ld_script.txt6
-rw-r--r--src/battle_main.c4
-rw-r--r--src/battle_message.c2
-rw-r--r--src/battle_setup.c4
-rw-r--r--src/data/party_menu.h17
-rw-r--r--src/data/trainers.h2
-rw-r--r--src/field_specials.c12
-rw-r--r--src/field_tasks.c2
-rw-r--r--src/help_system_812B1E0.c2
-rw-r--r--src/item.c6
-rw-r--r--src/item_pc.c3
-rw-r--r--src/item_use.c20
-rw-r--r--src/link.c2
-rw-r--r--src/link_rfu_2.c8
-rw-r--r--src/map_name_popup.c2
-rw-r--r--src/map_preview_screen.c2
-rw-r--r--src/new_game.c4
-rw-r--r--src/new_menu_helpers.c8
-rw-r--r--src/party_menu.c72
-rw-r--r--src/quest_log.c2824
-rw-r--r--src/quest_log_battle.c62
-rw-r--r--src/quest_log_objects.c (renamed from src/quest_log_815A008.c)4
-rw-r--r--src/quest_log_player.c (renamed from src/quest_log_8150454.c)0
-rw-r--r--src/region_map.c2
-rw-r--r--src/scrcmd.c18
-rw-r--r--src/script.c4
-rw-r--r--src/script_menu.c2
-rw-r--r--src/shop.c4
-rw-r--r--src/sound.c8
-rw-r--r--src/string_util.c28
-rw-r--r--src/text.c4
-rw-r--r--src/trade_scene.c4
-rw-r--r--src/vs_seeker.c3
-rw-r--r--src/wild_encounter.c2
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);