Split quest_log.c

This commit is contained in:
PikalaxALT
2020-04-06 17:58:24 -04:00
parent a622448029
commit c78101535b
53 changed files with 3027 additions and 2933 deletions
+1 -1
View File
@@ -43,7 +43,7 @@ BirthIsland_Exterior_EventScript_Triangle:: @ 8165271
lock lock
faceplayer faceplayer
goto_if_questlog EventScript_ReleaseEnd goto_if_questlog EventScript_ReleaseEnd
special QuestLog_OnInteractionWithSpecialNpc special QuestLog_CutRecording
special DoDeoxysTriangleInteraction special DoDeoxysTriangleInteraction
waitstate waitstate
switch VAR_RESULT switch VAR_RESULT
@@ -3,7 +3,7 @@ CeladonCity_DepartmentStore_Roof_MapScripts:: @ 816BCCC
CeladonCity_DepartmentStore_Roof_EventScript_ThirstyGirl:: @ 816BCCD CeladonCity_DepartmentStore_Roof_EventScript_ThirstyGirl:: @ 816BCCD
goto_if_questlog EventScript_ReleaseEnd goto_if_questlog EventScript_ReleaseEnd
special QuestLog_OnInteractionWithSpecialNpc special QuestLog_CutRecording
lock lock
faceplayer faceplayer
call CeladonCity_DepartmentStore_Roof_EventScript_CheckPlayerHasDrinks call CeladonCity_DepartmentStore_Roof_EventScript_CheckPlayerHasDrinks
+1 -1
View File
@@ -24,7 +24,7 @@ CeruleanCave_B1F_EventScript_ShowMewtwo:: @ 81624F1
CeruleanCave_B1F_EventScript_Mewtwo:: @ 81624F5 CeruleanCave_B1F_EventScript_Mewtwo:: @ 81624F5
goto_if_questlog EventScript_ReleaseEnd goto_if_questlog EventScript_ReleaseEnd
special QuestLog_OnInteractionWithSpecialNpc special QuestLog_CutRecording
lock lock
faceplayer faceplayer
waitse waitse
+1 -1
View File
@@ -3,7 +3,7 @@ CeruleanCity_House4_MapScripts:: @ 816ACEE
CeruleanCity_House4_EventScript_WonderNewsBerryMan:: @ 816ACEF CeruleanCity_House4_EventScript_WonderNewsBerryMan:: @ 816ACEF
goto_if_questlog EventScript_ReleaseEnd goto_if_questlog EventScript_ReleaseEnd
special QuestLog_OnInteractionWithSpecialNpc special QuestLog_CutRecording
lock lock
specialvar VAR_0x8004, GetMENewsJisanItemAndState specialvar VAR_0x8004, GetMENewsJisanItemAndState
copyvar VAR_0x8008, VAR_RESULT copyvar VAR_0x8008, VAR_RESULT
@@ -33,7 +33,7 @@ FiveIsland_MemorialPillar_EventScript_ReturnedForTM42:: @ 8168A22
FiveIsland_MemorialPillar_EventScript_Memorial:: @ 8168A48 FiveIsland_MemorialPillar_EventScript_Memorial:: @ 8168A48
goto_if_questlog EventScript_ReleaseEnd goto_if_questlog EventScript_ReleaseEnd
special QuestLog_OnInteractionWithSpecialNpc special QuestLog_CutRecording
lockall lockall
goto_if_set FLAG_GOT_TM42_AT_MEMORIAL_PILLAR, FiveIsland_MemorialPillar_EventScript_MemorialLemonadeAlreadyPlaced goto_if_set FLAG_GOT_TM42_AT_MEMORIAL_PILLAR, FiveIsland_MemorialPillar_EventScript_MemorialLemonadeAlreadyPlaced
goto_if_set FLAG_NO_ROOM_FOR_TM42_AT_MEMORIAL_PILLAR, FiveIsland_MemorialPillar_EventScript_MemorialLemonadeAlreadyPlaced goto_if_set FLAG_NO_ROOM_FOR_TM42_AT_MEMORIAL_PILLAR, FiveIsland_MemorialPillar_EventScript_MemorialLemonadeAlreadyPlaced
@@ -8,7 +8,7 @@ FiveIsland_ResortGorgeous_House_MapScripts:: @ 8171EBD
FiveIsland_ResortGorgeous_House_EventScript_Selphy:: @ 8171EBE FiveIsland_ResortGorgeous_House_EventScript_Selphy:: @ 8171EBE
goto_if_questlog EventScript_ReleaseEnd goto_if_questlog EventScript_ReleaseEnd
special QuestLog_OnInteractionWithSpecialNpc special QuestLog_CutRecording
lock lock
faceplayer faceplayer
goto_if_set SHOWN_REQUESTED_MON, FiveIsland_ResortGorgeous_House_EventScript_JustFulfilledRequest goto_if_set SHOWN_REQUESTED_MON, FiveIsland_ResortGorgeous_House_EventScript_JustFulfilledRequest
@@ -3,7 +3,7 @@ FiveIsland_WaterLabyrinth_MapScripts:: @ 816884D
FiveIsland_WaterLabyrinth_EventScript_EggGentleman:: @ 816884E FiveIsland_WaterLabyrinth_EventScript_EggGentleman:: @ 816884E
goto_if_questlog EventScript_ReleaseEnd goto_if_questlog EventScript_ReleaseEnd
special QuestLog_OnInteractionWithSpecialNpc special QuestLog_CutRecording
lock lock
faceplayer faceplayer
goto_if_set FLAG_GOT_TOGEPI_EGG, FiveIsland_WaterLabyrinth_EventScript_PostEggComment goto_if_set FLAG_GOT_TOGEPI_EGG, FiveIsland_WaterLabyrinth_EventScript_PostEggComment
+1 -1
View File
@@ -73,7 +73,7 @@ FourIsland_Movement_PlayerWatchRivalExit:: @ 8167D52
FourIsland_EventScript_DaycareMan:: @ 8167D55 FourIsland_EventScript_DaycareMan:: @ 8167D55
goto_if_questlog EventScript_ReleaseEnd goto_if_questlog EventScript_ReleaseEnd
special QuestLog_OnInteractionWithSpecialNpc special QuestLog_CutRecording
lock lock
faceplayer faceplayer
special GetDaycareMonNicknames special GetDaycareMonNicknames
+1 -1
View File
@@ -24,7 +24,7 @@ MtEmber_Summit_EventScript_ShowMoltres:: @ 8163B2F
MtEmber_Summit_EventScript_Moltres:: @ 8163B33 MtEmber_Summit_EventScript_Moltres:: @ 8163B33
goto_if_questlog EventScript_ReleaseEnd goto_if_questlog EventScript_ReleaseEnd
special QuestLog_OnInteractionWithSpecialNpc special QuestLog_CutRecording
lock lock
faceplayer faceplayer
setwildbattle SPECIES_MOLTRES, 50, ITEM_NONE setwildbattle SPECIES_MOLTRES, 50, ITEM_NONE
+2 -2
View File
@@ -63,7 +63,7 @@ MtMoon_B2F_EventScript_DomeFossil:: @ 816071B
removeobject LOCALID_DOME_FOSSIL removeobject LOCALID_DOME_FOSSIL
giveitem_msg MtMoon_B2F_Text_ObtainedDomeFossil, ITEM_DOME_FOSSIL, 1, MUS_FAN5 giveitem_msg MtMoon_B2F_Text_ObtainedDomeFossil, ITEM_DOME_FOSSIL, 1, MUS_FAN5
closemessage closemessage
special QuestLog_OnInteractionWithSpecialNpc special QuestLog_CutRecording
delay 10 delay 10
applymovement LOCALID_MIGUEL, MtMoon_B2F_Movement_MiguelToHelixFossil applymovement LOCALID_MIGUEL, MtMoon_B2F_Movement_MiguelToHelixFossil
waitmovement 0 waitmovement 0
@@ -95,7 +95,7 @@ MtMoon_B2F_EventScript_HelixFossil:: @ 816077F
removeobject LOCALID_HELIX_FOSSIL removeobject LOCALID_HELIX_FOSSIL
giveitem_msg MtMoon_B2F_Text_ObtainedHelixFossil, ITEM_HELIX_FOSSIL, 1, MUS_FAN5 giveitem_msg MtMoon_B2F_Text_ObtainedHelixFossil, ITEM_HELIX_FOSSIL, 1, MUS_FAN5
closemessage closemessage
special QuestLog_OnInteractionWithSpecialNpc special QuestLog_CutRecording
delay 10 delay 10
applymovement LOCALID_MIGUEL, MtMoon_B2F_Movement_MiguelToDomeFossil applymovement LOCALID_MIGUEL, MtMoon_B2F_Movement_MiguelToDomeFossil
waitmovement 0 waitmovement 0
+1 -1
View File
@@ -30,7 +30,7 @@ NavelRock_Base_EventScript_TryRemoveLugia:: @ 8165120
NavelRock_Base_EventScript_Lugia:: @ 8165134 NavelRock_Base_EventScript_Lugia:: @ 8165134
goto_if_questlog EventScript_ReleaseEnd goto_if_questlog EventScript_ReleaseEnd
special QuestLog_OnInteractionWithSpecialNpc special QuestLog_CutRecording
lock lock
faceplayer faceplayer
waitse waitse
+1 -1
View File
@@ -33,7 +33,7 @@ NavelRock_Summit_EventScript_TryRemoveHoOh:: @ 8164FE7
NavelRock_Summit_EventScript_HoOh:: @ 8164FFB NavelRock_Summit_EventScript_HoOh:: @ 8164FFB
goto_if_questlog EventScript_ReleaseEnd goto_if_questlog EventScript_ReleaseEnd
special QuestLog_OnInteractionWithSpecialNpc special QuestLog_CutRecording
lockall lockall
setvar VAR_TEMP_1, 1 setvar VAR_TEMP_1, 1
special SpawnCameraObject special SpawnCameraObject
+1 -1
View File
@@ -50,7 +50,7 @@ PalletTown_GarysHouse_EventScript_HeardBattledRival:: @ 8168DAF
PalletTown_GarysHouse_EventScript_GroomMon:: @ 8168DB9 PalletTown_GarysHouse_EventScript_GroomMon:: @ 8168DB9
goto_if_questlog EventScript_ReleaseEnd goto_if_questlog EventScript_ReleaseEnd
special QuestLog_OnInteractionWithSpecialNpc special QuestLog_CutRecording
compare VAR_MASSAGE_COOLDOWN_STEP_COUNTER, 500 compare VAR_MASSAGE_COOLDOWN_STEP_COUNTER, 500
goto_if_lt PalletTown_GarysHouse_EventScript_RateMonFriendship goto_if_lt PalletTown_GarysHouse_EventScript_RateMonFriendship
msgbox PalletTown_GarysHouse_Text_LikeMeToGroomMon, MSGBOX_YESNO msgbox PalletTown_GarysHouse_Text_LikeMeToGroomMon, MSGBOX_YESNO
@@ -1000,7 +1000,7 @@ PalletTown_ProfessorOaksLab_EventScript_DontStartNationalDexScene:: @ 81699F9
PalletTown_ProfessorOaksLab_EventScript_CheckIfPlayerNeedsBalls:: @ 81699FB PalletTown_ProfessorOaksLab_EventScript_CheckIfPlayerNeedsBalls:: @ 81699FB
goto_if_questlog EventScript_ReleaseEnd goto_if_questlog EventScript_ReleaseEnd
special QuestLog_OnInteractionWithSpecialNpc special QuestLog_CutRecording
goto_if_set FLAG_OAK_SKIP_22_RIVAL_CHECK, PalletTown_ProfessorOaksLab_EventScript_MonsAroundWorldWait goto_if_set FLAG_OAK_SKIP_22_RIVAL_CHECK, PalletTown_ProfessorOaksLab_EventScript_MonsAroundWorldWait
goto_if_set FLAG_GOT_POKEBALLS_FROM_OAK_AFTER_22_RIVAL, PalletTown_ProfessorOaksLab_EventScript_PlayerAlreadyGotBalls goto_if_set FLAG_GOT_POKEBALLS_FROM_OAK_AFTER_22_RIVAL, PalletTown_ProfessorOaksLab_EventScript_PlayerAlreadyGotBalls
checkitem ITEM_POKE_BALL, 1 checkitem ITEM_POKE_BALL, 1
+1 -1
View File
@@ -9,7 +9,7 @@ PokemonTower_6F_EventScript_MarowakGhost:: @ 81634B8
setwildbattle SPECIES_MAROWAK, 30, ITEM_NONE setwildbattle SPECIES_MAROWAK, 30, ITEM_NONE
special StartMarowakBattle special StartMarowakBattle
waitstate waitstate
special QuestLog_OnInteractionWithSpecialNpc special QuestLog_CutRecording
compare VAR_RESULT, FALSE @ Set by CB2_EndMarowakBattle compare VAR_RESULT, FALSE @ Set by CB2_EndMarowakBattle
goto_if_eq PokemonTower_6F_EventScript_DefeatedMarowakGhost goto_if_eq PokemonTower_6F_EventScript_DefeatedMarowakGhost
applymovement OBJ_EVENT_ID_PLAYER, PokemonTower_6F_Movement_ForcePlayerUp applymovement OBJ_EVENT_ID_PLAYER, PokemonTower_6F_Movement_ForcePlayerUp
+3 -3
View File
@@ -35,7 +35,7 @@ PowerPlant_EventScript_ShowElectrode2:: @ 81637B4
PowerPlant_EventScript_Zapdos:: @ 81637B8 PowerPlant_EventScript_Zapdos:: @ 81637B8
goto_if_questlog EventScript_ReleaseEnd goto_if_questlog EventScript_ReleaseEnd
special QuestLog_OnInteractionWithSpecialNpc special QuestLog_CutRecording
lock lock
faceplayer faceplayer
setwildbattle SPECIES_ZAPDOS, 50, ITEM_NONE setwildbattle SPECIES_ZAPDOS, 50, ITEM_NONE
@@ -84,7 +84,7 @@ PowerPlant_EventScript_Electrode1:: @ 816382F
setflag FLAG_SYS_SPECIAL_WILD_BATTLE setflag FLAG_SYS_SPECIAL_WILD_BATTLE
dowildbattle dowildbattle
clearflag FLAG_SYS_SPECIAL_WILD_BATTLE clearflag FLAG_SYS_SPECIAL_WILD_BATTLE
special QuestLog_OnInteractionWithSpecialNpc special QuestLog_CutRecording
specialvar VAR_RESULT, GetBattleOutcome specialvar VAR_RESULT, GetBattleOutcome
compare VAR_RESULT, B_OUTCOME_WON compare VAR_RESULT, B_OUTCOME_WON
goto_if_eq PowerPlant_EventScript_FoughtElectrode1 goto_if_eq PowerPlant_EventScript_FoughtElectrode1
@@ -113,7 +113,7 @@ PowerPlant_EventScript_Electrode2:: @ 816388D
setflag FLAG_SYS_SPECIAL_WILD_BATTLE setflag FLAG_SYS_SPECIAL_WILD_BATTLE
dowildbattle dowildbattle
clearflag FLAG_SYS_SPECIAL_WILD_BATTLE clearflag FLAG_SYS_SPECIAL_WILD_BATTLE
special QuestLog_OnInteractionWithSpecialNpc special QuestLog_CutRecording
specialvar VAR_RESULT, GetBattleOutcome specialvar VAR_RESULT, GetBattleOutcome
compare VAR_RESULT, B_OUTCOME_WON compare VAR_RESULT, B_OUTCOME_WON
goto_if_eq PowerPlant_EventScript_FoughtElectrode2 goto_if_eq PowerPlant_EventScript_FoughtElectrode2
+1 -1
View File
@@ -15,7 +15,7 @@ Route12_EventScript_Snorlax:: @ 8168014
faceplayer faceplayer
goto_if_unset FLAG_GOT_POKE_FLUTE, Route12_EventScript_SnorlaxNoPokeFlute goto_if_unset FLAG_GOT_POKE_FLUTE, Route12_EventScript_SnorlaxNoPokeFlute
goto_if_questlog EventScript_ReleaseEnd goto_if_questlog EventScript_ReleaseEnd
special QuestLog_OnInteractionWithSpecialNpc special QuestLog_CutRecording
msgbox Text_WantToUsePokeFlute, MSGBOX_YESNO msgbox Text_WantToUsePokeFlute, MSGBOX_YESNO
compare VAR_RESULT, NO compare VAR_RESULT, NO
goto_if_eq Route12_EventScript_DontUsePokeFlute goto_if_eq Route12_EventScript_DontUsePokeFlute
+1 -1
View File
@@ -31,7 +31,7 @@ Route12_FishingHouse_EventScript_NoRoomForSuperRod:: @ 816FF75
Route12_FishingHouse_EventScript_CheckMagikarpRecord:: @ 816FF7F Route12_FishingHouse_EventScript_CheckMagikarpRecord:: @ 816FF7F
goto_if_questlog EventScript_ReleaseEnd goto_if_questlog EventScript_ReleaseEnd
special QuestLog_OnInteractionWithSpecialNpc special QuestLog_CutRecording
setvar VAR_0x8004, SPECIES_MAGIKARP setvar VAR_0x8004, SPECIES_MAGIKARP
specialvar VAR_RESULT, DoesPlayerPartyContainSpecies specialvar VAR_RESULT, DoesPlayerPartyContainSpecies
compare VAR_RESULT, FALSE compare VAR_RESULT, FALSE
+1 -1
View File
@@ -34,7 +34,7 @@ Route16_EventScript_Snorlax:: @ 8168121
faceplayer faceplayer
goto_if_unset FLAG_GOT_POKE_FLUTE, Route16_EventScript_SnorlaxNoPokeFlute goto_if_unset FLAG_GOT_POKE_FLUTE, Route16_EventScript_SnorlaxNoPokeFlute
goto_if_questlog EventScript_ReleaseEnd goto_if_questlog EventScript_ReleaseEnd
special QuestLog_OnInteractionWithSpecialNpc special QuestLog_CutRecording
msgbox Text_WantToUsePokeFlute, MSGBOX_YESNO msgbox Text_WantToUsePokeFlute, MSGBOX_YESNO
compare VAR_RESULT, NO compare VAR_RESULT, NO
goto_if_eq Route16_EventScript_DontUsePokeFlute goto_if_eq Route16_EventScript_DontUsePokeFlute
@@ -19,7 +19,7 @@ SaffronCity_CopycatsHouse_2F_EventScript_Doll:: @ 816EB70
SaffronCity_CopycatsHouse_2F_EventScript_Copycat:: @ 816EB7B SaffronCity_CopycatsHouse_2F_EventScript_Copycat:: @ 816EB7B
goto_if_questlog EventScript_ReleaseEnd goto_if_questlog EventScript_ReleaseEnd
special QuestLog_OnInteractionWithSpecialNpc special QuestLog_CutRecording
lock lock
faceplayer faceplayer
checkitem ITEM_POKE_DOLL, 1 checkitem ITEM_POKE_DOLL, 1
+1 -1
View File
@@ -159,7 +159,7 @@ SeafoamIslands_B4F_Movement_WalkUp:: @ 81631AA
SeafoamIslands_B4F_EventScript_Articuno:: @ 81631AC SeafoamIslands_B4F_EventScript_Articuno:: @ 81631AC
goto_if_questlog EventScript_ReleaseEnd goto_if_questlog EventScript_ReleaseEnd
special QuestLog_OnInteractionWithSpecialNpc special QuestLog_CutRecording
lock lock
faceplayer faceplayer
setwildbattle SPECIES_ARTICUNO, 50, ITEM_NONE setwildbattle SPECIES_ARTICUNO, 50, ITEM_NONE
@@ -5,7 +5,7 @@ SixIsland_WaterPath_House1_EventScript_Beauty:: @ 817206D
lock lock
faceplayer faceplayer
goto_if_questlog EventScript_ReleaseEnd goto_if_questlog EventScript_ReleaseEnd
special QuestLog_OnInteractionWithSpecialNpc special QuestLog_CutRecording
setvar VAR_0x8004, SPECIES_HERACROSS setvar VAR_0x8004, SPECIES_HERACROSS
specialvar VAR_RESULT, DoesPlayerPartyContainSpecies specialvar VAR_RESULT, DoesPlayerPartyContainSpecies
compare VAR_RESULT, FALSE compare VAR_RESULT, FALSE
@@ -23,7 +23,7 @@ ThreeIsland_BerryForest_EventScript_Lostelle:: @ 8163C83
waitmoncry waitmoncry
setwildbattle SPECIES_HYPNO, 30, ITEM_NONE setwildbattle SPECIES_HYPNO, 30, ITEM_NONE
dowildbattle dowildbattle
special QuestLog_OnInteractionWithSpecialNpc special QuestLog_CutRecording
applymovement 1, Movement_FacePlayer applymovement 1, Movement_FacePlayer
waitmovement 0 waitmovement 0
msgbox ThreeIsland_BerryForest_Text_ThankYouHaveThis msgbox ThreeIsland_BerryForest_Text_ThankYouHaveThis
+1 -1
View File
@@ -8,7 +8,7 @@ TwoIsland_House_MapScripts:: @ 8171618
TwoIsland_House_EventScript_MoveManiac:: @ 8171619 TwoIsland_House_EventScript_MoveManiac:: @ 8171619
goto_if_questlog EventScript_ReleaseEnd goto_if_questlog EventScript_ReleaseEnd
special QuestLog_OnInteractionWithSpecialNpc special QuestLog_CutRecording
lock lock
faceplayer faceplayer
clearflag HAS_BIG_MUSHROOM clearflag HAS_BIG_MUSHROOM
+1 -1
View File
@@ -86,7 +86,7 @@ VermilionCity_EventScript_CheckSeagallopPresent:: @ 8166996
VermilionCity_EventScript_ChooseSeagallopDestRainbowPass:: @ 81669BB VermilionCity_EventScript_ChooseSeagallopDestRainbowPass:: @ 81669BB
goto_if_questlog EventScript_ReleaseEnd goto_if_questlog EventScript_ReleaseEnd
special QuestLog_OnInteractionWithSpecialNpc special QuestLog_CutRecording
call VermilionCity_EventScript_CheckHasMysticTicket call VermilionCity_EventScript_CheckHasMysticTicket
compare VAR_RESULT, TRUE compare VAR_RESULT, TRUE
goto_if_eq VermilionCity_EventScript_HasMysticTicket goto_if_eq VermilionCity_EventScript_HasMysticTicket
+1 -1
View File
@@ -142,7 +142,7 @@ VermilionCity_Gym_EventScript_TrashCan15:: @ 816B837
VermilionCity_Gym_EventScript_TrashCan:: @ 816B843 VermilionCity_Gym_EventScript_TrashCan:: @ 816B843
goto_if_questlog EventScript_ReleaseEnd goto_if_questlog EventScript_ReleaseEnd
special QuestLog_OnInteractionWithSpecialNpc special QuestLog_CutRecording
copyvar SWITCH1_ID, VAR_TEMP_0 copyvar SWITCH1_ID, VAR_TEMP_0
copyvar SWITCH2_ID, VAR_TEMP_1 copyvar SWITCH2_ID, VAR_TEMP_1
goto_if_set FLAG_FOUND_BOTH_VERMILION_GYM_SWITCHES, VermilionCity_Gym_EventScript_LocksAlreadyOpen goto_if_set FLAG_FOUND_BOTH_VERMILION_GYM_SWITCHES, VermilionCity_Gym_EventScript_LocksAlreadyOpen
+2 -2
View File
@@ -146,7 +146,7 @@ ViridianCity_EventScript_WatchToLearnBasics:: @ 8165A5B
ViridianCity_EventScript_TutorialUnused:: @ 8165A65 ViridianCity_EventScript_TutorialUnused:: @ 8165A65
msgbox ViridianCity_Text_ThatWasEducationalTakeThis msgbox ViridianCity_Text_ThatWasEducationalTakeThis
goto_if_questlog EventScript_ReleaseEnd goto_if_questlog EventScript_ReleaseEnd
special QuestLog_OnInteractionWithSpecialNpc special QuestLog_CutRecording
special StartOldManTutorialBattle special StartOldManTutorialBattle
waitstate waitstate
release release
@@ -239,7 +239,7 @@ ViridianCity_EventScript_DoTutorialBattle:: @ 8165B4C
msgbox ViridianCity_Text_ShowYouHowToCatchMons msgbox ViridianCity_Text_ShowYouHowToCatchMons
closemessage closemessage
goto_if_questlog EventScript_ReleaseEnd goto_if_questlog EventScript_ReleaseEnd
special QuestLog_OnInteractionWithSpecialNpc special QuestLog_CutRecording
special StartOldManTutorialBattle special StartOldManTutorialBattle
waitstate waitstate
lock lock
+5 -5
View File
@@ -15,7 +15,7 @@ EventScript_HideMysteryGiftMan:: @ 81BB1CE
CableClub_EventScript_MysteryGiftMan:: @ 81BB1D2 CableClub_EventScript_MysteryGiftMan:: @ 81BB1D2
goto_if_questlog EventScript_ReleaseEnd goto_if_questlog EventScript_ReleaseEnd
special QuestLog_OnInteractionWithSpecialNpc special QuestLog_CutRecording
execram execram
@ Unused @ Unused
@@ -775,7 +775,7 @@ CableClub_EventScript_DoLinkRoomExit:: @ 81BB9FC
CableClub_EventScript_UnionRoomAttendant:: @ 81BBA04 CableClub_EventScript_UnionRoomAttendant:: @ 81BBA04
goto_if_questlog EventScript_ReleaseEnd goto_if_questlog EventScript_ReleaseEnd
special QuestLog_OnInteractionWithSpecialNpc special QuestLog_CutRecording
lock lock
faceplayer faceplayer
goto_if_unset FLAG_SYS_POKEDEX_GET, CableClub_EventScript_WirelessClubAdjustements goto_if_unset FLAG_SYS_POKEDEX_GET, CableClub_EventScript_WirelessClubAdjustements
@@ -885,7 +885,7 @@ CableClub_EventScript_DontAskAboutLinking:: @ 81BBB92
CableClub_EventScript_DirectCornerAttendant:: @ 81BBB9C CableClub_EventScript_DirectCornerAttendant:: @ 81BBB9C
goto_if_questlog EventScript_ReleaseEnd goto_if_questlog EventScript_ReleaseEnd
special QuestLog_OnInteractionWithSpecialNpc special QuestLog_CutRecording
lock lock
faceplayer faceplayer
goto_if_unset FLAG_SYS_POKEDEX_GET, CableClub_EventScript_WirelessClubAdjustements goto_if_unset FLAG_SYS_POKEDEX_GET, CableClub_EventScript_WirelessClubAdjustements
@@ -1195,7 +1195,7 @@ CableClub_OnResume:: @ 81BC05C
JoyfulGameCorner_EventScript_InfoMan2:: @ 81BC060 JoyfulGameCorner_EventScript_InfoMan2:: @ 81BC060
goto_if_questlog EventScript_ReleaseEnd goto_if_questlog EventScript_ReleaseEnd
special QuestLog_OnInteractionWithSpecialNpc special QuestLog_CutRecording
lock lock
faceplayer faceplayer
message Text_DescribeWhichGame message Text_DescribeWhichGame
@@ -1225,7 +1225,7 @@ CableClub_EventScript_MinigameInfoExit:: @ 81BC0C4
JoyfulGameCorner_EventScript_MinigameAttendant:: @ 81BC0CE JoyfulGameCorner_EventScript_MinigameAttendant:: @ 81BC0CE
goto_if_questlog EventScript_ReleaseEnd goto_if_questlog EventScript_ReleaseEnd
special QuestLog_OnInteractionWithSpecialNpc special QuestLog_CutRecording
lock lock
faceplayer faceplayer
message Text_WelcomeCanYouWait message Text_WelcomeCanYouWait
+1 -1
View File
@@ -448,7 +448,7 @@ EventScript_BodySlamTaught:: @ 81C4DE2
TwoIsland_CapeBrink_House_EventScript_StarterTutor:: @ 81C4DEC TwoIsland_CapeBrink_House_EventScript_StarterTutor:: @ 81C4DEC
goto_if_questlog EventScript_ReleaseEnd goto_if_questlog EventScript_ReleaseEnd
special QuestLog_OnInteractionWithSpecialNpc special QuestLog_CutRecording
lock lock
faceplayer faceplayer
goto_if_set FLAG_LEARNED_ALL_MOVES_AT_CAPE_BRINK, CapeBrinkTutor_EventScript_TaughtAllMoves goto_if_set FLAG_LEARNED_ALL_MOVES_AT_CAPE_BRINK, CapeBrinkTutor_EventScript_TaughtAllMoves
+1 -1
View File
@@ -1,6 +1,6 @@
PokedexRating_EventScript_RateInPerson:: @ 81A737B PokedexRating_EventScript_RateInPerson:: @ 81A737B
goto_if_questlog EventScript_ReleaseEnd goto_if_questlog EventScript_ReleaseEnd
special QuestLog_OnInteractionWithSpecialNpc special QuestLog_CutRecording
call_if_set FLAG_OAK_SAW_DEX_COMPLETION, PokedexRating_EventScript_DexCompleteIntro call_if_set FLAG_OAK_SAW_DEX_COMPLETION, PokedexRating_EventScript_DexCompleteIntro
call_if_unset FLAG_OAK_SAW_DEX_COMPLETION, PokedexRating_EventScript_NormalIntro call_if_unset FLAG_OAK_SAW_DEX_COMPLETION, PokedexRating_EventScript_NormalIntro
call PokedexRating_EventScript_Rate call PokedexRating_EventScript_Rate
+1 -1
View File
@@ -111,7 +111,7 @@ EventScript_SetSail:: @ 81A90DA
closemessage closemessage
delay 20 delay 20
goto_if_questlog EventScript_ReleaseEnd goto_if_questlog EventScript_ReleaseEnd
special QuestLog_OnInteractionWithSpecialNpc special QuestLog_CutRecording
fadescreen FADE_TO_BLACK fadescreen FADE_TO_BLACK
special DoSeagallopFerryScene special DoSeagallopFerryScene
waitstate waitstate
+1 -1
View File
@@ -92,7 +92,7 @@ FourIsland_House2_EventScript_StickerManAskForBrag:: @ 81B2994
applymovement 1, Movement_FacePlayer applymovement 1, Movement_FacePlayer
waitmovement 0 waitmovement 0
goto_if_questlog EventScript_ReleaseEnd goto_if_questlog EventScript_ReleaseEnd
special QuestLog_OnInteractionWithSpecialNpc special QuestLog_CutRecording
compare VAR_0x8008, 0 compare VAR_0x8008, 0
goto_if_eq FourIsland_House2_EventScript_NothingToBragAbout goto_if_eq FourIsland_House2_EventScript_NothingToBragAbout
message FourIsland_House2_Text_BragAboutWhatToday message FourIsland_House2_Text_BragAboutWhatToday
+1 -1
View File
@@ -400,7 +400,7 @@ gSpecials:: @ 815FD60
def_special GetMartClerkObjectId def_special GetMartClerkObjectId
def_special BattleCardAction def_special BattleCardAction
def_special GetQuestLogState def_special GetQuestLogState
def_special QuestLog_OnInteractionWithSpecialNpc def_special QuestLog_CutRecording
def_special GetMENewsJisanItemAndState def_special GetMENewsJisanItemAndState
def_special GetPCBoxToSendMon def_special GetPCBoxToSendMon
def_special OpenMuseumFossilPic def_special OpenMuseumFossilPic
+10
View File
@@ -0,0 +1,10 @@
#ifndef GUARD_HELP_MESSAGE_H
#define GUARD_HELP_MESSAGE_H
void DestroyHelpMessageWindow(u8 a0);
u8 CreateHelpMessageWindow(void);
void PrintTextOnHelpMessageWindow(const u8 * text, u8 mode);
void MapNamePopupWindowIdSetDummy(void);
void sub_8112F18(u8 windowId);
#endif //GUARD_HELP_MESSAGE_H
+5 -5
View File
@@ -110,10 +110,10 @@ u32 GetGameStat(u8 statId);
void SetGameStat(u8 statId, u32 value); void SetGameStat(u8 statId, u32 value);
void CB2_ContinueSavedGame(void); void CB2_ContinueSavedGame(void);
void sub_8055D5C(struct WarpData *); void Overworld_SetWarpDestinationFromWarp(struct WarpData *);
void sub_80572A8(void); void CB2_SetUpOverworldForQLPlayback(void);
void sub_805726C(void); void CB2_SetUpOverworldForQLPlaybackWithWarpExit(void);
void sub_8057430(void); void CB2_EnterFieldFromQuestLog(void);
void Overworld_PlaySpecialMapMusic(void); void Overworld_PlaySpecialMapMusic(void);
u8 GetCurrentRegionMapSectionId(void); u8 GetCurrentRegionMapSectionId(void);
@@ -133,7 +133,7 @@ extern bool8 (* gFieldCallback2)(void);
void SetLastHealLocationWarp(u8 healLocaionId); void SetLastHealLocationWarp(u8 healLocaionId);
void LoadMapFromCameraTransition(u8 mapGroup, u8 mapNum); void LoadMapFromCameraTransition(u8 mapGroup, u8 mapNum);
void sub_80568FC(void); void CB2_ReturnToFieldFromDiploma(void);
void CB2_OverworldBasic(void); void CB2_OverworldBasic(void);
void CB2_NewGame(void); void CB2_NewGame(void);
bool8 IsMapTypeOutdoors(u8 mapType); bool8 IsMapTypeOutdoors(u8 mapType);
+47 -12
View File
@@ -6,10 +6,31 @@
#include "constants/quest_log.h" #include "constants/quest_log.h"
#include "field_control_avatar.h" #include "field_control_avatar.h"
struct QuestLogEntry
{
u8 unk_0;
u8 unk_1;
u8 unk_2;
u8 unk_3;
u16 unk_4;
u8 unk_6;
};
struct UnkStruct_203B044
{
u8 unk_0;
u8 unk_1;
u16 unk_2;
};
extern u8 gQuestLogState; extern u8 gQuestLogState;
extern u8 gQuestLogPlaybackState; extern u8 gQuestLogPlaybackState;
extern const u16 gUnknown_84566A8[]; extern const u16 gUnknown_84566A8[];
extern struct FieldInput gQuestLogFieldInput; extern struct FieldInput gQuestLogFieldInput;
extern struct UnkStruct_203B044 gUnknown_203B044;
extern u16 *gUnknown_203AE04;
extern u16 *sEventRecordingPointer;
extern u16 sQuestLogCursor;
void sub_8112720(u8); void sub_8112720(u8);
void SetQuestLogEvent(u16, const u16 *); void SetQuestLogEvent(u16, const u16 *);
@@ -19,24 +40,19 @@ u8 sub_8112CAC(void);
bool8 QuestLog_SchedulePlaybackCB(void (*func)(void)); bool8 QuestLog_SchedulePlaybackCB(void (*func)(void));
void sub_8111F38(u16 offset, u16 idx); void sub_8111F38(u16 offset, u16 idx);
void CommitQuestLogWindow1(void); void CommitQuestLogWindow1(void);
void DestroyHelpMessageWindow(u8 a0); void QuestLog_DrawPreviouslyOnQuestHeaderIfInPlaybackMode(void);
u8 CreateHelpMessageWindow(void);
void PrintTextOnHelpMessageWindow(const u8 * text, u8 mode);
void MapNamePopupWindowIdSetDummy(void);
void sub_8111CF0(void);
void ResetQuestLog(void); void ResetQuestLog(void);
void ResetTrainerFanClub(void); void ResetTrainerFanClub(void);
void TrySetUpQuestLogScenes_ElseContinueFromSave(u8 taskId); void TrySetUpQuestLogScenes_ElseContinueFromSave(u8 taskId);
void SaveQuestLogData(void); void SaveQuestLogData(void);
void QuestLog_OnInteractionWithSpecialNpc(void); void QuestLog_CutRecording(void);
u8 sub_8112CAC(void); u8 sub_8112CAC(void);
void sub_81138F8(void); void sub_81138F8(void);
void sub_811231C(void); void FinishRecordingQuestLogScene(void);
void sub_81139BC(void); void sub_81139BC(void);
void *QuestLogGetFlagOrVarPtr(bool8 isFlag, u16 idx); void *QuestLogGetFlagOrVarPtr(bool8 isFlag, u16 idx);
void QuestLogSetFlagOrVar(bool8 isFlag, u16 idx, u16 value); void QuestLogSetFlagOrVar(bool8 isFlag, u16 idx, u16 value);
void sub_8110840(void *oldSave); void SetQuestLogRecordAndPlaybackPointers(void *oldSave);
void sub_8112F18(u8 windowId);
void sub_811246C(struct Sprite *sprite); void sub_811246C(struct Sprite *sprite);
void sub_81124EC(u8 a0, u8 a1, u8 a2, u8 a3); void sub_81124EC(u8 a0, u8 a1, u8 a2, u8 a3);
bool8 sub_8111C2C(void); bool8 sub_8111C2C(void);
@@ -53,14 +69,33 @@ void sub_81127F8(struct FieldInput * a0);
void sub_8112B3C(void); void sub_8112B3C(void);
void RunQuestLogCB(void); void RunQuestLogCB(void);
void sub_8111C68(void); void sub_8111C68(void);
bool8 sub_8111CD0(void); bool8 QuestLogScenePlaybackIsEnding(void);
void sub_8115798(void); void sub_8115798(void);
bool8 sub_8113748(void); bool8 QuestLog_ShouldEndSceneOnMapChange(void);
void sub_81119C8(void); void QuestLog_AdvancePlayhead_(void);
void sub_8111F14(void); void sub_8111F14(void);
void sub_8110FCC(void); void sub_8110FCC(void);
u8 GetQuestLogStartType(void); u8 GetQuestLogStartType(void);
void sub_81113E4(void); void sub_81113E4(void);
void sub_8111438(void); void sub_8111438(void);
void StartRecordingQuestLogEntry(u16 eventId);
bool8 WillCommandOfSizeFitInSav1Record(u16 *cursor, size_t size);
bool8 sub_8110944(const void * a0, size_t cmdSize);
void sub_8113BD8(void);
void ResetUnk203B044(void);
u16 *TryRecordEvent39_NoParams(u16 *);
u16 *sub_8113C8C(u16 *, struct QuestLogEntry *);
u16 *sub_8113CC8(u16 *, struct QuestLogEntry *);
u16 *sub_8113D08(u16 *, struct QuestLogEntry *);
u16 *sub_8113D48(u16 *, struct QuestLogEntry *);
u16 *sub_8113D94(u16 *, struct QuestLogEntry *);
void sub_811381C(void);
u16 *QuestLog_SkipCommand(u16 *, u16 **);
void sub_8113ABC(const u16 *);
u16 *sub_8113C20(u16 *, struct QuestLogEntry *);
bool8 sub_8113AE8(const u16 *);
bool8 sub_8113B44(const u16 *);
void TryRecordEvent41_IncCursor(u16);
#endif //GUARD_QUEST_LOG_H #endif //GUARD_QUEST_LOG_H
+6
View File
@@ -248,6 +248,9 @@ SECTIONS {
src/mailbox_pc.o(.text); src/mailbox_pc.o(.text);
src/menu.o(.text); src/menu.o(.text);
src/quest_log.o(.text); src/quest_log.o(.text);
src/help_message.o(.text);
src/trainer_fan_club.o(.text);
src/quest_log_events.o(.text);
src/union_room.o(.text); src/union_room.o(.text);
src/rfu_union_tool.o(.text); src/rfu_union_tool.o(.text);
src/union_room_battle.o(.text); src/union_room_battle.o(.text);
@@ -549,6 +552,9 @@ SECTIONS {
src/decoration.o(.rodata); src/decoration.o(.rodata);
src/menu.o(.rodata); src/menu.o(.rodata);
src/quest_log.o(.rodata); src/quest_log.o(.rodata);
src/help_message.o(.rodata);
src/trainer_fan_club.o(.rodata);
src/quest_log_events.o(.rodata);
src/union_room.o(.rodata); src/union_room.o(.rodata);
src/rfu_union_tool.o(.rodata); src/rfu_union_tool.o(.rodata);
src/union_room_battle.o(.rodata); src/union_room_battle.o(.rodata);
+2 -2
View File
@@ -794,13 +794,13 @@ const u8 *BattleSetup_ConfigureTrainerBattle(const u8 *data)
SetMapVarsToTrainer(); SetMapVarsToTrainer();
return EventScript_TryDoDoubleTrainerBattle; return EventScript_TryDoDoubleTrainerBattle;
case TRAINER_BATTLE_REMATCH_DOUBLE: case TRAINER_BATTLE_REMATCH_DOUBLE:
sub_811231C(); FinishRecordingQuestLogScene();
TrainerBattleLoadArgs(sDoubleBattleParams, data); TrainerBattleLoadArgs(sDoubleBattleParams, data);
SetMapVarsToTrainer(); SetMapVarsToTrainer();
gTrainerBattleOpponent_A = GetRematchTrainerId(gTrainerBattleOpponent_A); gTrainerBattleOpponent_A = GetRematchTrainerId(gTrainerBattleOpponent_A);
return EventScript_TryDoDoubleRematchBattle; return EventScript_TryDoDoubleRematchBattle;
case TRAINER_BATTLE_REMATCH: case TRAINER_BATTLE_REMATCH:
sub_811231C(); FinishRecordingQuestLogScene();
TrainerBattleLoadArgs(sOrdinaryBattleParams, data); TrainerBattleLoadArgs(sOrdinaryBattleParams, data);
SetMapVarsToTrainer(); SetMapVarsToTrainer();
gTrainerBattleOpponent_A = GetRematchTrainerId(gTrainerBattleOpponent_A); gTrainerBattleOpponent_A = GetRematchTrainerId(gTrainerBattleOpponent_A);
+1 -1
View File
@@ -193,7 +193,7 @@ static void Task_DiplomaReturnToOverworld(u8 taskId)
DestroyTask(taskId); DestroyTask(taskId);
FreeAllWindowBuffers(); FreeAllWindowBuffers();
FREE_AND_SET_NULL(gDiploma); FREE_AND_SET_NULL(gDiploma);
SetMainCallback2(sub_80568FC); SetMainCallback2(CB2_ReturnToFieldFromDiploma);
} }
static void DiplomaBgInit(void) static void DiplomaBgInit(void)
+1 -1
View File
@@ -1085,7 +1085,7 @@ void HandleBoulderActivateVictoryRoadSwitch(u16 x, u16 y)
{ {
if (events[i].x + 7 == x && events[i].y + 7 == y) if (events[i].x + 7 == x && events[i].y + 7 == y)
{ {
QuestLog_OnInteractionWithSpecialNpc(); QuestLog_CutRecording();
ScriptContext1_SetupScript(events[i].script); ScriptContext1_SetupScript(events[i].script);
ScriptContext2_Enable(); ScriptContext2_Enable();
} }
+5 -5
View File
@@ -1105,7 +1105,7 @@ void FieldCB_FallWarpExit(void)
{ {
Overworld_PlaySpecialMapMusic(); Overworld_PlaySpecialMapMusic();
WarpFadeInScreen(); WarpFadeInScreen();
sub_8111CF0(); QuestLog_DrawPreviouslyOnQuestHeaderIfInPlaybackMode();
ScriptContext2_Enable(); ScriptContext2_Enable();
FreezeObjectEvents(); FreezeObjectEvents();
CreateTask(Task_FallWarpFieldEffect, 0); CreateTask(Task_FallWarpFieldEffect, 0);
@@ -1409,7 +1409,7 @@ static void FieldCB_EscalatorWarpIn(void)
{ {
Overworld_PlaySpecialMapMusic(); Overworld_PlaySpecialMapMusic();
WarpFadeInScreen(); WarpFadeInScreen();
sub_8111CF0(); QuestLog_DrawPreviouslyOnQuestHeaderIfInPlaybackMode();
ScriptContext2_Enable(); ScriptContext2_Enable();
FreezeObjectEvents(); FreezeObjectEvents();
CreateTask(Task_EscalatorWarpInFieldEffect, 0); CreateTask(Task_EscalatorWarpInFieldEffect, 0);
@@ -1819,7 +1819,7 @@ static void FieldCB_LavaridgeGymB1FWarpExit(void)
{ {
Overworld_PlaySpecialMapMusic(); Overworld_PlaySpecialMapMusic();
WarpFadeInScreen(); WarpFadeInScreen();
sub_8111CF0(); QuestLog_DrawPreviouslyOnQuestHeaderIfInPlaybackMode();
ScriptContext2_Enable(); ScriptContext2_Enable();
gFieldCallback = NULL; gFieldCallback = NULL;
CreateTask(Task_LavaridgeGymB1FWarpExit, 0); CreateTask(Task_LavaridgeGymB1FWarpExit, 0);
@@ -2186,7 +2186,7 @@ static void FieldCallback_EscapeRopeExit(void)
{ {
Overworld_PlaySpecialMapMusic(); Overworld_PlaySpecialMapMusic();
WarpFadeInScreen(); WarpFadeInScreen();
sub_8111CF0(); QuestLog_DrawPreviouslyOnQuestHeaderIfInPlaybackMode();
ScriptContext2_Enable(); ScriptContext2_Enable();
FreezeObjectEvents(); FreezeObjectEvents();
gFieldCallback = NULL; gFieldCallback = NULL;
@@ -2350,7 +2350,7 @@ static void FieldCallback_TeleportIn(void)
{ {
Overworld_PlaySpecialMapMusic(); Overworld_PlaySpecialMapMusic();
WarpFadeInScreen(); WarpFadeInScreen();
sub_8111CF0(); QuestLog_DrawPreviouslyOnQuestHeaderIfInPlaybackMode();
ScriptContext2_Enable(); ScriptContext2_Enable();
FreezeObjectEvents(); FreezeObjectEvents();
gFieldCallback = NULL; gFieldCallback = NULL;
+3 -3
View File
@@ -288,7 +288,7 @@ static void sub_807DF4C(bool8 a0)
void FieldCB_DefaultWarpExit(void) void FieldCB_DefaultWarpExit(void)
{ {
Overworld_PlaySpecialMapMusic(); Overworld_PlaySpecialMapMusic();
sub_8111CF0(); QuestLog_DrawPreviouslyOnQuestHeaderIfInPlaybackMode();
sub_807DE78(FALSE); sub_807DE78(FALSE);
ScriptContext2_Enable(); ScriptContext2_Enable();
} }
@@ -296,7 +296,7 @@ void FieldCB_DefaultWarpExit(void)
void FieldCB_WarpExitFadeFromBlack(void) void FieldCB_WarpExitFadeFromBlack(void)
{ {
Overworld_PlaySpecialMapMusic(); Overworld_PlaySpecialMapMusic();
sub_8111CF0(); QuestLog_DrawPreviouslyOnQuestHeaderIfInPlaybackMode();
sub_807DE78(TRUE); sub_807DE78(TRUE);
ScriptContext2_Enable(); ScriptContext2_Enable();
} }
@@ -305,7 +305,7 @@ static void FieldCB_TeleportWarpIn(void)
{ {
Overworld_PlaySpecialMapMusic(); Overworld_PlaySpecialMapMusic();
WarpFadeInScreen(); WarpFadeInScreen();
sub_8111CF0(); QuestLog_DrawPreviouslyOnQuestHeaderIfInPlaybackMode();
PlaySE(SE_TK_WARPOUT); PlaySE(SE_TK_WARPOUT);
CreateTask(Task_TeleportWarpIn, 10); CreateTask(Task_TeleportWarpIn, 10);
ScriptContext2_Enable(); ScriptContext2_Enable();
+72 -72
View File
@@ -95,7 +95,7 @@ static u8 *const sStringVarPtrs[] = {
void ShowDiploma(void) void ShowDiploma(void)
{ {
QuestLog_OnInteractionWithSpecialNpc(); QuestLog_CutRecording();
SetMainCallback2(CB2_ShowDiploma); SetMainCallback2(CB2_ShowDiploma);
ScriptContext2_Enable(); ScriptContext2_Enable();
} }
@@ -187,7 +187,7 @@ u8 GetLeadMonFriendship(void)
void ShowTownMap(void) void ShowTownMap(void)
{ {
QuestLog_OnInteractionWithSpecialNpc(); QuestLog_CutRecording();
sub_80BFF50(1, CB2_ReturnToFieldContinueScriptPlayMapMusic); sub_80BFF50(1, CB2_ReturnToFieldContinueScriptPlayMapMusic);
} }
@@ -1775,18 +1775,18 @@ bool8 DoesPlayerPartyContainSpecies(void)
} }
static const u8 sMartMaps[][3] = { static const u8 sMartMaps[][3] = {
{MAP_GROUP(VIRIDIAN_CITY_MART), MAP_NUM(VIRIDIAN_CITY_MART), 1}, {MAP(VIRIDIAN_CITY_MART), 1},
{MAP_GROUP(PEWTER_CITY_MART), MAP_NUM(PEWTER_CITY_MART), 3}, {MAP(PEWTER_CITY_MART), 3},
{MAP_GROUP(CERULEAN_CITY_MART), MAP_NUM(CERULEAN_CITY_MART), 1}, {MAP(CERULEAN_CITY_MART), 1},
{MAP_GROUP(LAVENDER_TOWN_MART), MAP_NUM(LAVENDER_TOWN_MART), 1}, {MAP(LAVENDER_TOWN_MART), 1},
{MAP_GROUP(VERMILION_CITY_MART), MAP_NUM(VERMILION_CITY_MART), 1}, {MAP(VERMILION_CITY_MART), 1},
{MAP_GROUP(FUCHSIA_CITY_MART), MAP_NUM(FUCHSIA_CITY_MART), 1}, {MAP(FUCHSIA_CITY_MART), 1},
{MAP_GROUP(CINNABAR_ISLAND_MART), MAP_NUM(CINNABAR_ISLAND_MART), 1}, {MAP(CINNABAR_ISLAND_MART), 1},
{MAP_GROUP(SAFFRON_CITY_MART), MAP_NUM(SAFFRON_CITY_MART), 1}, {MAP(SAFFRON_CITY_MART), 1},
{MAP_GROUP(THREE_ISLAND_MART), MAP_NUM(THREE_ISLAND_MART), 1}, {MAP(THREE_ISLAND_MART), 1},
{MAP_GROUP(FOUR_ISLAND_MART), MAP_NUM(FOUR_ISLAND_MART), 1}, {MAP(FOUR_ISLAND_MART), 1},
{MAP_GROUP(SEVEN_ISLAND_MART), MAP_NUM(SEVEN_ISLAND_MART), 1}, {MAP(SEVEN_ISLAND_MART), 1},
{MAP_GROUP(SIX_ISLAND_MART), MAP_NUM(SIX_ISLAND_MART), 1} {MAP(SIX_ISLAND_MART), 1}
}; };
u8 GetMartClerkObjectId(void) u8 GetMartClerkObjectId(void)
@@ -1811,57 +1811,57 @@ static const struct {
u16 grp2; u16 grp2;
u16 num2; u16 num2;
} sInsideOutsidePairs[51] = { } sInsideOutsidePairs[51] = {
{MAP_GROUP(PALLET_TOWN_PLAYERS_HOUSE_1F), MAP_NUM(PALLET_TOWN_PLAYERS_HOUSE_1F), MAP_GROUP(PALLET_TOWN), MAP_NUM(PALLET_TOWN)}, [QL_LOCATION_HOME] = {MAP(PALLET_TOWN_PLAYERS_HOUSE_1F), MAP(PALLET_TOWN)},
{MAP_GROUP(PALLET_TOWN_PROFESSOR_OAKS_LAB), MAP_NUM(PALLET_TOWN_PROFESSOR_OAKS_LAB), MAP_GROUP(PALLET_TOWN), MAP_NUM(PALLET_TOWN)}, [QL_LOCATION_OAKS_LAB] = {MAP(PALLET_TOWN_PROFESSOR_OAKS_LAB), MAP(PALLET_TOWN)},
{MAP_GROUP(VIRIDIAN_CITY_GYM), MAP_NUM(VIRIDIAN_CITY_GYM), MAP_GROUP(VIRIDIAN_CITY), MAP_NUM(VIRIDIAN_CITY)}, [QL_LOCATION_VIRIDIAN_GYM] = {MAP(VIRIDIAN_CITY_GYM), MAP(VIRIDIAN_CITY)},
{MAP_GROUP(ROUTE22_NORTH_ENTRANCE), MAP_NUM(ROUTE22_NORTH_ENTRANCE), MAP_GROUP(ROUTE22), MAP_NUM(ROUTE22)}, [QL_LOCATION_LEAGUE_GATE_1] = {MAP(ROUTE22_NORTH_ENTRANCE), MAP(ROUTE22)},
{MAP_GROUP(ROUTE22_NORTH_ENTRANCE), MAP_NUM(ROUTE22_NORTH_ENTRANCE), MAP_GROUP(ROUTE23), MAP_NUM(ROUTE23)}, [QL_LOCATION_LEAGUE_GATE_2] = {MAP(ROUTE22_NORTH_ENTRANCE), MAP(ROUTE23)},
{MAP_GROUP(VIRIDIAN_FOREST), MAP_NUM(VIRIDIAN_FOREST), MAP_GROUP(ROUTE2_VIRIDIAN_FOREST_SOUTH_ENTRANCE), MAP_NUM(ROUTE2_VIRIDIAN_FOREST_SOUTH_ENTRANCE)}, [QL_LOCATION_VIRIDIAN_FOREST_1] = {MAP(VIRIDIAN_FOREST), MAP(ROUTE2_VIRIDIAN_FOREST_SOUTH_ENTRANCE)},
{MAP_GROUP(VIRIDIAN_FOREST), MAP_NUM(VIRIDIAN_FOREST), MAP_GROUP(ROUTE2_VIRIDIAN_FOREST_NORTH_ENTRANCE), MAP_NUM(ROUTE2_VIRIDIAN_FOREST_NORTH_ENTRANCE)}, [QL_LOCATION_VIRIDIAN_FOREST_2] = {MAP(VIRIDIAN_FOREST), MAP(ROUTE2_VIRIDIAN_FOREST_NORTH_ENTRANCE)},
{MAP_GROUP(PEWTER_CITY_MUSEUM_1F), MAP_NUM(PEWTER_CITY_MUSEUM_1F), MAP_GROUP(PEWTER_CITY), MAP_NUM(PEWTER_CITY)}, [QL_LOCATION_PEWTER_MUSEUM] = {MAP(PEWTER_CITY_MUSEUM_1F), MAP(PEWTER_CITY)},
{MAP_GROUP(PEWTER_CITY_GYM), MAP_NUM(PEWTER_CITY_GYM), MAP_GROUP(PEWTER_CITY), MAP_NUM(PEWTER_CITY)}, [QL_LOCATION_PEWTER_GYM] = {MAP(PEWTER_CITY_GYM), MAP(PEWTER_CITY)},
{MAP_GROUP(MT_MOON_1F), MAP_NUM(MT_MOON_1F), MAP_GROUP(ROUTE4), MAP_NUM(ROUTE4)}, [QL_LOCATION_MT_MOON_1] = {MAP(MT_MOON_1F), MAP(ROUTE4)},
{MAP_GROUP(MT_MOON_B1F), MAP_NUM(MT_MOON_B1F), MAP_GROUP(ROUTE4), MAP_NUM(ROUTE4)}, [QL_LOCATION_MT_MOON_2] = {MAP(MT_MOON_B1F), MAP(ROUTE4)},
{MAP_GROUP(CERULEAN_CITY_GYM), MAP_NUM(CERULEAN_CITY_GYM), MAP_GROUP(CERULEAN_CITY), MAP_NUM(CERULEAN_CITY)}, [QL_LOCATION_CERULEAN_GYM] = {MAP(CERULEAN_CITY_GYM), MAP(CERULEAN_CITY)},
{MAP_GROUP(CERULEAN_CITY_BIKE_SHOP), MAP_NUM(CERULEAN_CITY_BIKE_SHOP), MAP_GROUP(CERULEAN_CITY), MAP_NUM(CERULEAN_CITY)}, [QL_LOCATION_BIKE_SHOP] = {MAP(CERULEAN_CITY_BIKE_SHOP), MAP(CERULEAN_CITY)},
{MAP_GROUP(ROUTE25_SEA_COTTAGE), MAP_NUM(ROUTE25_SEA_COTTAGE), MAP_GROUP(ROUTE25), MAP_NUM(ROUTE25)}, [QL_LOCATION_BILLS_HOUSE] = {MAP(ROUTE25_SEA_COTTAGE), MAP(ROUTE25)},
{MAP_GROUP(ROUTE5_POKEMON_DAY_CARE), MAP_NUM(ROUTE5_POKEMON_DAY_CARE), MAP_GROUP(ROUTE5), MAP_NUM(ROUTE5)}, [QL_LOCATION_DAY_CARE] = {MAP(ROUTE5_POKEMON_DAY_CARE), MAP(ROUTE5)},
{MAP_GROUP(UNDERGROUND_PATH_NORTH_ENTRANCE), MAP_NUM(UNDERGROUND_PATH_NORTH_ENTRANCE), MAP_GROUP(ROUTE5), MAP_NUM(ROUTE5)}, [QL_LOCATION_UNDERGROUND_PATH_1] = {MAP(UNDERGROUND_PATH_NORTH_ENTRANCE), MAP(ROUTE5)},
{MAP_GROUP(UNDERGROUND_PATH_SOUTH_ENTRANCE), MAP_NUM(UNDERGROUND_PATH_SOUTH_ENTRANCE), MAP_GROUP(ROUTE6), MAP_NUM(ROUTE6)}, [QL_LOCATION_UNDERGROUND_PATH_2] = {MAP(UNDERGROUND_PATH_SOUTH_ENTRANCE), MAP(ROUTE6)},
{MAP_GROUP(VERMILION_CITY_POKEMON_FAN_CLUB), MAP_NUM(VERMILION_CITY_POKEMON_FAN_CLUB), MAP_GROUP(VERMILION_CITY), MAP_NUM(VERMILION_CITY)}, [QL_LOCATION_PKMN_FAN_CLUB] = {MAP(VERMILION_CITY_POKEMON_FAN_CLUB), MAP(VERMILION_CITY)},
{MAP_GROUP(VERMILION_CITY_GYM), MAP_NUM(VERMILION_CITY_GYM), MAP_GROUP(VERMILION_CITY), MAP_NUM(VERMILION_CITY)}, [QL_LOCATION_VERMILION_GYM] = {MAP(VERMILION_CITY_GYM), MAP(VERMILION_CITY)},
{MAP_GROUP(SSANNE_1F_CORRIDOR), MAP_NUM(SSANNE_1F_CORRIDOR), MAP_GROUP(VERMILION_CITY), MAP_NUM(VERMILION_CITY)}, [QL_LOCATION_SS_ANNE] = {MAP(SSANNE_1F_CORRIDOR), MAP(VERMILION_CITY)},
{MAP_GROUP(DIGLETTS_CAVE_NORTH_ENTRANCE), MAP_NUM(DIGLETTS_CAVE_NORTH_ENTRANCE), MAP_GROUP(ROUTE2), MAP_NUM(ROUTE2)}, [QL_LOCATION_DIGLETTS_CAVE_1] = {MAP(DIGLETTS_CAVE_NORTH_ENTRANCE), MAP(ROUTE2)},
{MAP_GROUP(DIGLETTS_CAVE_SOUTH_ENTRANCE), MAP_NUM(DIGLETTS_CAVE_SOUTH_ENTRANCE), MAP_GROUP(ROUTE11), MAP_NUM(ROUTE11)}, [QL_LOCATION_DIGLETTS_CAVE_2] = {MAP(DIGLETTS_CAVE_SOUTH_ENTRANCE), MAP(ROUTE11)},
{MAP_GROUP(ROCK_TUNNEL_1F), MAP_NUM(ROCK_TUNNEL_1F), MAP_GROUP(ROUTE10), MAP_NUM(ROUTE10)}, [QL_LOCATION_ROCK_TUNNEL_1] = {MAP(ROCK_TUNNEL_1F), MAP(ROUTE10)},
{MAP_GROUP(ROCK_TUNNEL_1F), MAP_NUM(ROCK_TUNNEL_1F), MAP_GROUP(ROUTE10), MAP_NUM(ROUTE10)}, [QL_LOCATION_ROCK_TUNNEL_2] = {MAP(ROCK_TUNNEL_1F), MAP(ROUTE10)},
{MAP_GROUP(POWER_PLANT), MAP_NUM(POWER_PLANT), MAP_GROUP(ROUTE10), MAP_NUM(ROUTE10)}, [QL_LOCATION_POWER_PLANT] = {MAP(POWER_PLANT), MAP(ROUTE10)},
{MAP_GROUP(POKEMON_TOWER_1F), MAP_NUM(POKEMON_TOWER_1F), MAP_GROUP(LAVENDER_TOWN), MAP_NUM(LAVENDER_TOWN)}, [QL_LOCATION_PKMN_TOWER] = {MAP(POKEMON_TOWER_1F), MAP(LAVENDER_TOWN)},
{MAP_GROUP(LAVENDER_TOWN_VOLUNTEER_POKEMON_HOUSE), MAP_NUM(LAVENDER_TOWN_VOLUNTEER_POKEMON_HOUSE), MAP_GROUP(LAVENDER_TOWN), MAP_NUM(LAVENDER_TOWN)}, [QL_LOCATION_VOLUNTEER_HOUSE] = {MAP(LAVENDER_TOWN_VOLUNTEER_POKEMON_HOUSE), MAP(LAVENDER_TOWN)},
{MAP_GROUP(LAVENDER_TOWN_HOUSE2), MAP_NUM(LAVENDER_TOWN_HOUSE2), MAP_GROUP(LAVENDER_TOWN), MAP_NUM(LAVENDER_TOWN)}, [QL_LOCATION_NAME_RATERS_HOUSE] = {MAP(LAVENDER_TOWN_HOUSE2), MAP(LAVENDER_TOWN)},
{MAP_GROUP(UNDERGROUND_PATH_EAST_ENTRANCE), MAP_NUM(UNDERGROUND_PATH_EAST_ENTRANCE), MAP_GROUP(ROUTE8), MAP_NUM(ROUTE8)}, [QL_LOCATION_UNDERGROUND_PATH_3] = {MAP(UNDERGROUND_PATH_EAST_ENTRANCE), MAP(ROUTE8)},
{MAP_GROUP(UNDERGROUND_PATH_WEST_ENTRANCE), MAP_NUM(UNDERGROUND_PATH_WEST_ENTRANCE), MAP_GROUP(ROUTE7), MAP_NUM(ROUTE7)}, [QL_LOCATION_UNDERGROUND_PATH_4] = {MAP(UNDERGROUND_PATH_WEST_ENTRANCE), MAP(ROUTE7)},
{MAP_GROUP(CELADON_CITY_DEPARTMENT_STORE_1F), MAP_NUM(CELADON_CITY_DEPARTMENT_STORE_1F), MAP_GROUP(CELADON_CITY), MAP_NUM(CELADON_CITY)}, [QL_LOCATION_CELADON_DEPT_STORE] = {MAP(CELADON_CITY_DEPARTMENT_STORE_1F), MAP(CELADON_CITY)},
{MAP_GROUP(CELADON_CITY_CONDOMINIUMS_1F), MAP_NUM(CELADON_CITY_CONDOMINIUMS_1F), MAP_GROUP(CELADON_CITY), MAP_NUM(CELADON_CITY)}, [QL_LOCATION_CELADON_MANSION] = {MAP(CELADON_CITY_CONDOMINIUMS_1F), MAP(CELADON_CITY)},
{MAP_GROUP(CELADON_CITY_GAME_CORNER), MAP_NUM(CELADON_CITY_GAME_CORNER), MAP_GROUP(CELADON_CITY), MAP_NUM(CELADON_CITY)}, [QL_LOCATION_GAME_CORNER] = {MAP(CELADON_CITY_GAME_CORNER), MAP(CELADON_CITY)},
{MAP_GROUP(CELADON_CITY_GYM), MAP_NUM(CELADON_CITY_GYM), MAP_GROUP(CELADON_CITY), MAP_NUM(CELADON_CITY)}, [QL_LOCATION_CELADON_GYM] = {MAP(CELADON_CITY_GYM), MAP(CELADON_CITY)},
{MAP_GROUP(CELADON_CITY_RESTAURANT), MAP_NUM(CELADON_CITY_RESTAURANT), MAP_GROUP(CELADON_CITY), MAP_NUM(CELADON_CITY)}, [QL_LOCATION_CELADON_RESTAURANT] = {MAP(CELADON_CITY_RESTAURANT), MAP(CELADON_CITY)},
{MAP_GROUP(ROCKET_HIDEOUT_B1F), MAP_NUM(ROCKET_HIDEOUT_B1F), MAP_GROUP(CELADON_CITY_GAME_CORNER), MAP_NUM(CELADON_CITY_GAME_CORNER)}, [QL_LOCATION_ROCKET_HIDEOUT] = {MAP(ROCKET_HIDEOUT_B1F), MAP(CELADON_CITY_GAME_CORNER)},
{MAP_GROUP(SAFARI_ZONE_CENTER), MAP_NUM(SAFARI_ZONE_CENTER), MAP_GROUP(FUCHSIA_CITY_SAFARI_ZONE_ENTRANCE), MAP_NUM(FUCHSIA_CITY_SAFARI_ZONE_ENTRANCE)}, [QL_LOCATION_SAFARI_ZONE] = {MAP(SAFARI_ZONE_CENTER), MAP(FUCHSIA_CITY_SAFARI_ZONE_ENTRANCE)},
{MAP_GROUP(FUCHSIA_CITY_GYM), MAP_NUM(FUCHSIA_CITY_GYM), MAP_GROUP(FUCHSIA_CITY), MAP_NUM(FUCHSIA_CITY)}, [QL_LOCATION_FUCHSIA_GYM] = {MAP(FUCHSIA_CITY_GYM), MAP(FUCHSIA_CITY)},
{MAP_GROUP(FUCHSIA_CITY_WARDENS_HOUSE), MAP_NUM(FUCHSIA_CITY_WARDENS_HOUSE), MAP_GROUP(FUCHSIA_CITY), MAP_NUM(FUCHSIA_CITY)}, [QL_LOCATION_WARDENS_HOME] = {MAP(FUCHSIA_CITY_WARDENS_HOUSE), MAP(FUCHSIA_CITY)},
{MAP_GROUP(SAFFRON_CITY_DOJO), MAP_NUM(SAFFRON_CITY_DOJO), MAP_GROUP(SAFFRON_CITY), MAP_NUM(SAFFRON_CITY)}, [QL_LOCATION_FIGHTING_DOJO] = {MAP(SAFFRON_CITY_DOJO), MAP(SAFFRON_CITY)},
{MAP_GROUP(SAFFRON_CITY_GYM), MAP_NUM(SAFFRON_CITY_GYM), MAP_GROUP(SAFFRON_CITY), MAP_NUM(SAFFRON_CITY)}, [QL_LOCATION_SAFFRON_GYM] = {MAP(SAFFRON_CITY_GYM), MAP(SAFFRON_CITY)},
{MAP_GROUP(SILPH_CO_1F), MAP_NUM(SILPH_CO_1F), MAP_GROUP(SAFFRON_CITY), MAP_NUM(SAFFRON_CITY)}, [QL_LOCATION_SILPH_CO] = {MAP(SILPH_CO_1F), MAP(SAFFRON_CITY)},
{MAP_GROUP(SEAFOAM_ISLANDS_1F), MAP_NUM(SEAFOAM_ISLANDS_1F), MAP_GROUP(ROUTE20), MAP_NUM(ROUTE20)}, [QL_LOCATION_SEAFOAM_ISLANDS_1] = {MAP(SEAFOAM_ISLANDS_1F), MAP(ROUTE20)},
{MAP_GROUP(SEAFOAM_ISLANDS_1F), MAP_NUM(SEAFOAM_ISLANDS_1F), MAP_GROUP(ROUTE20), MAP_NUM(ROUTE20)}, [QL_LOCATION_SEAFOAM_ISLANDS_2] = {MAP(SEAFOAM_ISLANDS_1F), MAP(ROUTE20)},
{MAP_GROUP(POKEMON_MANSION_1F), MAP_NUM(POKEMON_MANSION_1F), MAP_GROUP(CINNABAR_ISLAND), MAP_NUM(CINNABAR_ISLAND)}, [QL_LOCATION_PKMN_MANSION] = {MAP(POKEMON_MANSION_1F), MAP(CINNABAR_ISLAND)},
{MAP_GROUP(CINNABAR_ISLAND_GYM), MAP_NUM(CINNABAR_ISLAND_GYM), MAP_GROUP(CINNABAR_ISLAND), MAP_NUM(CINNABAR_ISLAND)}, [QL_LOCATION_CINNABAR_GYM] = {MAP(CINNABAR_ISLAND_GYM), MAP(CINNABAR_ISLAND)},
{MAP_GROUP(CINNABAR_ISLAND_POKEMON_LAB_ENTRANCE), MAP_NUM(CINNABAR_ISLAND_POKEMON_LAB_ENTRANCE), MAP_GROUP(CINNABAR_ISLAND), MAP_NUM(CINNABAR_ISLAND)}, [QL_LOCATION_CINNABAR_LAB] = {MAP(CINNABAR_ISLAND_POKEMON_LAB_ENTRANCE), MAP(CINNABAR_ISLAND)},
{MAP_GROUP(VICTORY_ROAD_1F), MAP_NUM(VICTORY_ROAD_1F), MAP_GROUP(ROUTE23), MAP_NUM(ROUTE23)}, [QL_LOCATION_VICTORY_ROAD_1] = {MAP(VICTORY_ROAD_1F), MAP(ROUTE23)},
{MAP_GROUP(VICTORY_ROAD_2F), MAP_NUM(VICTORY_ROAD_2F), MAP_GROUP(ROUTE23), MAP_NUM(ROUTE23)}, [QL_LOCATION_VICTORY_ROAD_2] = {MAP(VICTORY_ROAD_2F), MAP(ROUTE23)},
{MAP_GROUP(INDIGO_PLATEAU_POKEMON_CENTER_1F), MAP_NUM(INDIGO_PLATEAU_POKEMON_CENTER_1F), MAP_GROUP(INDIGO_PLATEAU_EXTERIOR), MAP_NUM(INDIGO_PLATEAU_EXTERIOR)}, [QL_LOCATION_PKMN_LEAGUE] = {MAP(INDIGO_PLATEAU_POKEMON_CENTER_1F), MAP(INDIGO_PLATEAU_EXTERIOR)},
{MAP_GROUP(CERULEAN_CAVE_1F), MAP_NUM(CERULEAN_CAVE_1F), MAP_GROUP(CERULEAN_CITY), MAP_NUM(CERULEAN_CITY)} [QL_LOCATION_CERULEAN_CAVE] = {MAP(CERULEAN_CAVE_1F), MAP(CERULEAN_CITY)}
}; };
void sub_80CC534(void) void sub_80CC534(void)
@@ -1871,7 +1871,7 @@ void sub_80CC534(void)
{ {
if (gSaveBlock1Ptr->location.mapGroup == sInsideOutsidePairs[i].grp && gSaveBlock1Ptr->location.mapNum == sInsideOutsidePairs[i].num) if (gSaveBlock1Ptr->location.mapGroup == sInsideOutsidePairs[i].grp && gSaveBlock1Ptr->location.mapNum == sInsideOutsidePairs[i].num)
{ {
if (VarGet(VAR_0x404D) != 35 || i != 32) if (VarGet(VAR_0x404D) != QL_LOCATION_ROCKET_HIDEOUT || i != QL_LOCATION_GAME_CORNER)
{ {
VarSet(VAR_0x404D, i); VarSet(VAR_0x404D, i);
FlagSet(FLAG_0x808); FlagSet(FLAG_0x808);
@@ -1893,7 +1893,7 @@ void sub_80CC59C(void)
sp0.unk1 = 0; sp0.unk1 = 0;
if (FlagGet(FLAG_0x808)) if (FlagGet(FLAG_0x808))
{ {
if (r5 == 5) if (r5 == QL_LOCATION_VIRIDIAN_FOREST_1)
{ {
if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(ROUTE2_VIRIDIAN_FOREST_SOUTH_ENTRANCE) && (gSaveBlock1Ptr->location.mapNum == MAP_NUM(ROUTE2_VIRIDIAN_FOREST_SOUTH_ENTRANCE) || gSaveBlock1Ptr->location.mapNum == MAP_NUM(ROUTE2_VIRIDIAN_FOREST_NORTH_ENTRANCE))) if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(ROUTE2_VIRIDIAN_FOREST_SOUTH_ENTRANCE) && (gSaveBlock1Ptr->location.mapNum == MAP_NUM(ROUTE2_VIRIDIAN_FOREST_SOUTH_ENTRANCE) || gSaveBlock1Ptr->location.mapNum == MAP_NUM(ROUTE2_VIRIDIAN_FOREST_NORTH_ENTRANCE)))
{ {
@@ -1907,7 +1907,7 @@ void sub_80CC59C(void)
return; return;
} }
} }
else if (r5 == 3) else if (r5 == QL_LOCATION_LEAGUE_GATE_1)
{ {
if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(ROUTE22) && (gSaveBlock1Ptr->location.mapNum == MAP_NUM(ROUTE22) || gSaveBlock1Ptr->location.mapNum == MAP_NUM(ROUTE23))) if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(ROUTE22) && (gSaveBlock1Ptr->location.mapNum == MAP_NUM(ROUTE22) || gSaveBlock1Ptr->location.mapNum == MAP_NUM(ROUTE23)))
{ {
@@ -1925,13 +1925,13 @@ void sub_80CC59C(void)
{ {
sp0.unk0 = Overworld_GetMapHeaderByGroupAndId(sInsideOutsidePairs[r5].grp, sInsideOutsidePairs[r5].num)->regionMapSectionId; sp0.unk0 = Overworld_GetMapHeaderByGroupAndId(sInsideOutsidePairs[r5].grp, sInsideOutsidePairs[r5].num)->regionMapSectionId;
sp0.unk1 = r5; sp0.unk1 = r5;
if (r5 == 22) if (r5 == QL_LOCATION_ROCK_TUNNEL_1)
{ {
PlayerGetDestCoords(&x, &y); PlayerGetDestCoords(&x, &y);
if (x != 15 || y != 26) if (x != 15 || y != 26)
sp0.unk1++; sp0.unk1++;
} }
else if (r5 == 42) else if (r5 == QL_LOCATION_SEAFOAM_ISLANDS_1)
{ {
PlayerGetDestCoords(&x, &y); PlayerGetDestCoords(&x, &y);
if (x != 67 || y != 15) if (x != 67 || y != 15)
@@ -1939,9 +1939,9 @@ void sub_80CC59C(void)
} }
SetQuestLogEvent(QL_EVENT_DEPARTED, (void *)&sp0); SetQuestLogEvent(QL_EVENT_DEPARTED, (void *)&sp0);
FlagClear(FLAG_0x808); FlagClear(FLAG_0x808);
if (r5 == 35) if (r5 == QL_LOCATION_ROCKET_HIDEOUT)
{ {
VarSet(VAR_0x404D, 32); VarSet(VAR_0x404D, QL_LOCATION_GAME_CORNER);
FlagSet(FLAG_0x808); FlagSet(FLAG_0x808);
} }
} }
+197
View File
@@ -0,0 +1,197 @@
#include "global.h"
#include "gflib.h"
#include "menu.h"
static EWRAM_DATA u8 sHelpMessageWindowId = 0;
const u16 gUnknown_84566A8[] = INCBIN_U16("data/graphics/unknown_84566a8.bin");
static const struct WindowTemplate sHelpMessageWindowTemplate = {
.bg = 0,
.tilemapLeft = 0,
.tilemapTop = 15,
.width = 30,
.height = 5,
.paletteNum = 15,
.baseBlock = 0x08F
};
void MapNamePopupWindowIdSetDummy(void)
{
sHelpMessageWindowId = 0xFF;
}
u8 CreateHelpMessageWindow(void)
{
if (sHelpMessageWindowId == 0xFF)
{
sHelpMessageWindowId = AddWindow(&sHelpMessageWindowTemplate);
PutWindowTilemap(sHelpMessageWindowId);
}
return sHelpMessageWindowId;
}
void DestroyHelpMessageWindow(u8 a0)
{
if (sHelpMessageWindowId != 0xFF)
{
FillWindowPixelBuffer(sHelpMessageWindowId, PIXEL_FILL(0));
ClearWindowTilemap(sHelpMessageWindowId);
if (a0)
CopyWindowToVram(sHelpMessageWindowId, a0);
RemoveWindow(sHelpMessageWindowId);
sHelpMessageWindowId = 0xFF;
}
}
#ifdef NONMATCHING
void sub_8112F18(u8 windowId)
{
u8 width = GetWindowAttribute(windowId, WINDOW_WIDTH);
u8 height = GetWindowAttribute(windowId, WINDOW_HEIGHT);
u8 *buffer = Alloc(32 * width * height);
u8 i, j;
u8 k;
if (buffer != NULL)
{
for (i = 0; i < height; i++)
{
for (j = 0; j < width; j++)
{
if (i == 0)
k = 0;
else if (i == height - 1)
k = 14;
else
k = 5;
CpuCopy32(
(void *)gUnknown_84566A8 + 32 * k, // operand swap on "add" instruction
buffer + 32 * (i * width + j),
32
);
}
}
CopyToWindowPixelBuffer(windowId, buffer, width * height * 32, 0);
Free(buffer);
}
}
#else
NAKED
void sub_8112F18(u8 windowId)
{
asm_unified("\tpush {r4-r7,lr}\n"
"\tmov r7, r10\n"
"\tmov r6, r9\n"
"\tmov r5, r8\n"
"\tpush {r5-r7}\n"
"\tsub sp, 0x8\n"
"\tlsls r0, 24\n"
"\tlsrs r0, 24\n"
"\tmov r10, r0\n"
"\tmovs r1, 0x3\n"
"\tbl GetWindowAttribute\n"
"\tlsls r0, 24\n"
"\tlsrs r6, r0, 24\n"
"\tmov r0, r10\n"
"\tmovs r1, 0x4\n"
"\tbl GetWindowAttribute\n"
"\tlsls r0, 24\n"
"\tlsrs r7, r0, 24\n"
"\tlsls r0, r7, 5\n"
"\tmuls r0, r6\n"
"\tbl Alloc\n"
"\tmov r8, r0\n"
"\tcmp r0, 0\n"
"\tbeq _08112FB8\n"
"\tmovs r5, 0\n"
"\tadds r0, r6, 0\n"
"\tmuls r0, r7\n"
"\tstr r0, [sp]\n"
"\tcmp r5, r7\n"
"\tbcs _08112FA2\n"
"_08112F5A:\n"
"\tmovs r4, 0\n"
"\tadds r1, r5, 0x1\n"
"\tmov r9, r1\n"
"\tcmp r4, r6\n"
"\tbcs _08112F98\n"
"\tsubs r3, r7, 0x1\n"
"_08112F66:\n"
"\tmovs r0, 0\n"
"\tcmp r5, 0\n"
"\tbeq _08112F74\n"
"\tmovs r0, 0x5\n"
"\tcmp r5, r3\n"
"\tbne _08112F74\n"
"\tmovs r0, 0xE\n"
"_08112F74:\n"
"\tlsls r0, 5\n"
"\tldr r1, _08112FC8 @ =gUnknown_84566A8\n"
"\tadds r0, r1, r0\n"
"\tadds r1, r5, 0\n"
"\tmuls r1, r6\n"
"\tadds r1, r4\n"
"\tlsls r1, 5\n"
"\tadd r1, r8\n"
"\tldr r2, _08112FCC @ =0x04000008\n"
"\tstr r3, [sp, 0x4]\n"
"\tbl CpuSet\n"
"\tadds r0, r4, 0x1\n"
"\tlsls r0, 24\n"
"\tlsrs r4, r0, 24\n"
"\tldr r3, [sp, 0x4]\n"
"\tcmp r4, r6\n"
"\tbcc _08112F66\n"
"_08112F98:\n"
"\tmov r1, r9\n"
"\tlsls r0, r1, 24\n"
"\tlsrs r5, r0, 24\n"
"\tcmp r5, r7\n"
"\tbcc _08112F5A\n"
"_08112FA2:\n"
"\tldr r0, [sp]\n"
"\tlsls r2, r0, 21\n"
"\tlsrs r2, 16\n"
"\tmov r0, r10\n"
"\tmov r1, r8\n"
"\tmovs r3, 0\n"
"\tbl CopyToWindowPixelBuffer\n"
"\tmov r0, r8\n"
"\tbl Free\n"
"_08112FB8:\n"
"\tadd sp, 0x8\n"
"\tpop {r3-r5}\n"
"\tmov r8, r3\n"
"\tmov r9, r4\n"
"\tmov r10, r5\n"
"\tpop {r4-r7}\n"
"\tpop {r0}\n"
"\tbx r0\n"
"\t.align 2, 0\n"
"_08112FC8: .4byte gUnknown_84566A8\n"
"_08112FCC: .4byte 0x04000008");
}
#endif
static void sub_8112FD0(void)
{
sub_8112F18(sHelpMessageWindowId);
}
static const u8 sHelpMessageTextColors[3] = {TEXT_COLOR_TRANSPARENT, TEXT_DYNAMIC_COLOR_1, TEXT_COLOR_DARK_GREY};
static void PrintHelpMessageText(const u8 *text)
{
AddTextPrinterParameterized4(sHelpMessageWindowId, 2, 2, 5, 1, 1, sHelpMessageTextColors, -1, text);
}
void PrintTextOnHelpMessageWindow(const u8 *text, u8 mode)
{
sub_8112FD0();
PrintHelpMessageText(text);
if (mode)
CopyWindowToVram(sHelpMessageWindowId, mode);
}
+1 -1
View File
@@ -78,7 +78,7 @@ void SetSaveBlocksPointers(void)
gPokemonStoragePtr = (void*)(&gPokemonStorage) + offset; gPokemonStoragePtr = (void*)(&gPokemonStorage) + offset;
SetBagPocketsPointers(); SetBagPocketsPointers();
sub_8110840(oldSave); SetQuestLogRecordAndPlaybackPointers(oldSave);
} }
void MoveSaveBlocks_ResetHeap(void) void MoveSaveBlocks_ResetHeap(void)
+2 -7
View File
@@ -1,18 +1,13 @@
#include "global.h" #include "global.h"
#include "malloc.h" #include "gflib.h"
#include "dma3.h" #include "help_message.h"
#include "task.h"
#include "bg.h"
#include "window.h"
#include "menu.h" #include "menu.h"
#include "menu_helpers.h" #include "menu_helpers.h"
#include "new_menu_helpers.h" #include "new_menu_helpers.h"
#include "quest_log.h" #include "quest_log.h"
#include "text.h"
#include "field_specials.h" #include "field_specials.h"
#include "text_window.h" #include "text_window.h"
#include "script.h" #include "script.h"
#include "palette.h"
#define DLG_WINDOW_PALETTE_NUM 15 #define DLG_WINDOW_PALETTE_NUM 15
#define DLG_WINDOW_BASE_TILE_NUM 0x200 #define DLG_WINDOW_BASE_TILE_NUM 0x200
+25 -25
View File
@@ -160,9 +160,9 @@ static void SetCameraToTrackGuestPlayer_2(void);
static void sub_8057178(void); static void sub_8057178(void);
static void sub_80571A8(void); static void sub_80571A8(void);
static void CreateLinkPlayerSprites(void); static void CreateLinkPlayerSprites(void);
static void sub_80572D8(void); static void CB2_LoadMapForQLPlayback(void);
static void sub_8057300(u8 *state); static void DoLoadMap_QLPlayback(u8 *state);
static bool32 sub_8057314(u8 *state); static bool32 LoadMap_QLPlayback(u8 *state);
static bool32 SetUpScrollSceneForCredits(u8 *state, u8 unused); static bool32 SetUpScrollSceneForCredits(u8 *state, u8 unused);
static bool8 MapLdr_Credits(void); static bool8 MapLdr_Credits(void);
static void CameraCB_CreditsPan(struct CameraObject * camera); static void CameraCB_CreditsPan(struct CameraObject * camera);
@@ -340,7 +340,7 @@ static void Overworld_ResetStateAfterWhitingOut(void)
VarSet(VAR_0x404D, 0); VarSet(VAR_0x404D, 0);
} }
static void sub_8054E40(void) static void Overworld_ResetStateOnContinue(void)
{ {
FlagClear(FLAG_SYS_SAFARI_MODE); FlagClear(FLAG_SYS_SAFARI_MODE);
VarSet(VAR_MAP_SCENE_FUCHSIA_CITY_SAFARI_ZONE_ENTRANCE, 0); VarSet(VAR_MAP_SCENE_FUCHSIA_CITY_SAFARI_ZONE_ENTRANCE, 0);
@@ -979,7 +979,7 @@ void SetCurrentMapLayout(u16 mapLayoutId)
gMapHeader.mapLayout = GetMapLayout(); gMapHeader.mapLayout = GetMapLayout();
} }
void sub_8055D5C(struct WarpData * warp) void Overworld_SetWarpDestinationFromWarp(struct WarpData * warp)
{ {
sWarpDestination = *warp; sWarpDestination = *warp;
} }
@@ -1441,7 +1441,7 @@ static void DoCB1_Overworld_QuestLogPlayback(void)
RunQuestLogCB(); RunQuestLogCB();
} }
} }
else if (sub_8111CD0() == TRUE) else if (QuestLogScenePlaybackIsEnding() == TRUE)
{ {
RunQuestLogCB(); RunQuestLogCB();
} }
@@ -1555,7 +1555,7 @@ void CB2_WhiteOut(void)
gFieldCallback = FieldCB_RushInjuredPokemonToCenter; gFieldCallback = FieldCB_RushInjuredPokemonToCenter;
val = 0; val = 0;
do_load_map_stuff_loop(&val); do_load_map_stuff_loop(&val);
QuestLog_OnInteractionWithSpecialNpc(); QuestLog_CutRecording();
SetFieldVBlankCallback(); SetFieldVBlankCallback();
SetMainCallback1(CB1_Overworld); SetMainCallback1(CB1_Overworld);
SetMainCallback2(CB2_Overworld); SetMainCallback2(CB2_Overworld);
@@ -1575,9 +1575,9 @@ void CB2_LoadMap(void)
static void CB2_LoadMap2(void) static void CB2_LoadMap2(void)
{ {
do_load_map_stuff_loop(&gMain.state); do_load_map_stuff_loop(&gMain.state);
if (sub_8113748() == TRUE) if (QuestLog_ShouldEndSceneOnMapChange() == TRUE)
{ {
sub_81119C8(); QuestLog_AdvancePlayhead_();
} }
else else
{ {
@@ -1671,14 +1671,14 @@ void CB2_ReturnToFieldContinueScriptPlayMapMusic(void)
CB2_ReturnToField(); CB2_ReturnToField();
} }
void sub_80568FC(void) void CB2_ReturnToFieldFromDiploma(void)
{ {
FieldClearVBlankHBlankCallbacks(); FieldClearVBlankHBlankCallbacks();
gFieldCallback = FieldCB_WarpExitFadeFromBlack; gFieldCallback = FieldCB_WarpExitFadeFromBlack;
CB2_ReturnToField(); CB2_ReturnToField();
} }
static void sub_8056918(void) static void FieldCB_ShowMapNameOnContinue(void)
{ {
if (SHOW_MAP_NAME_ENABLED) if (SHOW_MAP_NAME_ENABLED)
ShowMapNamePopup(FALSE); ShowMapNamePopup(FALSE);
@@ -1693,7 +1693,7 @@ void CB2_ContinueSavedGame(void)
LoadSaveblockMapHeader(); LoadSaveblockMapHeader();
LoadSaveblockObjEventScripts(); LoadSaveblockObjEventScripts();
UnfreezeObjectEvents(); UnfreezeObjectEvents();
sub_8054E40(); Overworld_ResetStateOnContinue();
InitMapFromSavedGame(); InitMapFromSavedGame();
PlayTimeCounter_Start(); PlayTimeCounter_Start();
ScriptContext1_Init(); ScriptContext1_Init();
@@ -1709,7 +1709,7 @@ void CB2_ContinueSavedGame(void)
} }
else else
{ {
gFieldCallback = sub_8056918; gFieldCallback = FieldCB_ShowMapNameOnContinue;
SetMainCallback1(CB1_Overworld); SetMainCallback1(CB1_Overworld);
CB2_ReturnToField(); CB2_ReturnToField();
} }
@@ -1861,7 +1861,7 @@ static bool32 load_map_stuff(u8 *state, bool32 a1)
(*state)++; (*state)++;
break; break;
case 3: case 3:
if (sub_8113748() == TRUE) if (QuestLog_ShouldEndSceneOnMapChange() == TRUE)
return TRUE; return TRUE;
(*state)++; (*state)++;
break; break;
@@ -2205,7 +2205,7 @@ static void CreateLinkPlayerSprites(void)
// Quest Log // Quest Log
void sub_805726C(void) void CB2_SetUpOverworldForQLPlaybackWithWarpExit(void)
{ {
FieldClearVBlankHBlankCallbacks(); FieldClearVBlankHBlankCallbacks();
gUnknown_2036E28 = 1; gUnknown_2036E28 = 1;
@@ -2213,10 +2213,10 @@ void sub_805726C(void)
ScriptContext2_Disable(); ScriptContext2_Disable();
SetMainCallback1(NULL); SetMainCallback1(NULL);
SetMainCallback2(CB2_DoChangeMap); SetMainCallback2(CB2_DoChangeMap);
gMain.savedCallback = sub_80572D8; gMain.savedCallback = CB2_LoadMapForQLPlayback;
} }
void sub_80572A8(void) void CB2_SetUpOverworldForQLPlayback(void)
{ {
FieldClearVBlankHBlankCallbacks(); FieldClearVBlankHBlankCallbacks();
gUnknown_2036E28 = 1; gUnknown_2036E28 = 1;
@@ -2224,24 +2224,24 @@ void sub_80572A8(void)
ScriptContext1_Init(); ScriptContext1_Init();
ScriptContext2_Disable(); ScriptContext2_Disable();
SetMainCallback1(NULL); SetMainCallback1(NULL);
SetMainCallback2(sub_80572D8); SetMainCallback2(CB2_LoadMapForQLPlayback);
} }
static void sub_80572D8(void) static void CB2_LoadMapForQLPlayback(void)
{ {
sub_8057300(&gMain.state); DoLoadMap_QLPlayback(&gMain.state);
SetFieldVBlankCallback(); SetFieldVBlankCallback();
SetMainCallback1(CB1_Overworld); SetMainCallback1(CB1_Overworld);
SetMainCallback2(CB2_Overworld); SetMainCallback2(CB2_Overworld);
} }
static void sub_8057300(u8 *state) static void DoLoadMap_QLPlayback(u8 *state)
{ {
while (!sub_8057314(state)) while (!LoadMap_QLPlayback(state))
; ;
} }
static bool32 sub_8057314(u8 *state) static bool32 LoadMap_QLPlayback(u8 *state)
{ {
switch (*state) switch (*state)
{ {
@@ -2317,7 +2317,7 @@ static bool32 sub_8057314(u8 *state)
return FALSE; return FALSE;
} }
void sub_8057430(void) void CB2_EnterFieldFromQuestLog(void)
{ {
FieldClearVBlankHBlankCallbacks(); FieldClearVBlankHBlankCallbacks();
StopMapMusic(); StopMapMusic();
@@ -2326,7 +2326,7 @@ void sub_8057430(void)
LoadSaveblockMapHeader(); LoadSaveblockMapHeader();
LoadSaveblockObjEventScripts(); LoadSaveblockObjEventScripts();
UnfreezeObjectEvents(); UnfreezeObjectEvents();
sub_8054E40(); Overworld_ResetStateOnContinue();
InitMapFromSavedGame(); InitMapFromSavedGame();
PlayTimeCounter_Start(); PlayTimeCounter_Start();
ScriptContext1_Init(); ScriptContext1_Init();
+1
View File
@@ -19,6 +19,7 @@
#include "fieldmap.h" #include "fieldmap.h"
#include "fldeff.h" #include "fldeff.h"
#include "graphics.h" #include "graphics.h"
#include "help_message.h"
#include "help_system.h" #include "help_system.h"
#include "item.h" #include "item.h"
#include "item_menu.h" #include "item_menu.h"
+96 -2758
View File
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+1
View File
@@ -8,6 +8,7 @@
#include "party_menu.h" #include "party_menu.h"
#include "save.h" #include "save.h"
#include "link_rfu.h" #include "link_rfu.h"
#include "help_message.h"
#include "event_data.h" #include "event_data.h"
#include "fieldmap.h" #include "fieldmap.h"
#include "safari_zone.h" #include "safari_zone.h"
+359
View File
@@ -0,0 +1,359 @@
#include "global.h"
#include "gflib.h"
#include "battle.h"
#include "event_data.h"
#include "event_scripts.h"
#include "random.h"
#include "constants/vars.h"
#include "constants/flags.h"
struct TrainerFanClub
{
u8 timer:7;
u8 gotInitialFans:1;
u8 fanFlags;
};
#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))
#define FANCLUB_MEMBER1 0
#define FANCLUB_MEMBER2 1
#define FANCLUB_MEMBER3 2
#define FANCLUB_MEMBER4 3
#define FANCLUB_MEMBER5 4
#define FANCLUB_MEMBER6 5
#define FANCLUB_MEMBER7 6
#define FANCLUB_MEMBER8 7
#define NUM_TRAINER_FAN_CLUB_MEMBERS 8
static void TryLoseFansFromPlayTimeAfterLinkBattle(struct TrainerFanClub *);
static void 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 *);
void ResetTrainerFanClub(void)
{
VarSet(VAR_FANCLUB_FAN_COUNTER, 0);
VarSet(VAR_FANCLUB_LOSE_FAN_TIMER, 0);
}
void Script_TryLoseFansFromPlayTimeAfterLinkBattle(void)
{
TryLoseFansFromPlayTimeAfterLinkBattle(TRAINER_FAN_CLUB);
}
static void TryLoseFansFromPlayTimeAfterLinkBattle(struct TrainerFanClub *fanClub)
{
if (DidPlayerGetFirstFans(fanClub))
{
TryLoseFansFromPlayTime(fanClub);
VarSet(VAR_FANCLUB_LOSE_FAN_TIMER, gSaveBlock2Ptr->playTimeHours);
}
}
void Script_UpdateTrainerFanClubGameClear(void)
{
UpdateTrainerFanClubGameClear(TRAINER_FAN_CLUB);
}
static void UpdateTrainerFanClubGameClear(struct TrainerFanClub *fanClub)
{
if (!fanClub->gotInitialFans)
{
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);
FlagClear(FLAG_HIDE_SAFFRON_FAN_CLUB_BEAUTY);
VarSet(VAR_MAP_SCENE_SAFFRON_CITY_POKEMON_TRAINER_FAN_CLUB, 1);
}
}
ALIGNED(4) const u8 sCounterIncrements[] = {2, 1, 2, 1};
static u8 TryGainNewFanFromCounter(struct TrainerFanClub *fanClub, u8 a1)
{
if (VarGet(VAR_MAP_SCENE_SAFFRON_CITY_POKEMON_TRAINER_FAN_CLUB) == 2)
{
if (fanClub->timer + sCounterIncrements[a1] >= 20)
{
if (GetNumFansOfPlayerInTrainerFanClub(fanClub) < 3)
{
PlayerGainRandomTrainerFan(fanClub);
fanClub->timer = 0;
}
else
fanClub->timer = 20;
}
else
fanClub->timer += sCounterIncrements[a1];
}
return fanClub->timer;
}
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 idx = 0;
for (i = 0; i < NUM_TRAINER_FAN_CLUB_MEMBERS; i++)
{
if (!(GET_TRAINER_FAN_CLUB_FLAG(sFanClubMemberIds[i])))
{
idx = i;
if (Random() % 2)
{
SET_TRAINER_FAN_CLUB_FLAG(sFanClubMemberIds[i]);
return sFanClubMemberIds[i];
}
}
}
SET_TRAINER_FAN_CLUB_FLAG(sFanClubMemberIds[idx]);
return sFanClubMemberIds[idx];
}
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 idx = 0;
if (GetNumFansOfPlayerInTrainerFanClub(fanClub) == 1)
return 0;
for (i = 0; i < NUM_TRAINER_FAN_CLUB_MEMBERS; i++)
{
if (GET_TRAINER_FAN_CLUB_FLAG(sFanClubMemberIds[i]))
{
idx = i;
if (Random() % 2)
{
FLIP_TRAINER_FAN_CLUB_FLAG(sFanClubMemberIds[i]);
return sFanClubMemberIds[i];
}
}
}
if (GET_TRAINER_FAN_CLUB_FLAG(sFanClubMemberIds[idx]))
FLIP_TRAINER_FAN_CLUB_FLAG(sFanClubMemberIds[idx]);
return sFanClubMemberIds[idx];
}
u16 Script_GetNumFansOfPlayerInTrainerFanClub(void)
{
return GetNumFansOfPlayerInTrainerFanClub(TRAINER_FAN_CLUB);
}
static u16 GetNumFansOfPlayerInTrainerFanClub(struct TrainerFanClub *fanClub)
{
u8 count = 0;
u8 i;
for (i = 0; i < NUM_TRAINER_FAN_CLUB_MEMBERS; i++)
{
if (GET_TRAINER_FAN_CLUB_FLAG(i))
count++;
}
return count;
}
void Script_TryLoseFansFromPlayTime(void)
{
TryLoseFansFromPlayTime(TRAINER_FAN_CLUB);
}
static void TryLoseFansFromPlayTime(struct TrainerFanClub *fanClub)
{
u8 i = 0;
u16 timer;
if (gSaveBlock2Ptr->playTimeHours < 999)
{
while (1)
{
if (GetNumFansOfPlayerInTrainerFanClub(fanClub) < 5)
{
VarSet(VAR_FANCLUB_LOSE_FAN_TIMER, gSaveBlock2Ptr->playTimeHours);
break;
}
if (i == NUM_TRAINER_FAN_CLUB_MEMBERS)
break;
timer = VarGet(VAR_FANCLUB_LOSE_FAN_TIMER);
if (gSaveBlock2Ptr->playTimeHours - timer < 12)
break;
PlayerLoseRandomTrainerFan(fanClub);
timer = VarGet(VAR_FANCLUB_LOSE_FAN_TIMER);
VarSet(VAR_FANCLUB_LOSE_FAN_TIMER, timer + 12);
i++;
}
}
}
bool16 Script_IsFanClubMemberFanOfPlayer(void)
{
return IsFanClubMemberFanOfPlayer(TRAINER_FAN_CLUB);
}
static bool16 IsFanClubMemberFanOfPlayer(struct TrainerFanClub *fanClub)
{
return GET_TRAINER_FAN_CLUB_FLAG(gSpecialVar_0x8004);
}
static void SetInitialFansOfPlayer(struct TrainerFanClub *fanClub)
{
SET_TRAINER_FAN_CLUB_FLAG(FANCLUB_MEMBER1);
SET_TRAINER_FAN_CLUB_FLAG(FANCLUB_MEMBER2);
SET_TRAINER_FAN_CLUB_FLAG(FANCLUB_MEMBER3);
}
void Script_BufferFanClubTrainerName(void)
{
u8 whichLinkTrainer = 0;
u8 whichNPCTrainer = 0;
switch (gSpecialVar_0x8004)
{
case FANCLUB_MEMBER1:
whichNPCTrainer = 0;
whichLinkTrainer = 0;
break;
case FANCLUB_MEMBER2:
case FANCLUB_MEMBER3:
case FANCLUB_MEMBER4:
case FANCLUB_MEMBER8:
break;
case FANCLUB_MEMBER5:
whichNPCTrainer = 1;
whichLinkTrainer = 0;
break;
case FANCLUB_MEMBER6:
whichNPCTrainer = 0;
whichLinkTrainer = 1;
break;
case FANCLUB_MEMBER7:
whichNPCTrainer = 2;
whichLinkTrainer = 1;
break;
}
BufferFanClubTrainerName(&gSaveBlock2Ptr->linkBattleRecords, whichLinkTrainer, whichNPCTrainer);
}
static void BufferFanClubTrainerName(struct LinkBattleRecords *linkRecords, u8 whichLinkTrainer, u8 whichNPCTrainer)
{
u8 *str;
const u8 *linkTrainerName = linkRecords->entries[whichLinkTrainer].name;
if (linkTrainerName[0] == EOS)
{
switch (whichNPCTrainer)
{
case 0:
StringCopy(gStringVar1, gSaveBlock1Ptr->rivalName);
break;
case 1:
StringCopy(gStringVar1, gText_LtSurge);
break;
case 2:
StringCopy(gStringVar1, gText_Koga);
break;
default:
StringCopy(gStringVar1, gSaveBlock1Ptr->rivalName);
break;
}
}
else
{
str = gStringVar1;
StringCopyN(str, linkTrainerName, PLAYER_NAME_LENGTH);
str[PLAYER_NAME_LENGTH] = EOS;
if ( str[0] == EXT_CTRL_CODE_BEGIN
&& str[1] == EXT_CTRL_CODE_JPN)
{
str += 2;
while (*str != EOS)
str++;
*str++ = EXT_CTRL_CODE_BEGIN;
*str++ = EXT_CTRL_CODE_ENG;
*str++ = EOS;
}
}
}
void Special_UpdateTrainerFansAfterLinkBattle(void)
{
UpdateTrainerFansAfterLinkBattle(TRAINER_FAN_CLUB);
}
static void UpdateTrainerFansAfterLinkBattle(struct TrainerFanClub *fanClub)
{
if (VarGet(VAR_MAP_SCENE_SAFFRON_CITY_POKEMON_TRAINER_FAN_CLUB) == 2)
{
TryLoseFansFromPlayTimeAfterLinkBattle(fanClub);
if (gBattleOutcome == B_OUTCOME_WON)
PlayerGainRandomTrainerFan(fanClub);
else
PlayerLoseRandomTrainerFan(fanClub);
}
}
static bool8 DidPlayerGetFirstFans(struct TrainerFanClub *fanClub)
{
return fanClub->gotInitialFans;
}
void Script_SetPlayerGotFirstFans(void)
{
SetPlayerGotFirstFans(TRAINER_FAN_CLUB);
}
static void SetPlayerGotFirstFans(struct TrainerFanClub *fanClub)
{
fanClub->gotInitialFans = TRUE;
}
u8 Script_TryGainNewFanFromCounter(void)
{
return TryGainNewFanFromCounter(TRAINER_FAN_CLUB, gSpecialVar_0x8004);
}
+4
View File
@@ -203,6 +203,10 @@
.align 2 .align 2
.include "src/quest_log.o" .include "src/quest_log.o"
.align 2 .align 2
.include "src/help_message.o"
.align 2
.include "src/quest_log_events.o"
.align 2
.include "src/union_room.o" .include "src/union_room.o"
.align 2 .align 2
.include "src/rfu_union_tool.o" .include "src/rfu_union_tool.o"