From c72c3780443ad48c0d77dd2e04b83cadeee3762d Mon Sep 17 00:00:00 2001 From: cecilarmitais Date: Tue, 21 Jul 2026 00:39:51 -0700 Subject: [PATCH 1/3] Decomp special-actor setters; identify SPECIAL_ACTORS (_020B0B08) Decompile eight ground-mode setters from asm into src/main_02065B3C.c: SetActorTalkMainAndActorTalkSub, SetActorTalkMain, SetActorTalkSub, SetActorEventMain, SetRandomRequestNpcs1And2, SetRandomRequestNpc03KindVar, SetAllEventNpcs and SetNewFriendActor. Identify the global they write, _020B0B08, as a 28-byte table of slots keyed by the special members of enum script_entity_id (ENTITY_TALK_MAIN 46 through ENTITY_NPC_DEMO_PARTNER 59). Every slot offset is corroborated by both a writer above and the reader that resolves it at the matching entity id: sub_0206549C, reached via GetScriptEntityMonsterId, and sub_02065050, reached via GetActorMatchingStorageId. Name the type struct special_actors and relabel the symbol _020B0B08 -> SPECIAL_ACTORS at its definition in asm/main_rodata_020A2808.s and at every reference. Extracting the block splits asm/main_0205EDA4.s: the trailing functions move verbatim into asm/main_02065BD8.s, the affected .inc files are regenerated, and main.lsf gains the two new objects. Add enum script_entity_id to include/enums.h, taken from pmdsky-debug, since struct special_actors refers to it. No comments are added to any pmd-sky file; comments cannot be checked by the matching build, so the code is left to stand on its own. Authored by Claude (Opus 4.8) under human direction. Confirmed by a matching build: build/pmdsky.us/pmdsky.us.nds: OK. Co-Authored-By: Claude Opus 4.8 --- asm/include/main_0205EDA4.inc | 413 +-- asm/include/main_02065BD8.inc | 230 ++ asm/main_0205EDA4.s | 5818 +-------------------------------- asm/main_02065BD8.s | 5713 ++++++++++++++++++++++++++++++++ asm/main_rodata_020A2808.s | 4 +- include/enums.h | 389 +++ include/main_02065B3C.h | 34 + main.lsf | 2 + src/main_02065B3C.c | 48 + 9 files changed, 6543 insertions(+), 6108 deletions(-) create mode 100644 asm/include/main_02065BD8.inc create mode 100644 asm/main_02065BD8.s create mode 100644 include/main_02065B3C.h create mode 100644 src/main_02065B3C.c diff --git a/asm/include/main_0205EDA4.inc b/asm/include/main_0205EDA4.inc index 469afd8f..bfdfc52f 100644 --- a/asm/include/main_0205EDA4.inc +++ b/asm/include/main_0205EDA4.inc @@ -1,4 +1,114 @@ #pragma once +.public ARM9_UNKNOWN_TABLE__NA_20A68BC +.public AlreadyHasSimilarMission +.public AppendStandardStringToMission +.public BitstreamDebug +.public CAFE_MISSION_REWARD_TYPE_WEIGHTS +.public CHALLENGE_NORMAL_FIXED_ROOM_IDS +.public Copy16BitsFrom +.public Copy16BitsTo +.public CopyBitsFrom +.public CopyBitsTo +.public CopyColorToPaletteDataRgba +.public DEFAULT_MISSION_REWARD_TYPE_WEIGHTS +.public Debug_GetDebugFlag +.public Debug_Print0 +.public DexNumbersEqual +.public DirectoryFileMngr_OpenDirectoryFile +.public DrawTextInWindow +.public DungeonGoesUp +.public DungeonSwapIdToIdx +.public ENTITIES +.public EVENTS +.public EnqueueRender3dTiling +.public FemaleToMaleForm +.public FillPaletteDataRgba +.public GetAdventureNpcIds +.public GetAppointedLeaderMemberIdx +.public GetBaseForm +.public GetBaseFormBurmyWormadamShellosGastrodonCherrim +.public GetDungeonMode +.public GetExclusiveItem +.public GetFirstMatchingMemberIdx +.public GetHero +.public GetHeroMemberIdx +.public GetMainCharacter1 +.public GetMainCharacter1MemberIdx +.public GetMainCharacter2 +.public GetMainCharacter2MemberIdx +.public GetMainCharacter3 +.public GetMainCharacter3MemberIdx +.public GetMaxMembersAllowed +.public GetMaxReachedFloor +.public GetMissionRank__0204FAE0 +.public GetNameString +.public GetNbFloors +.public GetPartner +.public GetPartnerMemberIdx +.public GetPartyMembers +.public GetRank +.public GetRecruitMentryIdBySpecies +.public GetResolvedPerformanceProgressFlag +.public GetScenarioBalance +.public GetSecondFormIfValid +.public GetStringFromFileVeneer +.public GetType +.public GetUnitNpcIds +.public HandleSir0TranslationVeneer +.public HasMonsterBeenAttackedInDungeons +.public ITEM_DELIVERY_TABLE +.public InitBitstreamForRead +.public InitBitstreamForWrite +.public InitPreprocessorArgs +.public IsForbiddenFloor +.public IsItemAvailableInDungeonGroup +.public IsItemInBag +.public IsItemInTimeDarkness +.public IsItemInTreasureBoxes +.public IsMissionTypeSpecialEpisode +.public IsMonsterValid +.public IsSpecialEpisodeBeaten +.public IsStoryBeforePoint +.public LoadFileFromRom +.public LoadScriptVariableValue +.public MISSION_BANNED_MONSTERS +.public MISSION_BANNED_STORY_MONSTERS +.public MISSION_DELIVER_LIST_PTR +.public MISSION_DUNGEON_UNLOCK_TABLE +.public MISSION_MENU_STRING_IDS_1 +.public MISSION_MENU_STRING_IDS_2 +.public MISSION_RANK_POINTS +.public MISSION_STRING_IDS +.public MISSION_VALIDATION_FUNCTION_LIST +.public MarkPaletteDataAsNeedingUpdate +.public MaybeGetFormattedItemName +.public MemAlloc +.public MemFree +.public MemZero +.public MemcpySimple +.public MissionToWonderMailPassword +.public MultiplyByFixedPoint +.public NO_SEND_ITEM_TABLE +.public OUTLAW_HIDEOUT_FIXED_ROOM_IDS +.public OUTLAW_MISSION_REWARD_TYPE_WEIGHTS +.public OverlayIsLoaded +.public PreprocessString +.public PreprocessStringFromId +.public RANK_STRING_PTR_TABLE +.public REMOTE_STRING_PTR_TABLE +.public RESCUE_BIN_UNPACK +.public Rand16Bit +.public RandInt +.public RandIntSafe +.public RandRangeSafe +.public RemoveFirstUnequippedItemOfType +.public RetrieveFromItemList2 +.public SPECIAL_ACTORS +.public StringFromId +.public StrncpySimpleNoPadSafe +.public TEAM_MEMBER_TABLE_PTR +.public TREASURE_MEMO_FIXED_ROOM_IDS +.public UnloadFile .public _020A3CA0 .public _020A3CAD .public _020A3CBC @@ -14,244 +124,17 @@ .public _020A46B0 .public _020A46D0 .public _020A5490 -.public _020A68CA -.public _020A9208 -.public _020A9268 -.public _020A9278 -.public _020A9288 -.public _020A9298 -.public _020A92A8 -.public _020A92EC -.public _020A9304 -.public _020A931C -.public _020A9334 -.public _020A9364 -.public _020A937C -.public _020A9394 -.public _020A93B4 .public _020AFC70 -.public _020B0A54 .public _020B0AFC .public _020B0B04 -.public _020B0B08 -.public _020B0B24 -.public _020B0B2C -.public _020B0B2D -.public _020B0B2E -.public _020B0B2F -.public _020B0B30 -.public _020B0B31 -.public _020B0B32 -.public _020B0B33 -.public _020B0B34 -.public _020B0B35 -.public _020B0B36 -.public _020B0B37 -.public _020B0B38 -.public _020B0B39 -.public _020B0B3A -.public _020B0B3B -.public _020B0B3C -.public _020B0B3D -.public _020B0B3E -.public _020B0B3F -.public _020B0B44 -.public _020B0B48 -.public _022B7310 -.public _022B7320 .public _s32_div_f -.public AlreadyHasSimilarMission -.public AlreadyHaveMission -.public AppendStandardStringToMission -.public ARM9_UNKNOWN_TABLE__NA_20A68BC -.public BitstreamDebug -.public BulkItemToItem -.public CAFE_MISSION_REWARD_TYPE_WEIGHTS -.public CHALLENGE_NORMAL_FIXED_ROOM_IDS -.public CloseCollectionMenu -.public ClosePortraitBox -.public Copy16BitsFrom -.public Copy16BitsTo -.public CopyBitsFrom -.public CopyBitsTo -.public CopyColorToPaletteDataRgba -.public CopyFrameTypeOption -.public CountJobListMissions -.public CreateCollectionMenu -.public CreatePortraitBox -.public Debug_GetDebugFlag -.public Debug_Print0 -.public DEFAULT_MISSION_REWARD_TYPE_WEIGHTS -.public DEMO_TEAMS -.public DexNumbersEqual -.public DirectoryFileMngr_ExtractAllDirectoryFiles -.public DirectoryFileMngr_OpenDirectoryFile -.public DrawTextInWindow -.public DungeonGoesUp -.public DungeonSwapIdToIdx -.public EnqueueRender3dTiling -.public ENTITIES -.public EVENTS -.public ExplorersOfSkyMain -.public FemaleToMaleForm -.public FillPaletteDataRgba -.public GetAdventureLogDungeonFloor -.public GetAdventureNpcIds -.public GetAppointedLeaderMemberIdx -.public GetBaseForm -.public GetBaseFormBurmyWormadamShellosGastrodonCherrim -.public GetDebugSpecialEpisodeNumber -.public GetDungeonMode -.public GetExclusiveItem -.public GetFirstMatchingMemberIdx -.public GetHero -.public GetHeroMemberIdx -.public GetLanguageType -.public GetMainCharacter1 -.public GetMainCharacter1MemberIdx -.public GetMainCharacter2 -.public GetMainCharacter2MemberIdx -.public GetMainCharacter3 -.public GetMainCharacter3MemberIdx -.public GetMainTeamNameWithCheck -.public GetMaxMembersAllowed -.public GetMaxReachedFloor -.public GetMissionRank__0204FAE0 -.public GetNameString -.public GetNbFloors -.public GetPartner -.public GetPartnerMemberIdx -.public GetPartyMembers -.public GetRank -.public GetRecruitMentryIdBySpecies -.public GetResolvedPerformanceProgressFlag -.public GetScenarioBalance -.public GetSecondFormIfValid -.public GetSosMailCount -.public GetSpecialEpisodeType -.public GetStringFromFileVeneer -.public GetType -.public GetUnitNpcIds -.public GetWindowIdSelectedMenuItemIdx -.public GlobalProgressAlloc -.public HandleSir0TranslationVeneer -.public HasMonsterBeenAttackedInDungeons -.public InitBitstreamForRead -.public InitBitstreamForWrite -.public InitKaomadoStream -.public InitObjGraphicsControls -.public InitOptionsVeneer -.public InitPreprocessorArgs -.public InitScriptVariableValues -.public InitSpecialEpisodeHero -.public InitWanTable -.public IsCollectionMenuActive -.public IsForbiddenFloor -.public IsItemAvailableInDungeonGroup -.public IsItemInBag -.public IsItemInTimeDarkness -.public IsItemInTreasureBoxes -.public IsMissionTypeSpecialEpisode -.public IsMonsterValid -.public IsSpecialEpisodeBeaten -.public IsSpecialEpisodeOpen -.public IsStoryBeforePoint -.public ITEM_DELIVERY_TABLE -.public JOB_MENU_ITEMS_1 -.public JOB_MENU_ITEMS_10 -.public JOB_MENU_ITEMS_11 -.public JOB_MENU_ITEMS_12 -.public JOB_MENU_ITEMS_13 -.public JOB_MENU_ITEMS_2 -.public JOB_MENU_ITEMS_3 -.public JOB_MENU_ITEMS_4 -.public JOB_MENU_ITEMS_5 -.public JOB_MENU_ITEMS_6 -.public JOB_MENU_ITEMS_7 -.public JOB_MENU_ITEMS_8 -.public JOB_MENU_ITEMS_9 -.public JOB_WINDOW_PARAMS_1 -.public JOB_WINDOW_PARAMS_2 -.public KeyWaitInit -.public LoadFileFromRom -.public LoadOverlay -.public LoadScriptVariableValue -.public LoadTblTalk -.public LoadWazaP -.public MainGame -.public MarkPaletteDataAsNeedingUpdate -.public MaybeGetFormattedItemName -.public MemAlloc -.public MemcpySimple -.public MemFree -.public MemZero -.public MISSION_BANNED_MONSTERS -.public MISSION_BANNED_STORY_MONSTERS -.public MISSION_DELIVER_LIST_PTR -.public MISSION_DUNGEON_UNLOCK_TABLE -.public MISSION_MENU_STRING_IDS_1 -.public MISSION_MENU_STRING_IDS_2 -.public MISSION_RANK_POINTS -.public MISSION_STRING_IDS -.public MISSION_VALIDATION_FUNCTION_LIST -.public MissionToWonderMailPassword -.public MultiplyByFixedPoint -.public NO_SEND_ITEM_TABLE -.public NoteLoadBase -.public NoteSaveBase -.public OUTLAW_HIDEOUT_FIXED_ROOM_IDS -.public OUTLAW_MISSION_REWARD_TYPE_WEIGHTS -.public ov00_022BE0C8 -.public ov01_02337B3C -.public ov01_02337B68 -.public ov01_02337BA0 -.public ov01_02337C54 -.public ov01_02337E0C -.public ov03_0233CAA8 -.public ov03_0233CAD8 -.public ov03_0233CB10 -.public ov03_0233CB3C -.public ov03_0233CDC8 -.public ov03_0233CDD8 -.public ov03_0233CDE4 -.public ov11_022E82CC .public ov11_022E96E4 -.public OverlayIsLoaded -.public PlaySeVolumeWrapper -.public PreprocessString -.public PreprocessStringFromId -.public Rand16Bit -.public RandInt -.public RandIntSafe -.public RandRangeSafe -.public RANK_STRING_PTR_TABLE -.public ReadSaveHeader -.public REMOTE_STRING_PTR_TABLE -.public RemoveFirstUnequippedItemOfType -.public RESCUE_BIN_UNPACK -.public RetrieveFromItemList2 -.public SaveScriptVariableValue -.public SetAdventureLogStructLocation -.public SetBothScreensWindowsColor -.public SetCollectionMenuField0x1B2 -.public SetGameMode -.public SetQuestionMarks -.public SetScenarioProgressScriptVar -.public SetSpecialEpisodeOpen -.public SetSpecialEpisodeType -.public ShowPortraitInPortraitBox .public strcat .public strcpy -.public StringFromId .public strncat -.public StrncpySimple -.public StrncpySimpleNoPadSafe .public sub_02001AB0 .public sub_020022C4 .public sub_020022D0 -.public sub_020024A0 -.public sub_02003B94 -.public sub_02003BC8 .public sub_020090A0 .public sub_020090C0 .public sub_020090F4 @@ -265,95 +148,19 @@ .public sub_0200B330 .public sub_0200B3FC .public sub_0200C020 -.public sub_0200CA8C -.public sub_0201D7A8 -.public sub_0201DD90 .public sub_0201E050 .public sub_0201E380 -.public sub_0201F208 -.public sub_020205E4 -.public sub_020205F8 .public sub_020251F0 .public sub_0202568C -.public sub_02025AD8 .public sub_020264F8 -.public sub_02026E78 -.public sub_02027180 -.public sub_0202836C -.public sub_02029F88 -.public sub_02029FBC -.public sub_0202C620 -.public sub_0202C654 -.public sub_0202C6F0 -.public sub_0202C75C -.public sub_0202D07C -.public sub_020346C0 -.public sub_020469BC -.public sub_020469E8 -.public sub_02046A20 -.public sub_02046A9C -.public sub_02046B04 -.public sub_02046BA0 -.public sub_02046BB4 -.public sub_02046BE8 -.public sub_02046C30 -.public sub_02046C78 -.public sub_02046D20 -.public sub_02046D2C -.public sub_0204707C -.public sub_020470D0 -.public sub_02047148 -.public sub_02047150 -.public sub_02047188 -.public sub_020474A0 -.public sub_02048420 -.public sub_02048430 -.public sub_02048454 -.public sub_020484C0 -.public sub_020485C4 -.public sub_020485D8 -.public sub_02048624 -.public sub_02048644 -.public sub_0204872C -.public sub_0204A1A4 -.public sub_0204D018 -.public sub_0204E210 -.public sub_0204F1B4 -.public sub_0204F9B8 -.public sub_02052C3C .public sub_02052E2C .public sub_02055410 .public sub_02055474 .public sub_020554D8 .public sub_02056914 -.public sub_0205B44C -.public sub_0205B77C -.public sub_0205BD40 .public sub_0205BD5C -.public sub_0205C73C -.public sub_0205C870 -.public sub_0205C8E0 -.public sub_0205D1F4 .public sub_0205E090 .public sub_0205E3F8 .public sub_0205E48C .public sub_0205E50C -.public sub_0205E954 -.public sub_0205E970 -.public sub_0205E984 -.public sub_0205EAC8 -.public sub_0205EAE8 -.public sub_0205EB00 -.public sub_0205EBD8 -.public sub_0205EBF0 -.public sub_0205EC38 -.public sub_0205EC50 -.public sub_0205ECF4 -.public TEAM_MEMBER_TABLE_PTR -.public TREASURE_MEMO_FIXED_ROOM_IDS -.public UnloadFile -.public UnloadOverlay -.public UpdateWindow .public vsprintf -.public WAN_TABLE -.public ZeroInitScriptVariable diff --git a/asm/include/main_02065BD8.inc b/asm/include/main_02065BD8.inc new file mode 100644 index 00000000..2f54494a --- /dev/null +++ b/asm/include/main_02065BD8.inc @@ -0,0 +1,230 @@ +#pragma once +.public AddMissionToJobList +.public AlreadyHaveMission +.public BulkItemToItem +.public CanDungeonBeUsedForMission +.public CanSendItem +.public CheckAcceptedMissionByTypeAndDungeon +.public CheckDungeonMissionUnlockConditions +.public CloseCollectionMenu +.public ClosePortraitBox +.public CopyFrameTypeOption +.public CountJobListMissions +.public CreateCollectionMenu +.public CreatePortraitBox +.public DEMO_TEAMS +.public Debug_Print0 +.public DirectoryFileMngr_ExtractAllDirectoryFiles +.public DrawTextInWindow +.public DungeonRequestsDoneWrapper +.public DungeonSwapIdToIdx +.public ExplorersOfSkyMain +.public FormatMissionHeader +.public FormatSpecialEpisodeMissionHeader +.public GenerateMissionDetailsStruct +.public GetAcceptedMission +.public GetAdventureLogDungeonFloor +.public GetDebugSpecialEpisodeNumber +.public GetDungeonMode +.public GetLanguageType +.public GetMainTeamNameWithCheck +.public GetRank +.public GetResolvedPerformanceProgressFlag +.public GetScenarioBalance +.public GetSosMailCount +.public GetSpecialEpisodeType +.public GetStringFromFileVeneer +.public GetWindowIdSelectedMenuItemIdx +.public GlobalProgressAlloc +.public InitKaomadoStream +.public InitObjGraphicsControls +.public InitOptionsVeneer +.public InitPreprocessorArgs +.public InitScriptVariableValues +.public InitSpecialEpisodeHero +.public InitWanTable +.public IsAcceptedMissionSlotEmpty +.public IsCollectionMenuActive +.public IsMissionTypeSpecialEpisode +.public IsSpecialEpisodeBeaten +.public IsSpecialEpisodeOpen +.public JOB_MENU_ITEMS_1 +.public JOB_MENU_ITEMS_10 +.public JOB_MENU_ITEMS_11 +.public JOB_MENU_ITEMS_12 +.public JOB_MENU_ITEMS_13 +.public JOB_MENU_ITEMS_2 +.public JOB_MENU_ITEMS_3 +.public JOB_MENU_ITEMS_4 +.public JOB_MENU_ITEMS_5 +.public JOB_MENU_ITEMS_6 +.public JOB_MENU_ITEMS_7 +.public JOB_MENU_ITEMS_8 +.public JOB_MENU_ITEMS_9 +.public JOB_WINDOW_PARAMS_1 +.public JOB_WINDOW_PARAMS_2 +.public KeyWaitInit +.public LoadOverlay +.public LoadTblTalk +.public LoadWazaP +.public MainGame +.public MakeMissionDetails +.public MakeSpecialEpisodeMissionDetails +.public MemAlloc +.public MemFree +.public MemZero +.public NoteLoadBase +.public NoteSaveBase +.public OverlayIsLoaded +.public PlaySeVolumeWrapper +.public PreprocessStringFromId +.public RandInt +.public ReadSaveHeader +.public SPECIAL_ACTORS +.public SetAdventureLogStructLocation +.public SetBothScreensWindowsColor +.public SetCollectionMenuField0x1B2 +.public SetGameMode +.public SetQuestionMarks +.public SetScenarioProgressScriptVar +.public SetSpecialEpisodeOpen +.public SetSpecialEpisodeType +.public ShowPortraitInPortraitBox +.public StrncpySimple +.public StrncpySimpleNoPadSafe +.public UnloadOverlay +.public UpdateWindow +.public WAN_TABLE +.public ZeroInitScriptVariable +.public _020A68CA +.public _020A9208 +.public _020A9268 +.public _020A9278 +.public _020A9288 +.public _020A9298 +.public _020A92A8 +.public _020A92EC +.public _020A9304 +.public _020A931C +.public _020A9334 +.public _020A9364 +.public _020A937C +.public _020A9394 +.public _020A93B4 +.public _020B0A54 +.public _020B0B24 +.public _020B0B2C +.public _020B0B2D +.public _020B0B2E +.public _020B0B2F +.public _020B0B30 +.public _020B0B31 +.public _020B0B32 +.public _020B0B33 +.public _020B0B34 +.public _020B0B35 +.public _020B0B36 +.public _020B0B37 +.public _020B0B38 +.public _020B0B39 +.public _020B0B3A +.public _020B0B3B +.public _020B0B3C +.public _020B0B3D +.public _020B0B3E +.public _020B0B3F +.public _020B0B44 +.public _020B0B48 +.public _022B7310 +.public _022B7320 +.public ov00_022BE0C8 +.public ov01_02337B3C +.public ov01_02337B68 +.public ov01_02337BA0 +.public ov01_02337C54 +.public ov01_02337E0C +.public ov03_0233CAA8 +.public ov03_0233CAD8 +.public ov03_0233CB10 +.public ov03_0233CB3C +.public ov03_0233CDC8 +.public ov03_0233CDD8 +.public ov03_0233CDE4 +.public ov11_022E82CC +.public sub_020024A0 +.public sub_02003B94 +.public sub_02003BC8 +.public sub_0200CA8C +.public sub_0201D7A8 +.public sub_0201DD90 +.public sub_0201F208 +.public sub_020205E4 +.public sub_020205F8 +.public sub_02025AD8 +.public sub_02026E78 +.public sub_02027180 +.public sub_0202836C +.public sub_02029F88 +.public sub_02029FBC +.public sub_0202C620 +.public sub_0202C654 +.public sub_0202C6F0 +.public sub_0202C75C +.public sub_0202D07C +.public sub_020346C0 +.public sub_020469BC +.public sub_020469E8 +.public sub_02046A20 +.public sub_02046A9C +.public sub_02046B04 +.public sub_02046BA0 +.public sub_02046BB4 +.public sub_02046BE8 +.public sub_02046C30 +.public sub_02046C78 +.public sub_02046D20 +.public sub_02046D2C +.public sub_0204707C +.public sub_020470D0 +.public sub_02047148 +.public sub_02047150 +.public sub_02047188 +.public sub_020474A0 +.public sub_02048420 +.public sub_02048430 +.public sub_02048454 +.public sub_020484C0 +.public sub_020485C4 +.public sub_020485D8 +.public sub_02048624 +.public sub_02048644 +.public sub_0204872C +.public sub_0204A1A4 +.public sub_0204D018 +.public sub_0204E210 +.public sub_0204F1B4 +.public sub_0204F9B8 +.public sub_02052C3C +.public sub_0205B44C +.public sub_0205B77C +.public sub_0205BD40 +.public sub_0205C73C +.public sub_0205C870 +.public sub_0205C8E0 +.public sub_0205D1F4 +.public sub_0205E954 +.public sub_0205E970 +.public sub_0205E984 +.public sub_0205EAC8 +.public sub_0205EAE8 +.public sub_0205EB00 +.public sub_0205EBD8 +.public sub_0205EBF0 +.public sub_0205EC38 +.public sub_0205EC50 +.public sub_0205ECF4 +.public sub_0205F588 +.public sub_0205F5A8 +.public sub_0205F710 +.public sub_0205FA38 +.public sub_0206276C diff --git a/asm/main_0205EDA4.s b/asm/main_0205EDA4.s index 53105e14..3cb1dc59 100644 --- a/asm/main_0205EDA4.s +++ b/asm/main_0205EDA4.s @@ -7734,22 +7734,22 @@ sub_02065050: ; 0x02065050 ldrsh r0, [r5] mvn r4, #0 cmp r0, #0x2e - ldreq r0, _02065494 ; =_020B0B08 + ldreq r0, _02065494 ; =SPECIAL_ACTORS ldreqsh r0, [r0, #0x18] streqh r0, [r5] beq _020650B0 cmp r0, #0x2f - ldreq r0, _02065494 ; =_020B0B08 + ldreq r0, _02065494 ; =SPECIAL_ACTORS ldreqsh r0, [r0, #0x16] streqh r0, [r5] beq _020650B0 cmp r0, #0x30 - ldreq r0, _02065494 ; =_020B0B08 + ldreq r0, _02065494 ; =SPECIAL_ACTORS ldreqsh r0, [r0, #0x14] streqh r0, [r5] beq _020650B0 cmp r0, #0x31 - ldreq r0, _02065494 ; =_020B0B08 + ldreq r0, _02065494 ; =SPECIAL_ACTORS ldreqsh r0, [r0, #0x12] streqh r0, [r5] _020650B0: @@ -8036,7 +8036,7 @@ _0206548C: add sp, sp, #0x10 ldmia sp!, {r4, r5, r6, pc} .align 2, 0 -_02065494: .word _020B0B08 +_02065494: .word SPECIAL_ACTORS _02065498: .word ENTITIES arm_func_end sub_02065050 @@ -8289,19 +8289,19 @@ _02065808: strh r0, [r5] b _02065958 _02065818: - ldr r2, _02065970 ; =_020B0B08 + ldr r2, _02065970 ; =SPECIAL_ACTORS sub r0, r1, #0xd ldrsh r1, [r2, #0xa] strh r1, [r5] b _0206595C _0206582C: - ldr r2, _02065970 ; =_020B0B08 + ldr r2, _02065970 ; =SPECIAL_ACTORS sub r0, r1, #0xd ldrsh r1, [r2, #4] strh r1, [r5] b _0206595C _02065840: - ldr r0, _02065970 ; =_020B0B08 + ldr r0, _02065970 ; =SPECIAL_ACTORS ldrsh r0, [r0, #0xc] cmp r0, #0 strneh r0, [r5] @@ -8310,7 +8310,7 @@ _02065840: mvn r0, #0 b _0206595C _02065860: - ldr r0, _02065970 ; =_020B0B08 + ldr r0, _02065970 ; =SPECIAL_ACTORS ldrsh r0, [r0, #0x10] strh r0, [r5] cmp r0, #0 @@ -8319,7 +8319,7 @@ _02065860: mvn r0, #0 b _0206595C _02065880: - ldr r0, _02065970 ; =_020B0B08 + ldr r0, _02065970 ; =SPECIAL_ACTORS ldrsh r0, [r0, #0xe] strh r0, [r5] cmp r0, #0 @@ -8328,7 +8328,7 @@ _02065880: mvn r0, #0 b _0206595C _020658A0: - ldr r0, _02065970 ; =_020B0B08 + ldr r0, _02065970 ; =SPECIAL_ACTORS ldrsh r0, [r0, #2] strh r0, [r5] cmp r0, #0 @@ -8337,7 +8337,7 @@ _020658A0: mvn r0, #0 b _0206595C _020658C0: - ldr r0, _02065970 ; =_020B0B08 + ldr r0, _02065970 ; =SPECIAL_ACTORS ldrsh r0, [r0] strh r0, [r5] cmp r0, #0 @@ -8346,7 +8346,7 @@ _020658C0: mvn r0, #0 b _0206595C _020658E0: - ldr r0, _02065970 ; =_020B0B08 + ldr r0, _02065970 ; =SPECIAL_ACTORS ldrsh r0, [r0, #8] strh r0, [r5] cmp r0, #0 @@ -8355,7 +8355,7 @@ _020658E0: mvn r0, #0 b _0206595C _02065900: - ldr r0, _02065970 ; =_020B0B08 + ldr r0, _02065970 ; =SPECIAL_ACTORS ldrsh r0, [r0, #6] strh r0, [r5] cmp r0, #0 @@ -8388,7 +8388,7 @@ _0206595C: _02065964: .word ENTITIES _02065968: .word ARM9_UNKNOWN_TABLE__NA_20A68BC _0206596C: .word TEAM_MEMBER_TABLE_PTR -_02065970: .word _020B0B08 +_02065970: .word SPECIAL_ACTORS arm_func_end sub_0206549C arm_func_start GetScriptEntityMonsterId @@ -8530,5791 +8530,3 @@ sub_02065B14: ; 0x02065B14 .align 2, 0 _02065B38: .word ENTITIES arm_func_end sub_02065B14 - - arm_func_start SetActorTalkMainAndActorTalkSub -SetActorTalkMainAndActorTalkSub: ; 0x02065B3C - ldr r2, _02065B4C ; =_020B0B08 - strh r0, [r2, #0x18] - strh r1, [r2, #0x16] - bx lr - .align 2, 0 -_02065B4C: .word _020B0B08 - arm_func_end SetActorTalkMainAndActorTalkSub - - arm_func_start SetActorTalkMain -SetActorTalkMain: ; 0x02065B50 - ldr r1, _02065B5C ; =_020B0B08 - strh r0, [r1, #0x18] - bx lr - .align 2, 0 -_02065B5C: .word _020B0B08 - arm_func_end SetActorTalkMain - - arm_func_start SetActorTalkSub -SetActorTalkSub: ; 0x02065B60 - ldr r1, _02065B6C ; =_020B0B08 - strh r0, [r1, #0x16] - bx lr - .align 2, 0 -_02065B6C: .word _020B0B08 - arm_func_end SetActorTalkSub - - arm_func_start SetActorEventMain -SetActorEventMain: ; 0x02065B70 - ldr r1, _02065B7C ; =_020B0B08 - strh r0, [r1, #0x14] - bx lr - .align 2, 0 -_02065B7C: .word _020B0B08 - arm_func_end SetActorEventMain - - arm_func_start SetRandomRequestNpcs1And2 -SetRandomRequestNpcs1And2: ; 0x02065B80 - ldr r2, _02065B90 ; =_020B0B08 - strh r0, [r2, #0x10] - strh r1, [r2, #0xe] - bx lr - .align 2, 0 -_02065B90: .word _020B0B08 - arm_func_end SetRandomRequestNpcs1And2 - - arm_func_start SetRandomRequestNpc03KindVar -SetRandomRequestNpc03KindVar: ; 0x02065B94 - ldr ip, _02065BA8 ; =SaveScriptVariableValue - mov r2, r0 - mov r0, #0 - mov r1, #0x44 - bx ip - .align 2, 0 -_02065BA8: .word SaveScriptVariableValue - arm_func_end SetRandomRequestNpc03KindVar - - arm_func_start SetAllEventNpcs -SetAllEventNpcs: ; 0x02065BAC - ldr ip, _02065BC4 ; =_020B0B08 - strh r0, [ip, #2] - strh r1, [ip] - strh r2, [ip, #8] - strh r3, [ip, #6] - bx lr - .align 2, 0 -_02065BC4: .word _020B0B08 - arm_func_end SetAllEventNpcs - - arm_func_start SetNewFriendActor -SetNewFriendActor: ; 0x02065BC8 - ldr r1, _02065BD4 ; =_020B0B08 - strh r0, [r1, #0xc] - bx lr - .align 2, 0 -_02065BD4: .word _020B0B08 - arm_func_end SetNewFriendActor - - arm_func_start sub_02065BD8 -sub_02065BD8: ; 0x02065BD8 - ldr ip, _02065BE8 ; =StrncpySimple - mov r2, r1 - ldr r1, _02065BEC ; =_022B7310 - bx ip - .align 2, 0 -_02065BE8: .word StrncpySimple -_02065BEC: .word _022B7310 - arm_func_end sub_02065BD8 - - arm_func_start sub_02065BF0 -sub_02065BF0: ; 0x02065BF0 - ldr ip, _02065C00 ; =StrncpySimpleNoPadSafe - ldr r1, _02065C04 ; =_022B7310 - mov r2, #0xa - bx ip - .align 2, 0 -_02065C00: .word StrncpySimpleNoPadSafe -_02065C04: .word _022B7310 - arm_func_end sub_02065BF0 - - arm_func_start sub_02065C08 -sub_02065C08: ; 0x02065C08 - ldr ip, _02065C44 ; =_022B7310 - mov r3, #0 - b _02065C20 -_02065C14: - ldrb r2, [r0], #1 - add r3, r3, #1 - strb r2, [ip], #1 -_02065C20: - cmp r3, r1 - blt _02065C14 - mov r0, #0 - b _02065C38 -_02065C30: - strb r0, [ip], #1 - add r3, r3, #1 -_02065C38: - cmp r3, #0x10 - blt _02065C30 - bx lr - .align 2, 0 -_02065C44: .word _022B7310 - arm_func_end sub_02065C08 - - arm_func_start RandomizeDemoActors -RandomizeDemoActors: ; 0x02065C48 - stmdb sp!, {r3, lr} - mov r0, #0x12 - bl RandInt - ldr r2, _02065C78 ; =DEMO_TEAMS - mov r3, r0, lsl #2 - ldr r1, _02065C7C ; =_020A68CA - ldrsh r2, [r2, r3] - ldr r0, _02065C80 ; =_020B0B08 - ldrsh r1, [r1, r3] - strh r2, [r0, #0xa] - strh r1, [r0, #4] - ldmia sp!, {r3, pc} - .align 2, 0 -_02065C78: .word DEMO_TEAMS -_02065C7C: .word _020A68CA -_02065C80: .word _020B0B08 - arm_func_end RandomizeDemoActors - - arm_func_start sub_02065C84 -sub_02065C84: ; 0x02065C84 - mov r2, #0 - ldr r1, _02065CAC ; =_022B7320 - mov r0, r2 -_02065C90: - strh r0, [r1] - add r2, r2, #1 - strh r0, [r1, #2] - cmp r2, #4 - add r1, r1, #4 - blt _02065C90 - bx lr - .align 2, 0 -_02065CAC: .word _022B7320 - arm_func_end sub_02065C84 - - arm_func_start sub_02065CB0 -sub_02065CB0: ; 0x02065CB0 - bx lr - arm_func_end sub_02065CB0 - - arm_func_start sub_02065CB4 -sub_02065CB4: ; 0x02065CB4 - ldrh r2, [r1] - ldr r3, _02065CD4 ; =_022B7320 - mov ip, r0, lsl #2 - strh r2, [r3, ip] - ldrh r1, [r1, #2] - add r0, r3, r0, lsl #2 - strh r1, [r0, #2] - bx lr - .align 2, 0 -_02065CD4: .word _022B7320 - arm_func_end sub_02065CB4 - - arm_func_start sub_02065CD8 -sub_02065CD8: ; 0x02065CD8 - ldr r2, _02065CF0 ; =_022B7320 - mov r3, r0 - mov r0, r1 - ldr ip, _02065CF4 ; =BulkItemToItem - add r1, r2, r3, lsl #2 - bx ip - .align 2, 0 -_02065CF0: .word _022B7320 -_02065CF4: .word BulkItemToItem - arm_func_end sub_02065CD8 - - arm_func_start ItemAtTableIdx -ItemAtTableIdx: ; 0x02065CF8 - ldr r3, _02065D18 ; =_022B7320 - mov r2, r0, lsl #2 - ldrh r2, [r3, r2] - add r0, r3, r0, lsl #2 - strh r2, [r1] - ldrh r0, [r0, #2] - strh r0, [r1, #2] - bx lr - .align 2, 0 -_02065D18: .word _022B7320 - arm_func_end ItemAtTableIdx - - arm_func_start MainLoop -MainLoop: ; 0x02065D1C - stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - sub sp, sp, #8 - bl sub_020024A0 - mov r7, r0 - mov r8, #1 - bl sub_02065C84 - bl sub_020205E4 - bl LoadTblTalk - bl sub_0201DD90 - bl InitObjGraphicsControls - bl sub_0201D7A8 - ldr r0, _02066374 ; =WAN_TABLE - mov r1, #0x80 - ldr r0, [r0] - bl InitWanTable - bl sub_0201F208 - bl DirectoryFileMngr_ExtractAllDirectoryFiles - bl InitOptionsVeneer - bl InitKaomadoStream - bl sub_02025AD8 - bl sub_02026E78 - bl sub_020346C0 - mov r0, #0 - bl SetGameMode - mov r0, #2 - bl SetBothScreensWindowsColor - bl sub_0204A1A4 - bl sub_02048420 - bl KeyWaitInit - add r0, sp, #4 - bl ReadSaveHeader -#ifdef EUROPE - mov r4, r0 - bl sub_020205F8 - cmp r4, #1 -#else - cmp r0, #1 -#endif - bne _02065DF0 - mov r0, #2 - bl LoadOverlay - mov r0, #0xf - bl LoadOverlay - mov r0, r8 - bl ExplorersOfSkyMain - mov r0, #0xf - bl UnloadOverlay - mov r0, #2 - bl UnloadOverlay - mov r0, #2 - bl LoadOverlay - mov r0, #0xf - bl LoadOverlay - mov r0, #4 - bl ExplorersOfSkyMain - mov r0, #0xf - bl UnloadOverlay - mov r0, #2 - bl UnloadOverlay -_02065DF0: - cmp r7, #0 - cmpne r7, #5 - mov r0, #2 - bne _02065E2C - mov r4, #1 - bl LoadOverlay - mov r0, #0xf - bl LoadOverlay - mov r0, #2 - bl ExplorersOfSkyMain - mov r0, #0xf - bl UnloadOverlay - mov r0, #2 - bl UnloadOverlay - b _02065E54 -_02065E2C: - mov r4, #0 - bl LoadOverlay - mov r0, #0xf - bl LoadOverlay - mov r0, #1 - bl ExplorersOfSkyMain - mov r0, #0xf - bl UnloadOverlay - mov r0, #2 - bl UnloadOverlay -_02065E54: - bl SetAdventureLogStructLocation - bl sub_0204F9B8 - bl GlobalProgressAlloc - bl sub_02052C3C - bl LoadWazaP - bl sub_0200CA8C - bl sub_0205C73C - bl sub_0205B44C - bl KeyWaitInit - bl InitScriptVariableValues - cmp r4, #0 - beq _02065EE0 - mov r0, #2 - bl LoadOverlay - mov r0, #0xf - bl LoadOverlay - mov r0, #3 - bl ExplorersOfSkyMain - mov r0, #0xf - bl UnloadOverlay - mov r0, #2 - bl UnloadOverlay - mov r0, #0 - mov r1, #0x5c - bl ZeroInitScriptVariable - mov r0, #2 - bl LoadOverlay - mov r0, #0xd - bl LoadOverlay - mov r0, #0 - bl ov11_022E82CC - mov r0, #0xd - bl UnloadOverlay - mov r0, #2 - bl UnloadOverlay -_02065EE0: - mov r0, #1 - bl LoadOverlay - mov r0, #4 - bl LoadOverlay - mov r0, #4 - bl ov00_022BE0C8 - mov r0, #4 - bl UnloadOverlay - mov r0, #1 - bl UnloadOverlay - bl sub_02048430 - mov r4, #0xf - mov r5, #2 - mov sl, #4 - mov fp, r4 - mov r6, #0 -_02065F20: - mov r0, r6 - bl SetGameMode - bl sub_02048624 - cmp r8, #0 - beq _02065FE0 - bl NoteLoadBase - movs sb, r0 - beq _02065FCC - cmp sb, #1 - bne _02065F70 - mov r0, r5 - bl LoadOverlay - mov r0, r4 - bl LoadOverlay - mov r0, sl - bl ExplorersOfSkyMain - mov r0, fp - bl UnloadOverlay - mov r0, #2 - bl UnloadOverlay -_02065F70: - mov r0, #1 - bl LoadOverlay - mov r0, #4 - bl LoadOverlay - mov r0, #3 - bl ov00_022BE0C8 - mov r0, #4 - bl UnloadOverlay - mov r0, #1 - bl UnloadOverlay - bl sub_02048454 - cmp sb, #5 - beq _02065FCC - mov r0, #2 - bl LoadOverlay - mov r0, #0xf - bl LoadOverlay - mov r0, #6 - bl ExplorersOfSkyMain - mov r0, #0xf - bl UnloadOverlay - mov r0, #2 - bl UnloadOverlay -_02065FCC: - add r0, sp, #0 - bl CopyFrameTypeOption - ldrb r0, [sp] - bl sub_02027180 - bl sub_020205F8 -_02065FE0: - sub r0, r7, #6 - cmp r0, #0xf - addls pc, pc, r0, lsl #2 - b _020660B0 -_02065FF0: ; jump table - b _02066030 ; case 0 - b _02066040 ; case 1 - b _02066038 ; case 2 - b _02066048 ; case 3 - b _02066050 ; case 4 - b _02066058 ; case 5 - b _02066060 ; case 6 - b _02066068 ; case 7 - b _02066070 ; case 8 - b _02066078 ; case 9 - b _02066080 ; case 10 - b _02066088 ; case 11 - b _02066090 ; case 12 - b _02066098 ; case 13 - b _020660A0 ; case 14 - b _020660A8 ; case 15 -_02066030: - mov sb, #4 - b _020660FC -_02066038: - mov sb, #6 - b _020660FC -_02066040: - mov sb, #5 - b _020660FC -_02066048: - mov sb, #7 - b _020660FC -_02066050: - mov sb, #9 - b _020660FC -_02066058: - mov sb, #0xa - b _020660FC -_02066060: - mov sb, #0xb - b _020660FC -_02066068: - mov sb, #0xc - b _020660FC -_02066070: - mov sb, #0xd - b _020660FC -_02066078: - mov sb, #0xe - b _020660FC -_02066080: - mov sb, #0xf - b _020660FC -_02066088: - mov sb, #0x10 - b _020660FC -_02066090: - mov sb, #0x10 - b _020660FC -_02066098: - mov sb, #0x12 - b _020660FC -_020660A0: - mov sb, #0x13 - b _020660FC -_020660A8: - mov sb, #0x14 - b _020660FC -_020660B0: - cmp r7, #2 - moveq r7, #1 - beq _020660C8 - cmp r7, #3 - moveq r7, #2 - movne r7, #0 -_020660C8: - mov r0, #0 - bl SetGameMode - mov r0, #1 - bl LoadOverlay - mov r0, #4 - bl LoadOverlay - mov r0, r7 - bl ov00_022BE0C8 - mov sb, r0 - mov r0, #4 - bl UnloadOverlay - mov r0, #1 - bl UnloadOverlay -_020660FC: - cmp sb, #6 - mov r7, #1 - bne _02066134 - mov r0, r7 - mov r1, #0 - bl GetSosMailCount - cmp r0, #0 - movne sb, #0xa - bne _02066134 - mov r0, #7 - mov r1, #0 - bl GetSosMailCount - cmp r0, #0 - movne sb, #9 -_02066134: - bl GetSpecialEpisodeType - mov r1, r0 - ldr r0, _02066378 ; =_020A9208 - bl Debug_Print0 - sub r0, sb, #4 - cmp r0, #9 - addls pc, pc, r0, lsl #2 - b _02065F20 -_02066154: ; jump table - b _0206617C ; case 0 - b _020661B0 ; case 1 - b _020661FC ; case 2 - b _0206622C ; case 3 - b _02065F20 ; case 4 - b _0206625C ; case 5 - b _0206628C ; case 6 - b _020662BC ; case 7 - b _02066300 ; case 8 - b _02066330 ; case 9 -_0206617C: - mov r0, #2 - bl SetGameMode - bl sub_020484C0 - bl sub_02048644 - mov r0, #2 - bl LoadOverlay - mov r0, #0 - bl MainGame - mov r8, r0 - mov r0, #2 - bl UnloadOverlay - bl sub_0204872C - b _02065F20 -_020661B0: - bl GetDebugSpecialEpisodeNumber - bl SetSpecialEpisodeType - mov r0, #3 - bl SetGameMode - bl sub_02048644 - bl InitSpecialEpisodeHero - mov r0, #2 - mov r1, #0x36 - mov r2, #0 - bl SetScenarioProgressScriptVar - mov r0, #2 - bl LoadOverlay - mov r0, #0 - bl MainGame - mov r8, r0 - mov r0, #2 - bl UnloadOverlay - bl sub_0204872C - b _02065F20 -_020661FC: - mov r0, #2 - bl SetGameMode - bl sub_02048644 - mov r0, #2 - bl LoadOverlay - mov r0, #1 - bl MainGame - mov r8, r0 - mov r0, #2 - bl UnloadOverlay - bl sub_0204872C - b _02065F20 -_0206622C: - mov r0, #3 - bl SetGameMode - bl sub_02048644 - mov r0, #2 - bl LoadOverlay - mov r0, #1 - bl MainGame - mov r8, r0 - mov r0, #2 - bl UnloadOverlay - bl sub_0204872C - b _02065F20 -_0206625C: - mov r0, #2 - bl SetGameMode - bl sub_02048644 - mov r0, #2 - bl LoadOverlay - mov r0, #2 - bl MainGame - mov r8, r0 - mov r0, #2 - bl UnloadOverlay - bl sub_0204872C - b _02065F20 -_0206628C: - mov r0, #2 - bl SetGameMode - bl sub_02048644 - mov r0, #2 - bl LoadOverlay - mov r0, #3 - bl MainGame - mov r8, r0 - mov r0, #2 - bl UnloadOverlay - bl sub_0204872C - b _02065F20 -_020662BC: - mov r0, #4 - bl SetGameMode - bl sub_02048644 - bl sub_020485C4 - mov r0, #2 - mov r1, #0x33 - mov r2, #0 - bl SetScenarioProgressScriptVar - mov r0, #2 - bl LoadOverlay - mov r0, #1 - bl MainGame - mov r8, r0 - mov r0, #2 - bl UnloadOverlay - bl sub_0204872C - b _02065F20 -_02066300: - mov r0, #4 - bl SetGameMode - bl sub_02048644 - mov r0, #2 - bl LoadOverlay - mov r0, #1 - bl MainGame - mov r8, r0 - mov r0, #2 - bl UnloadOverlay - bl sub_0204872C - b _02065F20 -_02066330: - mov r0, #5 - bl SetGameMode - bl sub_02048644 - bl sub_020485D8 - mov r0, #2 - mov r1, #0x34 - mov r2, #0 - bl SetScenarioProgressScriptVar - mov r0, #2 - bl LoadOverlay - mov r0, #1 - bl MainGame - mov r8, r0 - mov r0, #2 - bl UnloadOverlay - bl sub_0204872C - b _02065F20 - .align 2, 0 -_02066374: .word WAN_TABLE -_02066378: .word _020A9208 - arm_func_end MainLoop - - arm_func_start sub_0206637C -sub_0206637C: ; 0x0206637C - stmdb sp!, {r3, lr} - mov r0, #1 - bl OverlayIsLoaded - cmp r0, #0 - beq _0206639C - mov r0, #3 - bl ov00_022BE0C8 - ldmia sp!, {r3, pc} -_0206639C: - mov r0, #1 - bl LoadOverlay - mov r0, #4 - bl LoadOverlay - mov r0, #3 - bl ov00_022BE0C8 - mov r0, #4 - bl UnloadOverlay - mov r0, #1 - bl UnloadOverlay - ldmia sp!, {r3, pc} - arm_func_end sub_0206637C - - arm_func_start sub_020663C8 -sub_020663C8: ; 0x020663C8 - stmdb sp!, {r3, lr} - ldrsb ip, [sp, #8] - str ip, [sp] - bl sub_02046A9C - ldmia sp!, {r3, pc} - arm_func_end sub_020663C8 - - arm_func_start sub_020663DC -sub_020663DC: ; 0x020663DC - stmdb sp!, {lr} - sub sp, sp, #0xc - ldr ip, [sp, #0x10] - ldrh lr, [sp, #0x14] - str ip, [sp] - mov ip, #0 - str lr, [sp, #4] - str ip, [sp, #8] - bl sub_02046A20 - add sp, sp, #0xc - ldmia sp!, {pc} - arm_func_end sub_020663DC - - arm_func_start sub_02066408 -sub_02066408: ; 0x02066408 - stmdb sp!, {lr} - sub sp, sp, #0xc - ldr ip, [sp, #0x10] - ldrh lr, [sp, #0x14] - str ip, [sp] - ldr ip, [sp, #0x18] - str lr, [sp, #4] - str ip, [sp, #8] - bl sub_02046A20 - add sp, sp, #0xc - ldmia sp!, {pc} - arm_func_end sub_02066408 - - arm_func_start sub_02066434 -sub_02066434: ; 0x02066434 - stmdb sp!, {r3, lr} - bl sub_02046B04 - mvn r1, #1 - cmp r0, r1 - moveq r0, #0x1f - ldmeqia sp!, {r3, pc} - add r1, r1, #1 - cmp r0, r1 - moveq r0, #0 - ldmia sp!, {r3, pc} - arm_func_end sub_02066434 - - arm_func_start sub_0206645C -sub_0206645C: ; 0x0206645C - ldr ip, _02066464 ; =sub_02046BA0 - bx ip - .align 2, 0 -_02066464: .word sub_02046BA0 - arm_func_end sub_0206645C - - arm_func_start sub_02066468 -sub_02066468: ; 0x02066468 - ldr ip, _02066474 ; =sub_02046BE8 - mov r2, #0 - bx ip - .align 2, 0 -_02066474: .word sub_02046BE8 - arm_func_end sub_02066468 - - arm_func_start sub_02066478 -sub_02066478: ; 0x02066478 - ldr ip, _02066484 ; =sub_02046C30 - mov r2, #0 - bx ip - .align 2, 0 -_02066484: .word sub_02046C30 - arm_func_end sub_02066478 - - arm_func_start sub_02066488 -sub_02066488: ; 0x02066488 - ldr ip, _02066490 ; =sub_02046BE8 - bx ip - .align 2, 0 -_02066490: .word sub_02046BE8 - arm_func_end sub_02066488 - - arm_func_start sub_02066494 -sub_02066494: ; 0x02066494 - stmdb sp!, {r3, lr} - bl sub_02046C78 - cmp r0, #0 - movne r0, #0x1f - moveq r0, #0 - ldmia sp!, {r3, pc} - arm_func_end sub_02066494 - - arm_func_start sub_020664AC -sub_020664AC: ; 0x020664AC - ldr ip, _020664B4 ; =sub_02046D20 - bx ip - .align 2, 0 -_020664B4: .word sub_02046D20 - arm_func_end sub_020664AC - - arm_func_start sub_020664B8 -sub_020664B8: ; 0x020664B8 - stmdb sp!, {r4, lr} - mov r4, r0 - bl sub_020676AC - ldr r2, _0206650C ; =_020B0B24 - mov r3, #0 - mov r0, #0xa8 - mov r1, #8 - strb r3, [r2] - bl MemAlloc - ldr r2, _0206650C ; =_020B0B24 - mov r1, #0xa8 - str r0, [r2, #4] - bl MemZero - ldr r1, _0206650C ; =_020B0B24 - mov r2, #0 - ldr r3, [r1, #4] - mov r0, #1 - str r4, [r3, #8] - ldr r1, [r1, #4] - str r2, [r1] - ldmia sp!, {r4, pc} - .align 2, 0 -_0206650C: .word _020B0B24 - arm_func_end sub_020664B8 - - arm_func_start sub_02066510 -sub_02066510: ; 0x02066510 - stmdb sp!, {r3, r4, lr} - sub sp, sp, #0xc - ldr r0, _02066874 ; =_020B0B24 - ldr r1, [r0, #4] - ldr r0, [r1] - cmp r0, #4 - addls pc, pc, r0, lsl #2 - b _02066868 -_02066530: ; jump table - b _02066544 ; case 0 - b _02066640 ; case 1 - b _02066700 ; case 2 - b _02066708 ; case 3 - b _02066724 ; case 4 -_02066544: - mov r2, #0 - add r1, r1, #0xa4 - mov r0, r2 -_02066550: - strb r0, [r1, r2] - add r2, r2, #1 - cmp r2, #4 - blt _02066550 - ldr r0, _02066874 ; =_020B0B24 - mov r1, #0x98 - ldr r0, [r0, #4] - add r0, r0, #0xc - bl MemZero - ldr r0, _02066874 ; =_020B0B24 - ldr r2, [r0, #4] - add r1, r2, #0xa4 - str r1, [r2, #0x6c] - ldr r0, [r0, #4] - ldr r0, [r0, #8] - cmp r0, #0 - bne _020665B4 - ldr r4, _02066878 ; =JOB_MENU_ITEMS_1 - bl sub_0205E954 - cmp r0, #0 - ldreq r0, _02066874 ; =_020B0B24 - moveq r1, #3 - ldreq r0, [r0, #4] - streqb r1, [r0, #0xa4] - b _020665D8 -_020665B4: - cmp r0, #1 - bne _020665D8 - ldr r4, _0206687C ; =JOB_MENU_ITEMS_2 - bl sub_0205EAC8 - cmp r0, #0 - ldreq r0, _02066874 ; =_020B0B24 - moveq r1, #3 - ldreq r0, [r0, #4] - streqb r1, [r0, #0xa4] -_020665D8: - bl CountJobListMissions - cmp r0, #0 - ldreq r0, _02066874 ; =_020B0B24 - moveq r1, #3 - ldreq r0, [r0, #4] - ldr r3, _02066874 ; =_020B0B24 - streqb r1, [r0, #0xa5] - ldrsb r2, [r3] - ldr ip, [r3, #4] - mov r1, #0 - add r2, r4, r2, lsl #3 - ldr lr, [r2, #4] - ldr r0, _02066880 ; =JOB_WINDOW_PARAMS_1 - str lr, [ip, #0xc] - str r4, [sp] - str r1, [sp, #4] - str r1, [sp, #8] - ldr r3, [r3, #4] - ldr r2, _02066884 ; =0x00000233 - add r3, r3, #0xc - bl sub_02046A20 - ldr r0, _02066874 ; =_020B0B24 - mov r1, #1 - ldr r0, [r0, #4] - str r1, [r0] - b _02066868 -_02066640: - bl sub_02046B04 - mov r4, r0 - mvn r1, #1 - cmp r4, r1 - moveq r4, #4 - beq _02066674 - sub r0, r1, #1 - cmp r4, r0 - moveq r4, #4 - beq _02066674 - add r0, r1, #1 - cmp r4, r0 - moveq r4, #0 -_02066674: - bl sub_02046BA0 - ldr r1, _02066874 ; =_020B0B24 - cmp r4, #1 - strb r0, [r1] - bne _020666A4 - ldr r0, [r1, #4] - mov r2, #0xa - str r2, [r0, #4] - ldr r0, [r1, #4] - mov r1, #3 - str r1, [r0] - b _02066868 -_020666A4: - cmp r4, #2 - bne _020666C8 - ldr r0, [r1, #4] - mov r2, #0xb - str r2, [r0, #4] - ldr r0, [r1, #4] - mov r1, #3 - str r1, [r0] - b _02066868 -_020666C8: - cmp r4, #3 - bne _020666EC - ldr r0, [r1, #4] - mov r2, #0xe - str r2, [r0, #4] - ldr r0, [r1, #4] - mov r1, #3 - str r1, [r0] - b _02066868 -_020666EC: - cmp r4, #4 - ldreq r0, [r1, #4] - moveq r1, #2 - streq r1, [r0] - b _02066868 -_02066700: - mov r0, #1 - b _0206686C -_02066708: - ldr r0, [r1, #4] - bl sub_020668B4 - ldr r0, _02066874 ; =_020B0B24 - mov r1, #4 - ldr r0, [r0, #4] - str r1, [r0] - b _02066868 -_02066724: - bl sub_02066A44 - movs r4, r0 - beq _02066868 - bl sub_02067664 - add r0, r4, #1 - cmp r0, #0x17 - addls pc, pc, r0, lsl #2 - b _02066868 -_02066744: ; jump table - b _02066858 ; case 0 - b _02066868 ; case 1 - b _020667A4 ; case 2 - b _02066868 ; case 3 - b _020667B8 ; case 4 - b _020667C0 ; case 5 - b _020667C8 ; case 6 - b _020667D0 ; case 7 - b _020667D8 ; case 8 - b _020667E0 ; case 9 - b _020667E8 ; case 10 - b _020667F0 ; case 11 - b _020667F8 ; case 12 - b _02066800 ; case 13 - b _02066808 ; case 14 - b _02066810 ; case 15 - b _02066818 ; case 16 - b _02066820 ; case 17 - b _02066828 ; case 18 - b _02066830 ; case 19 - b _02066838 ; case 20 - b _02066840 ; case 21 - b _02066848 ; case 22 - b _02066850 ; case 23 -_020667A4: - ldr r0, _02066874 ; =_020B0B24 - mov r1, #0 - ldr r0, [r0, #4] - str r1, [r0] - b _02066868 -_020667B8: - mov r0, #2 - b _0206686C -_020667C0: - mov r0, #3 - b _0206686C -_020667C8: - mov r0, #4 - b _0206686C -_020667D0: - mov r0, #5 - b _0206686C -_020667D8: - mov r0, #6 - b _0206686C -_020667E0: - mov r0, #7 - b _0206686C -_020667E8: - mov r0, #8 - b _0206686C -_020667F0: - mov r0, #9 - b _0206686C -_020667F8: - mov r0, #0xa - b _0206686C -_02066800: - mov r0, #0xb - b _0206686C -_02066808: - mov r0, #0xc - b _0206686C -_02066810: - mov r0, #0xd - b _0206686C -_02066818: - mov r0, #0xe - b _0206686C -_02066820: - mov r0, #0xf - b _0206686C -_02066828: - mov r0, #0x10 - b _0206686C -_02066830: - mov r0, #0x11 - b _0206686C -_02066838: - mov r0, #0x12 - b _0206686C -_02066840: - mov r0, #0x13 - b _0206686C -_02066848: - mov r0, #0x14 - b _0206686C -_02066850: - mov r0, #0x15 - b _0206686C -_02066858: - ldr r0, _02066874 ; =_020B0B24 - mov r1, #0 - ldr r0, [r0, #4] - str r1, [r0] -_02066868: - mov r0, #0 -_0206686C: - add sp, sp, #0xc - ldmia sp!, {r3, r4, pc} - .align 2, 0 -_02066874: .word _020B0B24 -_02066878: .word JOB_MENU_ITEMS_1 -_0206687C: .word JOB_MENU_ITEMS_2 -_02066880: .word JOB_WINDOW_PARAMS_1 -_02066884: .word 0x00000233 - arm_func_end sub_02066510 - - arm_func_start sub_02066888 -sub_02066888: ; 0x02066888 - stmdb sp!, {r3, lr} - ldr r0, _020668B0 ; =_020B0B24 - ldr r0, [r0, #4] - cmp r0, #0 - ldmeqia sp!, {r3, pc} - bl MemFree - ldr r0, _020668B0 ; =_020B0B24 - mov r1, #0 - str r1, [r0, #4] - ldmia sp!, {r3, pc} - .align 2, 0 -_020668B0: .word _020B0B24 - arm_func_end sub_02066888 - - arm_func_start sub_020668B4 -sub_020668B4: ; 0x020668B4 - stmdb sp!, {r3, r4, r5, lr} - mov r5, r0 - sub r0, r5, #0x13 - cmp r0, #2 - movls r0, #0 - ldmlsia sp!, {r3, r4, r5, pc} - ldr r0, _02066988 ; =0x00000EF8 - mov r1, #8 - bl MemAlloc - ldr r2, _0206698C ; =_020B0B2C - ldr r1, _02066988 ; =0x00000EF8 - str r0, [r2, #0x14] - bl MemZero - ldr r0, _0206698C ; =_020B0B2C - mov r2, #0 - ldr r4, [r0, #0x14] - mov r1, r2 -_020668F8: - add r0, r4, r2 - add r2, r2, #1 - strb r1, [r0, #0x4c] - cmp r2, #0x20 - blt _020668F8 - ldr r0, _0206698C ; =_020B0B2C - ldr r0, [r0, #0x14] - str r5, [r0, #4] - str r1, [r4, #8] - str r1, [r4, #0xef0] - bl sub_020686F4 - mov r2, #0 - str r2, [r4, #0x74] - sub r1, r2, #1 - str r1, [r4, #0x78] - cmp r0, #0 - bne _0206695C - bl sub_020692B4 - ldr r0, _0206698C ; =_020B0B2C - ldr r0, [r0, #0x14] - bl MemFree - ldr r1, _0206698C ; =_020B0B2C - mov r0, #0 - str r0, [r1, #0x14] - ldmia sp!, {r3, r4, r5, pc} -_0206695C: - sub r0, r2, #2 - strb r0, [r4, #0x7d] - bl sub_020692FC - mvn r1, #1 - ldr r0, _0206698C ; =_020B0B2C - strb r1, [r4, #0xd85] - ldr r0, [r0, #0x14] - mov r1, #0 - str r1, [r0] - mov r0, #1 - ldmia sp!, {r3, r4, r5, pc} - .align 2, 0 -_02066988: .word 0x00000EF8 -_0206698C: .word _020B0B2C - arm_func_end sub_020668B4 - - arm_func_start sub_02066990 -sub_02066990: ; 0x02066990 - stmdb sp!, {r4, r5, r6, r7, r8, lr} - mov r8, r0 - mov r7, r1 - ldr r0, _02066A3C ; =0x00000EF8 - mov r1, #8 - mov r6, r2 - mov r5, r3 - bl MemAlloc - ldr r2, _02066A40 ; =_020B0B2C - ldr r1, _02066A3C ; =0x00000EF8 - str r0, [r2, #0x14] - bl MemZero - ldr r0, _02066A40 ; =_020B0B2C - mov r1, #0 - ldr r4, [r0, #0x14] - str r8, [r4, #4] - str r7, [r4, #0x74] - str r6, [r4, #0x6c] - str r5, [r4, #0x78] - str r1, [r4, #8] - str r1, [r4, #0xef0] - bl sub_020686F4 - cmp r0, #0 - bne _02066A10 - bl sub_020692B4 - ldr r0, _02066A40 ; =_020B0B2C - ldr r0, [r0, #0x14] - bl MemFree - ldr r1, _02066A40 ; =_020B0B2C - mov r0, #0 - str r0, [r1, #0x14] - ldmia sp!, {r4, r5, r6, r7, r8, pc} -_02066A10: - mvn r0, #1 - strb r0, [r4, #0x7d] - bl sub_020692FC - mvn r1, #1 - ldr r0, _02066A40 ; =_020B0B2C - strb r1, [r4, #0xd85] - ldr r0, [r0, #0x14] - mov r1, #0 - str r1, [r0] - mov r0, #1 - ldmia sp!, {r4, r5, r6, r7, r8, pc} - .align 2, 0 -_02066A3C: .word 0x00000EF8 -_02066A40: .word _020B0B2C - arm_func_end sub_02066990 - - arm_func_start sub_02066A44 -sub_02066A44: ; 0x02066A44 - stmdb sp!, {r3, r4, r5, r6, lr} - sub sp, sp, #0xc - ldr r0, _020674A0 ; =_020B0B2C - ldr r6, [r0, #0x14] - ldr r0, [r6] - cmp r0, #6 - addls pc, pc, r0, lsl #2 - b _02067494 -_02066A64: ; jump table - b _02066A80 ; case 0 - b _02066B08 ; case 1 - b _02066DA4 ; case 2 - b _02066DAC ; case 3 - b _020672F4 ; case 4 - b _02067374 ; case 5 - b _02067474 ; case 6 -_02066A80: - bl sub_020691B8 - ldr r0, _020674A0 ; =_020B0B2C - mov r2, #1 - ldr r1, [r0, #0x14] - str r2, [r1] - ldr r1, [r6, #0xee4] - cmp r1, #0 - bne _02066AF4 - ldr r1, [r0, #0x14] - ldr r0, [r1, #4] - sub r0, r0, #0xa - cmp r0, #3 - bhi _02066AC8 - add r0, r1, #0x2e4 - ldr r1, _020674A4 ; =_020A92A8 - ldr r2, _020674A8 ; =sub_020696E8 - add r0, r0, #0xc00 - bl sub_0204707C -_02066AC8: - ldr r0, _020674A0 ; =_020B0B2C - ldr r1, [r0, #0x14] - ldr r0, [r1, #4] - cmp r0, #0xe - bne _02067494 - add r0, r1, #0x2e4 - ldr r1, _020674A4 ; =_020A92A8 - ldr r2, _020674AC ; =sub_02069750 - add r0, r0, #0xc00 - bl sub_0204707C - b _02067494 -_02066AF4: - ldr r0, [r0, #0x14] - add r0, r0, #0x2e4 - add r0, r0, #0xc00 - bl sub_02047188 - b _02067494 -_02066B08: - ldrsb r0, [r6, #0x7d] - bl GetWindowIdSelectedMenuItemIdx - ldr r1, [r6, #0xef0] - mov r4, r0 - cmp r1, #0 - strneb r4, [r1] - ldrsb r0, [r6, #0x7d] - bl IsCollectionMenuActive - cmp r0, #0 - bne _02066D68 - ldrsb r0, [r6, #0x7d] - bl sub_0202C75C - movs r5, r0 - bpl _02066BAC - mov r2, #0 - mov r1, r2 - b _02066B58 -_02066B4C: - add r0, r6, r2 - strb r1, [r0, #0x4c] - add r2, r2, #1 -_02066B58: - ldr r0, [r6, #0x6c] - cmp r2, r0 - blt _02066B4C - mvn r0, #0 - str r0, [r6, #8] - bl sub_020692B4 - ldr r0, _020674A0 ; =_020B0B2C - ldr r0, [r0, #0x14] - add r0, r0, #0x2e4 - add r0, r0, #0xc00 - bl sub_02047150 - ldr r0, _020674A0 ; =_020B0B2C - ldr r0, [r0, #0x14] - ldr r0, [r0, #4] - sub r0, r0, #0xa - cmp r0, #3 - bhi _02066BA4 - bl sub_0205F5A8 - bl sub_0205F710 -_02066BA4: - mvn r0, #0 - b _02067498 -_02066BAC: - bl sub_020674E8 - cmp r0, #0 - beq _02066BE8 - ldr r0, _020674A0 ; =_020B0B2C - ldr r0, [r0, #0x14] - ldr r0, [r0, #4] - sub r0, r0, #0x12 - cmp r0, #1 - bhi _02066D68 - bl sub_020692B4 - ldr r0, _020674A0 ; =_020B0B2C - mov r1, #2 - ldr r0, [r0, #0x14] - str r1, [r0] - b _02066D68 -_02066BE8: - ldr r3, [r6, #8] - cmp r3, r5 - bne _02066D64 - ldr r0, _020674A0 ; =_020B0B2C - ldr r1, [r0, #0x14] - ldr r2, [r1, #4] - cmp r2, #0xe - cmpne r2, #0xf - cmpne r2, #0x11 - moveq r0, #2 - streq r0, [r1] - beq _02066D68 - sub r1, r2, #0xa - cmp r1, #3 - bhi _02066CF4 - bl CountJobListMissions - cmp r0, #8 - bge _02066CEC - ldr r1, _020674A0 ; =_020B0B2C - mov r0, #0 - ldr r1, [r1, #0x14] - ldr r1, [r1, #4] - sub r1, r1, #0xa - cmp r1, #3 - addls pc, pc, r1, lsl #2 - b _02066CCC -_02066C50: ; jump table - b _02066C60 ; case 0 - b _02066C7C ; case 1 - b _02066C98 ; case 2 - b _02066CB4 ; case 3 -_02066C60: - ldr r0, [r6, #8] - add r0, r6, r0, lsl #1 - ldrsh r0, [r0, #0xc] - mov r0, r0, lsl #0x18 - mov r0, r0, asr #0x18 - bl sub_0205E970 - b _02066CCC -_02066C7C: - ldr r0, [r6, #8] - add r0, r6, r0, lsl #1 - ldrsh r0, [r0, #0xc] - mov r0, r0, lsl #0x18 - mov r0, r0, asr #0x18 - bl sub_0205EAE8 - b _02066CCC -_02066C98: - ldr r0, [r6, #8] - add r0, r6, r0, lsl #1 - ldrsh r0, [r0, #0xc] - mov r0, r0, lsl #0x18 - mov r0, r0, asr #0x18 - bl sub_0205EBD8 - b _02066CCC -_02066CB4: - ldr r0, [r6, #8] - add r0, r6, r0, lsl #1 - ldrsh r0, [r0, #0xc] - mov r0, r0, lsl #0x18 - mov r0, r0, asr #0x18 - bl sub_0205EC38 -_02066CCC: - bl AddMissionToJobList - bl sub_020686F4 - bl sub_0206937C - ldr r0, _020674A0 ; =_020B0B2C - ldr r0, [r0, #0x14] - add r0, r0, #0x2e4 - add r0, r0, #0xc00 - bl sub_02047188 -_02066CEC: - bl sub_020691B8 - b _02066D68 -_02066CF4: - cmp r2, #0x10 - bne _02066D04 - bl sub_020691B8 - b _02066D68 -_02066D04: - sub r1, r2, #0x12 - cmp r1, #1 - bhi _02066D30 - add r1, r6, r3 - mov r2, #1 - strb r2, [r1, #0x4c] - ldr r0, [r0, #0x14] - mov r1, #2 - str r1, [r0] - bl sub_020692B4 - b _02066D68 -_02066D30: - cmp r2, #9 - cmpne r2, #0x14 - cmpne r2, #4 - bne _02066D58 - bl sub_020692B4 - ldr r0, _020674A0 ; =_020B0B2C - mov r1, #2 - ldr r0, [r0, #0x14] - str r1, [r0] - b _02066D68 -_02066D58: - bl sub_020692B4 - mov r0, #1 - b _02067498 -_02066D64: - bl sub_020691B8 -_02066D68: - bl sub_020698B8 - cmp r0, #0 - beq _02066D90 - cmp r4, #0 - blt _02066D90 - ldr r0, [r6, #8] - cmp r0, r4 - beq _02066D90 - str r4, [r6, #8] - bl sub_0206937C -_02066D90: - ldr r0, [r6, #0xee4] - cmp r0, #0 - beq _02067494 - bl sub_020470D0 - b _02067494 -_02066DA4: - bl sub_02067708 - b _02067494 -_02066DAC: - bl sub_02046B04 - bl sub_02068308 - ldr r1, [r6, #0xef4] - mov r4, r0 - cmp r1, #0 - beq _02066DD0 - bl sub_02046BA0 - ldr r1, [r6, #0xef4] - strb r0, [r1] -_02066DD0: - cmp r4, #1 - bne _02066E00 - ldr r0, _020674A0 ; =_020B0B2C - ldr r0, [r0, #0x14] - ldr r0, [r0, #4] - cmp r0, #9 - bne _02066DF4 - bl sub_0206955C - bl sub_02046D20 -_02066DF4: - bl sub_020692B4 - mov r0, #1 - b _02067498 -_02066E00: - cmp r4, #2 - bne _02066EDC - ldr r0, _020674A0 ; =_020B0B2C - ldr r0, [r0, #0x14] - ldr r0, [r0, #4] - cmp r0, #0xa - bne _02066E3C - ldr r0, [r6, #8] - add r0, r6, r0, lsl #1 - ldrsh r0, [r0, #0xc] - mov r0, r0, lsl #0x18 - mov r0, r0, asr #0x18 - bl sub_0205E970 - bl AddMissionToJobList - b _02066EC0 -_02066E3C: - cmp r0, #0xb - bne _02066E64 - ldr r0, [r6, #8] - add r0, r6, r0, lsl #1 - ldrsh r0, [r0, #0xc] - mov r0, r0, lsl #0x18 - mov r0, r0, asr #0x18 - bl sub_0205EAE8 - bl AddMissionToJobList - b _02066EC0 -_02066E64: - cmp r0, #0xc - bne _02066E8C - ldr r0, [r6, #8] - add r0, r6, r0, lsl #1 - ldrsh r0, [r0, #0xc] - mov r0, r0, lsl #0x18 - mov r0, r0, asr #0x18 - bl sub_0205EBD8 - bl AddMissionToJobList - b _02066EC0 -_02066E8C: - cmp r0, #0xd - bne _02066EB4 - ldr r0, [r6, #8] - add r0, r6, r0, lsl #1 - ldrsh r0, [r0, #0xc] - mov r0, r0, lsl #0x18 - mov r0, r0, asr #0x18 - bl sub_0205EC38 - bl AddMissionToJobList - b _02066EC0 -_02066EB4: - cmp r0, #0x14 - moveq r0, #1 - beq _02067498 -_02066EC0: - bl sub_020686F4 - bl sub_0206937C - ldr r0, _020674A0 ; =_020B0B2C - mov r1, #0 - ldr r0, [r0, #0x14] - str r1, [r0] - b _02067494 -_02066EDC: - cmp r4, #3 - bne _02066EF4 - bl sub_02067C8C - cmp r0, #0 - beq _02067494 - b _02067498 -_02066EF4: - cmp r4, #4 - bne _02066F44 - bl sub_02046BB4 - mov r0, #6 - bl PlaySeVolumeWrapper - ldr r0, [r6, #8] - add r0, r6, r0, lsl #1 - ldrsh r0, [r0, #0xc] - mov r0, r0, lsl #0x18 - mov r0, r0, asr #0x18 - bl GetAcceptedMission - mov r1, #4 - strb r1, [r0] - bl sub_020686F4 - bl sub_0206937C - ldr r0, _020674A0 ; =_020B0B2C - mov r1, #0 - ldr r0, [r0, #0x14] - str r1, [r0] - b _02067494 -_02066F44: - cmp r4, #5 - bne _02067020 - ldr r0, _020674A0 ; =_020B0B2C - ldr r0, [r0, #0x14] - ldr r0, [r0, #4] - cmp r0, #0x11 - bne _02066F84 - ldr r0, [r6, #8] - add r0, r6, r0, lsl #1 - ldrsh r0, [r0, #0xc] - mov r0, r0, lsl #0x18 - mov r0, r0, asr #0x18 - bl sub_0205F588 - bl sub_0205F5A8 - mov r0, #1 - b _02067498 -_02066F84: - cmp r0, #0x12 - moveq r0, #1 - beq _02067498 - cmp r0, #0xe - bne _02066FB4 - mov r0, #0 - bl PlaySeVolumeWrapper - ldr r0, _020674A0 ; =_020B0B2C - mov r1, #4 - ldr r0, [r0, #0x14] - str r1, [r0] - b _02067494 -_02066FB4: - ldr r0, [r6, #8] - add r0, r6, r0, lsl #1 - ldrsh r0, [r0, #0xc] - mov r0, r0, lsl #0x18 - mov r0, r0, asr #0x18 - bl sub_0205F588 - bl sub_0205F5A8 - bl CountJobListMissions - cmp r0, #0 - bne _02066FFC - bl sub_020692B4 - ldr r0, _020674A0 ; =_020B0B2C - ldr r0, [r0, #0x14] - add r0, r0, #0x2e4 - add r0, r0, #0xc00 - bl sub_02047150 - mvn r0, #0 - b _02067498 -_02066FFC: - bl sub_020686F4 - bl sub_0206937C - ldr r0, _020674A0 ; =_020B0B2C - mov r2, #0 - ldr r1, [r0, #0x14] - mov r0, #1 - str r2, [r1] - strb r0, [r6, #0xd84] - b _02067494 -_02067020: - cmp r4, #6 - bne _020670F4 - ldr r3, [r6, #0x70] - mov r1, #1 - add r0, r6, r3 - strb r1, [r0, #0x4c] - add r2, r3, #1 - ldr r1, [r6, #0x6c] - b _0206705C -_02067044: - add r0, r6, r2 - ldrb r0, [r0, #0x4c] - cmp r0, #0 - strne r2, [r6, #0x70] - bne _02067064 - add r2, r2, #1 -_0206705C: - cmp r2, r1 - blt _02067044 -_02067064: - ldr r0, [r6, #0x70] - cmp r0, r3 - bne _020670A0 - bl sub_020674E8 - cmp r0, #0 - bne _02067098 - bl sub_02046D20 - mov r1, #0 - ldr r0, _020674A0 ; =_020B0B2C - str r1, [r6, #8] - ldr r0, [r0, #0x14] - str r1, [r0] - b _02067494 -_02067098: - mov r0, #2 - b _02067498 -_020670A0: - str r0, [r6, #8] - bl sub_0206937C - ldr r0, _020674A0 ; =_020B0B2C - ldr r1, _020674B0 ; =_020A937C - ldrsb r3, [r0, #0xd] - ldr r0, _020674B4 ; =_020B0B39 - ldr r2, _020674B8 ; =JOB_MENU_ITEMS_11 - ldr r1, [r1, r3, lsl #3] - add r3, r6, #0x248 - str r1, [r6, #0xe48] - str r0, [r6, #0xef4] - mov r0, #0 - ldr r1, _020674BC ; =0x00003878 - str r2, [sp] - str r1, [sp, #4] - ldr r2, _020674C0 ; =0x00000233 - mov r1, r0 - add r3, r3, #0xc00 - str r0, [sp, #8] - bl sub_02046A20 - b _02067494 -_020670F4: - sub r0, r4, #7 - cmp r0, #1 - bhi _02067494 - ldr r0, _020674A0 ; =_020B0B2C - ldr r1, [r0, #0x14] - ldr r0, [r1, #4] - cmp r0, #0x11 - bne _02067134 - bl sub_02046D20 - ldr r1, [r6, #8] - ldr r0, _020674A0 ; =_020B0B2C - str r1, [r6, #0xd88] - ldr r0, [r0, #0x14] - mov r1, #0 - str r1, [r0] - b _02067494 -_02067134: - cmp r0, #0x13 - bne _02067210 - ldr r3, [r6, #0x70] - mov r1, #0 - add r0, r6, r3 - strb r1, [r0, #0x4c] - mov r2, r3 - ldr r1, [r6, #0x6c] - b _02067170 -_02067158: - add r0, r6, r2 - ldrb r0, [r0, #0x4c] - cmp r0, #0 - strne r2, [r6, #0x70] - bne _02067178 - add r2, r2, #1 -_02067170: - cmp r2, r1 - blt _02067158 -_02067178: - ldr r0, [r6, #0x70] - cmp r0, r3 - bne _020671BC - bl sub_020674E8 - cmp r0, #0 - bne _020671B4 - bl sub_02046D20 - mov r0, #0 - str r0, [r6, #8] - bl sub_0206937C - ldr r0, _020674A0 ; =_020B0B2C - mov r1, #0 - ldr r0, [r0, #0x14] - str r1, [r0] - b _02067494 -_020671B4: - mov r0, #2 - b _02067498 -_020671BC: - str r0, [r6, #8] - bl sub_0206937C - ldr r0, _020674A0 ; =_020B0B2C - ldr r1, _020674B0 ; =_020A937C - ldrsb r3, [r0, #0xd] - ldr r0, _020674B4 ; =_020B0B39 - ldr r2, _020674B8 ; =JOB_MENU_ITEMS_11 - ldr r1, [r1, r3, lsl #3] - add r3, r6, #0x248 - str r1, [r6, #0xe48] - str r0, [r6, #0xef4] - mov r0, #0 - ldr r1, _020674BC ; =0x00003878 - str r2, [sp] - str r1, [sp, #4] - ldr r2, _020674C0 ; =0x00000233 - mov r1, r0 - add r3, r3, #0xc00 - str r0, [sp, #8] - bl sub_02046A20 - b _02067494 -_02067210: - cmp r0, #9 - bne _02067234 - bl sub_0206955C - bl sub_02046D20 - ldr r0, _020674A0 ; =_020B0B2C - mov r1, #0 - ldr r0, [r0, #0x14] - str r1, [r0] - b _02067494 -_02067234: - cmp r0, #4 - bne _02067254 - bl sub_02046D20 - ldr r0, _020674A0 ; =_020B0B2C - mov r1, #0 - ldr r0, [r0, #0x14] - str r1, [r0] - b _02067494 -_02067254: - cmp r0, #0x12 - bne _02067298 - mov r2, #0 - mov r1, r2 - b _02067274 -_02067268: - add r0, r6, r2 - strb r1, [r0, #0x4c] - add r2, r2, #1 -_02067274: - ldr r0, [r6, #0x6c] - cmp r2, r0 - blt _02067268 - bl sub_02046D20 - ldr r0, _020674A0 ; =_020B0B2C - mov r1, #0 - ldr r0, [r0, #0x14] - str r1, [r0] - b _02067494 -_02067298: - cmp r0, #0x14 - bne _020672B8 - bl sub_02046D20 - ldr r0, _020674A0 ; =_020B0B2C - mov r1, #0 - ldr r0, [r0, #0x14] - str r1, [r0] - b _02067494 -_020672B8: - cmp r0, #0xe - bne _020672E8 - bl sub_02046BB4 - cmp r4, #7 - bne _020672D4 - mov r0, #0 - bl PlaySeVolumeWrapper -_020672D4: - ldr r0, _020674A0 ; =_020B0B2C - mov r1, #0 - ldr r0, [r0, #0x14] - str r1, [r0] - b _02067494 -_020672E8: - mov r0, #0 - str r0, [r1] - b _02067494 -_020672F4: - mov r0, #0 - ldr r5, _020674C4 ; =_020A9268 - bl sub_02046D2C - str r0, [r6, #0xee8] - mov r0, #0 - bl sub_020474A0 - str r0, [r6, #0xeec] - bl sub_020469BC - bl sub_02068338 - ldr r0, _020674A0 ; =_020B0B2C - add r3, r6, #0x248 - ldr r0, [r0, #0x14] - mov r1, #0 - ldr r0, [r0, #4] - ldr r2, _020674C0 ; =0x00000233 - cmp r0, #0xe - moveq r0, #7 - streq r0, [r6, #0xe48] - moveq r0, #0 - streq r0, [r6, #0xef4] - ldreq r4, _020674C8 ; =JOB_MENU_ITEMS_4 - mov r0, r5 - str r4, [sp] - str r1, [sp, #4] - add r3, r3, #0xc00 - str r1, [sp, #8] - bl sub_02046A20 - ldr r0, _020674A0 ; =_020B0B2C - mov r1, #5 - ldr r0, [r0, #0x14] - str r1, [r0] - b _02067494 -_02067374: - bl sub_02046B04 - bl sub_02068308 - ldr r1, [r6, #0xef4] - mov r4, r0 - cmp r1, #0 - beq _02067398 - bl sub_02046BA0 - ldr r1, [r6, #0xef4] - strb r0, [r1] -_02067398: - cmp r4, #5 - bne _02067430 - bl sub_020469E8 - ldr r0, [r6, #0xee8] - bl sub_02046D2C - ldr r0, [r6, #0xeec] - bl sub_020474A0 - mov r0, #0 - str r0, [r6, #0xee8] - str r0, [r6, #0xeec] - bl sub_02046BB4 - ldr r0, [r6, #8] - add r0, r6, r0, lsl #1 - ldrsh r0, [r0, #0xc] - mov r0, r0, lsl #0x18 - mov r0, r0, asr #0x18 - bl sub_0205F588 - bl sub_0205F5A8 - bl CountJobListMissions - cmp r0, #0 - bne _0206740C - bl sub_020692B4 - ldr r0, _020674A0 ; =_020B0B2C - ldr r0, [r0, #0x14] - add r0, r0, #0x2e4 - add r0, r0, #0xc00 - bl sub_02047150 - mvn r0, #0 - b _02067498 -_0206740C: - bl sub_020686F4 - bl sub_0206937C - ldr r0, _020674A0 ; =_020B0B2C - mov r2, #0 - ldr r1, [r0, #0x14] - mov r0, #1 - str r2, [r1] - strb r0, [r6, #0xd84] - b _02067494 -_02067430: - sub r0, r4, #7 - cmp r0, #1 - bhi _02067494 - bl sub_020469E8 - ldr r0, [r6, #0xee8] - bl sub_02046D2C - ldr r0, [r6, #0xeec] - bl sub_020474A0 - mov r0, #0 - str r0, [r6, #0xee8] - str r0, [r6, #0xeec] - bl sub_02046BB4 - ldr r0, _020674A0 ; =_020B0B2C - mov r1, #0 - ldr r0, [r0, #0x14] - str r1, [r0] - b _02067494 -_02067474: - bl sub_02046C78 - cmp r0, #0 - beq _02067494 - bl sub_02046D20 - ldr r0, _020674A0 ; =_020B0B2C - mov r1, #0 - ldr r0, [r0, #0x14] - str r1, [r0] -_02067494: - mov r0, #0 -_02067498: - add sp, sp, #0xc - ldmia sp!, {r3, r4, r5, r6, pc} - .align 2, 0 -_020674A0: .word _020B0B2C -_020674A4: .word _020A92A8 -_020674A8: .word sub_020696E8 -_020674AC: .word sub_02069750 -_020674B0: .word _020A937C -_020674B4: .word _020B0B39 -_020674B8: .word JOB_MENU_ITEMS_11 -#if defined(EUROPE) -_020674BC: .word 0x0000387A -#elif defined(JAPAN) -_020674BC: .word 0x000034B6 -#else -_020674BC: .word 0x00003878 -#endif -_020674C0: .word 0x00000233 -_020674C4: .word _020A9268 -_020674C8: .word JOB_MENU_ITEMS_4 - arm_func_end sub_02066A44 - - arm_func_start sub_020674CC -sub_020674CC: ; 0x020674CC - ldr r0, _020674E4 ; =_020B0B2C - ldr r1, [r0, #0x14] - ldr r0, [r1, #8] - add r0, r1, r0, lsl #1 - ldrsh r0, [r0, #0xc] - bx lr - .align 2, 0 -_020674E4: .word _020B0B2C - arm_func_end sub_020674CC - - arm_func_start sub_020674E8 -sub_020674E8: ; 0x020674E8 - ldr r0, _02067520 ; =_020B0B2C - mov ip, #0 - ldr r2, [r0, #0x14] - mov r0, ip - ldr r3, [r2, #0x6c] - b _02067514 -_02067500: - add r1, r2, ip - ldrb r1, [r1, #0x4c] - add ip, ip, #1 - cmp r1, #0 - addne r0, r0, #1 -_02067514: - cmp ip, r3 - blt _02067500 - bx lr - .align 2, 0 -_02067520: .word _020B0B2C - arm_func_end sub_020674E8 - - arm_func_start sub_02067524 -sub_02067524: ; 0x02067524 - stmdb sp!, {r4, lr} - mov lr, #0 - mov r4, lr - ldr r2, _02067580 ; =_020B0B2C - b _02067568 -_02067538: - cmp lr, r1 - movge r0, #0 - ldmgeia sp!, {r4, pc} - add r3, ip, r4 - ldrb r3, [r3, #0x4c] - cmp r3, #0 - addne r3, ip, r4, lsl #1 - ldrnesh ip, [r3, #0xc] - movne r3, lr, lsl #1 - addne lr, lr, #1 - strneh ip, [r0, r3] - add r4, r4, #1 -_02067568: - ldr ip, [r2, #0x14] - ldr r3, [ip, #0x6c] - cmp r4, r3 - blt _02067538 - mov r0, #1 - ldmia sp!, {r4, pc} - .align 2, 0 -_02067580: .word _020B0B2C - arm_func_end sub_02067524 - - arm_func_start sub_02067584 -sub_02067584: ; 0x02067584 - stmdb sp!, {r4, lr} - sub sp, sp, #0x40 - cmp r0, #0x13 - addls pc, pc, r0, lsl #2 - b _02067658 -_02067598: ; jump table - b _020675E8 ; case 0 - b _020675E8 ; case 1 - b _020675E8 ; case 2 - b _020675E8 ; case 3 - b _020675E8 ; case 4 - b _020675E8 ; case 5 - b _020675E8 ; case 6 - b _020675E8 ; case 7 - b _02067658 ; case 8 - b _020675E8 ; case 9 - b _020675E8 ; case 10 - b _020675E8 ; case 11 - b _020675E8 ; case 12 - b _020675E8 ; case 13 - b _02067638 ; case 14 - b _02067638 ; case 15 - b _02067638 ; case 16 - b _02067604 ; case 17 - b _020675E8 ; case 18 - b _02067650 ; case 19 -_020675E8: - add r1, sp, #0 - bl sub_02068390 - cmp r0, #0 - moveq r0, #1 - movne r0, #0 - and r0, r0, #0xff - b _0206765C -_02067604: - bl sub_0204E210 - cmp r0, #1 - bne _02067638 - bl CountJobListMissions - mov r4, r0 - bl GetAdventureLogDungeonFloor - ldrb r0, [r0] - bl DungeonRequestsDoneWrapper - subs r0, r4, r0 - moveq r0, #1 - movne r0, #0 - and r0, r0, #0xff - b _0206765C -_02067638: - bl CountJobListMissions - cmp r0, #0 - moveq r0, #1 - movne r0, #0 - and r0, r0, #0xff - b _0206765C -_02067650: - mov r0, #0 - b _0206765C -_02067658: - mov r0, #1 -_0206765C: - add sp, sp, #0x40 - ldmia sp!, {r4, pc} - arm_func_end sub_02067584 - - arm_func_start sub_02067664 -sub_02067664: ; 0x02067664 - stmdb sp!, {r3, lr} - ldr r0, _020676A8 ; =_020B0B2C - ldr r0, [r0, #0x14] - cmp r0, #0 - ldmeqia sp!, {r3, pc} - add r0, r0, #0x2e4 - add r0, r0, #0xc00 - bl sub_02047150 - bl sub_02069904 - bl sub_020692B4 - ldr r0, _020676A8 ; =_020B0B2C - ldr r0, [r0, #0x14] - bl MemFree - ldr r0, _020676A8 ; =_020B0B2C - mov r1, #0 - str r1, [r0, #0x14] - ldmia sp!, {r3, pc} - .align 2, 0 -_020676A8: .word _020B0B2C - arm_func_end sub_02067664 - - arm_func_start sub_020676AC -sub_020676AC: ; 0x020676AC - ldr r0, _02067704 ; =_020B0B2C - mov r1, #0 - strb r1, [r0, #0x10] - strb r1, [r0, #0xe] - strb r1, [r0, #9] - strb r1, [r0, #8] - strb r1, [r0, #6] - strb r1, [r0, #0xb] - strb r1, [r0, #4] - strb r1, [r0, #0xd] - strb r1, [r0, #7] - strb r1, [r0, #3] - strb r1, [r0, #2] - strb r1, [r0, #5] - strb r1, [r0, #1] - strb r1, [r0] - strb r1, [r0, #0x13] - strb r1, [r0, #0x12] - strb r1, [r0, #0x11] - strb r1, [r0, #0xa] - strb r1, [r0, #0xf] - bx lr - .align 2, 0 -_02067704: .word _020B0B2C - arm_func_end sub_020676AC - - arm_func_start sub_02067708 -sub_02067708: ; 0x02067708 -#if defined(EUROPE) -#define SUB_02067708_WORD_OFFSET 2 -#elif defined(JAPAN) -#define SUB_02067708_WORD_OFFSET -0x3C2 -#else -#define SUB_02067708_WORD_OFFSET 0 -#endif - stmdb sp!, {r4, r5, r6, r7, r8, sb, lr} - sub sp, sp, #0x5c - ldr r1, _02067C00 ; =_020B0B2C - mov r6, #0 - add r0, sp, #0xc - mov sb, r6 - ldr r4, [r1, #0x14] - ldr r7, _02067C04 ; =_020A9298 - ldr r8, _02067C08 ; =0x00000233 - bl InitPreprocessorArgs - bl sub_02068338 - ldr r1, _02067C00 ; =_020B0B2C - ldr r0, [r1, #0x14] - ldr r2, [r0, #4] - sub r2, r2, #4 - cmp r2, #0x10 - addls pc, pc, r2, lsl #2 - b _02067BC4 -_02067750: ; jump table - b _02067AF8 ; case 0 - b _02067BC4 ; case 1 - b _02067BC4 ; case 2 - b _02067BC4 ; case 3 - b _02067BC4 ; case 4 - b _02067A80 ; case 5 - b _02067794 ; case 6 - b _020677F0 ; case 7 - b _0206784C ; case 8 - b _020678A8 ; case 9 - b _02067904 ; case 10 - b _020679E0 ; case 11 - b _02067BC4 ; case 12 - b _02067A50 ; case 13 - b _02067B20 ; case 14 - b _02067B3C ; case 15 - b _02067BA0 ; case 16 -_02067794: - ldr r0, [r4, #8] - add r0, r4, r0, lsl #1 - ldrsh r0, [r0, #0xc] - mov r0, r0, lsl #0x18 - mov r0, r0, asr #0x18 - bl sub_0205E970 - bl AlreadyHaveMission - cmp r0, #0 - bne _020677C4 - bl CountJobListMissions - cmp r0, #8 - blt _020677CC -_020677C4: - mov r0, #3 - strb r0, [r4, #0xee0] -_020677CC: - ldr r0, _02067C00 ; =_020B0B2C - ldr r1, _02067C0C ; =_020A9364 - ldrsb r2, [r0, #0x10] - ldr r0, _02067C10 ; =_020B0B3C - ldr r5, _02067C14 ; =JOB_MENU_ITEMS_10 - ldr r1, [r1, r2, lsl #3] - str r1, [r4, #0xe48] - str r0, [r4, #0xef4] - b _02067BC4 -_020677F0: - ldr r0, [r4, #8] - add r0, r4, r0, lsl #1 - ldrsh r0, [r0, #0xc] - mov r0, r0, lsl #0x18 - mov r0, r0, asr #0x18 - bl sub_0205EAE8 - bl AlreadyHaveMission - cmp r0, #0 - bne _02067820 - bl CountJobListMissions - cmp r0, #8 - blt _02067828 -_02067820: - mov r0, #3 - strb r0, [r4, #0xee0] -_02067828: - ldr r0, _02067C00 ; =_020B0B2C - ldr r1, _02067C0C ; =_020A9364 - ldrsb r2, [r0, #0xe] - ldr r0, _02067C18 ; =_020B0B3A - ldr r5, _02067C14 ; =JOB_MENU_ITEMS_10 - ldr r1, [r1, r2, lsl #3] - str r1, [r4, #0xe48] - str r0, [r4, #0xef4] - b _02067BC4 -_0206784C: - ldr r0, [r4, #8] - add r0, r4, r0, lsl #1 - ldrsh r0, [r0, #0xc] - mov r0, r0, lsl #0x18 - mov r0, r0, asr #0x18 - bl sub_0205EBD8 - bl AlreadyHaveMission - cmp r0, #0 - bne _0206787C - bl CountJobListMissions - cmp r0, #8 - blt _02067884 -_0206787C: - mov r0, #3 - strb r0, [r4, #0xee0] -_02067884: - ldr r0, _02067C00 ; =_020B0B2C - ldr r1, _02067C0C ; =_020A9364 - ldrsb r2, [r0, #9] - ldr r0, _02067C1C ; =_020B0B35 - ldr r5, _02067C14 ; =JOB_MENU_ITEMS_10 - ldr r1, [r1, r2, lsl #3] - str r1, [r4, #0xe48] - str r0, [r4, #0xef4] - b _02067BC4 -_020678A8: - ldr r0, [r4, #8] - add r0, r4, r0, lsl #1 - ldrsh r0, [r0, #0xc] - mov r0, r0, lsl #0x18 - mov r0, r0, asr #0x18 - bl sub_0205EC38 - bl AlreadyHaveMission - cmp r0, #0 - bne _020678D8 - bl CountJobListMissions - cmp r0, #8 - blt _020678E0 -_020678D8: - mov r0, #3 - strb r0, [r4, #0xee0] -_020678E0: - ldr r0, _02067C00 ; =_020B0B2C - ldr r1, _02067C0C ; =_020A9364 - ldrsb r2, [r0, #8] - ldr r0, _02067C20 ; =_020B0B34 - ldr r5, _02067C14 ; =JOB_MENU_ITEMS_10 - ldr r1, [r1, r2, lsl #3] - str r1, [r4, #0xe48] - str r0, [r4, #0xef4] - b _02067BC4 -_02067904: - ldr r0, [r4, #8] - add r0, r4, r0, lsl #1 - ldrsh r0, [r0, #0xc] - mov r0, r0, lsl #0x18 - mov r0, r0, asr #0x18 - bl GetAcceptedMission - mov r5, r0 - ldrb r0, [r5, #4] - bl DungeonSwapIdToIdx - ldrb r0, [r5] - orr r8, r8, #0x400000 - orr r8, r8, #0x80000000 - cmp r0, #4 - addls pc, pc, r0, lsl #2 - b _0206798C -_02067940: ; jump table - b _0206798C ; case 0 - b _02067954 ; case 1 - b _02067954 ; case 2 - b _02067954 ; case 3 - b _02067954 ; case 4 -_02067954: - mov r0, r5 - bl sub_0205ECF4 - cmp r0, #0 - movne r0, #3 - strneb r0, [r4, #0xee0] - ldr r0, _02067C00 ; =_020B0B2C - ldr r1, _02067C24 ; =_020A9394 - ldrsb r2, [r0, #6] - ldr r0, _02067C28 ; =_020B0B32 - ldr r5, _02067C2C ; =JOB_MENU_ITEMS_12 - ldr r1, [r1, r2, lsl #3] - str r1, [r4, #0xe48] - str r0, [r4, #0xef4] - b _02067BC4 -_0206798C: - ldrb r1, [r5, #1] - cmp r1, #3 - ldreqb r0, [r5, #2] - cmpeq r0, #3 - moveq r0, #3 - streqb r0, [r4, #0xee0] - beq _020679BC - cmp r1, #6 - ldreqb r0, [r5, #2] - cmpeq r0, #4 - moveq r0, #3 - streqb r0, [r4, #0xee0] -_020679BC: - ldr r0, _02067C00 ; =_020B0B2C - ldr r1, _02067C30 ; =_020A93B4 - ldrsb r2, [r0, #6] - ldr r0, _02067C28 ; =_020B0B32 - ldr r5, _02067C34 ; =JOB_MENU_ITEMS_13 - ldr r1, [r1, r2, lsl #3] - str r1, [r4, #0xe48] - str r0, [r4, #0xef4] - b _02067BC4 -_020679E0: - ldr r0, [r4, #8] - add r0, r4, r0, lsl #1 - ldrsh r0, [r0, #0xc] - mov r0, r0, lsl #0x18 - mov r0, r0, asr #0x18 - bl GetAcceptedMission - ldrb r0, [r0] - cmp r0, #4 - beq _02067A2C - ldr r0, [r4, #8] - add r0, r4, r0, lsl #1 - ldrsh r0, [r0, #0xc] - mov r0, r0, lsl #0x18 - mov r0, r0, asr #0x18 - bl GetAcceptedMission - ldrb r0, [r0] - cmp r0, #1 - movne r0, #3 - strneb r0, [r4, #0xee0] -_02067A2C: - ldr r0, _02067C00 ; =_020B0B2C - ldr r1, _02067C38 ; =_020A92EC - ldrsb r2, [r0, #0xb] - ldr r0, _02067C3C ; =_020B0B37 - ldr r5, _02067C40 ; =JOB_MENU_ITEMS_5 - ldr r1, [r1, r2, lsl #3] - str r1, [r4, #0xe48] - str r0, [r4, #0xef4] - b _02067BC4 -_02067A50: - ldr r5, _02067C44 ; =JOB_MENU_ITEMS_7 - ldr r6, _02067C48 ; =0x000037B0 - mov r7, sb - bl sub_020692B4 - ldr r0, _02067C00 ; =_020B0B2C - ldr r1, _02067C4C ; =_020A931C - ldrsb r2, [r0, #4] - ldr r0, _02067C50 ; =_020B0B30 - ldr r1, [r1, r2, lsl #3] - str r1, [r4, #0xe48] - str r0, [r4, #0xef4] - b _02067BC4 -_02067A80: - sub r1, r8, #0x100 - str r1, [sp, #0xc] - add r1, r0, #0xd00 - mov r7, r6 - ldrsb r2, [r1, #0x85] - sub r1, r7, #2 - ldr r5, _02067C54 ; =JOB_MENU_ITEMS_3 - cmp r2, r1 - ldreq r0, [r0, #4] - ldr r6, _02067C58 ; =0x0000380C - mov sb, #0x1000 - cmpeq r0, #9 - bne _02067AE4 - mov r0, r7 - mov r1, #3 - mov r2, #1 - bl CreatePortraitBox - ldr r2, _02067C00 ; =_020B0B2C - ldr r1, _02067C5C ; =_020A9278 - ldr r3, [r2, #0x14] - strb r0, [r3, #0xd85] - ldr r0, [r2, #0x14] - add r0, r0, #0xd00 - ldrsb r0, [r0, #0x85] - bl ShowPortraitInPortraitBox -_02067AE4: - ldr r1, [r5, #0xc] - mov r0, #0 - str r1, [r4, #0xe48] - str r0, [r4, #0xef4] - b _02067BC4 -_02067AF8: - ldrsb r2, [r1, #0xc] - ldr r1, _02067C60 ; =_020A9304 - ldr r0, _02067C64 ; =_020B0B38 - ldr r1, [r1, r2, lsl #3] - ldr r5, _02067C68 ; =JOB_MENU_ITEMS_6 - str r1, [r4, #0xe48] - str r0, [r4, #0xef4] -#ifdef NORTH_AMERICA - rsb r6, r8, #0x3a40 -#else - ldr r6, _02067FF0 ; =0x0000380F -#endif - mov r7, sb - b _02067BC4 -_02067B20: - mov r0, #7 - mov r7, r6 - str r0, [r4, #0xe48] - str r7, [r4, #0xef4] - ldr r5, _02067C6C ; =JOB_MENU_ITEMS_9 - ldr r6, _02067C70 ; =0x000038BF - b _02067BC4 -_02067B3C: - ldr r1, [r4, #0x6c] - ldr r5, _02067C74 ; =JOB_MENU_ITEMS_11 - ldr r6, _02067C78 ; =0x00003878 - mov r2, sb - b _02067B68 -_02067B50: - add r0, r4, r2 - ldrb r0, [r0, #0x4c] - cmp r0, #0 - strne r2, [r4, #0x70] - bne _02067B70 - add r2, r2, #1 -_02067B68: - cmp r2, r1 - blt _02067B50 -_02067B70: - ldr r0, [r4, #0x70] - mov r7, #0 - str r0, [r4, #8] - bl sub_0206937C - ldr r0, _02067C00 ; =_020B0B2C - ldr r1, _02067C7C ; =_020B0B39 - ldrsb r0, [r0, #0xd] - add r0, r5, r0, lsl #3 - ldr r0, [r0, #4] - str r0, [r4, #0xe48] - str r1, [r4, #0xef4] - b _02067BC4 -_02067BA0: - ldrsb r2, [r1, #7] - ldr r1, _02067C80 ; =_020A9334 - ldr r0, _02067C84 ; =_020B0B33 - ldr r1, [r1, r2, lsl #3] - ldr r5, _02067C88 ; =JOB_MENU_ITEMS_8 - str r1, [r4, #0xe48] -#ifdef NORTH_AMERICA - add r6, r8, #0x3580 -#else - ldr r6, _02068014 ; =0x000037B5 -#endif - str r0, [r4, #0xef4] - mov r7, sb -_02067BC4: - add r3, r4, #0x248 - stmia sp, {r5, r6} - add r4, sp, #0xc - mov r0, r7 - mov r1, sb - mov r2, r8 - add r3, r3, #0xc00 - str r4, [sp, #8] - bl sub_02046A20 - ldr r0, _02067C00 ; =_020B0B2C - mov r1, #3 - ldr r0, [r0, #0x14] - str r1, [r0] - add sp, sp, #0x5c - ldmia sp!, {r4, r5, r6, r7, r8, sb, pc} - .align 2, 0 -_02067C00: .word _020B0B2C -_02067C04: .word _020A9298 -_02067C08: .word 0x00000233 -_02067C0C: .word _020A9364 -_02067C10: .word _020B0B3C -_02067C14: .word JOB_MENU_ITEMS_10 -_02067C18: .word _020B0B3A -_02067C1C: .word _020B0B35 -_02067C20: .word _020B0B34 -_02067C24: .word _020A9394 -_02067C28: .word _020B0B32 -_02067C2C: .word JOB_MENU_ITEMS_12 -_02067C30: .word _020A93B4 -_02067C34: .word JOB_MENU_ITEMS_13 -_02067C38: .word _020A92EC -_02067C3C: .word _020B0B37 -_02067C40: .word JOB_MENU_ITEMS_5 -_02067C44: .word JOB_MENU_ITEMS_7 -#ifdef JAPAN -_02067C48: .word 0x00003432 -#else -_02067C48: .word 0x000037B0 + SUB_02067708_WORD_OFFSET -#endif -_02067C4C: .word _020A931C -_02067C50: .word _020B0B30 -_02067C54: .word JOB_MENU_ITEMS_3 -_02067C58: .word 0x0000380C + SUB_02067708_WORD_OFFSET -_02067C5C: .word _020A9278 -_02067C60: .word _020A9304 -_02067C64: .word _020B0B38 -_02067C68: .word JOB_MENU_ITEMS_6 -#if defined(EUROPE) -_02067FF0: .word 0x0000380F -#elif defined(JAPAN) -_02067FF0: .word 0x0000344B -#endif -_02067C6C: .word JOB_MENU_ITEMS_9 -_02067C70: .word 0x000038BF + SUB_02067708_WORD_OFFSET -_02067C74: .word JOB_MENU_ITEMS_11 -_02067C78: .word 0x00003878 + SUB_02067708_WORD_OFFSET -_02067C7C: .word _020B0B39 -_02067C80: .word _020A9334 -_02067C84: .word _020B0B33 -_02067C88: .word JOB_MENU_ITEMS_8 -#ifdef EUROPE -_02068014: .word 0x000037B5 -#elif defined(JAPAN) -_02068014: .word 0x00003435 -#endif - arm_func_end sub_02067708 - - arm_func_start sub_02067C8C -sub_02067C8C: ; 0x02067C8C -#if defined(EUROPE) -#define SUB_02067C8C_WORD_OFFSET 2 -#elif defined(JAPAN) -#define SUB_02067C8C_WORD_OFFSET -0x3C2 -#else -#define SUB_02067C8C_WORD_OFFSET 0 -#endif - stmdb sp!, {r4, r5, r6, lr} - sub sp, sp, #0x60 - ldr r0, _020682E0 ; =_020B0B2C - ldr r6, [r0, #0x14] - bl sub_02046BB4 - mov r0, #6 - bl PlaySeVolumeWrapper - ldr r0, [r6, #8] - add r0, r6, r0, lsl #1 - ldrsh r0, [r0, #0xc] - mov r0, r0, lsl #0x18 - mov r0, r0, asr #0x18 - bl GetAcceptedMission - mov r4, r0 - ldrb r0, [r4, #4] - bl DungeonSwapIdToIdx - mov r5, r0 - add r0, sp, #8 - str r0, [sp] - ldrb r0, [r4, #1] - add r1, r4, #2 - add r2, sp, #4 - add r3, sp, #0xc - bl sub_0206276C - ldrb r1, [r4, #1] - cmp r1, #0xe - ldreqb r0, [r4, #2] - cmpeq r0, #1 - bne _02067E70 - bl GetRank - ldrb r1, [sp, #4] - cmp r1, r0 - bhi _02067D3C - bl GetScenarioBalance - ldr r1, [sp, #0xc] - cmp r1, r0 - bgt _02067D3C - ldr r0, [sp, #8] - cmp r0, #0 - beq _02067D7C - mov r0, #0x16 - bl GetResolvedPerformanceProgressFlag - cmp r0, #0 - bne _02067D7C -_02067D3C: - bl sub_020692B4 - ldr r0, _020682E0 ; =_020B0B2C - ldr r0, [r0, #0x14] - add r0, r0, #0x2e4 - add r0, r0, #0xc00 - bl sub_02047150 - ldr r1, _020682E4 ; =0x0000381F - mov r0, #0x1c - mov r2, #0 - bl sub_02046BE8 - ldr r0, _020682E0 ; =_020B0B2C - mov r2, #6 - ldr r1, [r0, #0x14] - mov r0, #0 - str r2, [r1] - b _020682D8 -_02067D7C: - mov r0, r5 - bl GetDungeonMode - cmp r0, #3 - bne _02067DCC - bl sub_020692B4 - ldr r0, _020682E0 ; =_020B0B2C - ldr r0, [r0, #0x14] - add r0, r0, #0x2e4 - add r0, r0, #0xc00 - bl sub_02047150 - ldr r1, _020682E8 ; =0x00003820 - mov r0, #0x1c - mov r2, #0 - bl sub_02046BE8 - ldr r0, _020682E0 ; =_020B0B2C - mov r2, #6 - ldr r1, [r0, #0x14] - mov r0, #0 - str r2, [r1] - b _020682D8 -_02067DCC: - ldrb r0, [r4, #4] - mov r4, #0 - sub r0, r0, #0x49 - cmp r0, #0xc - addls pc, pc, r0, lsl #2 - b _02067E4C -_02067DE4: ; jump table - b _02067E30 ; case 0 - b _02067E4C ; case 1 - b _02067E28 ; case 2 - b _02067E4C ; case 3 - b _02067E18 ; case 4 - b _02067E4C ; case 5 - b _02067E20 ; case 6 - b _02067E4C ; case 7 - b _02067E38 ; case 8 - b _02067E4C ; case 9 - b _02067E48 ; case 10 - b _02067E4C ; case 11 - b _02067E40 ; case 12 -_02067E18: - mov r4, #3 - b _02067E4C -_02067E20: - mov r4, #4 - b _02067E4C -_02067E28: - mov r4, #5 - b _02067E4C -_02067E30: - mov r4, #6 - b _02067E4C -_02067E38: - mov r4, #7 - b _02067E4C -_02067E40: - mov r4, #8 - b _02067E4C -_02067E48: - mov r4, #9 -_02067E4C: - ldr r0, [r6, #8] - add r0, r6, r0, lsl #1 - ldrsh r0, [r0, #0xc] - mov r0, r0, lsl #0x18 - mov r0, r0, asr #0x18 - bl sub_0205F588 - bl sub_0205F5A8 - mov r0, r4 - b _020682D8 -_02067E70: - cmp r1, #3 - ldreqb r0, [r4, #2] - cmpeq r0, #3 - bne _02067FE0 - ldrb r0, [r4, #4] - bl CheckDungeonMissionUnlockConditions - cmp r0, #1 - bne _02067ED0 - bl sub_020692B4 - ldr r0, _020682E0 ; =_020B0B2C - ldr r0, [r0, #0x14] - add r0, r0, #0x2e4 - add r0, r0, #0xc00 - bl sub_02047150 -#ifdef NORTH_AMERICA - mov r0, #0x1c - rsb r1, r0, #0x3840 -#else - ldr r1, _02068678 ; =0x00003826 - mov r0, #0x1c -#endif - mov r2, #0 - bl sub_02046BE8 - ldr r0, _020682E0 ; =_020B0B2C - mov r2, #6 - ldr r1, [r0, #0x14] - mov r0, #0 - str r2, [r1] - b _020682D8 -_02067ED0: - cmp r0, #0 - beq _02067F28 - add r0, sp, #0x10 - bl InitPreprocessorArgs - ldrb r0, [r4, #4] - str r0, [sp, #0x20] - bl sub_020692B4 - ldr r0, _020682E0 ; =_020B0B2C - ldr r0, [r0, #0x14] - add r0, r0, #0x2e4 - add r0, r0, #0xc00 - bl sub_02047150 - ldr r1, _020682EC ; =0x00003825 - add r2, sp, #0x10 - mov r0, #0x1c - bl sub_02046BE8 - ldr r0, _020682E0 ; =_020B0B2C - mov r2, #6 - ldr r1, [r0, #0x14] - mov r0, #0 - str r2, [r1] - b _020682D8 -_02067F28: - mov r0, r5 - mov r1, #3 - bl sub_0204D018 - mov r0, #5 - strb r0, [r4] - ldrb r0, [r4, #4] - sub r0, r0, #0x57 - cmp r0, #0xb - addls pc, pc, r0, lsl #2 - b _02067FE0 -_02067F50: ; jump table - b _02067F80 ; case 0 - b _02067F88 ; case 1 - b _02067F90 ; case 2 - b _02067F98 ; case 3 - b _02067FA0 ; case 4 - b _02067FA8 ; case 5 - b _02067FB0 ; case 6 - b _02067FB8 ; case 7 - b _02067FC0 ; case 8 - b _02067FC8 ; case 9 - b _02067FD0 ; case 10 - b _02067FD8 ; case 11 -_02067F80: - mov r0, #0xa - b _020682D8 -_02067F88: - mov r0, #0xb - b _020682D8 -_02067F90: - mov r0, #0xc - b _020682D8 -_02067F98: - mov r0, #0xd - b _020682D8 -_02067FA0: - mov r0, #0xe - b _020682D8 -_02067FA8: - mov r0, #0xf - b _020682D8 -_02067FB0: - mov r0, #0x10 - b _020682D8 -_02067FB8: - mov r0, #0x11 - b _020682D8 -_02067FC0: - mov r0, #0x12 - b _020682D8 -_02067FC8: - mov r0, #0x13 - b _020682D8 -_02067FD0: - mov r0, #0x14 - b _020682D8 -_02067FD8: - mov r0, #0x15 - b _020682D8 -_02067FE0: - ldrb r0, [r4, #1] - cmp r0, #0xb - bne _02068158 - ldrb r1, [r4, #2] - cmp r1, #1 - blo _02068158 - cmp r1, #5 - bhi _02068158 - add r1, r4, #2 - mov r2, #0xff - bl CheckAcceptedMissionByTypeAndDungeon - cmp r0, #0 - beq _02068054 - bl sub_020692B4 - ldr r0, _020682E0 ; =_020B0B2C - ldr r0, [r0, #0x14] - add r0, r0, #0x2e4 - add r0, r0, #0xc00 - bl sub_02047150 - ldr r1, _020682F0 ; =0x00003821 - mov r0, #0x1c - mov r2, #0 - bl sub_02046BE8 - ldr r0, _020682E0 ; =_020B0B2C - mov r2, #6 - ldr r1, [r0, #0x14] - mov r0, #0 - str r2, [r1] - b _020682D8 -_02068054: - bl GetRank - ldrb r1, [sp, #4] - cmp r1, r0 - bhi _02068090 - bl GetScenarioBalance - ldr r1, [sp, #0xc] - cmp r1, r0 - bgt _02068090 - ldr r0, [sp, #8] - cmp r0, #0 - beq _020680D0 - mov r0, #0x16 - bl GetResolvedPerformanceProgressFlag - cmp r0, #0 - bne _020680D0 -_02068090: - bl sub_020692B4 - ldr r0, _020682E0 ; =_020B0B2C - ldr r0, [r0, #0x14] - add r0, r0, #0x2e4 - add r0, r0, #0xc00 - bl sub_02047150 -#ifdef EUROPE - mov r0, #0x1c - rsb r1, r0, #0x3840 -#else - ldr r1, _020682F4 ; =0x00003822 - mov r0, #0x1c -#endif - mov r2, #0 - bl sub_02046BE8 - ldr r0, _020682E0 ; =_020B0B2C - mov r2, #6 - ldr r1, [r0, #0x14] - mov r0, #0 - str r2, [r1] - b _020682D8 -_020680D0: - ldrb r0, [r4, #2] - cmp r0, #5 - bne _02068158 - mov r0, #0 - bl IsSpecialEpisodeBeaten - cmp r0, #0 - bne _0206812C - bl sub_020692B4 - ldr r0, _020682E0 ; =_020B0B2C - ldr r0, [r0, #0x14] - add r0, r0, #0x2e4 - add r0, r0, #0xc00 - bl sub_02047150 - ldr r1, _020682F8 ; =0x00003823 - mov r0, #0x1c - mov r2, #0 - bl sub_02046BE8 - ldr r0, _020682E0 ; =_020B0B2C - mov r2, #6 - ldr r1, [r0, #0x14] - mov r0, #0 - str r2, [r1] - b _020682D8 -_0206812C: - mov r0, r5 - bl GetDungeonMode - cmp r0, #3 - beq _02068158 - mov r0, r5 - mov r1, #3 - bl sub_0204D018 - mov r0, #5 - strb r0, [r4] - mov r0, #0x16 - b _020682D8 -_02068158: - ldrb r1, [r4, #1] - cmp r1, #6 - ldreqb r0, [r4, #2] - cmpeq r0, #4 - bne _02068260 - ldrb r0, [r4, #4] - bl CheckDungeonMissionUnlockConditions - mov r6, r0 - bl GetRank - ldrb r1, [sp, #4] - cmp r1, r0 - bhi _020681BC - bl GetScenarioBalance - ldr r1, [sp, #0xc] - cmp r1, r0 - bgt _020681BC - ldr r0, [sp, #8] - cmp r0, #0 - beq _020681B4 - mov r0, #0x16 - bl GetResolvedPerformanceProgressFlag - cmp r0, #0 - beq _020681BC -_020681B4: - cmp r6, #1 - bne _020681FC -_020681BC: - bl sub_020692B4 - ldr r0, _020682E0 ; =_020B0B2C - ldr r0, [r0, #0x14] - add r0, r0, #0x2e4 - add r0, r0, #0xc00 - bl sub_02047150 -#ifdef JAPAN - mov r0, #0x1c - rsb r1, r0, #0x3480 -#else - ldr r1, _020682FC ; =0x00003826 - mov r0, #0x1c -#endif - mov r2, #0 - bl sub_02046BE8 - ldr r0, _020682E0 ; =_020B0B2C - mov r2, #6 - ldr r1, [r0, #0x14] - mov r0, #0 - str r2, [r1] - b _020682D8 -_020681FC: - cmp r6, #0 - beq _02068244 - bl sub_020692B4 - ldr r0, _020682E0 ; =_020B0B2C - ldr r0, [r0, #0x14] - add r0, r0, #0x2e4 - add r0, r0, #0xc00 - bl sub_02047150 - ldr r1, _02068300 ; =0x00003827 - mov r0, #0x1c - mov r2, #0 - bl sub_02046BE8 - ldr r0, _020682E0 ; =_020B0B2C - mov r2, #6 - ldr r1, [r0, #0x14] - mov r0, #0 - str r2, [r1] - b _020682D8 -_02068244: - mov r2, #5 - mov r0, r5 - mov r1, #3 - strb r2, [r4] - bl sub_0204D018 - mov r0, #0xe - b _020682D8 -_02068260: - cmp r1, #0xc - beq _020682B8 - ldrb r0, [r4, #4] - bl CanDungeonBeUsedForMission - cmp r0, #0 - bne _020682B8 - bl sub_020692B4 - ldr r0, _020682E0 ; =_020B0B2C - ldr r0, [r0, #0x14] - add r0, r0, #0x2e4 - add r0, r0, #0xc00 - bl sub_02047150 - ldr r1, _02068304 ; =0x00003828 - mov r0, #0x1c - mov r2, #0 - bl sub_02046BE8 - ldr r0, _020682E0 ; =_020B0B2C - mov r2, #6 - ldr r1, [r0, #0x14] - mov r0, #0 - str r2, [r1] - b _020682D8 -_020682B8: - mov r0, #5 - strb r0, [r4] - bl sub_020686F4 - bl sub_0206937C - ldr r1, _020682E0 ; =_020B0B2C - mov r0, #0 - ldr r1, [r1, #0x14] - str r0, [r1] -_020682D8: - add sp, sp, #0x60 - ldmia sp!, {r4, r5, r6, pc} - .align 2, 0 -_020682E0: .word _020B0B2C -_020682E4: .word 0x0000381F + SUB_02067C8C_WORD_OFFSET -_020682E8: .word 0x00003820 + SUB_02067C8C_WORD_OFFSET -#if defined(EUROPE) -_02068678: .word 0x00003826 -#elif defined(JAPAN) -_02068678: .word 0x00003462 -#endif -_020682EC: .word 0x00003825 + SUB_02067C8C_WORD_OFFSET -_020682F0: .word 0x00003821 + SUB_02067C8C_WORD_OFFSET -#ifndef EUROPE -_020682F4: .word 0x00003822 + SUB_02067C8C_WORD_OFFSET -#endif -_020682F8: .word 0x00003823 + SUB_02067C8C_WORD_OFFSET -#ifndef JAPAN -_020682FC: .word 0x00003826 + SUB_02067C8C_WORD_OFFSET -#endif -_02068300: .word 0x00003827 + SUB_02067C8C_WORD_OFFSET -_02068304: .word 0x00003828 + SUB_02067C8C_WORD_OFFSET - arm_func_end sub_02067C8C - - arm_func_start sub_02068308 -sub_02068308: ; 0x02068308 - mvn r2, #1 - cmp r0, r2 - moveq r0, #8 - bxeq lr - sub r1, r2, #1 - cmp r0, r1 - moveq r0, #8 - bxeq lr - add r1, r2, #1 - cmp r0, r1 - moveq r0, #0 - bx lr - arm_func_end sub_02068308 - - arm_func_start sub_02068338 -sub_02068338: ; 0x02068338 - stmdb sp!, {r3, lr} - ldr r0, _0206838C ; =_020B0B2C - mov r1, #0 - ldr r0, [r0, #0x14] - add r2, r0, #0xee0 - mov r0, r1 -_02068350: - strb r0, [r2, r1] - add r1, r1, #1 - cmp r1, #4 - blt _02068350 - ldr r0, _0206838C ; =_020B0B2C - mov r1, #0x98 - ldr r0, [r0, #0x14] - add r0, r0, #0x248 - add r0, r0, #0xc00 - bl MemZero - ldr r0, _0206838C ; =_020B0B2C - ldr r1, [r0, #0x14] - add r0, r1, #0xee0 - str r0, [r1, #0xea8] - ldmia sp!, {r3, pc} - .align 2, 0 -_0206838C: .word _020B0B2C - arm_func_end sub_02068338 - - arm_func_start sub_02068390 -sub_02068390: ; 0x02068390 - stmdb sp!, {r3, r4, r5, r6, lr} - sub sp, sp, #4 - mov r5, r1 - cmp r0, #0x12 - mov r4, #0 - addls pc, pc, r0, lsl #2 - b _020686E4 -_020683AC: ; jump table - b _020683F8 ; case 0 - b _02068468 ; case 1 - b _020684A0 ; case 2 - b _02068510 ; case 3 - b _020684D8 ; case 4 - b _02068548 ; case 5 - b _02068430 ; case 6 - b _02068580 ; case 7 - b _020686E4 ; case 8 - b _020684A0 ; case 9 - b _020685B8 ; case 10 - b _020685E8 ; case 11 - b _02068618 ; case 12 - b _02068634 ; case 13 - b _02068650 ; case 14 - b _020686E4 ; case 15 - b _020686E4 ; case 16 - b _020686E4 ; case 17 - b _02068680 ; case 18 -_020683F8: - ldr r1, _020686F0 ; =_020B0A54 - mov ip, r4 - mov r0, #0xb0 -_02068404: - mul r2, ip, r0 - ldr r3, [r1] - ldrb r2, [r3, r2] - cmp r2, #0 - movne r2, r4, lsl #1 - strneh ip, [r5, r2] - add ip, ip, #1 - addne r4, r4, #1 - cmp ip, #0x20 - blt _02068404 - b _020686E4 -_02068430: - ldr r1, _020686F0 ; =_020B0A54 - mov r6, r4 - mov r0, #0xb0 -_0206843C: - mul r2, r6, r0 - ldr r3, [r1] - ldrb r2, [r3, r2] - cmp r2, #6 - moveq r2, r4, lsl #1 - streqh r6, [r5, r2] - add r6, r6, #1 - addeq r4, r4, #1 - cmp r6, #0x20 - blt _0206843C - b _020686E4 -_02068468: - ldr r1, _020686F0 ; =_020B0A54 - mov r6, r4 - mov r0, #0xb0 -_02068474: - mul r2, r6, r0 - ldr r3, [r1] - ldrb r2, [r3, r2] - cmp r2, #1 - moveq r2, r4, lsl #1 - streqh r6, [r5, r2] - add r6, r6, #1 - addeq r4, r4, #1 - cmp r6, #0x20 - blt _02068474 - b _020686E4 -_020684A0: - ldr r1, _020686F0 ; =_020B0A54 - mov r6, r4 - mov r0, #0xb0 -_020684AC: - mul r2, r6, r0 - ldr r3, [r1] - ldrb r2, [r3, r2] - cmp r2, #2 - moveq r2, r4, lsl #1 - streqh r6, [r5, r2] - add r6, r6, #1 - addeq r4, r4, #1 - cmp r6, #0x20 - blt _020684AC - b _020686E4 -_020684D8: - ldr r1, _020686F0 ; =_020B0A54 - mov r6, r4 - mov r0, #0xb0 -_020684E4: - mul r2, r6, r0 - ldr r3, [r1] - ldrb r2, [r3, r2] - cmp r2, #4 - moveq r2, r4, lsl #1 - streqh r6, [r5, r2] - add r6, r6, #1 - addeq r4, r4, #1 - cmp r6, #0x20 - blt _020684E4 - b _020686E4 -_02068510: - ldr r1, _020686F0 ; =_020B0A54 - mov r6, r4 - mov r0, #0xb0 -_0206851C: - mul r2, r6, r0 - ldr r3, [r1] - ldrb r2, [r3, r2] - cmp r2, #3 - moveq r2, r4, lsl #1 - streqh r6, [r5, r2] - add r6, r6, #1 - addeq r4, r4, #1 - cmp r6, #0x20 - blt _0206851C - b _020686E4 -_02068548: - ldr r1, _020686F0 ; =_020B0A54 - mov r6, r4 - mov r0, #0xb0 -_02068554: - mul r2, r6, r0 - ldr r3, [r1] - ldrb r2, [r3, r2] - cmp r2, #5 - moveq r2, r4, lsl #1 - streqh r6, [r5, r2] - add r6, r6, #1 - addeq r4, r4, #1 - cmp r6, #0x20 - blt _02068554 - b _020686E4 -_02068580: - ldr r1, _020686F0 ; =_020B0A54 - mov r6, r4 - mov r0, #0xb0 -_0206858C: - mul r2, r6, r0 - ldr r3, [r1] - ldrb r2, [r3, r2] - cmp r2, #7 - moveq r2, r4, lsl #1 - streqh r6, [r5, r2] - add r6, r6, #1 - addeq r4, r4, #1 - cmp r6, #0x20 - blt _0206858C - b _020686E4 -_020685B8: - mov r6, r4 -_020685BC: - mov r0, r6, lsl #0x18 - mov r0, r0, asr #0x18 - bl sub_0205E984 - cmp r0, #0 - moveq r0, r4, lsl #1 - streqh r6, [r5, r0] - add r6, r6, #1 - addeq r4, r4, #1 - cmp r6, #8 - blt _020685BC - b _020686E4 -_020685E8: - mov r6, r4 -_020685EC: - mov r0, r6, lsl #0x18 - mov r0, r0, asr #0x18 - bl sub_0205EB00 - cmp r0, #0 - moveq r0, r4, lsl #1 - streqh r6, [r5, r0] - add r6, r6, #1 - addeq r4, r4, #1 - cmp r6, #8 - blt _020685EC - b _020686E4 -_02068618: - mov r0, r4 - bl sub_0205EBF0 - cmp r0, #0 - moveq r0, r4 - streqh r0, [r5] - addeq r4, r4, #1 - b _020686E4 -_02068634: - mov r0, r4 - bl sub_0205EC50 - cmp r0, #0 - moveq r0, r4 - streqh r0, [r5] - addeq r4, r4, #1 - b _020686E4 -_02068650: - mov r6, r4 -_02068654: - mov r0, r6, lsl #0x18 - mov r0, r0, asr #0x18 - bl IsAcceptedMissionSlotEmpty - cmp r0, #0 - moveq r0, r4, lsl #1 - streqh r6, [r5, r0] - add r6, r6, #1 - addeq r4, r4, #1 - cmp r6, #8 - blt _02068654 - b _020686E4 -_02068680: - sub r0, r4, #1 - strb r0, [sp] - bl sub_0204E210 - cmp r0, #2 - bne _020686A8 - add r0, sp, #0 - bl sub_0204F1B4 - cmp r0, #0 - mvneq r0, #0 - streqb r0, [sp] -_020686A8: - ldrsb ip, [sp] - ldr r1, _020686F0 ; =_020B0A54 - mov lr, #2 - mov r0, #0xb0 -_020686B8: - cmp ip, lr - mulne r2, lr, r0 - ldrne r3, [r1] - ldrneb r2, [r3, r2] - cmpne r2, #0 - movne r2, r4, lsl #1 - strneh lr, [r5, r2] - add lr, lr, #1 - addne r4, r4, #1 - cmp lr, #0x20 - blt _020686B8 -_020686E4: - mov r0, r4 - add sp, sp, #4 - ldmia sp!, {r3, r4, r5, r6, pc} - .align 2, 0 -_020686F0: .word _020B0A54 - arm_func_end sub_02068390 - - arm_func_start sub_020686F4 -sub_020686F4: ; 0x020686F4 -#if defined(EUROPE) -#define SUB_020686F4_WORD_OFFSET 2 -#elif defined(JAPAN) -#define SUB_020686F4_WORD_OFFSET -0x3C2 -#else -#define SUB_020686F4_WORD_OFFSET 0 -#endif - stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - sub sp, sp, #0x68 - ldr r0, _02068E14 ; =_020B0B2C - mov r4, #0 - ldr r7, [r0, #0x14] - ldr r5, [r7, #4] - cmp r5, #0x15 - addls pc, pc, r5, lsl #2 - b _02068E08 -_02068718: ; jump table - b _02068770 ; case 0 - b _02068770 ; case 1 - b _02068770 ; case 2 - b _02068770 ; case 3 - b _02068770 ; case 4 - b _02068770 ; case 5 - b _02068770 ; case 6 - b _02068770 ; case 7 - b _02068770 ; case 8 - b _02068770 ; case 9 - b _020688D0 ; case 10 - b _02068960 ; case 11 - b _020689F0 ; case 12 - b _02068A6C ; case 13 - b _02068AE8 ; case 14 - b _02068AE8 ; case 15 - b _02068AE8 ; case 16 - b _02068AE8 ; case 17 - b _02068770 ; case 18 - b _02068C48 ; case 19 - b _02068CA4 ; case 20 - b _02068D00 ; case 21 -_02068770: - add r1, r7, #0x188 - mov r0, r5 - add r4, r1, #0xc00 - bl sub_02067584 - cmp r0, #0 - movne r4, #0 - bne _02068E08 - ldr r0, _02068E14 ; =_020B0B2C - add r1, r7, #0xc - ldr r0, [r0, #0x14] - ldr r0, [r0, #4] - bl sub_02068390 - str r0, [r7, #0x6c] - mov r0, #0 - bl sub_0205B77C - bl sub_02068E7C - mov r1, #0 - ldr r0, _02068E18 ; =ChooseMissionTitle - str r1, [r7, #0xe40] - str r0, [r7, #0xe44] - strb r1, [r7, #0x7c] - cmp r5, #9 - bgt _02068800 - cmp r5, #0 - addge pc, pc, r5, lsl #2 - b _020688C0 -_020687D8: ; jump table - b _020688C0 ; case 0 - b _020688C0 ; case 1 - b _02068838 ; case 2 - b _0206880C ; case 3 - b _0206880C ; case 4 - b _0206882C ; case 5 - b _020688C0 ; case 6 - b _020688C0 ; case 7 - b _020688C0 ; case 8 - b _02068838 ; case 9 -_02068800: - cmp r5, #0x12 - beq _02068858 - b _020688C0 -_0206880C: - ldr r0, _02068E14 ; =_020B0B2C - ldr r1, _02068E1C ; =_020B0B2E - ldrsb r2, [r0, #2] - ldr r0, _02068E20 ; =0x00003815 - str r2, [r7, #8] - str r1, [r7, #0xef0] - strh r0, [r4, #8] - b _020688C8 -_0206882C: - ldr r0, _02068E24 ; =0x00003817 - strh r0, [r4, #8] - b _020688C8 -_02068838: - ldr r1, _02068E28 ; =0x00003816 - ldr r0, _02068E14 ; =_020B0B2C - strh r1, [r4, #8] - ldrsb r1, [r0, #5] - ldr r0, _02068E2C ; =_020B0B31 - str r1, [r7, #8] - str r0, [r7, #0xef0] - b _020688C8 -_02068858: - ldr r1, _02068E30 ; =0x00003818 - ldr r0, _02068E34 ; =sub_02069598 - strh r1, [r4, #8] - str r0, [r7, #0xe40] - mov r1, #1 - ldr r0, _02068E14 ; =_020B0B2C - strb r1, [r7, #0x7c] - ldrsb r1, [r0, #1] - ldr r0, _02068E38 ; =_020B0B2D - str r1, [r7, #8] - str r0, [r7, #0xef0] - b _020688A4 -_02068888: - bl sub_020693EC - ldrb r0, [r0] - cmp r0, #0 - bne _020688B0 - ldr r0, [r7, #8] - sub r0, r0, #1 - str r0, [r7, #8] -_020688A4: - ldr r0, [r7, #8] - cmp r0, #0 - bgt _02068888 -_020688B0: - ldr r1, [r7, #8] - ldr r0, _02068E14 ; =_020B0B2C - strb r1, [r0, #1] - b _020688C8 -_020688C0: - ldr r0, _02068E3C ; =0x00003F1E - strh r0, [r4, #8] -_020688C8: - mov r4, #1 - b _02068E08 -_020688D0: - add r0, r7, #0x188 - mov r6, r4 - add r5, r0, #0xc00 -_020688DC: - mov r0, r6, lsl #0x18 - mov r0, r0, asr #0x18 - bl sub_0205E984 - cmp r0, #0 - addeq r0, r7, r4, lsl #1 - streqh r6, [r0, #0xc] - add r6, r6, #1 - addeq r4, r4, #1 - cmp r6, #8 - blt _020688DC - str r4, [r7, #0x6c] - cmp r4, #0 - moveq r4, #0 - beq _02068E08 - mov r0, #0 - bl sub_0205E970 - ldr r1, _02068E40 ; =sub_02069074 - mov r2, #0 - bl sub_020690D8 - ldr r1, _02068E44 ; =0x00003819 - ldr r0, _02068E14 ; =_020B0B2C - strh r1, [r5, #8] - ldrsb r2, [r0, #0x12] - ldr r0, _02068E48 ; =_020B0B3E - mov r1, #0 - str r2, [r7, #8] - str r0, [r7, #0xef0] - ldr r0, _02068E18 ; =ChooseMissionTitle - str r1, [r7, #0xe40] - str r0, [r7, #0xe44] - strb r1, [r7, #0x7c] - mov r4, #1 - b _02068E08 -_02068960: - add r0, r7, #0x188 - mov r6, r4 - add r5, r0, #0xc00 -_0206896C: - mov r0, r6, lsl #0x18 - mov r0, r0, asr #0x18 - bl sub_0205EB00 - cmp r0, #0 - addeq r0, r7, r4, lsl #1 - streqh r6, [r0, #0xc] - add r6, r6, #1 - addeq r4, r4, #1 - cmp r6, #8 - blt _0206896C - str r4, [r7, #0x6c] - cmp r4, #0 - moveq r4, #0 - beq _02068E08 - mov r0, #0 - bl sub_0205EAE8 - ldr r1, _02068E40 ; =sub_02069074 - mov r2, #0 - bl sub_020690D8 - ldr r1, _02068E4C ; =0x0000381A - ldr r0, _02068E14 ; =_020B0B2C - strh r1, [r5, #8] - ldrsb r2, [r0, #0x11] - ldr r0, _02068E50 ; =_020B0B3D - mov r1, #0 - str r2, [r7, #8] - str r0, [r7, #0xef0] - ldr r0, _02068E18 ; =ChooseMissionTitle - str r1, [r7, #0xe40] - str r0, [r7, #0xe44] - strb r1, [r7, #0x7c] - mov r4, #1 - b _02068E08 -_020689F0: - add r1, r7, #0x188 - mov r0, r4 - add r5, r1, #0xc00 - bl sub_0205EBF0 - cmp r0, #0 - moveq r0, r4 - streqh r0, [r7, #0xc] - addeq r4, r4, #1 - str r4, [r7, #0x6c] - cmp r4, #0 - moveq r4, #0 - beq _02068E08 - mov r0, #0 - bl sub_0205EBD8 - ldr r1, _02068E40 ; =sub_02069074 - mov r2, #0 - bl sub_020690D8 - ldr r1, _02068E54 ; =0x0000381B - ldr r0, _02068E14 ; =_020B0B2C - strh r1, [r5, #8] - ldrsb r2, [r0, #0xa] - ldr r0, _02068E58 ; =_020B0B36 - mov r1, #0 - str r2, [r7, #8] - str r0, [r7, #0xef0] - ldr r0, _02068E18 ; =ChooseMissionTitle - str r1, [r7, #0xe40] - str r0, [r7, #0xe44] - strb r1, [r7, #0x7c] - mov r4, #1 - b _02068E08 -_02068A6C: - add r1, r7, #0x188 - mov r0, r4 - add r5, r1, #0xc00 - bl sub_0205EC50 - cmp r0, #0 - moveq r0, r4 - streqh r0, [r7, #0xc] - addeq r4, r4, #1 - str r4, [r7, #0x6c] - cmp r4, #0 - moveq r4, #0 - beq _02068E08 - mov r0, #0 - bl sub_0205EC38 - ldr r1, _02068E40 ; =sub_02069074 - mov r2, #0 - bl sub_020690D8 - ldr r1, _02068E5C ; =0x0000381C - ldr r0, _02068E14 ; =_020B0B2C - strh r1, [r5, #8] - ldrsb r2, [r0, #0xf] - ldr r0, _02068E60 ; =_020B0B3B - mov r1, #0 - str r2, [r7, #8] - str r0, [r7, #0xef0] - ldr r0, _02068E18 ; =ChooseMissionTitle - str r1, [r7, #0xe40] - str r0, [r7, #0xe44] - strb r1, [r7, #0x7c] - mov r4, #1 - b _02068E08 -_02068AE8: - add r0, r7, #0x188 - cmp r5, #0x11 - add r8, r0, #0xc00 - bne _02068B74 - bl sub_0204E210 - cmp r0, #1 - bne _02068B74 - mov r6, r4 -_02068B08: - mov r0, r6, lsl #0x18 - mov r0, r0, asr #0x18 - bl GetAcceptedMission - mov r1, r6, lsl #0x18 - mov r5, r0 - mov r0, r1, asr #0x18 - bl IsAcceptedMissionSlotEmpty - cmp r0, #0 - bne _02068B64 - bl GetAdventureLogDungeonFloor - ldrb r1, [r5, #4] - ldrb r0, [r0] - cmp r1, r0 - bne _02068B58 - ldrb r0, [r5] - cmp r0, #5 - cmpne r0, #6 - cmpne r0, #7 - cmpne r0, #8 - beq _02068B64 -_02068B58: - add r0, r7, r4, lsl #1 - strh r6, [r0, #0xc] - add r4, r4, #1 -_02068B64: - add r6, r6, #1 - cmp r6, #8 - blt _02068B08 - b _02068BA0 -_02068B74: - mov r5, #0 -_02068B78: - mov r0, r5, lsl #0x18 - mov r0, r0, asr #0x18 - bl IsAcceptedMissionSlotEmpty - cmp r0, #0 - addeq r0, r7, r4, lsl #1 - streqh r5, [r0, #0xc] - add r5, r5, #1 - addeq r4, r4, #1 - cmp r5, #8 - blt _02068B78 -_02068BA0: - str r4, [r7, #0x6c] - cmp r4, #0 - moveq r4, #0 - beq _02068E08 - mov r0, #0 - bl GetAcceptedMission - mov r1, #0 - mov r2, #1 - bl sub_020690D8 - ldr r0, _02068E14 ; =_020B0B2C - ldr r1, [r0, #0x14] - ldr r1, [r1, #4] - cmp r1, #0xe - bne _02068BF4 - ldr r2, _02068E64 ; =0x0000381D - ldr r1, _02068E68 ; =_020B0B2C - strh r2, [r8, #8] - ldrsb r0, [r0] - str r0, [r7, #8] - str r1, [r7, #0xef0] - b _02068C18 -_02068BF4: -#ifdef EUROPE - sub r0, r1, #0xf - cmp r0, #2 - bhi _02068C18 - cmp r1, #0x11 - ldreq r1, _02068E64 ; =0x0000381F - ldr r0, _02068E14 ; =_020B0B2C - ldrne r1, _02068E6C ; =0x00003820 - strh r1, [r8, #8] - ldrsb r1, [r0, #0x13] - ldr r0, _02068E70 ; =_020B0B3F - str r1, [r7, #8] - str r0, [r7, #0xef0] -#else - sub r1, r1, #0xf - cmp r1, #2 - bhi _02068C18 - ldr r2, _02068E6C ; =0x0000381E - ldr r1, _02068E70 ; =_020B0B3F - strh r2, [r8, #8] - ldrsb r0, [r0, #0x13] - str r0, [r7, #8] - str r1, [r7, #0xef0] -#endif -_02068C18: - ldr r1, [r7, #0x6c] - ldr r0, [r7, #8] - mov r4, #1 - cmp r0, r1 - subge r0, r1, #1 - strge r0, [r7, #8] - mov r1, #0 - ldr r0, _02068E18 ; =ChooseMissionTitle - str r1, [r7, #0xe40] - str r0, [r7, #0xe44] - strb r1, [r7, #0x7c] - b _02068E08 -_02068C48: - add r0, r7, #0x188 - add r5, r0, #0xc00 - ldr r0, [r7, #0x74] - mov r2, r4 - b _02068C70 -_02068C5C: - add r1, r7, r4, lsl #1 - strh r4, [r1, #0xc] - add r1, r7, r4 - strb r2, [r1, #0x4c] - add r4, r4, #1 -_02068C70: - ldr r1, [r7, #0x6c] - cmp r4, r1 - blt _02068C5C - bl sub_02068E7C - ldr r0, _02068E28 ; =0x00003816 - ldr r1, _02068E34 ; =sub_02069598 - strh r0, [r5, #8] - ldr r0, _02068E18 ; =ChooseMissionTitle - str r1, [r7, #0xe40] - str r0, [r7, #0xe44] - mov r4, #1 - strb r4, [r7, #0x7c] - b _02068E08 -_02068CA4: - add r0, r7, #0x188 - add r5, r0, #0xc00 - b _02068CBC -_02068CB0: - add r0, r7, r4, lsl #1 - strh r4, [r0, #0xc] - add r4, r4, #1 -_02068CBC: - ldr r0, [r7, #0x6c] - cmp r4, r0 - blt _02068CB0 - bl sub_0206901C - ldr r0, [r7, #0x74] - ldr r1, _02068E74 ; =sub_020690A4 - mov r2, #0 - bl sub_020690D8 - ldr r0, _02068E6C ; =0x0000381E - mov r1, #0 - strh r0, [r5, #8] - ldr r0, _02068E18 ; =ChooseMissionTitle - str r1, [r7, #0xe40] - str r0, [r7, #0xe44] - strb r1, [r7, #0x7c] - mov r4, #1 - b _02068E08 -_02068D00: - add r0, r7, #0x188 - add r6, r0, #0xc00 - b _02068D18 -_02068D0C: - add r0, r7, r4, lsl #1 - strh r4, [r0, #0xc] - add r4, r4, #1 -_02068D18: - ldr r0, [r7, #0x6c] - cmp r4, r0 - blt _02068D0C - mov r8, #0 - str r8, [r7, #0x80] - add r5, sp, #0 - add r4, sp, #0x47 - add fp, sp, #0x48 - mov sb, #0x68 - b _02068DB0 -_02068D40: - add r0, r7, r8, lsl #1 - ldrsh r0, [r0, #0xc] - ldr r2, [r7, #0x74] - mov r1, r5 - add sl, r2, r0, lsl #5 - mov r0, sl - bl GenerateMissionDetailsStruct - mov r0, sl - mov r1, r4 - mov r2, fp - mov r3, #0 - bl sub_02069958 - str sl, [sp, #0x5c] - ldr r1, [r7, #0x80] - add sl, sp, #0 - mla r0, r1, sb, r7 - add lr, r0, #0x84 - mov ip, #6 -_02068D88: - ldmia sl!, {r0, r1, r2, r3} - stmia lr!, {r0, r1, r2, r3} - subs ip, ip, #1 - bne _02068D88 - ldmia sl, {r0, r1} - stmia lr, {r0, r1} - ldr r0, [r7, #0x80] - add r8, r8, #1 - add r0, r0, #1 - str r0, [r7, #0x80] -_02068DB0: - ldr r0, [r7, #0x6c] - cmp r8, r0 - blt _02068D40 - bl sub_0206901C - mov r1, #0 - ldr r0, _02068E6C ; =0x0000381E - str r1, [r6] - strh r0, [r6, #8] - mov r0, #0x10 - str r0, [r6, #0xc] - mov r0, #0x1a - str r0, [r6, #4] - ldr r0, _02068E18 ; =ChooseMissionTitle - str r1, [r7, #0xe40] - str r0, [r7, #0xe44] - ldr r0, _02068E14 ; =_020B0B2C - strb r1, [r7, #0x7c] - ldrsb r1, [r0, #3] - ldr r0, _02068E78 ; =_020B0B2F - mov r4, #1 - str r1, [r7, #8] - str r0, [r7, #0xef0] -_02068E08: - mov r0, r4 - add sp, sp, #0x68 - ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_02068E14: .word _020B0B2C -_02068E18: .word ChooseMissionTitle -_02068E1C: .word _020B0B2E -_02068E20: .word 0x00003815 + SUB_020686F4_WORD_OFFSET -_02068E24: .word 0x00003817 + SUB_020686F4_WORD_OFFSET -_02068E28: .word 0x00003816 + SUB_020686F4_WORD_OFFSET -_02068E2C: .word _020B0B31 -_02068E30: .word 0x00003818 + SUB_020686F4_WORD_OFFSET -_02068E34: .word sub_02069598 -_02068E38: .word _020B0B2D -#ifdef JAPAN -_02068E3C: .word 0x000038A2 -#else -_02068E3C: .word 0x00003F1E + SUB_020686F4_WORD_OFFSET -#endif -_02068E40: .word sub_02069074 -_02068E44: .word 0x00003819 + SUB_020686F4_WORD_OFFSET -_02068E48: .word _020B0B3E -_02068E4C: .word 0x0000381A + SUB_020686F4_WORD_OFFSET -_02068E50: .word _020B0B3D -_02068E54: .word 0x0000381B + SUB_020686F4_WORD_OFFSET -_02068E58: .word _020B0B36 -_02068E5C: .word 0x0000381C + SUB_020686F4_WORD_OFFSET -_02068E60: .word _020B0B3B -_02068E64: .word 0x0000381D + SUB_020686F4_WORD_OFFSET -_02068E68: .word _020B0B2C -_02068E6C: .word 0x0000381E + SUB_020686F4_WORD_OFFSET -_02068E70: .word _020B0B3F -_02068E74: .word sub_020690A4 -_02068E78: .word _020B0B2F - arm_func_end sub_020686F4 - - arm_func_start sub_02068E7C -sub_02068E7C: ; 0x02068E7C - stmdb sp!, {r4, r5, r6, r7, r8, lr} - sub sp, sp, #0x68 - ldr r1, _02069018 ; =_020B0B2C - mov r8, r0 - ldr r7, [r1, #0x14] - add r4, r7, #0x188 - bl sub_0206901C - mov r5, #0 - str r5, [r7, #0xd88] - mov r0, #0x10 - str r0, [r4, #0xc0c] - str r5, [r7, #0x80] - b _02068FF4 -_02068EB0: - add r0, r7, r5, lsl #1 - ldrsh r0, [r0, #0xc] - mov r2, #0 - mov r1, #7 - mov r0, r0, lsl #0x18 - mov r3, r0, asr #0x18 - mov r0, #0xb0 - mla r6, r3, r0, r8 - add r0, r6, #4 - strb r2, [sp, #0x46] - strb r2, [sp, #0x48] - str r0, [sp, #8] - strh r2, [sp, #0x10] - strh r2, [sp, #0x12] - strh r2, [sp, #0x14] - strh r2, [sp, #0x16] - strb r1, [sp, #0x1a] - str r2, [sp, #0x5c] - str r6, [sp, #0x64] - bl GetLanguageType - ldrsb r1, [r6, #0x1c] - cmp r1, r0 - movne r0, #0 - strne r0, [sp, #0xc] - strne r0, [sp, #0x54] - strne r0, [sp, #0x58] - bne _02068F34 - add r2, r6, #0x1d - add r1, r6, #0x32 - add r0, r6, #0x56 - str r2, [sp, #0xc] - str r1, [sp, #0x54] - str r0, [sp, #0x58] -_02068F34: - ldr r0, [sp, #0x54] - mov r1, #1 - cmp r0, #0 - ldrneh r0, [r0] - cmpne r0, #0 - movne r1, #0 - cmp r1, #0 - movne r1, #0 - moveq r1, #6 - ldrb r0, [r6] - strb r1, [sp, #0x44] - cmp r0, #6 - addls pc, pc, r0, lsl #2 - b _02068FAC -_02068F6C: ; jump table - b _02068FAC ; case 0 - b _02068FA0 ; case 1 - b _02068FA0 ; case 2 - b _02068FAC ; case 3 - b _02068F88 ; case 4 - b _02068F94 ; case 5 - b _02068F94 ; case 6 -_02068F88: - mov r0, #3 - strb r0, [sp, #0x47] - b _02068FB4 -_02068F94: - mov r0, #4 - strb r0, [sp, #0x47] - b _02068FB4 -_02068FA0: - mov r0, #1 - strb r0, [sp, #0x47] - b _02068FB4 -_02068FAC: - mov r0, #2 - strb r0, [sp, #0x47] -_02068FB4: - ldr r1, [r7, #0x80] - mov r0, #0x68 - mla r0, r1, r0, r7 - add lr, sp, #0 - add ip, r0, #0x84 - mov r6, #6 -_02068FCC: - ldmia lr!, {r0, r1, r2, r3} - stmia ip!, {r0, r1, r2, r3} - subs r6, r6, #1 - bne _02068FCC - ldmia lr, {r0, r1} - stmia ip, {r0, r1} - ldr r0, [r7, #0x80] - add r5, r5, #1 - add r0, r0, #1 - str r0, [r7, #0x80] -_02068FF4: - ldr r0, [r7, #0x6c] - cmp r5, r0 - blt _02068EB0 - mov r0, #0x10 - str r0, [r4, #0xc0c] - mov r0, #0x1a - str r0, [r4, #0xc04] - add sp, sp, #0x68 - ldmia sp!, {r4, r5, r6, r7, r8, pc} - .align 2, 0 -_02069018: .word _020B0B2C - arm_func_end sub_02068E7C - - arm_func_start sub_0206901C -sub_0206901C: ; 0x0206901C - stmdb sp!, {r3, lr} - ldr r0, _02069070 ; =_020B0B2C - mov r1, #0 - ldr r0, [r0, #0x14] - add r2, r0, #0xe20 - mov r0, r1 -_02069034: - strb r0, [r2, r1] - add r1, r1, #1 - cmp r1, #0x20 - blt _02069034 - ldr r0, _02069070 ; =_020B0B2C - mov r1, #0x98 - ldr r0, [r0, #0x14] - add r0, r0, #0x188 - add r0, r0, #0xc00 - bl MemZero - ldr r0, _02069070 ; =_020B0B2C - ldr r1, [r0, #0x14] - add r0, r1, #0xe20 - str r0, [r1, #0xde8] - ldmia sp!, {r3, pc} - .align 2, 0 -_02069070: .word _020B0B2C - arm_func_end sub_0206901C - - arm_func_start sub_02069074 -sub_02069074: ; 0x02069074 - stmdb sp!, {r4, lr} - mov r4, r1 - bl AlreadyHaveMission - cmp r0, #0 - movne r0, #3 - strneb r0, [r4] - bl CountJobListMissions - cmp r0, #8 - ldrgeb r0, [r4] - orrge r0, r0, #1 - strgeb r0, [r4] - ldmia sp!, {r4, pc} - arm_func_end sub_02069074 - - arm_func_start sub_020690A4 -sub_020690A4: ; 0x020690A4 - stmdb sp!, {r3, r4, r5, lr} - mov r5, r0 - mov r4, r1 - bl AlreadyHaveMission - cmp r0, #0 - bne _020690CC - mov r0, r5 - bl sub_0205FA38 - cmp r0, #0 - ldmeqia sp!, {r3, r4, r5, pc} -_020690CC: - mov r0, #3 - strb r0, [r4] - ldmia sp!, {r3, r4, r5, pc} - arm_func_end sub_020690A4 - - arm_func_start sub_020690D8 -sub_020690D8: ; 0x020690D8 - stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - sub sp, sp, #0x68 - ldr r3, _020691B4 ; =_020B0B2C - mov sb, r0 - ldr r6, [r3, #0x14] - mov r8, r1 - mov r7, r2 - bl sub_0206901C - mov r5, #0 - str r5, [r6, #0x80] - add r4, r6, #0xe20 - mov fp, #0x68 - b _02069188 -_0206910C: - add r0, r6, r5, lsl #1 - ldrsh r0, [r0, #0xc] - add r1, sp, #0 - add sl, sb, r0, lsl #5 - mov r0, sl - bl GenerateMissionDetailsStruct - mov r0, sl - add r1, sp, #0x47 - add r2, sp, #0x48 - mov r3, r7 - bl sub_02069958 - cmp r8, #0 - beq _0206914C - mov r0, sl - add r1, r4, r5 - blx r8 -_0206914C: - ldr r1, [r6, #0x80] - add sl, sp, #0 - mla r0, r1, fp, r6 - add lr, r0, #0x84 - mov ip, #6 -_02069160: - ldmia sl!, {r0, r1, r2, r3} - stmia lr!, {r0, r1, r2, r3} - subs ip, ip, #1 - bne _02069160 - ldmia sl, {r0, r1} - stmia lr, {r0, r1} - ldr r0, [r6, #0x80] - add r5, r5, #1 - add r0, r0, #1 - str r0, [r6, #0x80] -_02069188: - ldr r0, [r6, #0x6c] - cmp r5, r0 - blt _0206910C - mov r0, #0 - str r0, [r6, #0xd88] - mov r0, #0x10 - str r0, [r6, #0xd94] - mov r0, #0x1a - str r0, [r6, #0xd8c] - add sp, sp, #0x68 - ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_020691B4: .word _020B0B2C - arm_func_end sub_020690D8 - - arm_func_start sub_020691B8 -sub_020691B8: ; 0x020691B8 - stmdb sp!, {lr} - sub sp, sp, #0xc - ldr r2, _020692A8 ; =_020B0B2C - mvn r1, #1 - ldr ip, [r2, #0x14] - ldrsb r0, [ip, #0x7d] - cmp r0, r1 - bne _0206926C - ldr r0, [ip, #8] - mov r3, #4 - str r0, [ip, #0xd88] - ldr lr, [r2, #0x14] - ldr r0, _020692AC ; =_020A9288 - ldr r1, [lr, #0xe40] - add r2, lr, #0x188 - str r1, [sp] - ldr ip, [lr, #0x80] - ldr r1, _020692B0 ; =0x00441E33 - str ip, [sp, #4] - str r3, [sp, #8] - ldr r3, [lr, #0xe44] - add r2, r2, #0xc00 - bl CreateCollectionMenu - ldr r3, _020692A8 ; =_020B0B2C - mov r1, #0 - ldr ip, [r3, #0x14] - mov r2, #0xc - strb r0, [ip, #0x7d] - ldr r0, [r3, #0x14] - ldrsb r0, [r0, #0x7d] - bl sub_0202C6F0 - ldr r0, _020692A8 ; =_020B0B2C - mov r1, #1 - ldr r0, [r0, #0x14] - ldrsb r0, [r0, #0x7d] - bl SetCollectionMenuField0x1B2 - ldr r0, _020692A8 ; =_020B0B2C - ldr r1, [r0, #0x14] - ldrb r0, [r1, #0x7c] - cmp r0, #0 - bne _02069290 - ldrsb r0, [r1, #0x7d] - mov r1, #1 - bl sub_0202D07C - b _02069290 -_0206926C: - ldrb r1, [ip, #0xd84] - cmp r1, #0 - beq _0206928C - ldr r1, [ip, #0x80] - mov r2, #4 - mov r3, #0 - bl sub_0202C654 - b _02069290 -_0206928C: - bl sub_0202C620 -_02069290: - ldr r0, _020692A8 ; =_020B0B2C - mov r1, #0 - ldr r0, [r0, #0x14] - strb r1, [r0, #0xd84] - add sp, sp, #0xc - ldmia sp!, {pc} - .align 2, 0 -_020692A8: .word _020B0B2C -_020692AC: .word _020A9288 -_020692B0: .word 0x00441E33 - arm_func_end sub_020691B8 - - arm_func_start sub_020692B4 -sub_020692B4: ; 0x020692B4 - stmdb sp!, {r3, lr} - ldr r0, _020692F8 ; =_020B0B2C - mvn r1, #1 - ldr r0, [r0, #0x14] - ldrsb r0, [r0, #0x7d] - cmp r0, r1 - ldmeqia sp!, {r3, pc} - bl sub_0202836C - ldr r0, _020692F8 ; =_020B0B2C - ldr r0, [r0, #0x14] - ldrsb r0, [r0, #0x7d] - bl CloseCollectionMenu - ldr r0, _020692F8 ; =_020B0B2C - mvn r1, #1 - ldr r0, [r0, #0x14] - strb r1, [r0, #0x7d] - ldmia sp!, {r3, pc} - .align 2, 0 -_020692F8: .word _020B0B2C - arm_func_end sub_020692B4 - - arm_func_start sub_020692FC -sub_020692FC: ; 0x020692FC - stmdb sp!, {r3, lr} - ldr r0, _02069378 ; =_020B0B2C - ldr r0, [r0, #0x14] - ldr r1, [r0, #4] - sub r0, r1, #0xe - cmp r0, #3 - bhi _02069328 - bl sub_02069444 - mov r1, #1 - bl CreateJobSummary - ldmia sp!, {r3, pc} -_02069328: - cmp r1, #0xa - cmpne r1, #0xb - cmpne r1, #0xc - cmpne r1, #0xd - beq _02069348 - sub r0, r1, #0x14 - cmp r0, #1 - bhi _02069358 -_02069348: - bl sub_02069444 - mov r1, #0 - bl CreateJobSummary - ldmia sp!, {r3, pc} -_02069358: - cmp r1, #0x13 - bne _0206936C - bl sub_0206941C - bl sub_02069790 - ldmia sp!, {r3, pc} -_0206936C: - bl sub_020693EC - bl sub_02069790 - ldmia sp!, {r3, pc} - .align 2, 0 -_02069378: .word _020B0B2C - arm_func_end sub_020692FC - - arm_func_start sub_0206937C -sub_0206937C: ; 0x0206937C - stmdb sp!, {r3, lr} - ldr r0, _020693E8 ; =_020B0B2C - ldr r0, [r0, #0x14] - ldr r1, [r0, #4] - cmp r1, #0xa - cmpne r1, #0xb - cmpne r1, #0xc - cmpne r1, #0xd - cmpne r1, #0xe - cmpne r1, #0xf - cmpne r1, #0x10 - cmpne r1, #0x11 - beq _020693BC - sub r0, r1, #0x14 - cmp r0, #1 - bhi _020693C8 -_020693BC: - bl sub_02069444 - bl sub_02069894 - ldmia sp!, {r3, pc} -_020693C8: - cmp r1, #0x13 - bne _020693DC - bl sub_0206941C - bl sub_02069870 - ldmia sp!, {r3, pc} -_020693DC: - bl sub_020693EC - bl sub_02069870 - ldmia sp!, {r3, pc} - .align 2, 0 -_020693E8: .word _020B0B2C - arm_func_end sub_0206937C - - arm_func_start sub_020693EC -sub_020693EC: ; 0x020693EC - ldr r1, _02069414 ; =_020B0B2C - ldr r0, _02069418 ; =_020B0A54 - ldr r3, [r1, #0x14] - ldr r2, [r0] - ldr r1, [r3, #8] - mov r0, #0xb0 - add r1, r3, r1, lsl #1 - ldrsh r1, [r1, #0xc] - smlabb r0, r1, r0, r2 - bx lr - .align 2, 0 -_02069414: .word _020B0B2C -_02069418: .word _020B0A54 - arm_func_end sub_020693EC - - arm_func_start sub_0206941C -sub_0206941C: ; 0x0206941C - ldr r1, _02069440 ; =_020B0B2C - mov r0, #0xb0 - ldr r3, [r1, #0x14] - ldr r1, [r3, #8] - ldr r2, [r3, #0x74] - add r1, r3, r1, lsl #1 - ldrsh r1, [r1, #0xc] - smlabb r0, r1, r0, r2 - bx lr - .align 2, 0 -_02069440: .word _020B0B2C - arm_func_end sub_0206941C - - arm_func_start sub_02069444 -sub_02069444: ; 0x02069444 - stmdb sp!, {r3, lr} - ldr r0, _02069558 ; =_020B0B2C - ldr r2, [r0, #0x14] - ldr r0, [r2, #4] - sub r0, r0, #0xa - cmp r0, #0xb - addls pc, pc, r0, lsl #2 - b _02069550 -_02069464: ; jump table - b _02069494 ; case 0 - b _020694B0 ; case 1 - b _020694CC ; case 2 - b _020694E8 ; case 3 - b _02069504 ; case 4 - b _02069504 ; case 5 - b _02069504 ; case 6 - b _02069504 ; case 7 - b _02069550 ; case 8 - b _02069550 ; case 9 - b _02069520 ; case 10 - b _02069538 ; case 11 -_02069494: - ldr r0, [r2, #8] - add r0, r2, r0, lsl #1 - ldrsh r0, [r0, #0xc] - mov r0, r0, lsl #0x18 - mov r0, r0, asr #0x18 - bl sub_0205E970 - ldmia sp!, {r3, pc} -_020694B0: - ldr r0, [r2, #8] - add r0, r2, r0, lsl #1 - ldrsh r0, [r0, #0xc] - mov r0, r0, lsl #0x18 - mov r0, r0, asr #0x18 - bl sub_0205EAE8 - ldmia sp!, {r3, pc} -_020694CC: - ldr r0, [r2, #8] - add r0, r2, r0, lsl #1 - ldrsh r0, [r0, #0xc] - mov r0, r0, lsl #0x18 - mov r0, r0, asr #0x18 - bl sub_0205EBD8 - ldmia sp!, {r3, pc} -_020694E8: - ldr r0, [r2, #8] - add r0, r2, r0, lsl #1 - ldrsh r0, [r0, #0xc] - mov r0, r0, lsl #0x18 - mov r0, r0, asr #0x18 - bl sub_0205EC38 - ldmia sp!, {r3, pc} -_02069504: - ldr r0, [r2, #8] - add r0, r2, r0, lsl #1 - ldrsh r0, [r0, #0xc] - mov r0, r0, lsl #0x18 - mov r0, r0, asr #0x18 - bl GetAcceptedMission - ldmia sp!, {r3, pc} -_02069520: - ldr r0, [r2, #8] - ldr r1, [r2, #0x74] - add r0, r2, r0, lsl #1 - ldrsh r0, [r0, #0xc] - add r0, r1, r0, lsl #5 - ldmia sp!, {r3, pc} -_02069538: - ldr r0, [r2, #8] - ldr r1, [r2, #0x74] - add r0, r2, r0, lsl #1 - ldrsh r0, [r0, #0xc] - add r0, r1, r0, lsl #5 - ldmia sp!, {r3, pc} -_02069550: - mov r0, #0 - ldmia sp!, {r3, pc} - .align 2, 0 -_02069558: .word _020B0B2C - arm_func_end sub_02069444 - - arm_func_start sub_0206955C -sub_0206955C: ; 0x0206955C - stmdb sp!, {r3, lr} - ldr r0, _02069594 ; =_020B0B2C - mvn r1, #1 - ldr r0, [r0, #0x14] - add r0, r0, #0xd00 - ldrsb r0, [r0, #0x85] - cmp r0, r1 - ldmeqia sp!, {r3, pc} - bl ClosePortraitBox - ldr r0, _02069594 ; =_020B0B2C - mvn r1, #1 - ldr r0, [r0, #0x14] - strb r1, [r0, #0xd85] - ldmia sp!, {r3, pc} - .align 2, 0 -_02069594: .word _020B0B2C - arm_func_end sub_0206955C - - arm_func_start sub_02069598 -sub_02069598: ; 0x02069598 - stmdb sp!, {r4, r5, r6, lr} - ldr r1, _0206965C ; =_020B0B2C - tst r0, #0x400 - ldr r5, [r1, #0x14] - beq _02069654 - ldrsb r0, [r5, #0x7d] - ldr r6, [r5, #8] - bl GetWindowIdSelectedMenuItemIdx - ldr r1, [r5, #8] - cmp r1, r0 - bne _0206964C - add r4, r5, #0x4c - ldrb r0, [r4, r6] - cmp r0, #0 - beq _02069600 - mov r0, #6 - bl PlaySeVolumeWrapper - mov r0, #0 - strb r0, [r4, r6] - bl sub_020674E8 - cmp r0, #0 - bne _02069644 - ldrsb r0, [r5, #0x7d] - mov r1, #0 - bl sub_0202D07C - b _02069644 -_02069600: - ldr r0, [r5, #0x78] - cmp r0, #0 - blt _0206961C - bl sub_020674E8 - ldr r1, [r5, #0x78] - cmp r0, r1 - bhs _0206963C -_0206961C: - mov r0, #6 - bl PlaySeVolumeWrapper - ldrsb r0, [r5, #0x7d] - mov r1, #1 - bl sub_0202D07C - mov r0, #1 - strb r0, [r4, r6] - b _02069644 -_0206963C: - mov r0, #2 - bl PlaySeVolumeWrapper -_02069644: - mov r0, #1 - ldmia sp!, {r4, r5, r6, pc} -_0206964C: - mov r0, #3 - bl PlaySeVolumeWrapper -_02069654: - mov r0, #0 - ldmia sp!, {r4, r5, r6, pc} - .align 2, 0 -_0206965C: .word _020B0B2C - arm_func_end sub_02069598 - - arm_func_start ChooseMissionTitle -ChooseMissionTitle: ; 0x02069660 - stmdb sp!, {r3, r4, r5, lr} - ldr r3, _020696E4 ; =_020B0B2C - mov r5, r0 - ldr r0, [r3, #0x14] - add r0, r0, r1 - ldrb r0, [r0, #0x4c] - cmp r0, #0 - movne r0, #1 - moveq r0, #0 - str r0, [r2] - mov r0, #0x68 - mul r4, r1, r0 - ldr r0, _020696E4 ; =_020B0B2C - ldr r0, [r0, #0x14] - add r0, r0, r4 - ldr r0, [r0, #0xe0] - cmp r0, #0 - beq _020696C4 - bl IsMissionTypeSpecialEpisode - cmp r0, #0 - beq _020696C4 - mov r0, r5 - bl FormatSpecialEpisodeMissionHeader - mov r0, r5 - ldmia sp!, {r3, r4, r5, pc} -_020696C4: - ldr r1, _020696E4 ; =_020B0B2C - mov r0, r5 - ldr r1, [r1, #0x14] - add r1, r1, #0x84 - add r1, r1, r4 - bl FormatMissionHeader - mov r0, r5 - ldmia sp!, {r3, r4, r5, pc} - .align 2, 0 -_020696E4: .word _020B0B2C - arm_func_end ChooseMissionTitle - - arm_func_start sub_020696E8 -sub_020696E8: ; 0x020696E8 - stmdb sp!, {r3, r4, lr} - sub sp, sp, #0x154 - mov r4, r0 - add r0, sp, #0x104 - bl InitPreprocessorArgs - bl CountJobListMissions - str r0, [sp, #0x128] - mov r0, #8 - str r0, [sp, #0x12c] - add r3, sp, #0x104 - str r3, [sp] - ldr r2, _0206974C ; =0x00003813 - add r0, sp, #4 - mov r1, #0x100 - mov r3, #0 - bl PreprocessStringFromId - mov r0, r4 - mov r1, #0 - mov r2, #3 - add r3, sp, #4 - bl DrawTextInWindow - mov r0, r4 - bl UpdateWindow - add sp, sp, #0x154 - ldmia sp!, {r3, r4, pc} - .align 2, 0 -#if defined(EUROPE) -_0206974C: .word 0x00003815 -#elif defined(JAPAN) -_0206974C: .word 0x00003451 -#else -_0206974C: .word 0x00003813 -#endif - arm_func_end sub_020696E8 - - arm_func_start sub_02069750 -sub_02069750: ; 0x02069750 - stmdb sp!, {r4, lr} - sub sp, sp, #0x100 - ldr r1, _0206978C ; =0x00003814 - mov r4, r0 - add r0, sp, #0 - bl GetStringFromFileVeneer - add r3, sp, #0 - mov r0, r4 - mov r1, #0 - mov r2, #3 - bl DrawTextInWindow - mov r0, r4 - bl UpdateWindow - add sp, sp, #0x100 - ldmia sp!, {r4, pc} - .align 2, 0 -#if defined(EUROPE) -_0206978C: .word 0x00003816 -#elif defined(JAPAN) -_0206978C: .word 0x00003452 -#else -_0206978C: .word 0x00003814 -#endif - arm_func_end sub_02069750 - - arm_func_start sub_02069790 -sub_02069790: ; 0x02069790 - stmdb sp!, {r4, lr} - mov r4, r0 - mov r0, #0x14 - mov r1, #8 - bl MemAlloc - ldr r2, _020697F4 ; =_020B0B44 - mov r1, #0x14 - str r0, [r2] - bl MemZero - ldr r0, _020697F4 ; =_020B0B44 - mov ip, #0 - ldr r2, [r0] - ldr r1, _020697F8 ; =JOB_WINDOW_PARAMS_2 - str r4, [r2] - ldr r3, [r0] - ldr r2, _020697FC ; =sub_02069AEC - strh ip, [r3, #8] - ldr r0, [r0] - add r0, r0, #0xc - bl sub_0204707C - ldr r0, _020697F4 ; =_020B0B44 - mov r1, #0 - ldr r0, [r0] - strb r1, [r0, #0x10] - ldmia sp!, {r4, pc} - .align 2, 0 -_020697F4: .word _020B0B44 -_020697F8: .word JOB_WINDOW_PARAMS_2 -_020697FC: .word sub_02069AEC - arm_func_end sub_02069790 - - arm_func_start CreateJobSummary -CreateJobSummary: ; 0x02069800 - stmdb sp!, {r3, r4, r5, lr} - mov r5, r0 - mov r4, r1 - mov r0, #0x14 - mov r1, #8 - bl MemAlloc - ldr r2, _02069864 ; =_020B0B44 - mov r1, #0x14 - str r0, [r2] - bl MemZero - ldr r0, _02069864 ; =_020B0B44 - mov ip, #0 - ldr r2, [r0] - ldr r1, _02069868 ; =JOB_WINDOW_PARAMS_2 - str r5, [r2, #4] - ldr r3, [r0] - ldr r2, _0206986C ; =sub_02069CC0 - strh ip, [r3, #8] - ldr r0, [r0] - add r0, r0, #0xc - bl sub_0204707C - ldr r0, _02069864 ; =_020B0B44 - ldr r0, [r0] - strb r4, [r0, #0x10] - ldmia sp!, {r3, r4, r5, pc} - .align 2, 0 -_02069864: .word _020B0B44 -_02069868: .word JOB_WINDOW_PARAMS_2 -_0206986C: .word sub_02069CC0 - arm_func_end CreateJobSummary - - arm_func_start sub_02069870 -sub_02069870: ; 0x02069870 - ldr r1, _0206988C ; =_020B0B44 - ldr ip, _02069890 ; =sub_02047188 - ldr r2, [r1] - str r0, [r2] - ldr r0, [r1] - add r0, r0, #0xc - bx ip - .align 2, 0 -_0206988C: .word _020B0B44 -_02069890: .word sub_02047188 - arm_func_end sub_02069870 - - arm_func_start sub_02069894 -sub_02069894: ; 0x02069894 - ldr r1, _020698B0 ; =_020B0B44 - ldr ip, _020698B4 ; =sub_02047188 - ldr r2, [r1] - str r0, [r2, #4] - ldr r0, [r1] - add r0, r0, #0xc - bx ip - .align 2, 0 -_020698B0: .word _020B0B44 -_020698B4: .word sub_02047188 - arm_func_end sub_02069894 - - arm_func_start sub_020698B8 -sub_020698B8: ; 0x020698B8 - stmdb sp!, {r3, lr} - ldr r0, _02069900 ; =_020B0B44 - ldr r0, [r0] - cmp r0, #0 - ldrne r0, [r0, #0xc] - cmpne r0, #0 - beq _020698F8 - bl sub_020470D0 - ldr r0, _02069900 ; =_020B0B44 - ldr r0, [r0] - ldr r0, [r0, #0xc] - bl sub_02047148 - mvn r1, #0 - cmp r0, r1 - moveq r0, #1 - ldmeqia sp!, {r3, pc} -_020698F8: - mov r0, #0 - ldmia sp!, {r3, pc} - .align 2, 0 -_02069900: .word _020B0B44 - arm_func_end sub_020698B8 - - arm_func_start sub_02069904 -sub_02069904: ; 0x02069904 - stmdb sp!, {r3, lr} - ldr r0, _0206993C ; =_020B0B44 - ldr r0, [r0] - cmp r0, #0 - ldmeqia sp!, {r3, pc} - add r0, r0, #0xc - bl sub_02047150 - ldr r0, _0206993C ; =_020B0B44 - ldr r0, [r0] - bl MemFree - ldr r0, _0206993C ; =_020B0B44 - mov r1, #0 - str r1, [r0] - ldmia sp!, {r3, pc} - .align 2, 0 -_0206993C: .word _020B0B44 - arm_func_end sub_02069904 - - arm_func_start sub_02069940 -sub_02069940: ; 0x02069940 - ldr r1, _02069954 ; =_020B0B44 - ldr r1, [r1] - cmp r1, #0 - strneh r0, [r1, #8] - bx lr - .align 2, 0 -_02069954: .word _020B0B44 - arm_func_end sub_02069940 - - arm_func_start sub_02069958 -sub_02069958: ; 0x02069958 - stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, lr} - mov sb, r0 - mov r8, r1 - mov r7, r2 - mov r6, r3 - mov r5, #0 - b _02069AD0 -_02069974: - mov r0, r5, lsl #0x18 - mov r0, r0, asr #0x18 - bl GetAcceptedMission - mov r4, r0 - ldrb r0, [r4] - cmp r0, #0 - beq _02069ACC - ldrb r1, [sb, #1] - ldrb r0, [r4, #1] - cmp r1, r0 - ldreqb r1, [sb, #2] - ldreqb r0, [r4, #2] - cmpeq r1, r0 - ldreqb r1, [sb, #4] - ldreqb r0, [r4, #4] - cmpeq r1, r0 - ldreqb r1, [sb, #5] - ldreqb r0, [r4, #5] - cmpeq r1, r0 - ldreq r1, [sb, #8] - ldreq r0, [r4, #8] - cmpeq r1, r0 - ldreqsh r1, [sb, #0xe] - ldreqsh r0, [r4, #0xe] - cmpeq r1, r0 - ldreqsh r1, [sb, #0x10] - ldreqsh r0, [r4, #0x10] - cmpeq r1, r0 - ldreqsh r1, [sb, #0x12] - ldreqsh r0, [r4, #0x12] - cmpeq r1, r0 - ldreqsh r1, [sb, #0x14] - ldreqsh r0, [r4, #0x14] - cmpeq r1, r0 - ldreqb r0, [sb, #0x16] - ldreqb r1, [r4, #0x16] - cmpeq r0, r1 - bne _02069ACC - add r1, sb, #0x18 - add r2, r4, #0x18 - bl sub_0205C870 - cmp r0, #0 - beq _02069ACC - add r0, sb, #0x1a - add r1, r4, #0x1a - bl sub_0205C8E0 - cmp r0, #0 - beq _02069ACC - ldrb r0, [r4] - sub r0, r0, #4 - cmp r0, #4 - addls pc, pc, r0, lsl #2 - b _02069AA4 -_02069A48: ; jump table - b _02069A5C ; case 0 - b _02069A6C ; case 1 - b _02069A88 ; case 2 - b _02069A6C ; case 3 - b _02069A6C ; case 4 -_02069A5C: - mov r0, #1 - strb r0, [r8] - strb r0, [r7] - b _02069ABC -_02069A6C: - cmp r6, #0 - movne r0, #3 - moveq r0, #1 - strb r0, [r8] - mov r0, #2 - strb r0, [r7] - b _02069ABC -_02069A88: - cmp r6, #0 - movne r0, #0 - moveq r0, #1 - strb r0, [r8] - mov r0, #3 - strb r0, [r7] - b _02069ABC -_02069AA4: - cmp r6, #0 - movne r0, #0 - moveq r0, #1 - strb r0, [r8] - mov r0, #0 - strb r0, [r7] -_02069ABC: - cmp r6, #0 - moveq r0, #0 - streqb r0, [r7] - ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc} -_02069ACC: - add r5, r5, #1 -_02069AD0: - cmp r5, #8 - blt _02069974 - mov r0, #2 - strb r0, [r8] - mov r0, #0 - strb r0, [r7] - ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc} - arm_func_end sub_02069958 - - arm_func_start sub_02069AEC -sub_02069AEC: ; 0x02069AEC - stmdb sp!, {r3, r4, r5, lr} - sub sp, sp, #0x68 - ldr r1, _02069CBC ; =_020B0B44 - mov r2, #0 - ldr r1, [r1] - mov r5, r0 - ldr r4, [r1] - add r0, r4, #4 - strb r2, [sp, #0x46] - strh r2, [sp, #0x10] - strh r2, [sp, #0x12] - strh r2, [sp, #0x14] - strh r2, [sp, #0x16] - str r2, [sp, #0x5c] - str r4, [sp, #0x64] - str r0, [sp, #8] - ldrsh r0, [r4, #0xa2] - cmp r0, #0 - moveq r0, #7 - streqb r0, [sp, #0x1a] - beq _02069B60 - mov r0, #2 - strb r0, [sp, #0x1a] - ldrh r0, [r4, #0x9e] - strh r0, [sp, #0x28] - ldrh r0, [r4, #0xa0] - strh r0, [sp, #0x2a] - ldrh r0, [r4, #0xa2] - strh r0, [sp, #0x2c] -_02069B60: - bl GetLanguageType - ldrsb r1, [r4, #0x1c] - cmp r1, r0 - movne r0, #0 - strne r0, [sp, #0xc] - strne r0, [sp, #0x54] - strne r0, [sp, #0x58] - bne _02069B98 - add r2, r4, #0x1d - add r1, r4, #0x32 - add r0, r4, #0x56 - str r2, [sp, #0xc] - str r1, [sp, #0x54] - str r0, [sp, #0x58] -_02069B98: - ldrb r0, [r4] - cmp r0, #7 - addls pc, pc, r0, lsl #2 - b _02069C00 -_02069BA8: ; jump table - b _02069C00 ; case 0 - b _02069C00 ; case 1 - b _02069C00 ; case 2 - b _02069C00 ; case 3 - b _02069C00 ; case 4 - b _02069BC8 ; case 5 - b _02069BF4 ; case 6 - b _02069BC8 ; case 7 -_02069BC8: - ldr r0, _02069CBC ; =_020B0B44 - ldr r1, [r0] - ldrsh r0, [r1, #8] - cmp r0, #0 - movne r0, #6 - strneb r0, [sp, #0x1a] - ldrnesh r0, [r1, #8] - strneh r0, [sp, #0x3c] - mov r0, #0 - strb r0, [sp, #0x48] - b _02069C50 -_02069BF4: - mov r0, #0 - strb r0, [sp, #0x48] - b _02069C50 -_02069C00: - ldrb r0, [r4, #0xae] - bl sub_0205BD40 - cmp r0, #0 - beq _02069C24 - cmp r0, #1 - beq _02069C30 - cmp r0, #2 - beq _02069C3C - b _02069C48 -_02069C24: - mov r0, #6 - strb r0, [sp, #0x48] - b _02069C50 -_02069C30: - mov r0, #4 - strb r0, [sp, #0x48] - b _02069C50 -_02069C3C: - mov r0, #5 - strb r0, [sp, #0x48] - b _02069C50 -_02069C48: - mov r0, #0 - strb r0, [sp, #0x48] -_02069C50: - ldr r0, [sp, #0x54] - mov r1, #1 - cmp r0, #0 - ldrneh r0, [r0] - cmpne r0, #0 - movne r1, #0 - cmp r1, #0 - movne r1, #0 - moveq r1, #6 - ldr r0, [sp, #0x58] - strb r1, [sp, #0x44] - cmp r0, #0 - ldrneh r0, [r0] - mov r1, #1 - cmpne r0, #0 - movne r1, #0 - cmp r1, #0 - movne r2, #0 - moveq r2, #9 - add r0, sp, #0 - mov r1, r5 - strb r2, [sp, #0x45] - bl MakeMissionDetails - mov r0, r5 - bl UpdateWindow - add sp, sp, #0x68 - ldmia sp!, {r3, r4, r5, pc} - .align 2, 0 -_02069CBC: .word _020B0B44 - arm_func_end sub_02069AEC - - arm_func_start sub_02069CC0 -sub_02069CC0: ; 0x02069CC0 - stmdb sp!, {r4, r5, r6, lr} - sub sp, sp, #0x68 - ldr r1, _02069D3C ; =_020B0B44 - mov r6, r0 - ldr r0, [r1] - ldr r4, [r0, #4] - ldrb r5, [r0, #0x10] - mov r0, r4 - bl IsMissionTypeSpecialEpisode - cmp r0, #0 - beq _02069CFC - mov r0, r6 - mov r1, r4 - bl MakeSpecialEpisodeMissionDetails - b _02069D2C -_02069CFC: - add r1, sp, #0 - mov r0, r4 - bl GenerateMissionDetailsStruct - add r1, sp, #0x47 - add r2, sp, #0x48 - mov r0, r4 - mov r3, r5 - bl sub_02069958 - add r0, sp, #0 - mov r1, r6 - str r4, [sp, #0x5c] - bl MakeMissionDetails -_02069D2C: - mov r0, r6 - bl UpdateWindow - add sp, sp, #0x68 - ldmia sp!, {r4, r5, r6, pc} - .align 2, 0 -_02069D3C: .word _020B0B44 - arm_func_end sub_02069CC0 - - arm_func_start sub_02069D40 -sub_02069D40: ; 0x02069D40 - stmdb sp!, {r4, lr} - mov r4, r0 - mov r0, #0xc4 - mov r1, #8 - bl MemAlloc - ldr r2, _02069D90 ; =_020B0B48 - mov r1, #0xc4 - str r0, [r2] - bl MemZero - ldr r0, _02069D90 ; =_020B0B48 - mov r2, #0 - ldr r1, [r0] - str r2, [r1] - ldr r1, [r0] - strh r4, [r1, #0xc0] - ldr r1, [r0] - add r0, r1, #0x37 - bic r0, r0, #0x1f - str r0, [r1, #0x14] - ldmia sp!, {r4, pc} - .align 2, 0 -_02069D90: .word _020B0B48 - arm_func_end sub_02069D40 - - arm_func_start sub_02069D94 -sub_02069D94: ; 0x02069D94 - stmdb sp!, {r3, lr} - ldr r0, _02069DBC ; =_020B0B48 - ldr r0, [r0] - cmp r0, #0 - ldmeqia sp!, {r3, pc} - bl MemFree - ldr r0, _02069DBC ; =_020B0B48 - mov r1, #0 - str r1, [r0] - ldmia sp!, {r3, pc} - .align 2, 0 -_02069DBC: .word _020B0B48 - arm_func_end sub_02069D94 - - arm_func_start sub_02069DC0 -sub_02069DC0: ; 0x02069DC0 - stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} - sub sp, sp, #0x20c - ldr r0, _0206A5E0 ; =_020B0B48 - ldr r5, [r0] - ldr r1, [r5] - cmp r1, #0x3000 - bgt _02069E30 - bge _0206A388 - ldr r0, _0206A5E4 ; =0x00001001 - cmp r1, r0 - bgt _02069E10 - cmp r1, #0x1000 - blt _02069E04 - beq _0206A0AC - cmp r1, r0 - beq _0206A104 - b _0206A5D4 -_02069E04: - cmp r1, #0 - beq _02069E84 - b _0206A5D4 -_02069E10: - cmp r1, #0x2000 - bgt _02069E20 - beq _0206A464 - b _0206A5D4 -_02069E20: - add r0, r0, #0x1000 - cmp r1, r0 - beq _0206A490 - b _0206A5D4 -_02069E30: - cmp r1, #0x4000 - bgt _02069E4C - bge _0206A4A4 - ldr r0, _0206A5E8 ; =0x00003001 - cmp r1, r0 - beq _0206A3A0 - b _0206A5D4 -_02069E4C: - ldr r0, _0206A5EC ; =0x00004004 - cmp r1, r0 - bgt _02069E78 - sub r0, r0, #3 - subs r0, r1, r0 - addpl pc, pc, r0, lsl #2 - b _0206A5D4 -_02069E68: ; jump table - b _0206A4F8 ; case 0 - b _0206A4C4 ; case 1 - b _0206A584 ; case 2 - b _0206A5B0 ; case 3 -_02069E78: - cmp r1, #0x8000 - beq _0206A5C4 - b _0206A5D4 -_02069E84: - add r4, r5, #0x58 - add r5, r5, #0x90 - bl ov03_0233CAA8 - cmp r0, #1 - bne _02069F90 - ldr r0, _0206A5E0 ; =_020B0B48 - ldr r1, [r0] - cmp r1, #0 - movne r0, #1 - strne r0, [r1, #0xc] - mov r0, r4 - mov r1, #0x38 - bl MemZero - mov r0, r5 - mov r1, #0x18 - bl MemZero - ldr r1, _0206A5E0 ; =_020B0B48 - mov r2, #0x18 - ldr r0, [r1] - mov r6, #0x38 - str r2, [r0, #0xa8] - ldr r0, [r1] - ldr r3, _0206A5F0 ; =sub_0206A628 - str r5, [r0, #0xac] - ldr r2, [r1] - mov r0, #0 - str r6, [r2, #0xb0] - ldr r2, [r1] - mov r8, #1 - str r4, [r2, #0xb4] - ldr r2, [r1] - mov r7, #9 - str r3, [r2, #0xb8] - ldr r2, [r1] - mov r3, #0x12 - strb r0, [r2, #0xbc] - ldr r6, [r1] - mov r2, #0x11 - strb r8, [r6, #0x10] - ldr r6, [r1] - ldr r6, [r6, #0x14] - strb r7, [r6] - ldr r1, [r1] - ldr r1, [r1, #0x14] - strb r0, [r1, #1] - strb r3, [r4] - strb r2, [r5] - bl GetLanguageType - strb r0, [r5, #2] - ldrsb r1, [r5, #2] - add r0, r5, #4 - strb r1, [r4, #2] - bl GetMainTeamNameWithCheck - ldrb r0, [r5, #4] - cmp r0, #0 - bne _02069F6C - add r0, r5, #4 - bl SetQuestionMarks -_02069F6C: - add r0, r5, #4 - mov r1, #0x14 - bl ov01_02337B3C - ldr r1, _0206A5E0 ; =_020B0B48 - strb r0, [r5, #3] - ldr r0, [r1] - mov r1, #0x1000 - str r1, [r0] - b _0206A5D4 -_02069F90: - bl ov03_0233CAA8 - cmp r0, #0 - bne _0206A5D4 - ldr r0, _0206A5E0 ; =_020B0B48 - ldr r1, [r0] - cmp r1, #0 - movne r0, #0 - strne r0, [r1, #0xc] - mov r0, r4 - mov r1, #0x38 - bl MemZero - mov r0, r5 - mov r1, #0x18 - bl MemZero - ldr r0, _0206A5E0 ; =_020B0B48 - ldr r0, [r0] - ldrsh r0, [r0, #0xc0] - mov r0, r0, lsl #0x18 - mov r0, r0, asr #0x18 - bl GetAcceptedMission - mov sl, r0 - add sb, r4, #0x18 - ldmia sl!, {r0, r1, r2, r3} - stmia sb!, {r0, r1, r2, r3} - ldmia sl, {r0, r1, r2, r3} - ldr ip, _0206A5E0 ; =_020B0B48 - stmia sb, {r0, r1, r2, r3} - ldr r0, [ip] - mov r8, #0x38 - str r8, [r0, #0xa8] - ldr r0, [ip] - mov r7, #0x18 - str r4, [r0, #0xac] - ldr r0, [ip] - ldr r6, _0206A5F4 ; =_02337B68 - str r7, [r0, #0xb0] - ldr r0, [ip] - mov lr, #0 - str r5, [r0, #0xb4] - ldr r0, [ip] - mov fp, #9 - str r6, [r0, #0xb8] - ldr r0, [ip] - strb lr, [r0, #0xbc] - ldr r0, [ip] - strb lr, [r0, #0x10] - ldr r0, [ip] - ldr r0, [r0, #0x14] - strb fp, [r0] - ldr r0, [ip] - ldr r0, [r0, #0x14] - strb lr, [r0, #1] - mov r0, #0x12 - strb r0, [r4] - mov r0, #0x11 - strb r0, [r5] - bl GetLanguageType - strb r0, [r5, #2] - ldrsb r1, [r5, #2] - add r0, r4, #4 - strb r1, [r4, #2] - bl GetMainTeamNameWithCheck - add r0, r4, #4 - mov r1, #0x34 - bl ov01_02337B3C - strb r0, [r4, #3] - ldr r0, _0206A5E0 ; =_020B0B48 - mov r1, #0x1000 - ldr r0, [r0] - str r1, [r0] - b _0206A5D4 -_0206A0AC: - add r0, r5, #0xa8 - mov r4, #1 - str r0, [sp, #0xac] - str r4, [sp, #0xa8] - ldr r1, [r5, #0xc] - add r0, sp, #0xa8 - str r1, [sp, #0xb8] - ldrb r3, [r5, #0x10] - mov r2, #0x20 - mov r1, #0 - strb r3, [sp, #0xbc] - ldr r3, [r5, #0x14] - str r3, [sp, #0xc0] - strh r2, [sp, #0xc4] - strb r1, [sp, #0xc6] - str r4, [sp, #0xc8] - bl ov01_02337BA0 - ldr r0, _0206A5E0 ; =_020B0B48 - ldr r1, _0206A5E4 ; =0x00001001 - ldr r0, [r0] - str r1, [r0] - b _0206A5D4 -_0206A104: - bl ov01_02337E0C - movs r4, r0 - beq _0206A5D4 - bl ov01_02337C54 - cmp r4, #0xe - addls pc, pc, r4, lsl #2 - b _0206A5D4 -_0206A120: ; jump table - b _0206A5D4 ; case 0 - b _0206A380 ; case 1 - b _0206A5D4 ; case 2 - b _0206A5D4 ; case 3 - b _0206A15C ; case 4 - b _0206A380 ; case 5 - b _0206A380 ; case 6 - b _0206A380 ; case 7 - b _0206A380 ; case 8 - b _0206A380 ; case 9 - b _0206A380 ; case 10 - b _0206A380 ; case 11 - b _0206A380 ; case 12 - b _0206A380 ; case 13 - b _0206A380 ; case 14 -_0206A15C: - bl ov03_0233CAA8 - cmp r0, #1 - bne _0206A300 - ldr r0, _0206A5E0 ; =_020B0B48 - ldr r0, [r0] - add r0, r0, #0x70 - bl IsMissionTypeSpecialEpisode - cmp r0, #0 - beq _0206A244 - mov r0, #2 - bl IsSpecialEpisodeOpen - cmp r0, #0 - beq _0206A1B0 - ldr r1, _0206A5F8 ; =0x000037A8 - mov r0, #0x1c - bl ov03_0233CDC8 - ldr r0, _0206A5E0 ; =_020B0B48 - ldr r1, _0206A5FC ; =0x00002001 - ldr r0, [r0] - str r1, [r0] - b _0206A5D4 -_0206A1B0: - add r0, sp, #0x1bc - bl InitPreprocessorArgs - mov r0, #2 - mov r1, #1 - bl SetSpecialEpisodeOpen - add r0, sp, #0x7e - mov r1, #0x2a - bl MemZero - ldr r0, _0206A5E0 ; =_020B0B48 - ldr r4, [r0] - bl GetLanguageType - ldrsb r1, [r4, #0x5a] - cmp r1, r0 - add r0, sp, #0x7e - bne _0206A1FC - add r1, r4, #0x5c - mov r2, #0x14 - bl StrncpySimpleNoPadSafe - b _0206A204 -_0206A1FC: - ldr r1, _0206A600 ; =0x000038C9 - bl GetStringFromFileVeneer -_0206A204: - ldr r1, _0206A604 ; =0x0000379F - add r3, sp, #0x7e - add r2, sp, #0x1bc - mov r0, #0x1c - str r3, [sp, #0x1f4] - bl ov03_0233CDD8 - ldr r0, _0206A5E0 ; =_020B0B48 - mov r1, #0 - ldr r0, [r0] - add r0, r0, #0x70 - bl CreateJobSummary - ldr r0, _0206A5E0 ; =_020B0B48 - mov r1, #0x2000 - ldr r0, [r0] - str r1, [r0] - b _0206A5D4 -_0206A244: - ldr r0, _0206A5E0 ; =_020B0B48 - ldr r0, [r0] - add r0, r0, #0x70 - bl AddMissionToJobList - cmp r0, #0 - bne _0206A2EC - bl sub_0205F5A8 - bl sub_0205F710 - add r0, sp, #0x16c - bl InitPreprocessorArgs - add r0, sp, #0x54 - mov r1, #0x2a - bl MemZero - ldr r0, _0206A5E0 ; =_020B0B48 - ldr r4, [r0] - bl GetLanguageType - ldrsb r1, [r4, #0x5a] - cmp r1, r0 - add r0, sp, #0x54 - bne _0206A2A4 - add r1, r4, #0x5c - mov r2, #0x14 - bl StrncpySimpleNoPadSafe - b _0206A2AC -_0206A2A4: - ldr r1, _0206A600 ; =0x000038C9 - bl GetStringFromFileVeneer -_0206A2AC: - ldr r1, _0206A604 ; =0x0000379F - add r3, sp, #0x54 - add r2, sp, #0x16c - mov r0, #0x1c - str r3, [sp, #0x1a4] - bl ov03_0233CDD8 - ldr r0, _0206A5E0 ; =_020B0B48 - mov r1, #0 - ldr r0, [r0] - add r0, r0, #0x70 - bl CreateJobSummary - ldr r0, _0206A5E0 ; =_020B0B48 - mov r1, #0x2000 - ldr r0, [r0] - str r1, [r0] - b _0206A5D4 -_0206A2EC: - ldr r0, _0206A5E0 ; =_020B0B48 - mov r1, #0x3000 - ldr r0, [r0] - str r1, [r0] - b _0206A5D4 -_0206A300: - bl ov03_0233CAA8 - cmp r0, #0 - bne _0206A5D4 - add r0, sp, #0x11c - bl InitPreprocessorArgs - add r0, sp, #0x2a - mov r1, #0x2a - bl MemZero - ldr r0, _0206A5E0 ; =_020B0B48 - ldr r4, [r0] - bl GetLanguageType - ldrsb r1, [r4, #0x92] - cmp r1, r0 - add r0, sp, #0x2a - bne _0206A34C - add r1, r4, #0x94 - mov r2, #0x14 - bl StrncpySimpleNoPadSafe - b _0206A354 -_0206A34C: - ldr r1, _0206A600 ; =0x000038C9 - bl GetStringFromFileVeneer -_0206A354: - ldr r1, _0206A608 ; =0x00003793 - add r3, sp, #0x2a - add r2, sp, #0x11c - mov r0, #0x1c - str r3, [sp, #0x154] - bl ov03_0233CDD8 - ldr r0, _0206A5E0 ; =_020B0B48 - mov r1, #0x8000 - ldr r0, [r0] - str r1, [r0] - b _0206A5D4 -_0206A380: - mov r0, #1 - b _0206A5D8 -_0206A388: - bl ov03_0233CAD8 - ldr r0, _0206A5E0 ; =_020B0B48 - ldr r1, _0206A5E8 ; =0x00003001 - ldr r0, [r0] - str r1, [r0] - b _0206A5D4 -_0206A3A0: - bl ov03_0233CB3C - cmp r0, #2 - bne _0206A450 - bl ov03_0233CB10 - add r0, sp, #0xcc - bl InitPreprocessorArgs - ldr r0, _0206A5E0 ; =_020B0B48 - ldr r0, [r0] - add r0, r0, #0x70 - bl AddMissionToJobList - bl sub_0205F5A8 - bl sub_0205F710 - add r0, sp, #0 - mov r1, #0x2a - bl MemZero - ldr r0, _0206A5E0 ; =_020B0B48 - ldr r4, [r0] - bl GetLanguageType - ldrsb r1, [r4, #0x5a] - cmp r1, r0 - add r0, sp, #0 - bne _0206A408 - add r1, r4, #0x5c - mov r2, #0x14 - bl StrncpySimpleNoPadSafe - b _0206A410 -_0206A408: - ldr r1, _0206A600 ; =0x000038C9 - bl GetStringFromFileVeneer -_0206A410: - ldr r1, _0206A604 ; =0x0000379F - add r3, sp, #0 - add r2, sp, #0xcc - mov r0, #0x1c - str r3, [sp, #0x104] - bl ov03_0233CDD8 - ldr r0, _0206A5E0 ; =_020B0B48 - mov r1, #0 - ldr r0, [r0] - add r0, r0, #0x70 - bl CreateJobSummary - ldr r0, _0206A5E0 ; =_020B0B48 - mov r1, #0x2000 - ldr r0, [r0] - str r1, [r0] - b _0206A5D4 -_0206A450: - cmp r0, #1 - bne _0206A5D4 - bl ov03_0233CB10 - mov r0, #1 - b _0206A5D8 -_0206A464: - bl ov03_0233CDE4 - mov r4, r0 - bl sub_020698B8 - cmp r4, #0x12 - bne _0206A5D4 - bl sub_02069904 - ldr r0, _0206A5E0 ; =_020B0B48 - mov r1, #0x4000 - ldr r0, [r0] - str r1, [r0] - b _0206A5D4 -_0206A490: - bl ov03_0233CDE4 - cmp r0, #0x12 - bne _0206A5D4 - mov r0, #1 - b _0206A5D8 -_0206A4A4: - ldr r1, _0206A60C ; =0x0000023B - mov r0, #0 - bl ov03_0233CDC8 - ldr r0, _0206A5E0 ; =_020B0B48 - ldr r1, _0206A610 ; =0x00004002 - ldr r0, [r0] - str r1, [r0] - b _0206A5D4 -_0206A4C4: - bl ov03_0233CDE4 - cmp r0, #0x12 - bne _0206A5D4 - mov r0, #0xe0 - mov r1, #0x88 - mov r2, #1 - bl sub_02029F88 - bl sub_02003B94 - ldr r0, _0206A5E0 ; =_020B0B48 - ldr r1, _0206A614 ; =0x00004001 - ldr r0, [r0] - str r1, [r0] - b _0206A5D4 -_0206A4F8: - mov r0, #3 - bl NoteSaveBase - mov r4, r0 - bl sub_02003BC8 - bl sub_02029FBC - cmp r4, #0 - bne _0206A558 - ldr r0, _0206A5E0 ; =_020B0B48 - ldr r0, [r0] - add r0, r0, #0x70 - bl IsMissionTypeSpecialEpisode - cmp r0, #0 - mov r0, #0x1c - beq _0206A53C - ldr r1, _0206A618 ; =0x0000379E - bl ov03_0233CDC8 - b _0206A544 -_0206A53C: -#ifdef JAPAN - ldr r1, _0206A90C ; =0x000004CD -#else - mov r1, #0x23c -#endif - bl ov03_0233CDC8 -_0206A544: - ldr r0, _0206A5E0 ; =_020B0B48 - ldr r1, _0206A61C ; =0x00004003 - ldr r0, [r0] - str r1, [r0] - b _0206A5D4 -_0206A558: - cmp r4, #1 - moveq r0, #3 - beq _0206A5D8 - ldr r1, _0206A620 ; =0x00000239 - mov r0, #0x1c - bl ov03_0233CDC8 - ldr r0, _0206A5E0 ; =_020B0B48 - ldr r1, _0206A5EC ; =0x00004004 - ldr r0, [r0] - str r1, [r0] - b _0206A5D4 -_0206A584: - bl ov03_0233CDE4 - cmp r0, #0x12 - bne _0206A5D4 - ldr r1, _0206A624 ; =0x000037A0 - mov r0, #0x1c - bl ov03_0233CDC8 - ldr r0, _0206A5E0 ; =_020B0B48 - mov r1, #0x8000 - ldr r0, [r0] - str r1, [r0] - b _0206A5D4 -_0206A5B0: - bl ov03_0233CDE4 - cmp r0, #0x12 - bne _0206A5D4 - mov r0, #1 - b _0206A5D8 -_0206A5C4: - bl ov03_0233CDE4 - cmp r0, #0x12 - moveq r0, #2 - beq _0206A5D8 -_0206A5D4: - mov r0, #0 -_0206A5D8: - add sp, sp, #0x20c - ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -#if defined(EUROPE) -#define SUB_02069DC0_OFFSET 2 -#elif defined(JAPAN) -#define SUB_02069DC0_OFFSET -0x37E -#else -#define SUB_02069DC0_OFFSET 0 -#endif -_0206A5E0: .word _020B0B48 -_0206A5E4: .word 0x00001001 -_0206A5E8: .word 0x00003001 -_0206A5EC: .word 0x00004004 -_0206A5F0: .word sub_0206A628 -_0206A5F4: .word ov01_02337B68 -_0206A5F8: .word 0x000037A8 + SUB_02069DC0_OFFSET -_0206A5FC: .word 0x00002001 -#ifdef JAPAN -_0206A600: .word 0x00003507 -#else -_0206A600: .word 0x000038C9 + SUB_02069DC0_OFFSET -#endif -_0206A604: .word 0x0000379F + SUB_02069DC0_OFFSET -_0206A608: .word 0x00003793 + SUB_02069DC0_OFFSET -#ifdef JAPAN -_0206A60C: .word 0x000004CC -#else -_0206A60C: .word 0x0000023B -#endif -_0206A610: .word 0x00004002 -_0206A614: .word 0x00004001 -_0206A618: .word 0x0000379E + SUB_02069DC0_OFFSET -#ifdef JAPAN -_0206A90C: .word 0x000004CD -_0206A61C: .word 0x00004003 -_0206A620: .word 0x000004CA -#else -_0206A61C: .word 0x00004003 -_0206A620: .word 0x00000239 -#endif -_0206A624: .word 0x000037A0 + SUB_02069DC0_OFFSET - arm_func_end sub_02069DC0 - - arm_func_start sub_0206A628 -sub_0206A628: ; 0x0206A628 - stmdb sp!, {r4, lr} - mov r4, r0 - bl ov03_0233CAA8 - cmp r0, #1 - bne _0206A70C - add r0, r4, #4 - mov r1, #0x34 - bl ov01_02337B3C - ldrb r1, [r4, #3] - cmp r0, r1 - movne r0, #3 - ldmneia sp!, {r4, pc} - ldrb r0, [r4] - cmp r0, #0x12 - movne r0, #2 - ldmneia sp!, {r4, pc} - add r0, r4, #0x18 - bl IsMissionTypeSpecialEpisode - cmp r0, #0 - movne r0, #1 - ldmneia sp!, {r4, pc} - add r0, r4, #0x18 - bl sub_0205D1F4 - cmp r0, #0 - moveq r0, #6 - ldmeqia sp!, {r4, pc} - ldrsh r0, [r4, #0x2c] - mov r1, #1 - bl CanSendItem - cmp r0, #0 - moveq r0, #6 - ldmeqia sp!, {r4, pc} - ldrb r0, [r4, #0x2e] - cmp r0, #4 - addls pc, pc, r0, lsl #2 - b _0206A6E4 -_0206A6B8: ; jump table - b _0206A6E4 ; case 0 - b _0206A6CC ; case 1 - b _0206A6CC ; case 2 - b _0206A6CC ; case 3 - b _0206A6CC ; case 4 -_0206A6CC: - ldrsh r0, [r4, #0x30] - mov r1, #1 - bl CanSendItem - cmp r0, #0 - moveq r0, #6 - ldmeqia sp!, {r4, pc} -_0206A6E4: - add r0, r4, #0x18 - bl AlreadyHaveMission - cmp r0, #0 - movne r0, #4 - ldmneia sp!, {r4, pc} - add r0, r4, #0x18 - bl sub_0205FA38 - cmp r0, #0 - movne r0, #4 - ldmneia sp!, {r4, pc} -_0206A70C: - mov r0, #1 - ldmia sp!, {r4, pc} - arm_func_end sub_0206A628 diff --git a/asm/main_02065BD8.s b/asm/main_02065BD8.s new file mode 100644 index 00000000..f5073284 --- /dev/null +++ b/asm/main_02065BD8.s @@ -0,0 +1,5713 @@ + .include "asm/macros.inc" + .include "main_02065BD8.inc" + + .text + + arm_func_start sub_02065BD8 +sub_02065BD8: ; 0x02065BD8 + ldr ip, _02065BE8 ; =StrncpySimple + mov r2, r1 + ldr r1, _02065BEC ; =_022B7310 + bx ip + .align 2, 0 +_02065BE8: .word StrncpySimple +_02065BEC: .word _022B7310 + arm_func_end sub_02065BD8 + + arm_func_start sub_02065BF0 +sub_02065BF0: ; 0x02065BF0 + ldr ip, _02065C00 ; =StrncpySimpleNoPadSafe + ldr r1, _02065C04 ; =_022B7310 + mov r2, #0xa + bx ip + .align 2, 0 +_02065C00: .word StrncpySimpleNoPadSafe +_02065C04: .word _022B7310 + arm_func_end sub_02065BF0 + + arm_func_start sub_02065C08 +sub_02065C08: ; 0x02065C08 + ldr ip, _02065C44 ; =_022B7310 + mov r3, #0 + b _02065C20 +_02065C14: + ldrb r2, [r0], #1 + add r3, r3, #1 + strb r2, [ip], #1 +_02065C20: + cmp r3, r1 + blt _02065C14 + mov r0, #0 + b _02065C38 +_02065C30: + strb r0, [ip], #1 + add r3, r3, #1 +_02065C38: + cmp r3, #0x10 + blt _02065C30 + bx lr + .align 2, 0 +_02065C44: .word _022B7310 + arm_func_end sub_02065C08 + + arm_func_start RandomizeDemoActors +RandomizeDemoActors: ; 0x02065C48 + stmdb sp!, {r3, lr} + mov r0, #0x12 + bl RandInt + ldr r2, _02065C78 ; =DEMO_TEAMS + mov r3, r0, lsl #2 + ldr r1, _02065C7C ; =_020A68CA + ldrsh r2, [r2, r3] + ldr r0, _02065C80 ; =SPECIAL_ACTORS + ldrsh r1, [r1, r3] + strh r2, [r0, #0xa] + strh r1, [r0, #4] + ldmia sp!, {r3, pc} + .align 2, 0 +_02065C78: .word DEMO_TEAMS +_02065C7C: .word _020A68CA +_02065C80: .word SPECIAL_ACTORS + arm_func_end RandomizeDemoActors + + arm_func_start sub_02065C84 +sub_02065C84: ; 0x02065C84 + mov r2, #0 + ldr r1, _02065CAC ; =_022B7320 + mov r0, r2 +_02065C90: + strh r0, [r1] + add r2, r2, #1 + strh r0, [r1, #2] + cmp r2, #4 + add r1, r1, #4 + blt _02065C90 + bx lr + .align 2, 0 +_02065CAC: .word _022B7320 + arm_func_end sub_02065C84 + + arm_func_start sub_02065CB0 +sub_02065CB0: ; 0x02065CB0 + bx lr + arm_func_end sub_02065CB0 + + arm_func_start sub_02065CB4 +sub_02065CB4: ; 0x02065CB4 + ldrh r2, [r1] + ldr r3, _02065CD4 ; =_022B7320 + mov ip, r0, lsl #2 + strh r2, [r3, ip] + ldrh r1, [r1, #2] + add r0, r3, r0, lsl #2 + strh r1, [r0, #2] + bx lr + .align 2, 0 +_02065CD4: .word _022B7320 + arm_func_end sub_02065CB4 + + arm_func_start sub_02065CD8 +sub_02065CD8: ; 0x02065CD8 + ldr r2, _02065CF0 ; =_022B7320 + mov r3, r0 + mov r0, r1 + ldr ip, _02065CF4 ; =BulkItemToItem + add r1, r2, r3, lsl #2 + bx ip + .align 2, 0 +_02065CF0: .word _022B7320 +_02065CF4: .word BulkItemToItem + arm_func_end sub_02065CD8 + + arm_func_start ItemAtTableIdx +ItemAtTableIdx: ; 0x02065CF8 + ldr r3, _02065D18 ; =_022B7320 + mov r2, r0, lsl #2 + ldrh r2, [r3, r2] + add r0, r3, r0, lsl #2 + strh r2, [r1] + ldrh r0, [r0, #2] + strh r0, [r1, #2] + bx lr + .align 2, 0 +_02065D18: .word _022B7320 + arm_func_end ItemAtTableIdx + + arm_func_start MainLoop +MainLoop: ; 0x02065D1C + stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #8 + bl sub_020024A0 + mov r7, r0 + mov r8, #1 + bl sub_02065C84 + bl sub_020205E4 + bl LoadTblTalk + bl sub_0201DD90 + bl InitObjGraphicsControls + bl sub_0201D7A8 + ldr r0, _02066374 ; =WAN_TABLE + mov r1, #0x80 + ldr r0, [r0] + bl InitWanTable + bl sub_0201F208 + bl DirectoryFileMngr_ExtractAllDirectoryFiles + bl InitOptionsVeneer + bl InitKaomadoStream + bl sub_02025AD8 + bl sub_02026E78 + bl sub_020346C0 + mov r0, #0 + bl SetGameMode + mov r0, #2 + bl SetBothScreensWindowsColor + bl sub_0204A1A4 + bl sub_02048420 + bl KeyWaitInit + add r0, sp, #4 + bl ReadSaveHeader +#ifdef EUROPE + mov r4, r0 + bl sub_020205F8 + cmp r4, #1 +#else + cmp r0, #1 +#endif + bne _02065DF0 + mov r0, #2 + bl LoadOverlay + mov r0, #0xf + bl LoadOverlay + mov r0, r8 + bl ExplorersOfSkyMain + mov r0, #0xf + bl UnloadOverlay + mov r0, #2 + bl UnloadOverlay + mov r0, #2 + bl LoadOverlay + mov r0, #0xf + bl LoadOverlay + mov r0, #4 + bl ExplorersOfSkyMain + mov r0, #0xf + bl UnloadOverlay + mov r0, #2 + bl UnloadOverlay +_02065DF0: + cmp r7, #0 + cmpne r7, #5 + mov r0, #2 + bne _02065E2C + mov r4, #1 + bl LoadOverlay + mov r0, #0xf + bl LoadOverlay + mov r0, #2 + bl ExplorersOfSkyMain + mov r0, #0xf + bl UnloadOverlay + mov r0, #2 + bl UnloadOverlay + b _02065E54 +_02065E2C: + mov r4, #0 + bl LoadOverlay + mov r0, #0xf + bl LoadOverlay + mov r0, #1 + bl ExplorersOfSkyMain + mov r0, #0xf + bl UnloadOverlay + mov r0, #2 + bl UnloadOverlay +_02065E54: + bl SetAdventureLogStructLocation + bl sub_0204F9B8 + bl GlobalProgressAlloc + bl sub_02052C3C + bl LoadWazaP + bl sub_0200CA8C + bl sub_0205C73C + bl sub_0205B44C + bl KeyWaitInit + bl InitScriptVariableValues + cmp r4, #0 + beq _02065EE0 + mov r0, #2 + bl LoadOverlay + mov r0, #0xf + bl LoadOverlay + mov r0, #3 + bl ExplorersOfSkyMain + mov r0, #0xf + bl UnloadOverlay + mov r0, #2 + bl UnloadOverlay + mov r0, #0 + mov r1, #0x5c + bl ZeroInitScriptVariable + mov r0, #2 + bl LoadOverlay + mov r0, #0xd + bl LoadOverlay + mov r0, #0 + bl ov11_022E82CC + mov r0, #0xd + bl UnloadOverlay + mov r0, #2 + bl UnloadOverlay +_02065EE0: + mov r0, #1 + bl LoadOverlay + mov r0, #4 + bl LoadOverlay + mov r0, #4 + bl ov00_022BE0C8 + mov r0, #4 + bl UnloadOverlay + mov r0, #1 + bl UnloadOverlay + bl sub_02048430 + mov r4, #0xf + mov r5, #2 + mov sl, #4 + mov fp, r4 + mov r6, #0 +_02065F20: + mov r0, r6 + bl SetGameMode + bl sub_02048624 + cmp r8, #0 + beq _02065FE0 + bl NoteLoadBase + movs sb, r0 + beq _02065FCC + cmp sb, #1 + bne _02065F70 + mov r0, r5 + bl LoadOverlay + mov r0, r4 + bl LoadOverlay + mov r0, sl + bl ExplorersOfSkyMain + mov r0, fp + bl UnloadOverlay + mov r0, #2 + bl UnloadOverlay +_02065F70: + mov r0, #1 + bl LoadOverlay + mov r0, #4 + bl LoadOverlay + mov r0, #3 + bl ov00_022BE0C8 + mov r0, #4 + bl UnloadOverlay + mov r0, #1 + bl UnloadOverlay + bl sub_02048454 + cmp sb, #5 + beq _02065FCC + mov r0, #2 + bl LoadOverlay + mov r0, #0xf + bl LoadOverlay + mov r0, #6 + bl ExplorersOfSkyMain + mov r0, #0xf + bl UnloadOverlay + mov r0, #2 + bl UnloadOverlay +_02065FCC: + add r0, sp, #0 + bl CopyFrameTypeOption + ldrb r0, [sp] + bl sub_02027180 + bl sub_020205F8 +_02065FE0: + sub r0, r7, #6 + cmp r0, #0xf + addls pc, pc, r0, lsl #2 + b _020660B0 +_02065FF0: ; jump table + b _02066030 ; case 0 + b _02066040 ; case 1 + b _02066038 ; case 2 + b _02066048 ; case 3 + b _02066050 ; case 4 + b _02066058 ; case 5 + b _02066060 ; case 6 + b _02066068 ; case 7 + b _02066070 ; case 8 + b _02066078 ; case 9 + b _02066080 ; case 10 + b _02066088 ; case 11 + b _02066090 ; case 12 + b _02066098 ; case 13 + b _020660A0 ; case 14 + b _020660A8 ; case 15 +_02066030: + mov sb, #4 + b _020660FC +_02066038: + mov sb, #6 + b _020660FC +_02066040: + mov sb, #5 + b _020660FC +_02066048: + mov sb, #7 + b _020660FC +_02066050: + mov sb, #9 + b _020660FC +_02066058: + mov sb, #0xa + b _020660FC +_02066060: + mov sb, #0xb + b _020660FC +_02066068: + mov sb, #0xc + b _020660FC +_02066070: + mov sb, #0xd + b _020660FC +_02066078: + mov sb, #0xe + b _020660FC +_02066080: + mov sb, #0xf + b _020660FC +_02066088: + mov sb, #0x10 + b _020660FC +_02066090: + mov sb, #0x10 + b _020660FC +_02066098: + mov sb, #0x12 + b _020660FC +_020660A0: + mov sb, #0x13 + b _020660FC +_020660A8: + mov sb, #0x14 + b _020660FC +_020660B0: + cmp r7, #2 + moveq r7, #1 + beq _020660C8 + cmp r7, #3 + moveq r7, #2 + movne r7, #0 +_020660C8: + mov r0, #0 + bl SetGameMode + mov r0, #1 + bl LoadOverlay + mov r0, #4 + bl LoadOverlay + mov r0, r7 + bl ov00_022BE0C8 + mov sb, r0 + mov r0, #4 + bl UnloadOverlay + mov r0, #1 + bl UnloadOverlay +_020660FC: + cmp sb, #6 + mov r7, #1 + bne _02066134 + mov r0, r7 + mov r1, #0 + bl GetSosMailCount + cmp r0, #0 + movne sb, #0xa + bne _02066134 + mov r0, #7 + mov r1, #0 + bl GetSosMailCount + cmp r0, #0 + movne sb, #9 +_02066134: + bl GetSpecialEpisodeType + mov r1, r0 + ldr r0, _02066378 ; =_020A9208 + bl Debug_Print0 + sub r0, sb, #4 + cmp r0, #9 + addls pc, pc, r0, lsl #2 + b _02065F20 +_02066154: ; jump table + b _0206617C ; case 0 + b _020661B0 ; case 1 + b _020661FC ; case 2 + b _0206622C ; case 3 + b _02065F20 ; case 4 + b _0206625C ; case 5 + b _0206628C ; case 6 + b _020662BC ; case 7 + b _02066300 ; case 8 + b _02066330 ; case 9 +_0206617C: + mov r0, #2 + bl SetGameMode + bl sub_020484C0 + bl sub_02048644 + mov r0, #2 + bl LoadOverlay + mov r0, #0 + bl MainGame + mov r8, r0 + mov r0, #2 + bl UnloadOverlay + bl sub_0204872C + b _02065F20 +_020661B0: + bl GetDebugSpecialEpisodeNumber + bl SetSpecialEpisodeType + mov r0, #3 + bl SetGameMode + bl sub_02048644 + bl InitSpecialEpisodeHero + mov r0, #2 + mov r1, #0x36 + mov r2, #0 + bl SetScenarioProgressScriptVar + mov r0, #2 + bl LoadOverlay + mov r0, #0 + bl MainGame + mov r8, r0 + mov r0, #2 + bl UnloadOverlay + bl sub_0204872C + b _02065F20 +_020661FC: + mov r0, #2 + bl SetGameMode + bl sub_02048644 + mov r0, #2 + bl LoadOverlay + mov r0, #1 + bl MainGame + mov r8, r0 + mov r0, #2 + bl UnloadOverlay + bl sub_0204872C + b _02065F20 +_0206622C: + mov r0, #3 + bl SetGameMode + bl sub_02048644 + mov r0, #2 + bl LoadOverlay + mov r0, #1 + bl MainGame + mov r8, r0 + mov r0, #2 + bl UnloadOverlay + bl sub_0204872C + b _02065F20 +_0206625C: + mov r0, #2 + bl SetGameMode + bl sub_02048644 + mov r0, #2 + bl LoadOverlay + mov r0, #2 + bl MainGame + mov r8, r0 + mov r0, #2 + bl UnloadOverlay + bl sub_0204872C + b _02065F20 +_0206628C: + mov r0, #2 + bl SetGameMode + bl sub_02048644 + mov r0, #2 + bl LoadOverlay + mov r0, #3 + bl MainGame + mov r8, r0 + mov r0, #2 + bl UnloadOverlay + bl sub_0204872C + b _02065F20 +_020662BC: + mov r0, #4 + bl SetGameMode + bl sub_02048644 + bl sub_020485C4 + mov r0, #2 + mov r1, #0x33 + mov r2, #0 + bl SetScenarioProgressScriptVar + mov r0, #2 + bl LoadOverlay + mov r0, #1 + bl MainGame + mov r8, r0 + mov r0, #2 + bl UnloadOverlay + bl sub_0204872C + b _02065F20 +_02066300: + mov r0, #4 + bl SetGameMode + bl sub_02048644 + mov r0, #2 + bl LoadOverlay + mov r0, #1 + bl MainGame + mov r8, r0 + mov r0, #2 + bl UnloadOverlay + bl sub_0204872C + b _02065F20 +_02066330: + mov r0, #5 + bl SetGameMode + bl sub_02048644 + bl sub_020485D8 + mov r0, #2 + mov r1, #0x34 + mov r2, #0 + bl SetScenarioProgressScriptVar + mov r0, #2 + bl LoadOverlay + mov r0, #1 + bl MainGame + mov r8, r0 + mov r0, #2 + bl UnloadOverlay + bl sub_0204872C + b _02065F20 + .align 2, 0 +_02066374: .word WAN_TABLE +_02066378: .word _020A9208 + arm_func_end MainLoop + + arm_func_start sub_0206637C +sub_0206637C: ; 0x0206637C + stmdb sp!, {r3, lr} + mov r0, #1 + bl OverlayIsLoaded + cmp r0, #0 + beq _0206639C + mov r0, #3 + bl ov00_022BE0C8 + ldmia sp!, {r3, pc} +_0206639C: + mov r0, #1 + bl LoadOverlay + mov r0, #4 + bl LoadOverlay + mov r0, #3 + bl ov00_022BE0C8 + mov r0, #4 + bl UnloadOverlay + mov r0, #1 + bl UnloadOverlay + ldmia sp!, {r3, pc} + arm_func_end sub_0206637C + + arm_func_start sub_020663C8 +sub_020663C8: ; 0x020663C8 + stmdb sp!, {r3, lr} + ldrsb ip, [sp, #8] + str ip, [sp] + bl sub_02046A9C + ldmia sp!, {r3, pc} + arm_func_end sub_020663C8 + + arm_func_start sub_020663DC +sub_020663DC: ; 0x020663DC + stmdb sp!, {lr} + sub sp, sp, #0xc + ldr ip, [sp, #0x10] + ldrh lr, [sp, #0x14] + str ip, [sp] + mov ip, #0 + str lr, [sp, #4] + str ip, [sp, #8] + bl sub_02046A20 + add sp, sp, #0xc + ldmia sp!, {pc} + arm_func_end sub_020663DC + + arm_func_start sub_02066408 +sub_02066408: ; 0x02066408 + stmdb sp!, {lr} + sub sp, sp, #0xc + ldr ip, [sp, #0x10] + ldrh lr, [sp, #0x14] + str ip, [sp] + ldr ip, [sp, #0x18] + str lr, [sp, #4] + str ip, [sp, #8] + bl sub_02046A20 + add sp, sp, #0xc + ldmia sp!, {pc} + arm_func_end sub_02066408 + + arm_func_start sub_02066434 +sub_02066434: ; 0x02066434 + stmdb sp!, {r3, lr} + bl sub_02046B04 + mvn r1, #1 + cmp r0, r1 + moveq r0, #0x1f + ldmeqia sp!, {r3, pc} + add r1, r1, #1 + cmp r0, r1 + moveq r0, #0 + ldmia sp!, {r3, pc} + arm_func_end sub_02066434 + + arm_func_start sub_0206645C +sub_0206645C: ; 0x0206645C + ldr ip, _02066464 ; =sub_02046BA0 + bx ip + .align 2, 0 +_02066464: .word sub_02046BA0 + arm_func_end sub_0206645C + + arm_func_start sub_02066468 +sub_02066468: ; 0x02066468 + ldr ip, _02066474 ; =sub_02046BE8 + mov r2, #0 + bx ip + .align 2, 0 +_02066474: .word sub_02046BE8 + arm_func_end sub_02066468 + + arm_func_start sub_02066478 +sub_02066478: ; 0x02066478 + ldr ip, _02066484 ; =sub_02046C30 + mov r2, #0 + bx ip + .align 2, 0 +_02066484: .word sub_02046C30 + arm_func_end sub_02066478 + + arm_func_start sub_02066488 +sub_02066488: ; 0x02066488 + ldr ip, _02066490 ; =sub_02046BE8 + bx ip + .align 2, 0 +_02066490: .word sub_02046BE8 + arm_func_end sub_02066488 + + arm_func_start sub_02066494 +sub_02066494: ; 0x02066494 + stmdb sp!, {r3, lr} + bl sub_02046C78 + cmp r0, #0 + movne r0, #0x1f + moveq r0, #0 + ldmia sp!, {r3, pc} + arm_func_end sub_02066494 + + arm_func_start sub_020664AC +sub_020664AC: ; 0x020664AC + ldr ip, _020664B4 ; =sub_02046D20 + bx ip + .align 2, 0 +_020664B4: .word sub_02046D20 + arm_func_end sub_020664AC + + arm_func_start sub_020664B8 +sub_020664B8: ; 0x020664B8 + stmdb sp!, {r4, lr} + mov r4, r0 + bl sub_020676AC + ldr r2, _0206650C ; =_020B0B24 + mov r3, #0 + mov r0, #0xa8 + mov r1, #8 + strb r3, [r2] + bl MemAlloc + ldr r2, _0206650C ; =_020B0B24 + mov r1, #0xa8 + str r0, [r2, #4] + bl MemZero + ldr r1, _0206650C ; =_020B0B24 + mov r2, #0 + ldr r3, [r1, #4] + mov r0, #1 + str r4, [r3, #8] + ldr r1, [r1, #4] + str r2, [r1] + ldmia sp!, {r4, pc} + .align 2, 0 +_0206650C: .word _020B0B24 + arm_func_end sub_020664B8 + + arm_func_start sub_02066510 +sub_02066510: ; 0x02066510 + stmdb sp!, {r3, r4, lr} + sub sp, sp, #0xc + ldr r0, _02066874 ; =_020B0B24 + ldr r1, [r0, #4] + ldr r0, [r1] + cmp r0, #4 + addls pc, pc, r0, lsl #2 + b _02066868 +_02066530: ; jump table + b _02066544 ; case 0 + b _02066640 ; case 1 + b _02066700 ; case 2 + b _02066708 ; case 3 + b _02066724 ; case 4 +_02066544: + mov r2, #0 + add r1, r1, #0xa4 + mov r0, r2 +_02066550: + strb r0, [r1, r2] + add r2, r2, #1 + cmp r2, #4 + blt _02066550 + ldr r0, _02066874 ; =_020B0B24 + mov r1, #0x98 + ldr r0, [r0, #4] + add r0, r0, #0xc + bl MemZero + ldr r0, _02066874 ; =_020B0B24 + ldr r2, [r0, #4] + add r1, r2, #0xa4 + str r1, [r2, #0x6c] + ldr r0, [r0, #4] + ldr r0, [r0, #8] + cmp r0, #0 + bne _020665B4 + ldr r4, _02066878 ; =JOB_MENU_ITEMS_1 + bl sub_0205E954 + cmp r0, #0 + ldreq r0, _02066874 ; =_020B0B24 + moveq r1, #3 + ldreq r0, [r0, #4] + streqb r1, [r0, #0xa4] + b _020665D8 +_020665B4: + cmp r0, #1 + bne _020665D8 + ldr r4, _0206687C ; =JOB_MENU_ITEMS_2 + bl sub_0205EAC8 + cmp r0, #0 + ldreq r0, _02066874 ; =_020B0B24 + moveq r1, #3 + ldreq r0, [r0, #4] + streqb r1, [r0, #0xa4] +_020665D8: + bl CountJobListMissions + cmp r0, #0 + ldreq r0, _02066874 ; =_020B0B24 + moveq r1, #3 + ldreq r0, [r0, #4] + ldr r3, _02066874 ; =_020B0B24 + streqb r1, [r0, #0xa5] + ldrsb r2, [r3] + ldr ip, [r3, #4] + mov r1, #0 + add r2, r4, r2, lsl #3 + ldr lr, [r2, #4] + ldr r0, _02066880 ; =JOB_WINDOW_PARAMS_1 + str lr, [ip, #0xc] + str r4, [sp] + str r1, [sp, #4] + str r1, [sp, #8] + ldr r3, [r3, #4] + ldr r2, _02066884 ; =0x00000233 + add r3, r3, #0xc + bl sub_02046A20 + ldr r0, _02066874 ; =_020B0B24 + mov r1, #1 + ldr r0, [r0, #4] + str r1, [r0] + b _02066868 +_02066640: + bl sub_02046B04 + mov r4, r0 + mvn r1, #1 + cmp r4, r1 + moveq r4, #4 + beq _02066674 + sub r0, r1, #1 + cmp r4, r0 + moveq r4, #4 + beq _02066674 + add r0, r1, #1 + cmp r4, r0 + moveq r4, #0 +_02066674: + bl sub_02046BA0 + ldr r1, _02066874 ; =_020B0B24 + cmp r4, #1 + strb r0, [r1] + bne _020666A4 + ldr r0, [r1, #4] + mov r2, #0xa + str r2, [r0, #4] + ldr r0, [r1, #4] + mov r1, #3 + str r1, [r0] + b _02066868 +_020666A4: + cmp r4, #2 + bne _020666C8 + ldr r0, [r1, #4] + mov r2, #0xb + str r2, [r0, #4] + ldr r0, [r1, #4] + mov r1, #3 + str r1, [r0] + b _02066868 +_020666C8: + cmp r4, #3 + bne _020666EC + ldr r0, [r1, #4] + mov r2, #0xe + str r2, [r0, #4] + ldr r0, [r1, #4] + mov r1, #3 + str r1, [r0] + b _02066868 +_020666EC: + cmp r4, #4 + ldreq r0, [r1, #4] + moveq r1, #2 + streq r1, [r0] + b _02066868 +_02066700: + mov r0, #1 + b _0206686C +_02066708: + ldr r0, [r1, #4] + bl sub_020668B4 + ldr r0, _02066874 ; =_020B0B24 + mov r1, #4 + ldr r0, [r0, #4] + str r1, [r0] + b _02066868 +_02066724: + bl sub_02066A44 + movs r4, r0 + beq _02066868 + bl sub_02067664 + add r0, r4, #1 + cmp r0, #0x17 + addls pc, pc, r0, lsl #2 + b _02066868 +_02066744: ; jump table + b _02066858 ; case 0 + b _02066868 ; case 1 + b _020667A4 ; case 2 + b _02066868 ; case 3 + b _020667B8 ; case 4 + b _020667C0 ; case 5 + b _020667C8 ; case 6 + b _020667D0 ; case 7 + b _020667D8 ; case 8 + b _020667E0 ; case 9 + b _020667E8 ; case 10 + b _020667F0 ; case 11 + b _020667F8 ; case 12 + b _02066800 ; case 13 + b _02066808 ; case 14 + b _02066810 ; case 15 + b _02066818 ; case 16 + b _02066820 ; case 17 + b _02066828 ; case 18 + b _02066830 ; case 19 + b _02066838 ; case 20 + b _02066840 ; case 21 + b _02066848 ; case 22 + b _02066850 ; case 23 +_020667A4: + ldr r0, _02066874 ; =_020B0B24 + mov r1, #0 + ldr r0, [r0, #4] + str r1, [r0] + b _02066868 +_020667B8: + mov r0, #2 + b _0206686C +_020667C0: + mov r0, #3 + b _0206686C +_020667C8: + mov r0, #4 + b _0206686C +_020667D0: + mov r0, #5 + b _0206686C +_020667D8: + mov r0, #6 + b _0206686C +_020667E0: + mov r0, #7 + b _0206686C +_020667E8: + mov r0, #8 + b _0206686C +_020667F0: + mov r0, #9 + b _0206686C +_020667F8: + mov r0, #0xa + b _0206686C +_02066800: + mov r0, #0xb + b _0206686C +_02066808: + mov r0, #0xc + b _0206686C +_02066810: + mov r0, #0xd + b _0206686C +_02066818: + mov r0, #0xe + b _0206686C +_02066820: + mov r0, #0xf + b _0206686C +_02066828: + mov r0, #0x10 + b _0206686C +_02066830: + mov r0, #0x11 + b _0206686C +_02066838: + mov r0, #0x12 + b _0206686C +_02066840: + mov r0, #0x13 + b _0206686C +_02066848: + mov r0, #0x14 + b _0206686C +_02066850: + mov r0, #0x15 + b _0206686C +_02066858: + ldr r0, _02066874 ; =_020B0B24 + mov r1, #0 + ldr r0, [r0, #4] + str r1, [r0] +_02066868: + mov r0, #0 +_0206686C: + add sp, sp, #0xc + ldmia sp!, {r3, r4, pc} + .align 2, 0 +_02066874: .word _020B0B24 +_02066878: .word JOB_MENU_ITEMS_1 +_0206687C: .word JOB_MENU_ITEMS_2 +_02066880: .word JOB_WINDOW_PARAMS_1 +_02066884: .word 0x00000233 + arm_func_end sub_02066510 + + arm_func_start sub_02066888 +sub_02066888: ; 0x02066888 + stmdb sp!, {r3, lr} + ldr r0, _020668B0 ; =_020B0B24 + ldr r0, [r0, #4] + cmp r0, #0 + ldmeqia sp!, {r3, pc} + bl MemFree + ldr r0, _020668B0 ; =_020B0B24 + mov r1, #0 + str r1, [r0, #4] + ldmia sp!, {r3, pc} + .align 2, 0 +_020668B0: .word _020B0B24 + arm_func_end sub_02066888 + + arm_func_start sub_020668B4 +sub_020668B4: ; 0x020668B4 + stmdb sp!, {r3, r4, r5, lr} + mov r5, r0 + sub r0, r5, #0x13 + cmp r0, #2 + movls r0, #0 + ldmlsia sp!, {r3, r4, r5, pc} + ldr r0, _02066988 ; =0x00000EF8 + mov r1, #8 + bl MemAlloc + ldr r2, _0206698C ; =_020B0B2C + ldr r1, _02066988 ; =0x00000EF8 + str r0, [r2, #0x14] + bl MemZero + ldr r0, _0206698C ; =_020B0B2C + mov r2, #0 + ldr r4, [r0, #0x14] + mov r1, r2 +_020668F8: + add r0, r4, r2 + add r2, r2, #1 + strb r1, [r0, #0x4c] + cmp r2, #0x20 + blt _020668F8 + ldr r0, _0206698C ; =_020B0B2C + ldr r0, [r0, #0x14] + str r5, [r0, #4] + str r1, [r4, #8] + str r1, [r4, #0xef0] + bl sub_020686F4 + mov r2, #0 + str r2, [r4, #0x74] + sub r1, r2, #1 + str r1, [r4, #0x78] + cmp r0, #0 + bne _0206695C + bl sub_020692B4 + ldr r0, _0206698C ; =_020B0B2C + ldr r0, [r0, #0x14] + bl MemFree + ldr r1, _0206698C ; =_020B0B2C + mov r0, #0 + str r0, [r1, #0x14] + ldmia sp!, {r3, r4, r5, pc} +_0206695C: + sub r0, r2, #2 + strb r0, [r4, #0x7d] + bl sub_020692FC + mvn r1, #1 + ldr r0, _0206698C ; =_020B0B2C + strb r1, [r4, #0xd85] + ldr r0, [r0, #0x14] + mov r1, #0 + str r1, [r0] + mov r0, #1 + ldmia sp!, {r3, r4, r5, pc} + .align 2, 0 +_02066988: .word 0x00000EF8 +_0206698C: .word _020B0B2C + arm_func_end sub_020668B4 + + arm_func_start sub_02066990 +sub_02066990: ; 0x02066990 + stmdb sp!, {r4, r5, r6, r7, r8, lr} + mov r8, r0 + mov r7, r1 + ldr r0, _02066A3C ; =0x00000EF8 + mov r1, #8 + mov r6, r2 + mov r5, r3 + bl MemAlloc + ldr r2, _02066A40 ; =_020B0B2C + ldr r1, _02066A3C ; =0x00000EF8 + str r0, [r2, #0x14] + bl MemZero + ldr r0, _02066A40 ; =_020B0B2C + mov r1, #0 + ldr r4, [r0, #0x14] + str r8, [r4, #4] + str r7, [r4, #0x74] + str r6, [r4, #0x6c] + str r5, [r4, #0x78] + str r1, [r4, #8] + str r1, [r4, #0xef0] + bl sub_020686F4 + cmp r0, #0 + bne _02066A10 + bl sub_020692B4 + ldr r0, _02066A40 ; =_020B0B2C + ldr r0, [r0, #0x14] + bl MemFree + ldr r1, _02066A40 ; =_020B0B2C + mov r0, #0 + str r0, [r1, #0x14] + ldmia sp!, {r4, r5, r6, r7, r8, pc} +_02066A10: + mvn r0, #1 + strb r0, [r4, #0x7d] + bl sub_020692FC + mvn r1, #1 + ldr r0, _02066A40 ; =_020B0B2C + strb r1, [r4, #0xd85] + ldr r0, [r0, #0x14] + mov r1, #0 + str r1, [r0] + mov r0, #1 + ldmia sp!, {r4, r5, r6, r7, r8, pc} + .align 2, 0 +_02066A3C: .word 0x00000EF8 +_02066A40: .word _020B0B2C + arm_func_end sub_02066990 + + arm_func_start sub_02066A44 +sub_02066A44: ; 0x02066A44 + stmdb sp!, {r3, r4, r5, r6, lr} + sub sp, sp, #0xc + ldr r0, _020674A0 ; =_020B0B2C + ldr r6, [r0, #0x14] + ldr r0, [r6] + cmp r0, #6 + addls pc, pc, r0, lsl #2 + b _02067494 +_02066A64: ; jump table + b _02066A80 ; case 0 + b _02066B08 ; case 1 + b _02066DA4 ; case 2 + b _02066DAC ; case 3 + b _020672F4 ; case 4 + b _02067374 ; case 5 + b _02067474 ; case 6 +_02066A80: + bl sub_020691B8 + ldr r0, _020674A0 ; =_020B0B2C + mov r2, #1 + ldr r1, [r0, #0x14] + str r2, [r1] + ldr r1, [r6, #0xee4] + cmp r1, #0 + bne _02066AF4 + ldr r1, [r0, #0x14] + ldr r0, [r1, #4] + sub r0, r0, #0xa + cmp r0, #3 + bhi _02066AC8 + add r0, r1, #0x2e4 + ldr r1, _020674A4 ; =_020A92A8 + ldr r2, _020674A8 ; =sub_020696E8 + add r0, r0, #0xc00 + bl sub_0204707C +_02066AC8: + ldr r0, _020674A0 ; =_020B0B2C + ldr r1, [r0, #0x14] + ldr r0, [r1, #4] + cmp r0, #0xe + bne _02067494 + add r0, r1, #0x2e4 + ldr r1, _020674A4 ; =_020A92A8 + ldr r2, _020674AC ; =sub_02069750 + add r0, r0, #0xc00 + bl sub_0204707C + b _02067494 +_02066AF4: + ldr r0, [r0, #0x14] + add r0, r0, #0x2e4 + add r0, r0, #0xc00 + bl sub_02047188 + b _02067494 +_02066B08: + ldrsb r0, [r6, #0x7d] + bl GetWindowIdSelectedMenuItemIdx + ldr r1, [r6, #0xef0] + mov r4, r0 + cmp r1, #0 + strneb r4, [r1] + ldrsb r0, [r6, #0x7d] + bl IsCollectionMenuActive + cmp r0, #0 + bne _02066D68 + ldrsb r0, [r6, #0x7d] + bl sub_0202C75C + movs r5, r0 + bpl _02066BAC + mov r2, #0 + mov r1, r2 + b _02066B58 +_02066B4C: + add r0, r6, r2 + strb r1, [r0, #0x4c] + add r2, r2, #1 +_02066B58: + ldr r0, [r6, #0x6c] + cmp r2, r0 + blt _02066B4C + mvn r0, #0 + str r0, [r6, #8] + bl sub_020692B4 + ldr r0, _020674A0 ; =_020B0B2C + ldr r0, [r0, #0x14] + add r0, r0, #0x2e4 + add r0, r0, #0xc00 + bl sub_02047150 + ldr r0, _020674A0 ; =_020B0B2C + ldr r0, [r0, #0x14] + ldr r0, [r0, #4] + sub r0, r0, #0xa + cmp r0, #3 + bhi _02066BA4 + bl sub_0205F5A8 + bl sub_0205F710 +_02066BA4: + mvn r0, #0 + b _02067498 +_02066BAC: + bl sub_020674E8 + cmp r0, #0 + beq _02066BE8 + ldr r0, _020674A0 ; =_020B0B2C + ldr r0, [r0, #0x14] + ldr r0, [r0, #4] + sub r0, r0, #0x12 + cmp r0, #1 + bhi _02066D68 + bl sub_020692B4 + ldr r0, _020674A0 ; =_020B0B2C + mov r1, #2 + ldr r0, [r0, #0x14] + str r1, [r0] + b _02066D68 +_02066BE8: + ldr r3, [r6, #8] + cmp r3, r5 + bne _02066D64 + ldr r0, _020674A0 ; =_020B0B2C + ldr r1, [r0, #0x14] + ldr r2, [r1, #4] + cmp r2, #0xe + cmpne r2, #0xf + cmpne r2, #0x11 + moveq r0, #2 + streq r0, [r1] + beq _02066D68 + sub r1, r2, #0xa + cmp r1, #3 + bhi _02066CF4 + bl CountJobListMissions + cmp r0, #8 + bge _02066CEC + ldr r1, _020674A0 ; =_020B0B2C + mov r0, #0 + ldr r1, [r1, #0x14] + ldr r1, [r1, #4] + sub r1, r1, #0xa + cmp r1, #3 + addls pc, pc, r1, lsl #2 + b _02066CCC +_02066C50: ; jump table + b _02066C60 ; case 0 + b _02066C7C ; case 1 + b _02066C98 ; case 2 + b _02066CB4 ; case 3 +_02066C60: + ldr r0, [r6, #8] + add r0, r6, r0, lsl #1 + ldrsh r0, [r0, #0xc] + mov r0, r0, lsl #0x18 + mov r0, r0, asr #0x18 + bl sub_0205E970 + b _02066CCC +_02066C7C: + ldr r0, [r6, #8] + add r0, r6, r0, lsl #1 + ldrsh r0, [r0, #0xc] + mov r0, r0, lsl #0x18 + mov r0, r0, asr #0x18 + bl sub_0205EAE8 + b _02066CCC +_02066C98: + ldr r0, [r6, #8] + add r0, r6, r0, lsl #1 + ldrsh r0, [r0, #0xc] + mov r0, r0, lsl #0x18 + mov r0, r0, asr #0x18 + bl sub_0205EBD8 + b _02066CCC +_02066CB4: + ldr r0, [r6, #8] + add r0, r6, r0, lsl #1 + ldrsh r0, [r0, #0xc] + mov r0, r0, lsl #0x18 + mov r0, r0, asr #0x18 + bl sub_0205EC38 +_02066CCC: + bl AddMissionToJobList + bl sub_020686F4 + bl sub_0206937C + ldr r0, _020674A0 ; =_020B0B2C + ldr r0, [r0, #0x14] + add r0, r0, #0x2e4 + add r0, r0, #0xc00 + bl sub_02047188 +_02066CEC: + bl sub_020691B8 + b _02066D68 +_02066CF4: + cmp r2, #0x10 + bne _02066D04 + bl sub_020691B8 + b _02066D68 +_02066D04: + sub r1, r2, #0x12 + cmp r1, #1 + bhi _02066D30 + add r1, r6, r3 + mov r2, #1 + strb r2, [r1, #0x4c] + ldr r0, [r0, #0x14] + mov r1, #2 + str r1, [r0] + bl sub_020692B4 + b _02066D68 +_02066D30: + cmp r2, #9 + cmpne r2, #0x14 + cmpne r2, #4 + bne _02066D58 + bl sub_020692B4 + ldr r0, _020674A0 ; =_020B0B2C + mov r1, #2 + ldr r0, [r0, #0x14] + str r1, [r0] + b _02066D68 +_02066D58: + bl sub_020692B4 + mov r0, #1 + b _02067498 +_02066D64: + bl sub_020691B8 +_02066D68: + bl sub_020698B8 + cmp r0, #0 + beq _02066D90 + cmp r4, #0 + blt _02066D90 + ldr r0, [r6, #8] + cmp r0, r4 + beq _02066D90 + str r4, [r6, #8] + bl sub_0206937C +_02066D90: + ldr r0, [r6, #0xee4] + cmp r0, #0 + beq _02067494 + bl sub_020470D0 + b _02067494 +_02066DA4: + bl sub_02067708 + b _02067494 +_02066DAC: + bl sub_02046B04 + bl sub_02068308 + ldr r1, [r6, #0xef4] + mov r4, r0 + cmp r1, #0 + beq _02066DD0 + bl sub_02046BA0 + ldr r1, [r6, #0xef4] + strb r0, [r1] +_02066DD0: + cmp r4, #1 + bne _02066E00 + ldr r0, _020674A0 ; =_020B0B2C + ldr r0, [r0, #0x14] + ldr r0, [r0, #4] + cmp r0, #9 + bne _02066DF4 + bl sub_0206955C + bl sub_02046D20 +_02066DF4: + bl sub_020692B4 + mov r0, #1 + b _02067498 +_02066E00: + cmp r4, #2 + bne _02066EDC + ldr r0, _020674A0 ; =_020B0B2C + ldr r0, [r0, #0x14] + ldr r0, [r0, #4] + cmp r0, #0xa + bne _02066E3C + ldr r0, [r6, #8] + add r0, r6, r0, lsl #1 + ldrsh r0, [r0, #0xc] + mov r0, r0, lsl #0x18 + mov r0, r0, asr #0x18 + bl sub_0205E970 + bl AddMissionToJobList + b _02066EC0 +_02066E3C: + cmp r0, #0xb + bne _02066E64 + ldr r0, [r6, #8] + add r0, r6, r0, lsl #1 + ldrsh r0, [r0, #0xc] + mov r0, r0, lsl #0x18 + mov r0, r0, asr #0x18 + bl sub_0205EAE8 + bl AddMissionToJobList + b _02066EC0 +_02066E64: + cmp r0, #0xc + bne _02066E8C + ldr r0, [r6, #8] + add r0, r6, r0, lsl #1 + ldrsh r0, [r0, #0xc] + mov r0, r0, lsl #0x18 + mov r0, r0, asr #0x18 + bl sub_0205EBD8 + bl AddMissionToJobList + b _02066EC0 +_02066E8C: + cmp r0, #0xd + bne _02066EB4 + ldr r0, [r6, #8] + add r0, r6, r0, lsl #1 + ldrsh r0, [r0, #0xc] + mov r0, r0, lsl #0x18 + mov r0, r0, asr #0x18 + bl sub_0205EC38 + bl AddMissionToJobList + b _02066EC0 +_02066EB4: + cmp r0, #0x14 + moveq r0, #1 + beq _02067498 +_02066EC0: + bl sub_020686F4 + bl sub_0206937C + ldr r0, _020674A0 ; =_020B0B2C + mov r1, #0 + ldr r0, [r0, #0x14] + str r1, [r0] + b _02067494 +_02066EDC: + cmp r4, #3 + bne _02066EF4 + bl sub_02067C8C + cmp r0, #0 + beq _02067494 + b _02067498 +_02066EF4: + cmp r4, #4 + bne _02066F44 + bl sub_02046BB4 + mov r0, #6 + bl PlaySeVolumeWrapper + ldr r0, [r6, #8] + add r0, r6, r0, lsl #1 + ldrsh r0, [r0, #0xc] + mov r0, r0, lsl #0x18 + mov r0, r0, asr #0x18 + bl GetAcceptedMission + mov r1, #4 + strb r1, [r0] + bl sub_020686F4 + bl sub_0206937C + ldr r0, _020674A0 ; =_020B0B2C + mov r1, #0 + ldr r0, [r0, #0x14] + str r1, [r0] + b _02067494 +_02066F44: + cmp r4, #5 + bne _02067020 + ldr r0, _020674A0 ; =_020B0B2C + ldr r0, [r0, #0x14] + ldr r0, [r0, #4] + cmp r0, #0x11 + bne _02066F84 + ldr r0, [r6, #8] + add r0, r6, r0, lsl #1 + ldrsh r0, [r0, #0xc] + mov r0, r0, lsl #0x18 + mov r0, r0, asr #0x18 + bl sub_0205F588 + bl sub_0205F5A8 + mov r0, #1 + b _02067498 +_02066F84: + cmp r0, #0x12 + moveq r0, #1 + beq _02067498 + cmp r0, #0xe + bne _02066FB4 + mov r0, #0 + bl PlaySeVolumeWrapper + ldr r0, _020674A0 ; =_020B0B2C + mov r1, #4 + ldr r0, [r0, #0x14] + str r1, [r0] + b _02067494 +_02066FB4: + ldr r0, [r6, #8] + add r0, r6, r0, lsl #1 + ldrsh r0, [r0, #0xc] + mov r0, r0, lsl #0x18 + mov r0, r0, asr #0x18 + bl sub_0205F588 + bl sub_0205F5A8 + bl CountJobListMissions + cmp r0, #0 + bne _02066FFC + bl sub_020692B4 + ldr r0, _020674A0 ; =_020B0B2C + ldr r0, [r0, #0x14] + add r0, r0, #0x2e4 + add r0, r0, #0xc00 + bl sub_02047150 + mvn r0, #0 + b _02067498 +_02066FFC: + bl sub_020686F4 + bl sub_0206937C + ldr r0, _020674A0 ; =_020B0B2C + mov r2, #0 + ldr r1, [r0, #0x14] + mov r0, #1 + str r2, [r1] + strb r0, [r6, #0xd84] + b _02067494 +_02067020: + cmp r4, #6 + bne _020670F4 + ldr r3, [r6, #0x70] + mov r1, #1 + add r0, r6, r3 + strb r1, [r0, #0x4c] + add r2, r3, #1 + ldr r1, [r6, #0x6c] + b _0206705C +_02067044: + add r0, r6, r2 + ldrb r0, [r0, #0x4c] + cmp r0, #0 + strne r2, [r6, #0x70] + bne _02067064 + add r2, r2, #1 +_0206705C: + cmp r2, r1 + blt _02067044 +_02067064: + ldr r0, [r6, #0x70] + cmp r0, r3 + bne _020670A0 + bl sub_020674E8 + cmp r0, #0 + bne _02067098 + bl sub_02046D20 + mov r1, #0 + ldr r0, _020674A0 ; =_020B0B2C + str r1, [r6, #8] + ldr r0, [r0, #0x14] + str r1, [r0] + b _02067494 +_02067098: + mov r0, #2 + b _02067498 +_020670A0: + str r0, [r6, #8] + bl sub_0206937C + ldr r0, _020674A0 ; =_020B0B2C + ldr r1, _020674B0 ; =_020A937C + ldrsb r3, [r0, #0xd] + ldr r0, _020674B4 ; =_020B0B39 + ldr r2, _020674B8 ; =JOB_MENU_ITEMS_11 + ldr r1, [r1, r3, lsl #3] + add r3, r6, #0x248 + str r1, [r6, #0xe48] + str r0, [r6, #0xef4] + mov r0, #0 + ldr r1, _020674BC ; =0x00003878 + str r2, [sp] + str r1, [sp, #4] + ldr r2, _020674C0 ; =0x00000233 + mov r1, r0 + add r3, r3, #0xc00 + str r0, [sp, #8] + bl sub_02046A20 + b _02067494 +_020670F4: + sub r0, r4, #7 + cmp r0, #1 + bhi _02067494 + ldr r0, _020674A0 ; =_020B0B2C + ldr r1, [r0, #0x14] + ldr r0, [r1, #4] + cmp r0, #0x11 + bne _02067134 + bl sub_02046D20 + ldr r1, [r6, #8] + ldr r0, _020674A0 ; =_020B0B2C + str r1, [r6, #0xd88] + ldr r0, [r0, #0x14] + mov r1, #0 + str r1, [r0] + b _02067494 +_02067134: + cmp r0, #0x13 + bne _02067210 + ldr r3, [r6, #0x70] + mov r1, #0 + add r0, r6, r3 + strb r1, [r0, #0x4c] + mov r2, r3 + ldr r1, [r6, #0x6c] + b _02067170 +_02067158: + add r0, r6, r2 + ldrb r0, [r0, #0x4c] + cmp r0, #0 + strne r2, [r6, #0x70] + bne _02067178 + add r2, r2, #1 +_02067170: + cmp r2, r1 + blt _02067158 +_02067178: + ldr r0, [r6, #0x70] + cmp r0, r3 + bne _020671BC + bl sub_020674E8 + cmp r0, #0 + bne _020671B4 + bl sub_02046D20 + mov r0, #0 + str r0, [r6, #8] + bl sub_0206937C + ldr r0, _020674A0 ; =_020B0B2C + mov r1, #0 + ldr r0, [r0, #0x14] + str r1, [r0] + b _02067494 +_020671B4: + mov r0, #2 + b _02067498 +_020671BC: + str r0, [r6, #8] + bl sub_0206937C + ldr r0, _020674A0 ; =_020B0B2C + ldr r1, _020674B0 ; =_020A937C + ldrsb r3, [r0, #0xd] + ldr r0, _020674B4 ; =_020B0B39 + ldr r2, _020674B8 ; =JOB_MENU_ITEMS_11 + ldr r1, [r1, r3, lsl #3] + add r3, r6, #0x248 + str r1, [r6, #0xe48] + str r0, [r6, #0xef4] + mov r0, #0 + ldr r1, _020674BC ; =0x00003878 + str r2, [sp] + str r1, [sp, #4] + ldr r2, _020674C0 ; =0x00000233 + mov r1, r0 + add r3, r3, #0xc00 + str r0, [sp, #8] + bl sub_02046A20 + b _02067494 +_02067210: + cmp r0, #9 + bne _02067234 + bl sub_0206955C + bl sub_02046D20 + ldr r0, _020674A0 ; =_020B0B2C + mov r1, #0 + ldr r0, [r0, #0x14] + str r1, [r0] + b _02067494 +_02067234: + cmp r0, #4 + bne _02067254 + bl sub_02046D20 + ldr r0, _020674A0 ; =_020B0B2C + mov r1, #0 + ldr r0, [r0, #0x14] + str r1, [r0] + b _02067494 +_02067254: + cmp r0, #0x12 + bne _02067298 + mov r2, #0 + mov r1, r2 + b _02067274 +_02067268: + add r0, r6, r2 + strb r1, [r0, #0x4c] + add r2, r2, #1 +_02067274: + ldr r0, [r6, #0x6c] + cmp r2, r0 + blt _02067268 + bl sub_02046D20 + ldr r0, _020674A0 ; =_020B0B2C + mov r1, #0 + ldr r0, [r0, #0x14] + str r1, [r0] + b _02067494 +_02067298: + cmp r0, #0x14 + bne _020672B8 + bl sub_02046D20 + ldr r0, _020674A0 ; =_020B0B2C + mov r1, #0 + ldr r0, [r0, #0x14] + str r1, [r0] + b _02067494 +_020672B8: + cmp r0, #0xe + bne _020672E8 + bl sub_02046BB4 + cmp r4, #7 + bne _020672D4 + mov r0, #0 + bl PlaySeVolumeWrapper +_020672D4: + ldr r0, _020674A0 ; =_020B0B2C + mov r1, #0 + ldr r0, [r0, #0x14] + str r1, [r0] + b _02067494 +_020672E8: + mov r0, #0 + str r0, [r1] + b _02067494 +_020672F4: + mov r0, #0 + ldr r5, _020674C4 ; =_020A9268 + bl sub_02046D2C + str r0, [r6, #0xee8] + mov r0, #0 + bl sub_020474A0 + str r0, [r6, #0xeec] + bl sub_020469BC + bl sub_02068338 + ldr r0, _020674A0 ; =_020B0B2C + add r3, r6, #0x248 + ldr r0, [r0, #0x14] + mov r1, #0 + ldr r0, [r0, #4] + ldr r2, _020674C0 ; =0x00000233 + cmp r0, #0xe + moveq r0, #7 + streq r0, [r6, #0xe48] + moveq r0, #0 + streq r0, [r6, #0xef4] + ldreq r4, _020674C8 ; =JOB_MENU_ITEMS_4 + mov r0, r5 + str r4, [sp] + str r1, [sp, #4] + add r3, r3, #0xc00 + str r1, [sp, #8] + bl sub_02046A20 + ldr r0, _020674A0 ; =_020B0B2C + mov r1, #5 + ldr r0, [r0, #0x14] + str r1, [r0] + b _02067494 +_02067374: + bl sub_02046B04 + bl sub_02068308 + ldr r1, [r6, #0xef4] + mov r4, r0 + cmp r1, #0 + beq _02067398 + bl sub_02046BA0 + ldr r1, [r6, #0xef4] + strb r0, [r1] +_02067398: + cmp r4, #5 + bne _02067430 + bl sub_020469E8 + ldr r0, [r6, #0xee8] + bl sub_02046D2C + ldr r0, [r6, #0xeec] + bl sub_020474A0 + mov r0, #0 + str r0, [r6, #0xee8] + str r0, [r6, #0xeec] + bl sub_02046BB4 + ldr r0, [r6, #8] + add r0, r6, r0, lsl #1 + ldrsh r0, [r0, #0xc] + mov r0, r0, lsl #0x18 + mov r0, r0, asr #0x18 + bl sub_0205F588 + bl sub_0205F5A8 + bl CountJobListMissions + cmp r0, #0 + bne _0206740C + bl sub_020692B4 + ldr r0, _020674A0 ; =_020B0B2C + ldr r0, [r0, #0x14] + add r0, r0, #0x2e4 + add r0, r0, #0xc00 + bl sub_02047150 + mvn r0, #0 + b _02067498 +_0206740C: + bl sub_020686F4 + bl sub_0206937C + ldr r0, _020674A0 ; =_020B0B2C + mov r2, #0 + ldr r1, [r0, #0x14] + mov r0, #1 + str r2, [r1] + strb r0, [r6, #0xd84] + b _02067494 +_02067430: + sub r0, r4, #7 + cmp r0, #1 + bhi _02067494 + bl sub_020469E8 + ldr r0, [r6, #0xee8] + bl sub_02046D2C + ldr r0, [r6, #0xeec] + bl sub_020474A0 + mov r0, #0 + str r0, [r6, #0xee8] + str r0, [r6, #0xeec] + bl sub_02046BB4 + ldr r0, _020674A0 ; =_020B0B2C + mov r1, #0 + ldr r0, [r0, #0x14] + str r1, [r0] + b _02067494 +_02067474: + bl sub_02046C78 + cmp r0, #0 + beq _02067494 + bl sub_02046D20 + ldr r0, _020674A0 ; =_020B0B2C + mov r1, #0 + ldr r0, [r0, #0x14] + str r1, [r0] +_02067494: + mov r0, #0 +_02067498: + add sp, sp, #0xc + ldmia sp!, {r3, r4, r5, r6, pc} + .align 2, 0 +_020674A0: .word _020B0B2C +_020674A4: .word _020A92A8 +_020674A8: .word sub_020696E8 +_020674AC: .word sub_02069750 +_020674B0: .word _020A937C +_020674B4: .word _020B0B39 +_020674B8: .word JOB_MENU_ITEMS_11 +#if defined(EUROPE) +_020674BC: .word 0x0000387A +#elif defined(JAPAN) +_020674BC: .word 0x000034B6 +#else +_020674BC: .word 0x00003878 +#endif +_020674C0: .word 0x00000233 +_020674C4: .word _020A9268 +_020674C8: .word JOB_MENU_ITEMS_4 + arm_func_end sub_02066A44 + + arm_func_start sub_020674CC +sub_020674CC: ; 0x020674CC + ldr r0, _020674E4 ; =_020B0B2C + ldr r1, [r0, #0x14] + ldr r0, [r1, #8] + add r0, r1, r0, lsl #1 + ldrsh r0, [r0, #0xc] + bx lr + .align 2, 0 +_020674E4: .word _020B0B2C + arm_func_end sub_020674CC + + arm_func_start sub_020674E8 +sub_020674E8: ; 0x020674E8 + ldr r0, _02067520 ; =_020B0B2C + mov ip, #0 + ldr r2, [r0, #0x14] + mov r0, ip + ldr r3, [r2, #0x6c] + b _02067514 +_02067500: + add r1, r2, ip + ldrb r1, [r1, #0x4c] + add ip, ip, #1 + cmp r1, #0 + addne r0, r0, #1 +_02067514: + cmp ip, r3 + blt _02067500 + bx lr + .align 2, 0 +_02067520: .word _020B0B2C + arm_func_end sub_020674E8 + + arm_func_start sub_02067524 +sub_02067524: ; 0x02067524 + stmdb sp!, {r4, lr} + mov lr, #0 + mov r4, lr + ldr r2, _02067580 ; =_020B0B2C + b _02067568 +_02067538: + cmp lr, r1 + movge r0, #0 + ldmgeia sp!, {r4, pc} + add r3, ip, r4 + ldrb r3, [r3, #0x4c] + cmp r3, #0 + addne r3, ip, r4, lsl #1 + ldrnesh ip, [r3, #0xc] + movne r3, lr, lsl #1 + addne lr, lr, #1 + strneh ip, [r0, r3] + add r4, r4, #1 +_02067568: + ldr ip, [r2, #0x14] + ldr r3, [ip, #0x6c] + cmp r4, r3 + blt _02067538 + mov r0, #1 + ldmia sp!, {r4, pc} + .align 2, 0 +_02067580: .word _020B0B2C + arm_func_end sub_02067524 + + arm_func_start sub_02067584 +sub_02067584: ; 0x02067584 + stmdb sp!, {r4, lr} + sub sp, sp, #0x40 + cmp r0, #0x13 + addls pc, pc, r0, lsl #2 + b _02067658 +_02067598: ; jump table + b _020675E8 ; case 0 + b _020675E8 ; case 1 + b _020675E8 ; case 2 + b _020675E8 ; case 3 + b _020675E8 ; case 4 + b _020675E8 ; case 5 + b _020675E8 ; case 6 + b _020675E8 ; case 7 + b _02067658 ; case 8 + b _020675E8 ; case 9 + b _020675E8 ; case 10 + b _020675E8 ; case 11 + b _020675E8 ; case 12 + b _020675E8 ; case 13 + b _02067638 ; case 14 + b _02067638 ; case 15 + b _02067638 ; case 16 + b _02067604 ; case 17 + b _020675E8 ; case 18 + b _02067650 ; case 19 +_020675E8: + add r1, sp, #0 + bl sub_02068390 + cmp r0, #0 + moveq r0, #1 + movne r0, #0 + and r0, r0, #0xff + b _0206765C +_02067604: + bl sub_0204E210 + cmp r0, #1 + bne _02067638 + bl CountJobListMissions + mov r4, r0 + bl GetAdventureLogDungeonFloor + ldrb r0, [r0] + bl DungeonRequestsDoneWrapper + subs r0, r4, r0 + moveq r0, #1 + movne r0, #0 + and r0, r0, #0xff + b _0206765C +_02067638: + bl CountJobListMissions + cmp r0, #0 + moveq r0, #1 + movne r0, #0 + and r0, r0, #0xff + b _0206765C +_02067650: + mov r0, #0 + b _0206765C +_02067658: + mov r0, #1 +_0206765C: + add sp, sp, #0x40 + ldmia sp!, {r4, pc} + arm_func_end sub_02067584 + + arm_func_start sub_02067664 +sub_02067664: ; 0x02067664 + stmdb sp!, {r3, lr} + ldr r0, _020676A8 ; =_020B0B2C + ldr r0, [r0, #0x14] + cmp r0, #0 + ldmeqia sp!, {r3, pc} + add r0, r0, #0x2e4 + add r0, r0, #0xc00 + bl sub_02047150 + bl sub_02069904 + bl sub_020692B4 + ldr r0, _020676A8 ; =_020B0B2C + ldr r0, [r0, #0x14] + bl MemFree + ldr r0, _020676A8 ; =_020B0B2C + mov r1, #0 + str r1, [r0, #0x14] + ldmia sp!, {r3, pc} + .align 2, 0 +_020676A8: .word _020B0B2C + arm_func_end sub_02067664 + + arm_func_start sub_020676AC +sub_020676AC: ; 0x020676AC + ldr r0, _02067704 ; =_020B0B2C + mov r1, #0 + strb r1, [r0, #0x10] + strb r1, [r0, #0xe] + strb r1, [r0, #9] + strb r1, [r0, #8] + strb r1, [r0, #6] + strb r1, [r0, #0xb] + strb r1, [r0, #4] + strb r1, [r0, #0xd] + strb r1, [r0, #7] + strb r1, [r0, #3] + strb r1, [r0, #2] + strb r1, [r0, #5] + strb r1, [r0, #1] + strb r1, [r0] + strb r1, [r0, #0x13] + strb r1, [r0, #0x12] + strb r1, [r0, #0x11] + strb r1, [r0, #0xa] + strb r1, [r0, #0xf] + bx lr + .align 2, 0 +_02067704: .word _020B0B2C + arm_func_end sub_020676AC + + arm_func_start sub_02067708 +sub_02067708: ; 0x02067708 +#if defined(EUROPE) +#define SUB_02067708_WORD_OFFSET 2 +#elif defined(JAPAN) +#define SUB_02067708_WORD_OFFSET -0x3C2 +#else +#define SUB_02067708_WORD_OFFSET 0 +#endif + stmdb sp!, {r4, r5, r6, r7, r8, sb, lr} + sub sp, sp, #0x5c + ldr r1, _02067C00 ; =_020B0B2C + mov r6, #0 + add r0, sp, #0xc + mov sb, r6 + ldr r4, [r1, #0x14] + ldr r7, _02067C04 ; =_020A9298 + ldr r8, _02067C08 ; =0x00000233 + bl InitPreprocessorArgs + bl sub_02068338 + ldr r1, _02067C00 ; =_020B0B2C + ldr r0, [r1, #0x14] + ldr r2, [r0, #4] + sub r2, r2, #4 + cmp r2, #0x10 + addls pc, pc, r2, lsl #2 + b _02067BC4 +_02067750: ; jump table + b _02067AF8 ; case 0 + b _02067BC4 ; case 1 + b _02067BC4 ; case 2 + b _02067BC4 ; case 3 + b _02067BC4 ; case 4 + b _02067A80 ; case 5 + b _02067794 ; case 6 + b _020677F0 ; case 7 + b _0206784C ; case 8 + b _020678A8 ; case 9 + b _02067904 ; case 10 + b _020679E0 ; case 11 + b _02067BC4 ; case 12 + b _02067A50 ; case 13 + b _02067B20 ; case 14 + b _02067B3C ; case 15 + b _02067BA0 ; case 16 +_02067794: + ldr r0, [r4, #8] + add r0, r4, r0, lsl #1 + ldrsh r0, [r0, #0xc] + mov r0, r0, lsl #0x18 + mov r0, r0, asr #0x18 + bl sub_0205E970 + bl AlreadyHaveMission + cmp r0, #0 + bne _020677C4 + bl CountJobListMissions + cmp r0, #8 + blt _020677CC +_020677C4: + mov r0, #3 + strb r0, [r4, #0xee0] +_020677CC: + ldr r0, _02067C00 ; =_020B0B2C + ldr r1, _02067C0C ; =_020A9364 + ldrsb r2, [r0, #0x10] + ldr r0, _02067C10 ; =_020B0B3C + ldr r5, _02067C14 ; =JOB_MENU_ITEMS_10 + ldr r1, [r1, r2, lsl #3] + str r1, [r4, #0xe48] + str r0, [r4, #0xef4] + b _02067BC4 +_020677F0: + ldr r0, [r4, #8] + add r0, r4, r0, lsl #1 + ldrsh r0, [r0, #0xc] + mov r0, r0, lsl #0x18 + mov r0, r0, asr #0x18 + bl sub_0205EAE8 + bl AlreadyHaveMission + cmp r0, #0 + bne _02067820 + bl CountJobListMissions + cmp r0, #8 + blt _02067828 +_02067820: + mov r0, #3 + strb r0, [r4, #0xee0] +_02067828: + ldr r0, _02067C00 ; =_020B0B2C + ldr r1, _02067C0C ; =_020A9364 + ldrsb r2, [r0, #0xe] + ldr r0, _02067C18 ; =_020B0B3A + ldr r5, _02067C14 ; =JOB_MENU_ITEMS_10 + ldr r1, [r1, r2, lsl #3] + str r1, [r4, #0xe48] + str r0, [r4, #0xef4] + b _02067BC4 +_0206784C: + ldr r0, [r4, #8] + add r0, r4, r0, lsl #1 + ldrsh r0, [r0, #0xc] + mov r0, r0, lsl #0x18 + mov r0, r0, asr #0x18 + bl sub_0205EBD8 + bl AlreadyHaveMission + cmp r0, #0 + bne _0206787C + bl CountJobListMissions + cmp r0, #8 + blt _02067884 +_0206787C: + mov r0, #3 + strb r0, [r4, #0xee0] +_02067884: + ldr r0, _02067C00 ; =_020B0B2C + ldr r1, _02067C0C ; =_020A9364 + ldrsb r2, [r0, #9] + ldr r0, _02067C1C ; =_020B0B35 + ldr r5, _02067C14 ; =JOB_MENU_ITEMS_10 + ldr r1, [r1, r2, lsl #3] + str r1, [r4, #0xe48] + str r0, [r4, #0xef4] + b _02067BC4 +_020678A8: + ldr r0, [r4, #8] + add r0, r4, r0, lsl #1 + ldrsh r0, [r0, #0xc] + mov r0, r0, lsl #0x18 + mov r0, r0, asr #0x18 + bl sub_0205EC38 + bl AlreadyHaveMission + cmp r0, #0 + bne _020678D8 + bl CountJobListMissions + cmp r0, #8 + blt _020678E0 +_020678D8: + mov r0, #3 + strb r0, [r4, #0xee0] +_020678E0: + ldr r0, _02067C00 ; =_020B0B2C + ldr r1, _02067C0C ; =_020A9364 + ldrsb r2, [r0, #8] + ldr r0, _02067C20 ; =_020B0B34 + ldr r5, _02067C14 ; =JOB_MENU_ITEMS_10 + ldr r1, [r1, r2, lsl #3] + str r1, [r4, #0xe48] + str r0, [r4, #0xef4] + b _02067BC4 +_02067904: + ldr r0, [r4, #8] + add r0, r4, r0, lsl #1 + ldrsh r0, [r0, #0xc] + mov r0, r0, lsl #0x18 + mov r0, r0, asr #0x18 + bl GetAcceptedMission + mov r5, r0 + ldrb r0, [r5, #4] + bl DungeonSwapIdToIdx + ldrb r0, [r5] + orr r8, r8, #0x400000 + orr r8, r8, #0x80000000 + cmp r0, #4 + addls pc, pc, r0, lsl #2 + b _0206798C +_02067940: ; jump table + b _0206798C ; case 0 + b _02067954 ; case 1 + b _02067954 ; case 2 + b _02067954 ; case 3 + b _02067954 ; case 4 +_02067954: + mov r0, r5 + bl sub_0205ECF4 + cmp r0, #0 + movne r0, #3 + strneb r0, [r4, #0xee0] + ldr r0, _02067C00 ; =_020B0B2C + ldr r1, _02067C24 ; =_020A9394 + ldrsb r2, [r0, #6] + ldr r0, _02067C28 ; =_020B0B32 + ldr r5, _02067C2C ; =JOB_MENU_ITEMS_12 + ldr r1, [r1, r2, lsl #3] + str r1, [r4, #0xe48] + str r0, [r4, #0xef4] + b _02067BC4 +_0206798C: + ldrb r1, [r5, #1] + cmp r1, #3 + ldreqb r0, [r5, #2] + cmpeq r0, #3 + moveq r0, #3 + streqb r0, [r4, #0xee0] + beq _020679BC + cmp r1, #6 + ldreqb r0, [r5, #2] + cmpeq r0, #4 + moveq r0, #3 + streqb r0, [r4, #0xee0] +_020679BC: + ldr r0, _02067C00 ; =_020B0B2C + ldr r1, _02067C30 ; =_020A93B4 + ldrsb r2, [r0, #6] + ldr r0, _02067C28 ; =_020B0B32 + ldr r5, _02067C34 ; =JOB_MENU_ITEMS_13 + ldr r1, [r1, r2, lsl #3] + str r1, [r4, #0xe48] + str r0, [r4, #0xef4] + b _02067BC4 +_020679E0: + ldr r0, [r4, #8] + add r0, r4, r0, lsl #1 + ldrsh r0, [r0, #0xc] + mov r0, r0, lsl #0x18 + mov r0, r0, asr #0x18 + bl GetAcceptedMission + ldrb r0, [r0] + cmp r0, #4 + beq _02067A2C + ldr r0, [r4, #8] + add r0, r4, r0, lsl #1 + ldrsh r0, [r0, #0xc] + mov r0, r0, lsl #0x18 + mov r0, r0, asr #0x18 + bl GetAcceptedMission + ldrb r0, [r0] + cmp r0, #1 + movne r0, #3 + strneb r0, [r4, #0xee0] +_02067A2C: + ldr r0, _02067C00 ; =_020B0B2C + ldr r1, _02067C38 ; =_020A92EC + ldrsb r2, [r0, #0xb] + ldr r0, _02067C3C ; =_020B0B37 + ldr r5, _02067C40 ; =JOB_MENU_ITEMS_5 + ldr r1, [r1, r2, lsl #3] + str r1, [r4, #0xe48] + str r0, [r4, #0xef4] + b _02067BC4 +_02067A50: + ldr r5, _02067C44 ; =JOB_MENU_ITEMS_7 + ldr r6, _02067C48 ; =0x000037B0 + mov r7, sb + bl sub_020692B4 + ldr r0, _02067C00 ; =_020B0B2C + ldr r1, _02067C4C ; =_020A931C + ldrsb r2, [r0, #4] + ldr r0, _02067C50 ; =_020B0B30 + ldr r1, [r1, r2, lsl #3] + str r1, [r4, #0xe48] + str r0, [r4, #0xef4] + b _02067BC4 +_02067A80: + sub r1, r8, #0x100 + str r1, [sp, #0xc] + add r1, r0, #0xd00 + mov r7, r6 + ldrsb r2, [r1, #0x85] + sub r1, r7, #2 + ldr r5, _02067C54 ; =JOB_MENU_ITEMS_3 + cmp r2, r1 + ldreq r0, [r0, #4] + ldr r6, _02067C58 ; =0x0000380C + mov sb, #0x1000 + cmpeq r0, #9 + bne _02067AE4 + mov r0, r7 + mov r1, #3 + mov r2, #1 + bl CreatePortraitBox + ldr r2, _02067C00 ; =_020B0B2C + ldr r1, _02067C5C ; =_020A9278 + ldr r3, [r2, #0x14] + strb r0, [r3, #0xd85] + ldr r0, [r2, #0x14] + add r0, r0, #0xd00 + ldrsb r0, [r0, #0x85] + bl ShowPortraitInPortraitBox +_02067AE4: + ldr r1, [r5, #0xc] + mov r0, #0 + str r1, [r4, #0xe48] + str r0, [r4, #0xef4] + b _02067BC4 +_02067AF8: + ldrsb r2, [r1, #0xc] + ldr r1, _02067C60 ; =_020A9304 + ldr r0, _02067C64 ; =_020B0B38 + ldr r1, [r1, r2, lsl #3] + ldr r5, _02067C68 ; =JOB_MENU_ITEMS_6 + str r1, [r4, #0xe48] + str r0, [r4, #0xef4] +#ifdef NORTH_AMERICA + rsb r6, r8, #0x3a40 +#else + ldr r6, _02067FF0 ; =0x0000380F +#endif + mov r7, sb + b _02067BC4 +_02067B20: + mov r0, #7 + mov r7, r6 + str r0, [r4, #0xe48] + str r7, [r4, #0xef4] + ldr r5, _02067C6C ; =JOB_MENU_ITEMS_9 + ldr r6, _02067C70 ; =0x000038BF + b _02067BC4 +_02067B3C: + ldr r1, [r4, #0x6c] + ldr r5, _02067C74 ; =JOB_MENU_ITEMS_11 + ldr r6, _02067C78 ; =0x00003878 + mov r2, sb + b _02067B68 +_02067B50: + add r0, r4, r2 + ldrb r0, [r0, #0x4c] + cmp r0, #0 + strne r2, [r4, #0x70] + bne _02067B70 + add r2, r2, #1 +_02067B68: + cmp r2, r1 + blt _02067B50 +_02067B70: + ldr r0, [r4, #0x70] + mov r7, #0 + str r0, [r4, #8] + bl sub_0206937C + ldr r0, _02067C00 ; =_020B0B2C + ldr r1, _02067C7C ; =_020B0B39 + ldrsb r0, [r0, #0xd] + add r0, r5, r0, lsl #3 + ldr r0, [r0, #4] + str r0, [r4, #0xe48] + str r1, [r4, #0xef4] + b _02067BC4 +_02067BA0: + ldrsb r2, [r1, #7] + ldr r1, _02067C80 ; =_020A9334 + ldr r0, _02067C84 ; =_020B0B33 + ldr r1, [r1, r2, lsl #3] + ldr r5, _02067C88 ; =JOB_MENU_ITEMS_8 + str r1, [r4, #0xe48] +#ifdef NORTH_AMERICA + add r6, r8, #0x3580 +#else + ldr r6, _02068014 ; =0x000037B5 +#endif + str r0, [r4, #0xef4] + mov r7, sb +_02067BC4: + add r3, r4, #0x248 + stmia sp, {r5, r6} + add r4, sp, #0xc + mov r0, r7 + mov r1, sb + mov r2, r8 + add r3, r3, #0xc00 + str r4, [sp, #8] + bl sub_02046A20 + ldr r0, _02067C00 ; =_020B0B2C + mov r1, #3 + ldr r0, [r0, #0x14] + str r1, [r0] + add sp, sp, #0x5c + ldmia sp!, {r4, r5, r6, r7, r8, sb, pc} + .align 2, 0 +_02067C00: .word _020B0B2C +_02067C04: .word _020A9298 +_02067C08: .word 0x00000233 +_02067C0C: .word _020A9364 +_02067C10: .word _020B0B3C +_02067C14: .word JOB_MENU_ITEMS_10 +_02067C18: .word _020B0B3A +_02067C1C: .word _020B0B35 +_02067C20: .word _020B0B34 +_02067C24: .word _020A9394 +_02067C28: .word _020B0B32 +_02067C2C: .word JOB_MENU_ITEMS_12 +_02067C30: .word _020A93B4 +_02067C34: .word JOB_MENU_ITEMS_13 +_02067C38: .word _020A92EC +_02067C3C: .word _020B0B37 +_02067C40: .word JOB_MENU_ITEMS_5 +_02067C44: .word JOB_MENU_ITEMS_7 +#ifdef JAPAN +_02067C48: .word 0x00003432 +#else +_02067C48: .word 0x000037B0 + SUB_02067708_WORD_OFFSET +#endif +_02067C4C: .word _020A931C +_02067C50: .word _020B0B30 +_02067C54: .word JOB_MENU_ITEMS_3 +_02067C58: .word 0x0000380C + SUB_02067708_WORD_OFFSET +_02067C5C: .word _020A9278 +_02067C60: .word _020A9304 +_02067C64: .word _020B0B38 +_02067C68: .word JOB_MENU_ITEMS_6 +#if defined(EUROPE) +_02067FF0: .word 0x0000380F +#elif defined(JAPAN) +_02067FF0: .word 0x0000344B +#endif +_02067C6C: .word JOB_MENU_ITEMS_9 +_02067C70: .word 0x000038BF + SUB_02067708_WORD_OFFSET +_02067C74: .word JOB_MENU_ITEMS_11 +_02067C78: .word 0x00003878 + SUB_02067708_WORD_OFFSET +_02067C7C: .word _020B0B39 +_02067C80: .word _020A9334 +_02067C84: .word _020B0B33 +_02067C88: .word JOB_MENU_ITEMS_8 +#ifdef EUROPE +_02068014: .word 0x000037B5 +#elif defined(JAPAN) +_02068014: .word 0x00003435 +#endif + arm_func_end sub_02067708 + + arm_func_start sub_02067C8C +sub_02067C8C: ; 0x02067C8C +#if defined(EUROPE) +#define SUB_02067C8C_WORD_OFFSET 2 +#elif defined(JAPAN) +#define SUB_02067C8C_WORD_OFFSET -0x3C2 +#else +#define SUB_02067C8C_WORD_OFFSET 0 +#endif + stmdb sp!, {r4, r5, r6, lr} + sub sp, sp, #0x60 + ldr r0, _020682E0 ; =_020B0B2C + ldr r6, [r0, #0x14] + bl sub_02046BB4 + mov r0, #6 + bl PlaySeVolumeWrapper + ldr r0, [r6, #8] + add r0, r6, r0, lsl #1 + ldrsh r0, [r0, #0xc] + mov r0, r0, lsl #0x18 + mov r0, r0, asr #0x18 + bl GetAcceptedMission + mov r4, r0 + ldrb r0, [r4, #4] + bl DungeonSwapIdToIdx + mov r5, r0 + add r0, sp, #8 + str r0, [sp] + ldrb r0, [r4, #1] + add r1, r4, #2 + add r2, sp, #4 + add r3, sp, #0xc + bl sub_0206276C + ldrb r1, [r4, #1] + cmp r1, #0xe + ldreqb r0, [r4, #2] + cmpeq r0, #1 + bne _02067E70 + bl GetRank + ldrb r1, [sp, #4] + cmp r1, r0 + bhi _02067D3C + bl GetScenarioBalance + ldr r1, [sp, #0xc] + cmp r1, r0 + bgt _02067D3C + ldr r0, [sp, #8] + cmp r0, #0 + beq _02067D7C + mov r0, #0x16 + bl GetResolvedPerformanceProgressFlag + cmp r0, #0 + bne _02067D7C +_02067D3C: + bl sub_020692B4 + ldr r0, _020682E0 ; =_020B0B2C + ldr r0, [r0, #0x14] + add r0, r0, #0x2e4 + add r0, r0, #0xc00 + bl sub_02047150 + ldr r1, _020682E4 ; =0x0000381F + mov r0, #0x1c + mov r2, #0 + bl sub_02046BE8 + ldr r0, _020682E0 ; =_020B0B2C + mov r2, #6 + ldr r1, [r0, #0x14] + mov r0, #0 + str r2, [r1] + b _020682D8 +_02067D7C: + mov r0, r5 + bl GetDungeonMode + cmp r0, #3 + bne _02067DCC + bl sub_020692B4 + ldr r0, _020682E0 ; =_020B0B2C + ldr r0, [r0, #0x14] + add r0, r0, #0x2e4 + add r0, r0, #0xc00 + bl sub_02047150 + ldr r1, _020682E8 ; =0x00003820 + mov r0, #0x1c + mov r2, #0 + bl sub_02046BE8 + ldr r0, _020682E0 ; =_020B0B2C + mov r2, #6 + ldr r1, [r0, #0x14] + mov r0, #0 + str r2, [r1] + b _020682D8 +_02067DCC: + ldrb r0, [r4, #4] + mov r4, #0 + sub r0, r0, #0x49 + cmp r0, #0xc + addls pc, pc, r0, lsl #2 + b _02067E4C +_02067DE4: ; jump table + b _02067E30 ; case 0 + b _02067E4C ; case 1 + b _02067E28 ; case 2 + b _02067E4C ; case 3 + b _02067E18 ; case 4 + b _02067E4C ; case 5 + b _02067E20 ; case 6 + b _02067E4C ; case 7 + b _02067E38 ; case 8 + b _02067E4C ; case 9 + b _02067E48 ; case 10 + b _02067E4C ; case 11 + b _02067E40 ; case 12 +_02067E18: + mov r4, #3 + b _02067E4C +_02067E20: + mov r4, #4 + b _02067E4C +_02067E28: + mov r4, #5 + b _02067E4C +_02067E30: + mov r4, #6 + b _02067E4C +_02067E38: + mov r4, #7 + b _02067E4C +_02067E40: + mov r4, #8 + b _02067E4C +_02067E48: + mov r4, #9 +_02067E4C: + ldr r0, [r6, #8] + add r0, r6, r0, lsl #1 + ldrsh r0, [r0, #0xc] + mov r0, r0, lsl #0x18 + mov r0, r0, asr #0x18 + bl sub_0205F588 + bl sub_0205F5A8 + mov r0, r4 + b _020682D8 +_02067E70: + cmp r1, #3 + ldreqb r0, [r4, #2] + cmpeq r0, #3 + bne _02067FE0 + ldrb r0, [r4, #4] + bl CheckDungeonMissionUnlockConditions + cmp r0, #1 + bne _02067ED0 + bl sub_020692B4 + ldr r0, _020682E0 ; =_020B0B2C + ldr r0, [r0, #0x14] + add r0, r0, #0x2e4 + add r0, r0, #0xc00 + bl sub_02047150 +#ifdef NORTH_AMERICA + mov r0, #0x1c + rsb r1, r0, #0x3840 +#else + ldr r1, _02068678 ; =0x00003826 + mov r0, #0x1c +#endif + mov r2, #0 + bl sub_02046BE8 + ldr r0, _020682E0 ; =_020B0B2C + mov r2, #6 + ldr r1, [r0, #0x14] + mov r0, #0 + str r2, [r1] + b _020682D8 +_02067ED0: + cmp r0, #0 + beq _02067F28 + add r0, sp, #0x10 + bl InitPreprocessorArgs + ldrb r0, [r4, #4] + str r0, [sp, #0x20] + bl sub_020692B4 + ldr r0, _020682E0 ; =_020B0B2C + ldr r0, [r0, #0x14] + add r0, r0, #0x2e4 + add r0, r0, #0xc00 + bl sub_02047150 + ldr r1, _020682EC ; =0x00003825 + add r2, sp, #0x10 + mov r0, #0x1c + bl sub_02046BE8 + ldr r0, _020682E0 ; =_020B0B2C + mov r2, #6 + ldr r1, [r0, #0x14] + mov r0, #0 + str r2, [r1] + b _020682D8 +_02067F28: + mov r0, r5 + mov r1, #3 + bl sub_0204D018 + mov r0, #5 + strb r0, [r4] + ldrb r0, [r4, #4] + sub r0, r0, #0x57 + cmp r0, #0xb + addls pc, pc, r0, lsl #2 + b _02067FE0 +_02067F50: ; jump table + b _02067F80 ; case 0 + b _02067F88 ; case 1 + b _02067F90 ; case 2 + b _02067F98 ; case 3 + b _02067FA0 ; case 4 + b _02067FA8 ; case 5 + b _02067FB0 ; case 6 + b _02067FB8 ; case 7 + b _02067FC0 ; case 8 + b _02067FC8 ; case 9 + b _02067FD0 ; case 10 + b _02067FD8 ; case 11 +_02067F80: + mov r0, #0xa + b _020682D8 +_02067F88: + mov r0, #0xb + b _020682D8 +_02067F90: + mov r0, #0xc + b _020682D8 +_02067F98: + mov r0, #0xd + b _020682D8 +_02067FA0: + mov r0, #0xe + b _020682D8 +_02067FA8: + mov r0, #0xf + b _020682D8 +_02067FB0: + mov r0, #0x10 + b _020682D8 +_02067FB8: + mov r0, #0x11 + b _020682D8 +_02067FC0: + mov r0, #0x12 + b _020682D8 +_02067FC8: + mov r0, #0x13 + b _020682D8 +_02067FD0: + mov r0, #0x14 + b _020682D8 +_02067FD8: + mov r0, #0x15 + b _020682D8 +_02067FE0: + ldrb r0, [r4, #1] + cmp r0, #0xb + bne _02068158 + ldrb r1, [r4, #2] + cmp r1, #1 + blo _02068158 + cmp r1, #5 + bhi _02068158 + add r1, r4, #2 + mov r2, #0xff + bl CheckAcceptedMissionByTypeAndDungeon + cmp r0, #0 + beq _02068054 + bl sub_020692B4 + ldr r0, _020682E0 ; =_020B0B2C + ldr r0, [r0, #0x14] + add r0, r0, #0x2e4 + add r0, r0, #0xc00 + bl sub_02047150 + ldr r1, _020682F0 ; =0x00003821 + mov r0, #0x1c + mov r2, #0 + bl sub_02046BE8 + ldr r0, _020682E0 ; =_020B0B2C + mov r2, #6 + ldr r1, [r0, #0x14] + mov r0, #0 + str r2, [r1] + b _020682D8 +_02068054: + bl GetRank + ldrb r1, [sp, #4] + cmp r1, r0 + bhi _02068090 + bl GetScenarioBalance + ldr r1, [sp, #0xc] + cmp r1, r0 + bgt _02068090 + ldr r0, [sp, #8] + cmp r0, #0 + beq _020680D0 + mov r0, #0x16 + bl GetResolvedPerformanceProgressFlag + cmp r0, #0 + bne _020680D0 +_02068090: + bl sub_020692B4 + ldr r0, _020682E0 ; =_020B0B2C + ldr r0, [r0, #0x14] + add r0, r0, #0x2e4 + add r0, r0, #0xc00 + bl sub_02047150 +#ifdef EUROPE + mov r0, #0x1c + rsb r1, r0, #0x3840 +#else + ldr r1, _020682F4 ; =0x00003822 + mov r0, #0x1c +#endif + mov r2, #0 + bl sub_02046BE8 + ldr r0, _020682E0 ; =_020B0B2C + mov r2, #6 + ldr r1, [r0, #0x14] + mov r0, #0 + str r2, [r1] + b _020682D8 +_020680D0: + ldrb r0, [r4, #2] + cmp r0, #5 + bne _02068158 + mov r0, #0 + bl IsSpecialEpisodeBeaten + cmp r0, #0 + bne _0206812C + bl sub_020692B4 + ldr r0, _020682E0 ; =_020B0B2C + ldr r0, [r0, #0x14] + add r0, r0, #0x2e4 + add r0, r0, #0xc00 + bl sub_02047150 + ldr r1, _020682F8 ; =0x00003823 + mov r0, #0x1c + mov r2, #0 + bl sub_02046BE8 + ldr r0, _020682E0 ; =_020B0B2C + mov r2, #6 + ldr r1, [r0, #0x14] + mov r0, #0 + str r2, [r1] + b _020682D8 +_0206812C: + mov r0, r5 + bl GetDungeonMode + cmp r0, #3 + beq _02068158 + mov r0, r5 + mov r1, #3 + bl sub_0204D018 + mov r0, #5 + strb r0, [r4] + mov r0, #0x16 + b _020682D8 +_02068158: + ldrb r1, [r4, #1] + cmp r1, #6 + ldreqb r0, [r4, #2] + cmpeq r0, #4 + bne _02068260 + ldrb r0, [r4, #4] + bl CheckDungeonMissionUnlockConditions + mov r6, r0 + bl GetRank + ldrb r1, [sp, #4] + cmp r1, r0 + bhi _020681BC + bl GetScenarioBalance + ldr r1, [sp, #0xc] + cmp r1, r0 + bgt _020681BC + ldr r0, [sp, #8] + cmp r0, #0 + beq _020681B4 + mov r0, #0x16 + bl GetResolvedPerformanceProgressFlag + cmp r0, #0 + beq _020681BC +_020681B4: + cmp r6, #1 + bne _020681FC +_020681BC: + bl sub_020692B4 + ldr r0, _020682E0 ; =_020B0B2C + ldr r0, [r0, #0x14] + add r0, r0, #0x2e4 + add r0, r0, #0xc00 + bl sub_02047150 +#ifdef JAPAN + mov r0, #0x1c + rsb r1, r0, #0x3480 +#else + ldr r1, _020682FC ; =0x00003826 + mov r0, #0x1c +#endif + mov r2, #0 + bl sub_02046BE8 + ldr r0, _020682E0 ; =_020B0B2C + mov r2, #6 + ldr r1, [r0, #0x14] + mov r0, #0 + str r2, [r1] + b _020682D8 +_020681FC: + cmp r6, #0 + beq _02068244 + bl sub_020692B4 + ldr r0, _020682E0 ; =_020B0B2C + ldr r0, [r0, #0x14] + add r0, r0, #0x2e4 + add r0, r0, #0xc00 + bl sub_02047150 + ldr r1, _02068300 ; =0x00003827 + mov r0, #0x1c + mov r2, #0 + bl sub_02046BE8 + ldr r0, _020682E0 ; =_020B0B2C + mov r2, #6 + ldr r1, [r0, #0x14] + mov r0, #0 + str r2, [r1] + b _020682D8 +_02068244: + mov r2, #5 + mov r0, r5 + mov r1, #3 + strb r2, [r4] + bl sub_0204D018 + mov r0, #0xe + b _020682D8 +_02068260: + cmp r1, #0xc + beq _020682B8 + ldrb r0, [r4, #4] + bl CanDungeonBeUsedForMission + cmp r0, #0 + bne _020682B8 + bl sub_020692B4 + ldr r0, _020682E0 ; =_020B0B2C + ldr r0, [r0, #0x14] + add r0, r0, #0x2e4 + add r0, r0, #0xc00 + bl sub_02047150 + ldr r1, _02068304 ; =0x00003828 + mov r0, #0x1c + mov r2, #0 + bl sub_02046BE8 + ldr r0, _020682E0 ; =_020B0B2C + mov r2, #6 + ldr r1, [r0, #0x14] + mov r0, #0 + str r2, [r1] + b _020682D8 +_020682B8: + mov r0, #5 + strb r0, [r4] + bl sub_020686F4 + bl sub_0206937C + ldr r1, _020682E0 ; =_020B0B2C + mov r0, #0 + ldr r1, [r1, #0x14] + str r0, [r1] +_020682D8: + add sp, sp, #0x60 + ldmia sp!, {r4, r5, r6, pc} + .align 2, 0 +_020682E0: .word _020B0B2C +_020682E4: .word 0x0000381F + SUB_02067C8C_WORD_OFFSET +_020682E8: .word 0x00003820 + SUB_02067C8C_WORD_OFFSET +#if defined(EUROPE) +_02068678: .word 0x00003826 +#elif defined(JAPAN) +_02068678: .word 0x00003462 +#endif +_020682EC: .word 0x00003825 + SUB_02067C8C_WORD_OFFSET +_020682F0: .word 0x00003821 + SUB_02067C8C_WORD_OFFSET +#ifndef EUROPE +_020682F4: .word 0x00003822 + SUB_02067C8C_WORD_OFFSET +#endif +_020682F8: .word 0x00003823 + SUB_02067C8C_WORD_OFFSET +#ifndef JAPAN +_020682FC: .word 0x00003826 + SUB_02067C8C_WORD_OFFSET +#endif +_02068300: .word 0x00003827 + SUB_02067C8C_WORD_OFFSET +_02068304: .word 0x00003828 + SUB_02067C8C_WORD_OFFSET + arm_func_end sub_02067C8C + + arm_func_start sub_02068308 +sub_02068308: ; 0x02068308 + mvn r2, #1 + cmp r0, r2 + moveq r0, #8 + bxeq lr + sub r1, r2, #1 + cmp r0, r1 + moveq r0, #8 + bxeq lr + add r1, r2, #1 + cmp r0, r1 + moveq r0, #0 + bx lr + arm_func_end sub_02068308 + + arm_func_start sub_02068338 +sub_02068338: ; 0x02068338 + stmdb sp!, {r3, lr} + ldr r0, _0206838C ; =_020B0B2C + mov r1, #0 + ldr r0, [r0, #0x14] + add r2, r0, #0xee0 + mov r0, r1 +_02068350: + strb r0, [r2, r1] + add r1, r1, #1 + cmp r1, #4 + blt _02068350 + ldr r0, _0206838C ; =_020B0B2C + mov r1, #0x98 + ldr r0, [r0, #0x14] + add r0, r0, #0x248 + add r0, r0, #0xc00 + bl MemZero + ldr r0, _0206838C ; =_020B0B2C + ldr r1, [r0, #0x14] + add r0, r1, #0xee0 + str r0, [r1, #0xea8] + ldmia sp!, {r3, pc} + .align 2, 0 +_0206838C: .word _020B0B2C + arm_func_end sub_02068338 + + arm_func_start sub_02068390 +sub_02068390: ; 0x02068390 + stmdb sp!, {r3, r4, r5, r6, lr} + sub sp, sp, #4 + mov r5, r1 + cmp r0, #0x12 + mov r4, #0 + addls pc, pc, r0, lsl #2 + b _020686E4 +_020683AC: ; jump table + b _020683F8 ; case 0 + b _02068468 ; case 1 + b _020684A0 ; case 2 + b _02068510 ; case 3 + b _020684D8 ; case 4 + b _02068548 ; case 5 + b _02068430 ; case 6 + b _02068580 ; case 7 + b _020686E4 ; case 8 + b _020684A0 ; case 9 + b _020685B8 ; case 10 + b _020685E8 ; case 11 + b _02068618 ; case 12 + b _02068634 ; case 13 + b _02068650 ; case 14 + b _020686E4 ; case 15 + b _020686E4 ; case 16 + b _020686E4 ; case 17 + b _02068680 ; case 18 +_020683F8: + ldr r1, _020686F0 ; =_020B0A54 + mov ip, r4 + mov r0, #0xb0 +_02068404: + mul r2, ip, r0 + ldr r3, [r1] + ldrb r2, [r3, r2] + cmp r2, #0 + movne r2, r4, lsl #1 + strneh ip, [r5, r2] + add ip, ip, #1 + addne r4, r4, #1 + cmp ip, #0x20 + blt _02068404 + b _020686E4 +_02068430: + ldr r1, _020686F0 ; =_020B0A54 + mov r6, r4 + mov r0, #0xb0 +_0206843C: + mul r2, r6, r0 + ldr r3, [r1] + ldrb r2, [r3, r2] + cmp r2, #6 + moveq r2, r4, lsl #1 + streqh r6, [r5, r2] + add r6, r6, #1 + addeq r4, r4, #1 + cmp r6, #0x20 + blt _0206843C + b _020686E4 +_02068468: + ldr r1, _020686F0 ; =_020B0A54 + mov r6, r4 + mov r0, #0xb0 +_02068474: + mul r2, r6, r0 + ldr r3, [r1] + ldrb r2, [r3, r2] + cmp r2, #1 + moveq r2, r4, lsl #1 + streqh r6, [r5, r2] + add r6, r6, #1 + addeq r4, r4, #1 + cmp r6, #0x20 + blt _02068474 + b _020686E4 +_020684A0: + ldr r1, _020686F0 ; =_020B0A54 + mov r6, r4 + mov r0, #0xb0 +_020684AC: + mul r2, r6, r0 + ldr r3, [r1] + ldrb r2, [r3, r2] + cmp r2, #2 + moveq r2, r4, lsl #1 + streqh r6, [r5, r2] + add r6, r6, #1 + addeq r4, r4, #1 + cmp r6, #0x20 + blt _020684AC + b _020686E4 +_020684D8: + ldr r1, _020686F0 ; =_020B0A54 + mov r6, r4 + mov r0, #0xb0 +_020684E4: + mul r2, r6, r0 + ldr r3, [r1] + ldrb r2, [r3, r2] + cmp r2, #4 + moveq r2, r4, lsl #1 + streqh r6, [r5, r2] + add r6, r6, #1 + addeq r4, r4, #1 + cmp r6, #0x20 + blt _020684E4 + b _020686E4 +_02068510: + ldr r1, _020686F0 ; =_020B0A54 + mov r6, r4 + mov r0, #0xb0 +_0206851C: + mul r2, r6, r0 + ldr r3, [r1] + ldrb r2, [r3, r2] + cmp r2, #3 + moveq r2, r4, lsl #1 + streqh r6, [r5, r2] + add r6, r6, #1 + addeq r4, r4, #1 + cmp r6, #0x20 + blt _0206851C + b _020686E4 +_02068548: + ldr r1, _020686F0 ; =_020B0A54 + mov r6, r4 + mov r0, #0xb0 +_02068554: + mul r2, r6, r0 + ldr r3, [r1] + ldrb r2, [r3, r2] + cmp r2, #5 + moveq r2, r4, lsl #1 + streqh r6, [r5, r2] + add r6, r6, #1 + addeq r4, r4, #1 + cmp r6, #0x20 + blt _02068554 + b _020686E4 +_02068580: + ldr r1, _020686F0 ; =_020B0A54 + mov r6, r4 + mov r0, #0xb0 +_0206858C: + mul r2, r6, r0 + ldr r3, [r1] + ldrb r2, [r3, r2] + cmp r2, #7 + moveq r2, r4, lsl #1 + streqh r6, [r5, r2] + add r6, r6, #1 + addeq r4, r4, #1 + cmp r6, #0x20 + blt _0206858C + b _020686E4 +_020685B8: + mov r6, r4 +_020685BC: + mov r0, r6, lsl #0x18 + mov r0, r0, asr #0x18 + bl sub_0205E984 + cmp r0, #0 + moveq r0, r4, lsl #1 + streqh r6, [r5, r0] + add r6, r6, #1 + addeq r4, r4, #1 + cmp r6, #8 + blt _020685BC + b _020686E4 +_020685E8: + mov r6, r4 +_020685EC: + mov r0, r6, lsl #0x18 + mov r0, r0, asr #0x18 + bl sub_0205EB00 + cmp r0, #0 + moveq r0, r4, lsl #1 + streqh r6, [r5, r0] + add r6, r6, #1 + addeq r4, r4, #1 + cmp r6, #8 + blt _020685EC + b _020686E4 +_02068618: + mov r0, r4 + bl sub_0205EBF0 + cmp r0, #0 + moveq r0, r4 + streqh r0, [r5] + addeq r4, r4, #1 + b _020686E4 +_02068634: + mov r0, r4 + bl sub_0205EC50 + cmp r0, #0 + moveq r0, r4 + streqh r0, [r5] + addeq r4, r4, #1 + b _020686E4 +_02068650: + mov r6, r4 +_02068654: + mov r0, r6, lsl #0x18 + mov r0, r0, asr #0x18 + bl IsAcceptedMissionSlotEmpty + cmp r0, #0 + moveq r0, r4, lsl #1 + streqh r6, [r5, r0] + add r6, r6, #1 + addeq r4, r4, #1 + cmp r6, #8 + blt _02068654 + b _020686E4 +_02068680: + sub r0, r4, #1 + strb r0, [sp] + bl sub_0204E210 + cmp r0, #2 + bne _020686A8 + add r0, sp, #0 + bl sub_0204F1B4 + cmp r0, #0 + mvneq r0, #0 + streqb r0, [sp] +_020686A8: + ldrsb ip, [sp] + ldr r1, _020686F0 ; =_020B0A54 + mov lr, #2 + mov r0, #0xb0 +_020686B8: + cmp ip, lr + mulne r2, lr, r0 + ldrne r3, [r1] + ldrneb r2, [r3, r2] + cmpne r2, #0 + movne r2, r4, lsl #1 + strneh lr, [r5, r2] + add lr, lr, #1 + addne r4, r4, #1 + cmp lr, #0x20 + blt _020686B8 +_020686E4: + mov r0, r4 + add sp, sp, #4 + ldmia sp!, {r3, r4, r5, r6, pc} + .align 2, 0 +_020686F0: .word _020B0A54 + arm_func_end sub_02068390 + + arm_func_start sub_020686F4 +sub_020686F4: ; 0x020686F4 +#if defined(EUROPE) +#define SUB_020686F4_WORD_OFFSET 2 +#elif defined(JAPAN) +#define SUB_020686F4_WORD_OFFSET -0x3C2 +#else +#define SUB_020686F4_WORD_OFFSET 0 +#endif + stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x68 + ldr r0, _02068E14 ; =_020B0B2C + mov r4, #0 + ldr r7, [r0, #0x14] + ldr r5, [r7, #4] + cmp r5, #0x15 + addls pc, pc, r5, lsl #2 + b _02068E08 +_02068718: ; jump table + b _02068770 ; case 0 + b _02068770 ; case 1 + b _02068770 ; case 2 + b _02068770 ; case 3 + b _02068770 ; case 4 + b _02068770 ; case 5 + b _02068770 ; case 6 + b _02068770 ; case 7 + b _02068770 ; case 8 + b _02068770 ; case 9 + b _020688D0 ; case 10 + b _02068960 ; case 11 + b _020689F0 ; case 12 + b _02068A6C ; case 13 + b _02068AE8 ; case 14 + b _02068AE8 ; case 15 + b _02068AE8 ; case 16 + b _02068AE8 ; case 17 + b _02068770 ; case 18 + b _02068C48 ; case 19 + b _02068CA4 ; case 20 + b _02068D00 ; case 21 +_02068770: + add r1, r7, #0x188 + mov r0, r5 + add r4, r1, #0xc00 + bl sub_02067584 + cmp r0, #0 + movne r4, #0 + bne _02068E08 + ldr r0, _02068E14 ; =_020B0B2C + add r1, r7, #0xc + ldr r0, [r0, #0x14] + ldr r0, [r0, #4] + bl sub_02068390 + str r0, [r7, #0x6c] + mov r0, #0 + bl sub_0205B77C + bl sub_02068E7C + mov r1, #0 + ldr r0, _02068E18 ; =ChooseMissionTitle + str r1, [r7, #0xe40] + str r0, [r7, #0xe44] + strb r1, [r7, #0x7c] + cmp r5, #9 + bgt _02068800 + cmp r5, #0 + addge pc, pc, r5, lsl #2 + b _020688C0 +_020687D8: ; jump table + b _020688C0 ; case 0 + b _020688C0 ; case 1 + b _02068838 ; case 2 + b _0206880C ; case 3 + b _0206880C ; case 4 + b _0206882C ; case 5 + b _020688C0 ; case 6 + b _020688C0 ; case 7 + b _020688C0 ; case 8 + b _02068838 ; case 9 +_02068800: + cmp r5, #0x12 + beq _02068858 + b _020688C0 +_0206880C: + ldr r0, _02068E14 ; =_020B0B2C + ldr r1, _02068E1C ; =_020B0B2E + ldrsb r2, [r0, #2] + ldr r0, _02068E20 ; =0x00003815 + str r2, [r7, #8] + str r1, [r7, #0xef0] + strh r0, [r4, #8] + b _020688C8 +_0206882C: + ldr r0, _02068E24 ; =0x00003817 + strh r0, [r4, #8] + b _020688C8 +_02068838: + ldr r1, _02068E28 ; =0x00003816 + ldr r0, _02068E14 ; =_020B0B2C + strh r1, [r4, #8] + ldrsb r1, [r0, #5] + ldr r0, _02068E2C ; =_020B0B31 + str r1, [r7, #8] + str r0, [r7, #0xef0] + b _020688C8 +_02068858: + ldr r1, _02068E30 ; =0x00003818 + ldr r0, _02068E34 ; =sub_02069598 + strh r1, [r4, #8] + str r0, [r7, #0xe40] + mov r1, #1 + ldr r0, _02068E14 ; =_020B0B2C + strb r1, [r7, #0x7c] + ldrsb r1, [r0, #1] + ldr r0, _02068E38 ; =_020B0B2D + str r1, [r7, #8] + str r0, [r7, #0xef0] + b _020688A4 +_02068888: + bl sub_020693EC + ldrb r0, [r0] + cmp r0, #0 + bne _020688B0 + ldr r0, [r7, #8] + sub r0, r0, #1 + str r0, [r7, #8] +_020688A4: + ldr r0, [r7, #8] + cmp r0, #0 + bgt _02068888 +_020688B0: + ldr r1, [r7, #8] + ldr r0, _02068E14 ; =_020B0B2C + strb r1, [r0, #1] + b _020688C8 +_020688C0: + ldr r0, _02068E3C ; =0x00003F1E + strh r0, [r4, #8] +_020688C8: + mov r4, #1 + b _02068E08 +_020688D0: + add r0, r7, #0x188 + mov r6, r4 + add r5, r0, #0xc00 +_020688DC: + mov r0, r6, lsl #0x18 + mov r0, r0, asr #0x18 + bl sub_0205E984 + cmp r0, #0 + addeq r0, r7, r4, lsl #1 + streqh r6, [r0, #0xc] + add r6, r6, #1 + addeq r4, r4, #1 + cmp r6, #8 + blt _020688DC + str r4, [r7, #0x6c] + cmp r4, #0 + moveq r4, #0 + beq _02068E08 + mov r0, #0 + bl sub_0205E970 + ldr r1, _02068E40 ; =sub_02069074 + mov r2, #0 + bl sub_020690D8 + ldr r1, _02068E44 ; =0x00003819 + ldr r0, _02068E14 ; =_020B0B2C + strh r1, [r5, #8] + ldrsb r2, [r0, #0x12] + ldr r0, _02068E48 ; =_020B0B3E + mov r1, #0 + str r2, [r7, #8] + str r0, [r7, #0xef0] + ldr r0, _02068E18 ; =ChooseMissionTitle + str r1, [r7, #0xe40] + str r0, [r7, #0xe44] + strb r1, [r7, #0x7c] + mov r4, #1 + b _02068E08 +_02068960: + add r0, r7, #0x188 + mov r6, r4 + add r5, r0, #0xc00 +_0206896C: + mov r0, r6, lsl #0x18 + mov r0, r0, asr #0x18 + bl sub_0205EB00 + cmp r0, #0 + addeq r0, r7, r4, lsl #1 + streqh r6, [r0, #0xc] + add r6, r6, #1 + addeq r4, r4, #1 + cmp r6, #8 + blt _0206896C + str r4, [r7, #0x6c] + cmp r4, #0 + moveq r4, #0 + beq _02068E08 + mov r0, #0 + bl sub_0205EAE8 + ldr r1, _02068E40 ; =sub_02069074 + mov r2, #0 + bl sub_020690D8 + ldr r1, _02068E4C ; =0x0000381A + ldr r0, _02068E14 ; =_020B0B2C + strh r1, [r5, #8] + ldrsb r2, [r0, #0x11] + ldr r0, _02068E50 ; =_020B0B3D + mov r1, #0 + str r2, [r7, #8] + str r0, [r7, #0xef0] + ldr r0, _02068E18 ; =ChooseMissionTitle + str r1, [r7, #0xe40] + str r0, [r7, #0xe44] + strb r1, [r7, #0x7c] + mov r4, #1 + b _02068E08 +_020689F0: + add r1, r7, #0x188 + mov r0, r4 + add r5, r1, #0xc00 + bl sub_0205EBF0 + cmp r0, #0 + moveq r0, r4 + streqh r0, [r7, #0xc] + addeq r4, r4, #1 + str r4, [r7, #0x6c] + cmp r4, #0 + moveq r4, #0 + beq _02068E08 + mov r0, #0 + bl sub_0205EBD8 + ldr r1, _02068E40 ; =sub_02069074 + mov r2, #0 + bl sub_020690D8 + ldr r1, _02068E54 ; =0x0000381B + ldr r0, _02068E14 ; =_020B0B2C + strh r1, [r5, #8] + ldrsb r2, [r0, #0xa] + ldr r0, _02068E58 ; =_020B0B36 + mov r1, #0 + str r2, [r7, #8] + str r0, [r7, #0xef0] + ldr r0, _02068E18 ; =ChooseMissionTitle + str r1, [r7, #0xe40] + str r0, [r7, #0xe44] + strb r1, [r7, #0x7c] + mov r4, #1 + b _02068E08 +_02068A6C: + add r1, r7, #0x188 + mov r0, r4 + add r5, r1, #0xc00 + bl sub_0205EC50 + cmp r0, #0 + moveq r0, r4 + streqh r0, [r7, #0xc] + addeq r4, r4, #1 + str r4, [r7, #0x6c] + cmp r4, #0 + moveq r4, #0 + beq _02068E08 + mov r0, #0 + bl sub_0205EC38 + ldr r1, _02068E40 ; =sub_02069074 + mov r2, #0 + bl sub_020690D8 + ldr r1, _02068E5C ; =0x0000381C + ldr r0, _02068E14 ; =_020B0B2C + strh r1, [r5, #8] + ldrsb r2, [r0, #0xf] + ldr r0, _02068E60 ; =_020B0B3B + mov r1, #0 + str r2, [r7, #8] + str r0, [r7, #0xef0] + ldr r0, _02068E18 ; =ChooseMissionTitle + str r1, [r7, #0xe40] + str r0, [r7, #0xe44] + strb r1, [r7, #0x7c] + mov r4, #1 + b _02068E08 +_02068AE8: + add r0, r7, #0x188 + cmp r5, #0x11 + add r8, r0, #0xc00 + bne _02068B74 + bl sub_0204E210 + cmp r0, #1 + bne _02068B74 + mov r6, r4 +_02068B08: + mov r0, r6, lsl #0x18 + mov r0, r0, asr #0x18 + bl GetAcceptedMission + mov r1, r6, lsl #0x18 + mov r5, r0 + mov r0, r1, asr #0x18 + bl IsAcceptedMissionSlotEmpty + cmp r0, #0 + bne _02068B64 + bl GetAdventureLogDungeonFloor + ldrb r1, [r5, #4] + ldrb r0, [r0] + cmp r1, r0 + bne _02068B58 + ldrb r0, [r5] + cmp r0, #5 + cmpne r0, #6 + cmpne r0, #7 + cmpne r0, #8 + beq _02068B64 +_02068B58: + add r0, r7, r4, lsl #1 + strh r6, [r0, #0xc] + add r4, r4, #1 +_02068B64: + add r6, r6, #1 + cmp r6, #8 + blt _02068B08 + b _02068BA0 +_02068B74: + mov r5, #0 +_02068B78: + mov r0, r5, lsl #0x18 + mov r0, r0, asr #0x18 + bl IsAcceptedMissionSlotEmpty + cmp r0, #0 + addeq r0, r7, r4, lsl #1 + streqh r5, [r0, #0xc] + add r5, r5, #1 + addeq r4, r4, #1 + cmp r5, #8 + blt _02068B78 +_02068BA0: + str r4, [r7, #0x6c] + cmp r4, #0 + moveq r4, #0 + beq _02068E08 + mov r0, #0 + bl GetAcceptedMission + mov r1, #0 + mov r2, #1 + bl sub_020690D8 + ldr r0, _02068E14 ; =_020B0B2C + ldr r1, [r0, #0x14] + ldr r1, [r1, #4] + cmp r1, #0xe + bne _02068BF4 + ldr r2, _02068E64 ; =0x0000381D + ldr r1, _02068E68 ; =_020B0B2C + strh r2, [r8, #8] + ldrsb r0, [r0] + str r0, [r7, #8] + str r1, [r7, #0xef0] + b _02068C18 +_02068BF4: +#ifdef EUROPE + sub r0, r1, #0xf + cmp r0, #2 + bhi _02068C18 + cmp r1, #0x11 + ldreq r1, _02068E64 ; =0x0000381F + ldr r0, _02068E14 ; =_020B0B2C + ldrne r1, _02068E6C ; =0x00003820 + strh r1, [r8, #8] + ldrsb r1, [r0, #0x13] + ldr r0, _02068E70 ; =_020B0B3F + str r1, [r7, #8] + str r0, [r7, #0xef0] +#else + sub r1, r1, #0xf + cmp r1, #2 + bhi _02068C18 + ldr r2, _02068E6C ; =0x0000381E + ldr r1, _02068E70 ; =_020B0B3F + strh r2, [r8, #8] + ldrsb r0, [r0, #0x13] + str r0, [r7, #8] + str r1, [r7, #0xef0] +#endif +_02068C18: + ldr r1, [r7, #0x6c] + ldr r0, [r7, #8] + mov r4, #1 + cmp r0, r1 + subge r0, r1, #1 + strge r0, [r7, #8] + mov r1, #0 + ldr r0, _02068E18 ; =ChooseMissionTitle + str r1, [r7, #0xe40] + str r0, [r7, #0xe44] + strb r1, [r7, #0x7c] + b _02068E08 +_02068C48: + add r0, r7, #0x188 + add r5, r0, #0xc00 + ldr r0, [r7, #0x74] + mov r2, r4 + b _02068C70 +_02068C5C: + add r1, r7, r4, lsl #1 + strh r4, [r1, #0xc] + add r1, r7, r4 + strb r2, [r1, #0x4c] + add r4, r4, #1 +_02068C70: + ldr r1, [r7, #0x6c] + cmp r4, r1 + blt _02068C5C + bl sub_02068E7C + ldr r0, _02068E28 ; =0x00003816 + ldr r1, _02068E34 ; =sub_02069598 + strh r0, [r5, #8] + ldr r0, _02068E18 ; =ChooseMissionTitle + str r1, [r7, #0xe40] + str r0, [r7, #0xe44] + mov r4, #1 + strb r4, [r7, #0x7c] + b _02068E08 +_02068CA4: + add r0, r7, #0x188 + add r5, r0, #0xc00 + b _02068CBC +_02068CB0: + add r0, r7, r4, lsl #1 + strh r4, [r0, #0xc] + add r4, r4, #1 +_02068CBC: + ldr r0, [r7, #0x6c] + cmp r4, r0 + blt _02068CB0 + bl sub_0206901C + ldr r0, [r7, #0x74] + ldr r1, _02068E74 ; =sub_020690A4 + mov r2, #0 + bl sub_020690D8 + ldr r0, _02068E6C ; =0x0000381E + mov r1, #0 + strh r0, [r5, #8] + ldr r0, _02068E18 ; =ChooseMissionTitle + str r1, [r7, #0xe40] + str r0, [r7, #0xe44] + strb r1, [r7, #0x7c] + mov r4, #1 + b _02068E08 +_02068D00: + add r0, r7, #0x188 + add r6, r0, #0xc00 + b _02068D18 +_02068D0C: + add r0, r7, r4, lsl #1 + strh r4, [r0, #0xc] + add r4, r4, #1 +_02068D18: + ldr r0, [r7, #0x6c] + cmp r4, r0 + blt _02068D0C + mov r8, #0 + str r8, [r7, #0x80] + add r5, sp, #0 + add r4, sp, #0x47 + add fp, sp, #0x48 + mov sb, #0x68 + b _02068DB0 +_02068D40: + add r0, r7, r8, lsl #1 + ldrsh r0, [r0, #0xc] + ldr r2, [r7, #0x74] + mov r1, r5 + add sl, r2, r0, lsl #5 + mov r0, sl + bl GenerateMissionDetailsStruct + mov r0, sl + mov r1, r4 + mov r2, fp + mov r3, #0 + bl sub_02069958 + str sl, [sp, #0x5c] + ldr r1, [r7, #0x80] + add sl, sp, #0 + mla r0, r1, sb, r7 + add lr, r0, #0x84 + mov ip, #6 +_02068D88: + ldmia sl!, {r0, r1, r2, r3} + stmia lr!, {r0, r1, r2, r3} + subs ip, ip, #1 + bne _02068D88 + ldmia sl, {r0, r1} + stmia lr, {r0, r1} + ldr r0, [r7, #0x80] + add r8, r8, #1 + add r0, r0, #1 + str r0, [r7, #0x80] +_02068DB0: + ldr r0, [r7, #0x6c] + cmp r8, r0 + blt _02068D40 + bl sub_0206901C + mov r1, #0 + ldr r0, _02068E6C ; =0x0000381E + str r1, [r6] + strh r0, [r6, #8] + mov r0, #0x10 + str r0, [r6, #0xc] + mov r0, #0x1a + str r0, [r6, #4] + ldr r0, _02068E18 ; =ChooseMissionTitle + str r1, [r7, #0xe40] + str r0, [r7, #0xe44] + ldr r0, _02068E14 ; =_020B0B2C + strb r1, [r7, #0x7c] + ldrsb r1, [r0, #3] + ldr r0, _02068E78 ; =_020B0B2F + mov r4, #1 + str r1, [r7, #8] + str r0, [r7, #0xef0] +_02068E08: + mov r0, r4 + add sp, sp, #0x68 + ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_02068E14: .word _020B0B2C +_02068E18: .word ChooseMissionTitle +_02068E1C: .word _020B0B2E +_02068E20: .word 0x00003815 + SUB_020686F4_WORD_OFFSET +_02068E24: .word 0x00003817 + SUB_020686F4_WORD_OFFSET +_02068E28: .word 0x00003816 + SUB_020686F4_WORD_OFFSET +_02068E2C: .word _020B0B31 +_02068E30: .word 0x00003818 + SUB_020686F4_WORD_OFFSET +_02068E34: .word sub_02069598 +_02068E38: .word _020B0B2D +#ifdef JAPAN +_02068E3C: .word 0x000038A2 +#else +_02068E3C: .word 0x00003F1E + SUB_020686F4_WORD_OFFSET +#endif +_02068E40: .word sub_02069074 +_02068E44: .word 0x00003819 + SUB_020686F4_WORD_OFFSET +_02068E48: .word _020B0B3E +_02068E4C: .word 0x0000381A + SUB_020686F4_WORD_OFFSET +_02068E50: .word _020B0B3D +_02068E54: .word 0x0000381B + SUB_020686F4_WORD_OFFSET +_02068E58: .word _020B0B36 +_02068E5C: .word 0x0000381C + SUB_020686F4_WORD_OFFSET +_02068E60: .word _020B0B3B +_02068E64: .word 0x0000381D + SUB_020686F4_WORD_OFFSET +_02068E68: .word _020B0B2C +_02068E6C: .word 0x0000381E + SUB_020686F4_WORD_OFFSET +_02068E70: .word _020B0B3F +_02068E74: .word sub_020690A4 +_02068E78: .word _020B0B2F + arm_func_end sub_020686F4 + + arm_func_start sub_02068E7C +sub_02068E7C: ; 0x02068E7C + stmdb sp!, {r4, r5, r6, r7, r8, lr} + sub sp, sp, #0x68 + ldr r1, _02069018 ; =_020B0B2C + mov r8, r0 + ldr r7, [r1, #0x14] + add r4, r7, #0x188 + bl sub_0206901C + mov r5, #0 + str r5, [r7, #0xd88] + mov r0, #0x10 + str r0, [r4, #0xc0c] + str r5, [r7, #0x80] + b _02068FF4 +_02068EB0: + add r0, r7, r5, lsl #1 + ldrsh r0, [r0, #0xc] + mov r2, #0 + mov r1, #7 + mov r0, r0, lsl #0x18 + mov r3, r0, asr #0x18 + mov r0, #0xb0 + mla r6, r3, r0, r8 + add r0, r6, #4 + strb r2, [sp, #0x46] + strb r2, [sp, #0x48] + str r0, [sp, #8] + strh r2, [sp, #0x10] + strh r2, [sp, #0x12] + strh r2, [sp, #0x14] + strh r2, [sp, #0x16] + strb r1, [sp, #0x1a] + str r2, [sp, #0x5c] + str r6, [sp, #0x64] + bl GetLanguageType + ldrsb r1, [r6, #0x1c] + cmp r1, r0 + movne r0, #0 + strne r0, [sp, #0xc] + strne r0, [sp, #0x54] + strne r0, [sp, #0x58] + bne _02068F34 + add r2, r6, #0x1d + add r1, r6, #0x32 + add r0, r6, #0x56 + str r2, [sp, #0xc] + str r1, [sp, #0x54] + str r0, [sp, #0x58] +_02068F34: + ldr r0, [sp, #0x54] + mov r1, #1 + cmp r0, #0 + ldrneh r0, [r0] + cmpne r0, #0 + movne r1, #0 + cmp r1, #0 + movne r1, #0 + moveq r1, #6 + ldrb r0, [r6] + strb r1, [sp, #0x44] + cmp r0, #6 + addls pc, pc, r0, lsl #2 + b _02068FAC +_02068F6C: ; jump table + b _02068FAC ; case 0 + b _02068FA0 ; case 1 + b _02068FA0 ; case 2 + b _02068FAC ; case 3 + b _02068F88 ; case 4 + b _02068F94 ; case 5 + b _02068F94 ; case 6 +_02068F88: + mov r0, #3 + strb r0, [sp, #0x47] + b _02068FB4 +_02068F94: + mov r0, #4 + strb r0, [sp, #0x47] + b _02068FB4 +_02068FA0: + mov r0, #1 + strb r0, [sp, #0x47] + b _02068FB4 +_02068FAC: + mov r0, #2 + strb r0, [sp, #0x47] +_02068FB4: + ldr r1, [r7, #0x80] + mov r0, #0x68 + mla r0, r1, r0, r7 + add lr, sp, #0 + add ip, r0, #0x84 + mov r6, #6 +_02068FCC: + ldmia lr!, {r0, r1, r2, r3} + stmia ip!, {r0, r1, r2, r3} + subs r6, r6, #1 + bne _02068FCC + ldmia lr, {r0, r1} + stmia ip, {r0, r1} + ldr r0, [r7, #0x80] + add r5, r5, #1 + add r0, r0, #1 + str r0, [r7, #0x80] +_02068FF4: + ldr r0, [r7, #0x6c] + cmp r5, r0 + blt _02068EB0 + mov r0, #0x10 + str r0, [r4, #0xc0c] + mov r0, #0x1a + str r0, [r4, #0xc04] + add sp, sp, #0x68 + ldmia sp!, {r4, r5, r6, r7, r8, pc} + .align 2, 0 +_02069018: .word _020B0B2C + arm_func_end sub_02068E7C + + arm_func_start sub_0206901C +sub_0206901C: ; 0x0206901C + stmdb sp!, {r3, lr} + ldr r0, _02069070 ; =_020B0B2C + mov r1, #0 + ldr r0, [r0, #0x14] + add r2, r0, #0xe20 + mov r0, r1 +_02069034: + strb r0, [r2, r1] + add r1, r1, #1 + cmp r1, #0x20 + blt _02069034 + ldr r0, _02069070 ; =_020B0B2C + mov r1, #0x98 + ldr r0, [r0, #0x14] + add r0, r0, #0x188 + add r0, r0, #0xc00 + bl MemZero + ldr r0, _02069070 ; =_020B0B2C + ldr r1, [r0, #0x14] + add r0, r1, #0xe20 + str r0, [r1, #0xde8] + ldmia sp!, {r3, pc} + .align 2, 0 +_02069070: .word _020B0B2C + arm_func_end sub_0206901C + + arm_func_start sub_02069074 +sub_02069074: ; 0x02069074 + stmdb sp!, {r4, lr} + mov r4, r1 + bl AlreadyHaveMission + cmp r0, #0 + movne r0, #3 + strneb r0, [r4] + bl CountJobListMissions + cmp r0, #8 + ldrgeb r0, [r4] + orrge r0, r0, #1 + strgeb r0, [r4] + ldmia sp!, {r4, pc} + arm_func_end sub_02069074 + + arm_func_start sub_020690A4 +sub_020690A4: ; 0x020690A4 + stmdb sp!, {r3, r4, r5, lr} + mov r5, r0 + mov r4, r1 + bl AlreadyHaveMission + cmp r0, #0 + bne _020690CC + mov r0, r5 + bl sub_0205FA38 + cmp r0, #0 + ldmeqia sp!, {r3, r4, r5, pc} +_020690CC: + mov r0, #3 + strb r0, [r4] + ldmia sp!, {r3, r4, r5, pc} + arm_func_end sub_020690A4 + + arm_func_start sub_020690D8 +sub_020690D8: ; 0x020690D8 + stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x68 + ldr r3, _020691B4 ; =_020B0B2C + mov sb, r0 + ldr r6, [r3, #0x14] + mov r8, r1 + mov r7, r2 + bl sub_0206901C + mov r5, #0 + str r5, [r6, #0x80] + add r4, r6, #0xe20 + mov fp, #0x68 + b _02069188 +_0206910C: + add r0, r6, r5, lsl #1 + ldrsh r0, [r0, #0xc] + add r1, sp, #0 + add sl, sb, r0, lsl #5 + mov r0, sl + bl GenerateMissionDetailsStruct + mov r0, sl + add r1, sp, #0x47 + add r2, sp, #0x48 + mov r3, r7 + bl sub_02069958 + cmp r8, #0 + beq _0206914C + mov r0, sl + add r1, r4, r5 + blx r8 +_0206914C: + ldr r1, [r6, #0x80] + add sl, sp, #0 + mla r0, r1, fp, r6 + add lr, r0, #0x84 + mov ip, #6 +_02069160: + ldmia sl!, {r0, r1, r2, r3} + stmia lr!, {r0, r1, r2, r3} + subs ip, ip, #1 + bne _02069160 + ldmia sl, {r0, r1} + stmia lr, {r0, r1} + ldr r0, [r6, #0x80] + add r5, r5, #1 + add r0, r0, #1 + str r0, [r6, #0x80] +_02069188: + ldr r0, [r6, #0x6c] + cmp r5, r0 + blt _0206910C + mov r0, #0 + str r0, [r6, #0xd88] + mov r0, #0x10 + str r0, [r6, #0xd94] + mov r0, #0x1a + str r0, [r6, #0xd8c] + add sp, sp, #0x68 + ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_020691B4: .word _020B0B2C + arm_func_end sub_020690D8 + + arm_func_start sub_020691B8 +sub_020691B8: ; 0x020691B8 + stmdb sp!, {lr} + sub sp, sp, #0xc + ldr r2, _020692A8 ; =_020B0B2C + mvn r1, #1 + ldr ip, [r2, #0x14] + ldrsb r0, [ip, #0x7d] + cmp r0, r1 + bne _0206926C + ldr r0, [ip, #8] + mov r3, #4 + str r0, [ip, #0xd88] + ldr lr, [r2, #0x14] + ldr r0, _020692AC ; =_020A9288 + ldr r1, [lr, #0xe40] + add r2, lr, #0x188 + str r1, [sp] + ldr ip, [lr, #0x80] + ldr r1, _020692B0 ; =0x00441E33 + str ip, [sp, #4] + str r3, [sp, #8] + ldr r3, [lr, #0xe44] + add r2, r2, #0xc00 + bl CreateCollectionMenu + ldr r3, _020692A8 ; =_020B0B2C + mov r1, #0 + ldr ip, [r3, #0x14] + mov r2, #0xc + strb r0, [ip, #0x7d] + ldr r0, [r3, #0x14] + ldrsb r0, [r0, #0x7d] + bl sub_0202C6F0 + ldr r0, _020692A8 ; =_020B0B2C + mov r1, #1 + ldr r0, [r0, #0x14] + ldrsb r0, [r0, #0x7d] + bl SetCollectionMenuField0x1B2 + ldr r0, _020692A8 ; =_020B0B2C + ldr r1, [r0, #0x14] + ldrb r0, [r1, #0x7c] + cmp r0, #0 + bne _02069290 + ldrsb r0, [r1, #0x7d] + mov r1, #1 + bl sub_0202D07C + b _02069290 +_0206926C: + ldrb r1, [ip, #0xd84] + cmp r1, #0 + beq _0206928C + ldr r1, [ip, #0x80] + mov r2, #4 + mov r3, #0 + bl sub_0202C654 + b _02069290 +_0206928C: + bl sub_0202C620 +_02069290: + ldr r0, _020692A8 ; =_020B0B2C + mov r1, #0 + ldr r0, [r0, #0x14] + strb r1, [r0, #0xd84] + add sp, sp, #0xc + ldmia sp!, {pc} + .align 2, 0 +_020692A8: .word _020B0B2C +_020692AC: .word _020A9288 +_020692B0: .word 0x00441E33 + arm_func_end sub_020691B8 + + arm_func_start sub_020692B4 +sub_020692B4: ; 0x020692B4 + stmdb sp!, {r3, lr} + ldr r0, _020692F8 ; =_020B0B2C + mvn r1, #1 + ldr r0, [r0, #0x14] + ldrsb r0, [r0, #0x7d] + cmp r0, r1 + ldmeqia sp!, {r3, pc} + bl sub_0202836C + ldr r0, _020692F8 ; =_020B0B2C + ldr r0, [r0, #0x14] + ldrsb r0, [r0, #0x7d] + bl CloseCollectionMenu + ldr r0, _020692F8 ; =_020B0B2C + mvn r1, #1 + ldr r0, [r0, #0x14] + strb r1, [r0, #0x7d] + ldmia sp!, {r3, pc} + .align 2, 0 +_020692F8: .word _020B0B2C + arm_func_end sub_020692B4 + + arm_func_start sub_020692FC +sub_020692FC: ; 0x020692FC + stmdb sp!, {r3, lr} + ldr r0, _02069378 ; =_020B0B2C + ldr r0, [r0, #0x14] + ldr r1, [r0, #4] + sub r0, r1, #0xe + cmp r0, #3 + bhi _02069328 + bl sub_02069444 + mov r1, #1 + bl CreateJobSummary + ldmia sp!, {r3, pc} +_02069328: + cmp r1, #0xa + cmpne r1, #0xb + cmpne r1, #0xc + cmpne r1, #0xd + beq _02069348 + sub r0, r1, #0x14 + cmp r0, #1 + bhi _02069358 +_02069348: + bl sub_02069444 + mov r1, #0 + bl CreateJobSummary + ldmia sp!, {r3, pc} +_02069358: + cmp r1, #0x13 + bne _0206936C + bl sub_0206941C + bl sub_02069790 + ldmia sp!, {r3, pc} +_0206936C: + bl sub_020693EC + bl sub_02069790 + ldmia sp!, {r3, pc} + .align 2, 0 +_02069378: .word _020B0B2C + arm_func_end sub_020692FC + + arm_func_start sub_0206937C +sub_0206937C: ; 0x0206937C + stmdb sp!, {r3, lr} + ldr r0, _020693E8 ; =_020B0B2C + ldr r0, [r0, #0x14] + ldr r1, [r0, #4] + cmp r1, #0xa + cmpne r1, #0xb + cmpne r1, #0xc + cmpne r1, #0xd + cmpne r1, #0xe + cmpne r1, #0xf + cmpne r1, #0x10 + cmpne r1, #0x11 + beq _020693BC + sub r0, r1, #0x14 + cmp r0, #1 + bhi _020693C8 +_020693BC: + bl sub_02069444 + bl sub_02069894 + ldmia sp!, {r3, pc} +_020693C8: + cmp r1, #0x13 + bne _020693DC + bl sub_0206941C + bl sub_02069870 + ldmia sp!, {r3, pc} +_020693DC: + bl sub_020693EC + bl sub_02069870 + ldmia sp!, {r3, pc} + .align 2, 0 +_020693E8: .word _020B0B2C + arm_func_end sub_0206937C + + arm_func_start sub_020693EC +sub_020693EC: ; 0x020693EC + ldr r1, _02069414 ; =_020B0B2C + ldr r0, _02069418 ; =_020B0A54 + ldr r3, [r1, #0x14] + ldr r2, [r0] + ldr r1, [r3, #8] + mov r0, #0xb0 + add r1, r3, r1, lsl #1 + ldrsh r1, [r1, #0xc] + smlabb r0, r1, r0, r2 + bx lr + .align 2, 0 +_02069414: .word _020B0B2C +_02069418: .word _020B0A54 + arm_func_end sub_020693EC + + arm_func_start sub_0206941C +sub_0206941C: ; 0x0206941C + ldr r1, _02069440 ; =_020B0B2C + mov r0, #0xb0 + ldr r3, [r1, #0x14] + ldr r1, [r3, #8] + ldr r2, [r3, #0x74] + add r1, r3, r1, lsl #1 + ldrsh r1, [r1, #0xc] + smlabb r0, r1, r0, r2 + bx lr + .align 2, 0 +_02069440: .word _020B0B2C + arm_func_end sub_0206941C + + arm_func_start sub_02069444 +sub_02069444: ; 0x02069444 + stmdb sp!, {r3, lr} + ldr r0, _02069558 ; =_020B0B2C + ldr r2, [r0, #0x14] + ldr r0, [r2, #4] + sub r0, r0, #0xa + cmp r0, #0xb + addls pc, pc, r0, lsl #2 + b _02069550 +_02069464: ; jump table + b _02069494 ; case 0 + b _020694B0 ; case 1 + b _020694CC ; case 2 + b _020694E8 ; case 3 + b _02069504 ; case 4 + b _02069504 ; case 5 + b _02069504 ; case 6 + b _02069504 ; case 7 + b _02069550 ; case 8 + b _02069550 ; case 9 + b _02069520 ; case 10 + b _02069538 ; case 11 +_02069494: + ldr r0, [r2, #8] + add r0, r2, r0, lsl #1 + ldrsh r0, [r0, #0xc] + mov r0, r0, lsl #0x18 + mov r0, r0, asr #0x18 + bl sub_0205E970 + ldmia sp!, {r3, pc} +_020694B0: + ldr r0, [r2, #8] + add r0, r2, r0, lsl #1 + ldrsh r0, [r0, #0xc] + mov r0, r0, lsl #0x18 + mov r0, r0, asr #0x18 + bl sub_0205EAE8 + ldmia sp!, {r3, pc} +_020694CC: + ldr r0, [r2, #8] + add r0, r2, r0, lsl #1 + ldrsh r0, [r0, #0xc] + mov r0, r0, lsl #0x18 + mov r0, r0, asr #0x18 + bl sub_0205EBD8 + ldmia sp!, {r3, pc} +_020694E8: + ldr r0, [r2, #8] + add r0, r2, r0, lsl #1 + ldrsh r0, [r0, #0xc] + mov r0, r0, lsl #0x18 + mov r0, r0, asr #0x18 + bl sub_0205EC38 + ldmia sp!, {r3, pc} +_02069504: + ldr r0, [r2, #8] + add r0, r2, r0, lsl #1 + ldrsh r0, [r0, #0xc] + mov r0, r0, lsl #0x18 + mov r0, r0, asr #0x18 + bl GetAcceptedMission + ldmia sp!, {r3, pc} +_02069520: + ldr r0, [r2, #8] + ldr r1, [r2, #0x74] + add r0, r2, r0, lsl #1 + ldrsh r0, [r0, #0xc] + add r0, r1, r0, lsl #5 + ldmia sp!, {r3, pc} +_02069538: + ldr r0, [r2, #8] + ldr r1, [r2, #0x74] + add r0, r2, r0, lsl #1 + ldrsh r0, [r0, #0xc] + add r0, r1, r0, lsl #5 + ldmia sp!, {r3, pc} +_02069550: + mov r0, #0 + ldmia sp!, {r3, pc} + .align 2, 0 +_02069558: .word _020B0B2C + arm_func_end sub_02069444 + + arm_func_start sub_0206955C +sub_0206955C: ; 0x0206955C + stmdb sp!, {r3, lr} + ldr r0, _02069594 ; =_020B0B2C + mvn r1, #1 + ldr r0, [r0, #0x14] + add r0, r0, #0xd00 + ldrsb r0, [r0, #0x85] + cmp r0, r1 + ldmeqia sp!, {r3, pc} + bl ClosePortraitBox + ldr r0, _02069594 ; =_020B0B2C + mvn r1, #1 + ldr r0, [r0, #0x14] + strb r1, [r0, #0xd85] + ldmia sp!, {r3, pc} + .align 2, 0 +_02069594: .word _020B0B2C + arm_func_end sub_0206955C + + arm_func_start sub_02069598 +sub_02069598: ; 0x02069598 + stmdb sp!, {r4, r5, r6, lr} + ldr r1, _0206965C ; =_020B0B2C + tst r0, #0x400 + ldr r5, [r1, #0x14] + beq _02069654 + ldrsb r0, [r5, #0x7d] + ldr r6, [r5, #8] + bl GetWindowIdSelectedMenuItemIdx + ldr r1, [r5, #8] + cmp r1, r0 + bne _0206964C + add r4, r5, #0x4c + ldrb r0, [r4, r6] + cmp r0, #0 + beq _02069600 + mov r0, #6 + bl PlaySeVolumeWrapper + mov r0, #0 + strb r0, [r4, r6] + bl sub_020674E8 + cmp r0, #0 + bne _02069644 + ldrsb r0, [r5, #0x7d] + mov r1, #0 + bl sub_0202D07C + b _02069644 +_02069600: + ldr r0, [r5, #0x78] + cmp r0, #0 + blt _0206961C + bl sub_020674E8 + ldr r1, [r5, #0x78] + cmp r0, r1 + bhs _0206963C +_0206961C: + mov r0, #6 + bl PlaySeVolumeWrapper + ldrsb r0, [r5, #0x7d] + mov r1, #1 + bl sub_0202D07C + mov r0, #1 + strb r0, [r4, r6] + b _02069644 +_0206963C: + mov r0, #2 + bl PlaySeVolumeWrapper +_02069644: + mov r0, #1 + ldmia sp!, {r4, r5, r6, pc} +_0206964C: + mov r0, #3 + bl PlaySeVolumeWrapper +_02069654: + mov r0, #0 + ldmia sp!, {r4, r5, r6, pc} + .align 2, 0 +_0206965C: .word _020B0B2C + arm_func_end sub_02069598 + + arm_func_start ChooseMissionTitle +ChooseMissionTitle: ; 0x02069660 + stmdb sp!, {r3, r4, r5, lr} + ldr r3, _020696E4 ; =_020B0B2C + mov r5, r0 + ldr r0, [r3, #0x14] + add r0, r0, r1 + ldrb r0, [r0, #0x4c] + cmp r0, #0 + movne r0, #1 + moveq r0, #0 + str r0, [r2] + mov r0, #0x68 + mul r4, r1, r0 + ldr r0, _020696E4 ; =_020B0B2C + ldr r0, [r0, #0x14] + add r0, r0, r4 + ldr r0, [r0, #0xe0] + cmp r0, #0 + beq _020696C4 + bl IsMissionTypeSpecialEpisode + cmp r0, #0 + beq _020696C4 + mov r0, r5 + bl FormatSpecialEpisodeMissionHeader + mov r0, r5 + ldmia sp!, {r3, r4, r5, pc} +_020696C4: + ldr r1, _020696E4 ; =_020B0B2C + mov r0, r5 + ldr r1, [r1, #0x14] + add r1, r1, #0x84 + add r1, r1, r4 + bl FormatMissionHeader + mov r0, r5 + ldmia sp!, {r3, r4, r5, pc} + .align 2, 0 +_020696E4: .word _020B0B2C + arm_func_end ChooseMissionTitle + + arm_func_start sub_020696E8 +sub_020696E8: ; 0x020696E8 + stmdb sp!, {r3, r4, lr} + sub sp, sp, #0x154 + mov r4, r0 + add r0, sp, #0x104 + bl InitPreprocessorArgs + bl CountJobListMissions + str r0, [sp, #0x128] + mov r0, #8 + str r0, [sp, #0x12c] + add r3, sp, #0x104 + str r3, [sp] + ldr r2, _0206974C ; =0x00003813 + add r0, sp, #4 + mov r1, #0x100 + mov r3, #0 + bl PreprocessStringFromId + mov r0, r4 + mov r1, #0 + mov r2, #3 + add r3, sp, #4 + bl DrawTextInWindow + mov r0, r4 + bl UpdateWindow + add sp, sp, #0x154 + ldmia sp!, {r3, r4, pc} + .align 2, 0 +#if defined(EUROPE) +_0206974C: .word 0x00003815 +#elif defined(JAPAN) +_0206974C: .word 0x00003451 +#else +_0206974C: .word 0x00003813 +#endif + arm_func_end sub_020696E8 + + arm_func_start sub_02069750 +sub_02069750: ; 0x02069750 + stmdb sp!, {r4, lr} + sub sp, sp, #0x100 + ldr r1, _0206978C ; =0x00003814 + mov r4, r0 + add r0, sp, #0 + bl GetStringFromFileVeneer + add r3, sp, #0 + mov r0, r4 + mov r1, #0 + mov r2, #3 + bl DrawTextInWindow + mov r0, r4 + bl UpdateWindow + add sp, sp, #0x100 + ldmia sp!, {r4, pc} + .align 2, 0 +#if defined(EUROPE) +_0206978C: .word 0x00003816 +#elif defined(JAPAN) +_0206978C: .word 0x00003452 +#else +_0206978C: .word 0x00003814 +#endif + arm_func_end sub_02069750 + + arm_func_start sub_02069790 +sub_02069790: ; 0x02069790 + stmdb sp!, {r4, lr} + mov r4, r0 + mov r0, #0x14 + mov r1, #8 + bl MemAlloc + ldr r2, _020697F4 ; =_020B0B44 + mov r1, #0x14 + str r0, [r2] + bl MemZero + ldr r0, _020697F4 ; =_020B0B44 + mov ip, #0 + ldr r2, [r0] + ldr r1, _020697F8 ; =JOB_WINDOW_PARAMS_2 + str r4, [r2] + ldr r3, [r0] + ldr r2, _020697FC ; =sub_02069AEC + strh ip, [r3, #8] + ldr r0, [r0] + add r0, r0, #0xc + bl sub_0204707C + ldr r0, _020697F4 ; =_020B0B44 + mov r1, #0 + ldr r0, [r0] + strb r1, [r0, #0x10] + ldmia sp!, {r4, pc} + .align 2, 0 +_020697F4: .word _020B0B44 +_020697F8: .word JOB_WINDOW_PARAMS_2 +_020697FC: .word sub_02069AEC + arm_func_end sub_02069790 + + arm_func_start CreateJobSummary +CreateJobSummary: ; 0x02069800 + stmdb sp!, {r3, r4, r5, lr} + mov r5, r0 + mov r4, r1 + mov r0, #0x14 + mov r1, #8 + bl MemAlloc + ldr r2, _02069864 ; =_020B0B44 + mov r1, #0x14 + str r0, [r2] + bl MemZero + ldr r0, _02069864 ; =_020B0B44 + mov ip, #0 + ldr r2, [r0] + ldr r1, _02069868 ; =JOB_WINDOW_PARAMS_2 + str r5, [r2, #4] + ldr r3, [r0] + ldr r2, _0206986C ; =sub_02069CC0 + strh ip, [r3, #8] + ldr r0, [r0] + add r0, r0, #0xc + bl sub_0204707C + ldr r0, _02069864 ; =_020B0B44 + ldr r0, [r0] + strb r4, [r0, #0x10] + ldmia sp!, {r3, r4, r5, pc} + .align 2, 0 +_02069864: .word _020B0B44 +_02069868: .word JOB_WINDOW_PARAMS_2 +_0206986C: .word sub_02069CC0 + arm_func_end CreateJobSummary + + arm_func_start sub_02069870 +sub_02069870: ; 0x02069870 + ldr r1, _0206988C ; =_020B0B44 + ldr ip, _02069890 ; =sub_02047188 + ldr r2, [r1] + str r0, [r2] + ldr r0, [r1] + add r0, r0, #0xc + bx ip + .align 2, 0 +_0206988C: .word _020B0B44 +_02069890: .word sub_02047188 + arm_func_end sub_02069870 + + arm_func_start sub_02069894 +sub_02069894: ; 0x02069894 + ldr r1, _020698B0 ; =_020B0B44 + ldr ip, _020698B4 ; =sub_02047188 + ldr r2, [r1] + str r0, [r2, #4] + ldr r0, [r1] + add r0, r0, #0xc + bx ip + .align 2, 0 +_020698B0: .word _020B0B44 +_020698B4: .word sub_02047188 + arm_func_end sub_02069894 + + arm_func_start sub_020698B8 +sub_020698B8: ; 0x020698B8 + stmdb sp!, {r3, lr} + ldr r0, _02069900 ; =_020B0B44 + ldr r0, [r0] + cmp r0, #0 + ldrne r0, [r0, #0xc] + cmpne r0, #0 + beq _020698F8 + bl sub_020470D0 + ldr r0, _02069900 ; =_020B0B44 + ldr r0, [r0] + ldr r0, [r0, #0xc] + bl sub_02047148 + mvn r1, #0 + cmp r0, r1 + moveq r0, #1 + ldmeqia sp!, {r3, pc} +_020698F8: + mov r0, #0 + ldmia sp!, {r3, pc} + .align 2, 0 +_02069900: .word _020B0B44 + arm_func_end sub_020698B8 + + arm_func_start sub_02069904 +sub_02069904: ; 0x02069904 + stmdb sp!, {r3, lr} + ldr r0, _0206993C ; =_020B0B44 + ldr r0, [r0] + cmp r0, #0 + ldmeqia sp!, {r3, pc} + add r0, r0, #0xc + bl sub_02047150 + ldr r0, _0206993C ; =_020B0B44 + ldr r0, [r0] + bl MemFree + ldr r0, _0206993C ; =_020B0B44 + mov r1, #0 + str r1, [r0] + ldmia sp!, {r3, pc} + .align 2, 0 +_0206993C: .word _020B0B44 + arm_func_end sub_02069904 + + arm_func_start sub_02069940 +sub_02069940: ; 0x02069940 + ldr r1, _02069954 ; =_020B0B44 + ldr r1, [r1] + cmp r1, #0 + strneh r0, [r1, #8] + bx lr + .align 2, 0 +_02069954: .word _020B0B44 + arm_func_end sub_02069940 + + arm_func_start sub_02069958 +sub_02069958: ; 0x02069958 + stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, lr} + mov sb, r0 + mov r8, r1 + mov r7, r2 + mov r6, r3 + mov r5, #0 + b _02069AD0 +_02069974: + mov r0, r5, lsl #0x18 + mov r0, r0, asr #0x18 + bl GetAcceptedMission + mov r4, r0 + ldrb r0, [r4] + cmp r0, #0 + beq _02069ACC + ldrb r1, [sb, #1] + ldrb r0, [r4, #1] + cmp r1, r0 + ldreqb r1, [sb, #2] + ldreqb r0, [r4, #2] + cmpeq r1, r0 + ldreqb r1, [sb, #4] + ldreqb r0, [r4, #4] + cmpeq r1, r0 + ldreqb r1, [sb, #5] + ldreqb r0, [r4, #5] + cmpeq r1, r0 + ldreq r1, [sb, #8] + ldreq r0, [r4, #8] + cmpeq r1, r0 + ldreqsh r1, [sb, #0xe] + ldreqsh r0, [r4, #0xe] + cmpeq r1, r0 + ldreqsh r1, [sb, #0x10] + ldreqsh r0, [r4, #0x10] + cmpeq r1, r0 + ldreqsh r1, [sb, #0x12] + ldreqsh r0, [r4, #0x12] + cmpeq r1, r0 + ldreqsh r1, [sb, #0x14] + ldreqsh r0, [r4, #0x14] + cmpeq r1, r0 + ldreqb r0, [sb, #0x16] + ldreqb r1, [r4, #0x16] + cmpeq r0, r1 + bne _02069ACC + add r1, sb, #0x18 + add r2, r4, #0x18 + bl sub_0205C870 + cmp r0, #0 + beq _02069ACC + add r0, sb, #0x1a + add r1, r4, #0x1a + bl sub_0205C8E0 + cmp r0, #0 + beq _02069ACC + ldrb r0, [r4] + sub r0, r0, #4 + cmp r0, #4 + addls pc, pc, r0, lsl #2 + b _02069AA4 +_02069A48: ; jump table + b _02069A5C ; case 0 + b _02069A6C ; case 1 + b _02069A88 ; case 2 + b _02069A6C ; case 3 + b _02069A6C ; case 4 +_02069A5C: + mov r0, #1 + strb r0, [r8] + strb r0, [r7] + b _02069ABC +_02069A6C: + cmp r6, #0 + movne r0, #3 + moveq r0, #1 + strb r0, [r8] + mov r0, #2 + strb r0, [r7] + b _02069ABC +_02069A88: + cmp r6, #0 + movne r0, #0 + moveq r0, #1 + strb r0, [r8] + mov r0, #3 + strb r0, [r7] + b _02069ABC +_02069AA4: + cmp r6, #0 + movne r0, #0 + moveq r0, #1 + strb r0, [r8] + mov r0, #0 + strb r0, [r7] +_02069ABC: + cmp r6, #0 + moveq r0, #0 + streqb r0, [r7] + ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc} +_02069ACC: + add r5, r5, #1 +_02069AD0: + cmp r5, #8 + blt _02069974 + mov r0, #2 + strb r0, [r8] + mov r0, #0 + strb r0, [r7] + ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc} + arm_func_end sub_02069958 + + arm_func_start sub_02069AEC +sub_02069AEC: ; 0x02069AEC + stmdb sp!, {r3, r4, r5, lr} + sub sp, sp, #0x68 + ldr r1, _02069CBC ; =_020B0B44 + mov r2, #0 + ldr r1, [r1] + mov r5, r0 + ldr r4, [r1] + add r0, r4, #4 + strb r2, [sp, #0x46] + strh r2, [sp, #0x10] + strh r2, [sp, #0x12] + strh r2, [sp, #0x14] + strh r2, [sp, #0x16] + str r2, [sp, #0x5c] + str r4, [sp, #0x64] + str r0, [sp, #8] + ldrsh r0, [r4, #0xa2] + cmp r0, #0 + moveq r0, #7 + streqb r0, [sp, #0x1a] + beq _02069B60 + mov r0, #2 + strb r0, [sp, #0x1a] + ldrh r0, [r4, #0x9e] + strh r0, [sp, #0x28] + ldrh r0, [r4, #0xa0] + strh r0, [sp, #0x2a] + ldrh r0, [r4, #0xa2] + strh r0, [sp, #0x2c] +_02069B60: + bl GetLanguageType + ldrsb r1, [r4, #0x1c] + cmp r1, r0 + movne r0, #0 + strne r0, [sp, #0xc] + strne r0, [sp, #0x54] + strne r0, [sp, #0x58] + bne _02069B98 + add r2, r4, #0x1d + add r1, r4, #0x32 + add r0, r4, #0x56 + str r2, [sp, #0xc] + str r1, [sp, #0x54] + str r0, [sp, #0x58] +_02069B98: + ldrb r0, [r4] + cmp r0, #7 + addls pc, pc, r0, lsl #2 + b _02069C00 +_02069BA8: ; jump table + b _02069C00 ; case 0 + b _02069C00 ; case 1 + b _02069C00 ; case 2 + b _02069C00 ; case 3 + b _02069C00 ; case 4 + b _02069BC8 ; case 5 + b _02069BF4 ; case 6 + b _02069BC8 ; case 7 +_02069BC8: + ldr r0, _02069CBC ; =_020B0B44 + ldr r1, [r0] + ldrsh r0, [r1, #8] + cmp r0, #0 + movne r0, #6 + strneb r0, [sp, #0x1a] + ldrnesh r0, [r1, #8] + strneh r0, [sp, #0x3c] + mov r0, #0 + strb r0, [sp, #0x48] + b _02069C50 +_02069BF4: + mov r0, #0 + strb r0, [sp, #0x48] + b _02069C50 +_02069C00: + ldrb r0, [r4, #0xae] + bl sub_0205BD40 + cmp r0, #0 + beq _02069C24 + cmp r0, #1 + beq _02069C30 + cmp r0, #2 + beq _02069C3C + b _02069C48 +_02069C24: + mov r0, #6 + strb r0, [sp, #0x48] + b _02069C50 +_02069C30: + mov r0, #4 + strb r0, [sp, #0x48] + b _02069C50 +_02069C3C: + mov r0, #5 + strb r0, [sp, #0x48] + b _02069C50 +_02069C48: + mov r0, #0 + strb r0, [sp, #0x48] +_02069C50: + ldr r0, [sp, #0x54] + mov r1, #1 + cmp r0, #0 + ldrneh r0, [r0] + cmpne r0, #0 + movne r1, #0 + cmp r1, #0 + movne r1, #0 + moveq r1, #6 + ldr r0, [sp, #0x58] + strb r1, [sp, #0x44] + cmp r0, #0 + ldrneh r0, [r0] + mov r1, #1 + cmpne r0, #0 + movne r1, #0 + cmp r1, #0 + movne r2, #0 + moveq r2, #9 + add r0, sp, #0 + mov r1, r5 + strb r2, [sp, #0x45] + bl MakeMissionDetails + mov r0, r5 + bl UpdateWindow + add sp, sp, #0x68 + ldmia sp!, {r3, r4, r5, pc} + .align 2, 0 +_02069CBC: .word _020B0B44 + arm_func_end sub_02069AEC + + arm_func_start sub_02069CC0 +sub_02069CC0: ; 0x02069CC0 + stmdb sp!, {r4, r5, r6, lr} + sub sp, sp, #0x68 + ldr r1, _02069D3C ; =_020B0B44 + mov r6, r0 + ldr r0, [r1] + ldr r4, [r0, #4] + ldrb r5, [r0, #0x10] + mov r0, r4 + bl IsMissionTypeSpecialEpisode + cmp r0, #0 + beq _02069CFC + mov r0, r6 + mov r1, r4 + bl MakeSpecialEpisodeMissionDetails + b _02069D2C +_02069CFC: + add r1, sp, #0 + mov r0, r4 + bl GenerateMissionDetailsStruct + add r1, sp, #0x47 + add r2, sp, #0x48 + mov r0, r4 + mov r3, r5 + bl sub_02069958 + add r0, sp, #0 + mov r1, r6 + str r4, [sp, #0x5c] + bl MakeMissionDetails +_02069D2C: + mov r0, r6 + bl UpdateWindow + add sp, sp, #0x68 + ldmia sp!, {r4, r5, r6, pc} + .align 2, 0 +_02069D3C: .word _020B0B44 + arm_func_end sub_02069CC0 + + arm_func_start sub_02069D40 +sub_02069D40: ; 0x02069D40 + stmdb sp!, {r4, lr} + mov r4, r0 + mov r0, #0xc4 + mov r1, #8 + bl MemAlloc + ldr r2, _02069D90 ; =_020B0B48 + mov r1, #0xc4 + str r0, [r2] + bl MemZero + ldr r0, _02069D90 ; =_020B0B48 + mov r2, #0 + ldr r1, [r0] + str r2, [r1] + ldr r1, [r0] + strh r4, [r1, #0xc0] + ldr r1, [r0] + add r0, r1, #0x37 + bic r0, r0, #0x1f + str r0, [r1, #0x14] + ldmia sp!, {r4, pc} + .align 2, 0 +_02069D90: .word _020B0B48 + arm_func_end sub_02069D40 + + arm_func_start sub_02069D94 +sub_02069D94: ; 0x02069D94 + stmdb sp!, {r3, lr} + ldr r0, _02069DBC ; =_020B0B48 + ldr r0, [r0] + cmp r0, #0 + ldmeqia sp!, {r3, pc} + bl MemFree + ldr r0, _02069DBC ; =_020B0B48 + mov r1, #0 + str r1, [r0] + ldmia sp!, {r3, pc} + .align 2, 0 +_02069DBC: .word _020B0B48 + arm_func_end sub_02069D94 + + arm_func_start sub_02069DC0 +sub_02069DC0: ; 0x02069DC0 + stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x20c + ldr r0, _0206A5E0 ; =_020B0B48 + ldr r5, [r0] + ldr r1, [r5] + cmp r1, #0x3000 + bgt _02069E30 + bge _0206A388 + ldr r0, _0206A5E4 ; =0x00001001 + cmp r1, r0 + bgt _02069E10 + cmp r1, #0x1000 + blt _02069E04 + beq _0206A0AC + cmp r1, r0 + beq _0206A104 + b _0206A5D4 +_02069E04: + cmp r1, #0 + beq _02069E84 + b _0206A5D4 +_02069E10: + cmp r1, #0x2000 + bgt _02069E20 + beq _0206A464 + b _0206A5D4 +_02069E20: + add r0, r0, #0x1000 + cmp r1, r0 + beq _0206A490 + b _0206A5D4 +_02069E30: + cmp r1, #0x4000 + bgt _02069E4C + bge _0206A4A4 + ldr r0, _0206A5E8 ; =0x00003001 + cmp r1, r0 + beq _0206A3A0 + b _0206A5D4 +_02069E4C: + ldr r0, _0206A5EC ; =0x00004004 + cmp r1, r0 + bgt _02069E78 + sub r0, r0, #3 + subs r0, r1, r0 + addpl pc, pc, r0, lsl #2 + b _0206A5D4 +_02069E68: ; jump table + b _0206A4F8 ; case 0 + b _0206A4C4 ; case 1 + b _0206A584 ; case 2 + b _0206A5B0 ; case 3 +_02069E78: + cmp r1, #0x8000 + beq _0206A5C4 + b _0206A5D4 +_02069E84: + add r4, r5, #0x58 + add r5, r5, #0x90 + bl ov03_0233CAA8 + cmp r0, #1 + bne _02069F90 + ldr r0, _0206A5E0 ; =_020B0B48 + ldr r1, [r0] + cmp r1, #0 + movne r0, #1 + strne r0, [r1, #0xc] + mov r0, r4 + mov r1, #0x38 + bl MemZero + mov r0, r5 + mov r1, #0x18 + bl MemZero + ldr r1, _0206A5E0 ; =_020B0B48 + mov r2, #0x18 + ldr r0, [r1] + mov r6, #0x38 + str r2, [r0, #0xa8] + ldr r0, [r1] + ldr r3, _0206A5F0 ; =sub_0206A628 + str r5, [r0, #0xac] + ldr r2, [r1] + mov r0, #0 + str r6, [r2, #0xb0] + ldr r2, [r1] + mov r8, #1 + str r4, [r2, #0xb4] + ldr r2, [r1] + mov r7, #9 + str r3, [r2, #0xb8] + ldr r2, [r1] + mov r3, #0x12 + strb r0, [r2, #0xbc] + ldr r6, [r1] + mov r2, #0x11 + strb r8, [r6, #0x10] + ldr r6, [r1] + ldr r6, [r6, #0x14] + strb r7, [r6] + ldr r1, [r1] + ldr r1, [r1, #0x14] + strb r0, [r1, #1] + strb r3, [r4] + strb r2, [r5] + bl GetLanguageType + strb r0, [r5, #2] + ldrsb r1, [r5, #2] + add r0, r5, #4 + strb r1, [r4, #2] + bl GetMainTeamNameWithCheck + ldrb r0, [r5, #4] + cmp r0, #0 + bne _02069F6C + add r0, r5, #4 + bl SetQuestionMarks +_02069F6C: + add r0, r5, #4 + mov r1, #0x14 + bl ov01_02337B3C + ldr r1, _0206A5E0 ; =_020B0B48 + strb r0, [r5, #3] + ldr r0, [r1] + mov r1, #0x1000 + str r1, [r0] + b _0206A5D4 +_02069F90: + bl ov03_0233CAA8 + cmp r0, #0 + bne _0206A5D4 + ldr r0, _0206A5E0 ; =_020B0B48 + ldr r1, [r0] + cmp r1, #0 + movne r0, #0 + strne r0, [r1, #0xc] + mov r0, r4 + mov r1, #0x38 + bl MemZero + mov r0, r5 + mov r1, #0x18 + bl MemZero + ldr r0, _0206A5E0 ; =_020B0B48 + ldr r0, [r0] + ldrsh r0, [r0, #0xc0] + mov r0, r0, lsl #0x18 + mov r0, r0, asr #0x18 + bl GetAcceptedMission + mov sl, r0 + add sb, r4, #0x18 + ldmia sl!, {r0, r1, r2, r3} + stmia sb!, {r0, r1, r2, r3} + ldmia sl, {r0, r1, r2, r3} + ldr ip, _0206A5E0 ; =_020B0B48 + stmia sb, {r0, r1, r2, r3} + ldr r0, [ip] + mov r8, #0x38 + str r8, [r0, #0xa8] + ldr r0, [ip] + mov r7, #0x18 + str r4, [r0, #0xac] + ldr r0, [ip] + ldr r6, _0206A5F4 ; =_02337B68 + str r7, [r0, #0xb0] + ldr r0, [ip] + mov lr, #0 + str r5, [r0, #0xb4] + ldr r0, [ip] + mov fp, #9 + str r6, [r0, #0xb8] + ldr r0, [ip] + strb lr, [r0, #0xbc] + ldr r0, [ip] + strb lr, [r0, #0x10] + ldr r0, [ip] + ldr r0, [r0, #0x14] + strb fp, [r0] + ldr r0, [ip] + ldr r0, [r0, #0x14] + strb lr, [r0, #1] + mov r0, #0x12 + strb r0, [r4] + mov r0, #0x11 + strb r0, [r5] + bl GetLanguageType + strb r0, [r5, #2] + ldrsb r1, [r5, #2] + add r0, r4, #4 + strb r1, [r4, #2] + bl GetMainTeamNameWithCheck + add r0, r4, #4 + mov r1, #0x34 + bl ov01_02337B3C + strb r0, [r4, #3] + ldr r0, _0206A5E0 ; =_020B0B48 + mov r1, #0x1000 + ldr r0, [r0] + str r1, [r0] + b _0206A5D4 +_0206A0AC: + add r0, r5, #0xa8 + mov r4, #1 + str r0, [sp, #0xac] + str r4, [sp, #0xa8] + ldr r1, [r5, #0xc] + add r0, sp, #0xa8 + str r1, [sp, #0xb8] + ldrb r3, [r5, #0x10] + mov r2, #0x20 + mov r1, #0 + strb r3, [sp, #0xbc] + ldr r3, [r5, #0x14] + str r3, [sp, #0xc0] + strh r2, [sp, #0xc4] + strb r1, [sp, #0xc6] + str r4, [sp, #0xc8] + bl ov01_02337BA0 + ldr r0, _0206A5E0 ; =_020B0B48 + ldr r1, _0206A5E4 ; =0x00001001 + ldr r0, [r0] + str r1, [r0] + b _0206A5D4 +_0206A104: + bl ov01_02337E0C + movs r4, r0 + beq _0206A5D4 + bl ov01_02337C54 + cmp r4, #0xe + addls pc, pc, r4, lsl #2 + b _0206A5D4 +_0206A120: ; jump table + b _0206A5D4 ; case 0 + b _0206A380 ; case 1 + b _0206A5D4 ; case 2 + b _0206A5D4 ; case 3 + b _0206A15C ; case 4 + b _0206A380 ; case 5 + b _0206A380 ; case 6 + b _0206A380 ; case 7 + b _0206A380 ; case 8 + b _0206A380 ; case 9 + b _0206A380 ; case 10 + b _0206A380 ; case 11 + b _0206A380 ; case 12 + b _0206A380 ; case 13 + b _0206A380 ; case 14 +_0206A15C: + bl ov03_0233CAA8 + cmp r0, #1 + bne _0206A300 + ldr r0, _0206A5E0 ; =_020B0B48 + ldr r0, [r0] + add r0, r0, #0x70 + bl IsMissionTypeSpecialEpisode + cmp r0, #0 + beq _0206A244 + mov r0, #2 + bl IsSpecialEpisodeOpen + cmp r0, #0 + beq _0206A1B0 + ldr r1, _0206A5F8 ; =0x000037A8 + mov r0, #0x1c + bl ov03_0233CDC8 + ldr r0, _0206A5E0 ; =_020B0B48 + ldr r1, _0206A5FC ; =0x00002001 + ldr r0, [r0] + str r1, [r0] + b _0206A5D4 +_0206A1B0: + add r0, sp, #0x1bc + bl InitPreprocessorArgs + mov r0, #2 + mov r1, #1 + bl SetSpecialEpisodeOpen + add r0, sp, #0x7e + mov r1, #0x2a + bl MemZero + ldr r0, _0206A5E0 ; =_020B0B48 + ldr r4, [r0] + bl GetLanguageType + ldrsb r1, [r4, #0x5a] + cmp r1, r0 + add r0, sp, #0x7e + bne _0206A1FC + add r1, r4, #0x5c + mov r2, #0x14 + bl StrncpySimpleNoPadSafe + b _0206A204 +_0206A1FC: + ldr r1, _0206A600 ; =0x000038C9 + bl GetStringFromFileVeneer +_0206A204: + ldr r1, _0206A604 ; =0x0000379F + add r3, sp, #0x7e + add r2, sp, #0x1bc + mov r0, #0x1c + str r3, [sp, #0x1f4] + bl ov03_0233CDD8 + ldr r0, _0206A5E0 ; =_020B0B48 + mov r1, #0 + ldr r0, [r0] + add r0, r0, #0x70 + bl CreateJobSummary + ldr r0, _0206A5E0 ; =_020B0B48 + mov r1, #0x2000 + ldr r0, [r0] + str r1, [r0] + b _0206A5D4 +_0206A244: + ldr r0, _0206A5E0 ; =_020B0B48 + ldr r0, [r0] + add r0, r0, #0x70 + bl AddMissionToJobList + cmp r0, #0 + bne _0206A2EC + bl sub_0205F5A8 + bl sub_0205F710 + add r0, sp, #0x16c + bl InitPreprocessorArgs + add r0, sp, #0x54 + mov r1, #0x2a + bl MemZero + ldr r0, _0206A5E0 ; =_020B0B48 + ldr r4, [r0] + bl GetLanguageType + ldrsb r1, [r4, #0x5a] + cmp r1, r0 + add r0, sp, #0x54 + bne _0206A2A4 + add r1, r4, #0x5c + mov r2, #0x14 + bl StrncpySimpleNoPadSafe + b _0206A2AC +_0206A2A4: + ldr r1, _0206A600 ; =0x000038C9 + bl GetStringFromFileVeneer +_0206A2AC: + ldr r1, _0206A604 ; =0x0000379F + add r3, sp, #0x54 + add r2, sp, #0x16c + mov r0, #0x1c + str r3, [sp, #0x1a4] + bl ov03_0233CDD8 + ldr r0, _0206A5E0 ; =_020B0B48 + mov r1, #0 + ldr r0, [r0] + add r0, r0, #0x70 + bl CreateJobSummary + ldr r0, _0206A5E0 ; =_020B0B48 + mov r1, #0x2000 + ldr r0, [r0] + str r1, [r0] + b _0206A5D4 +_0206A2EC: + ldr r0, _0206A5E0 ; =_020B0B48 + mov r1, #0x3000 + ldr r0, [r0] + str r1, [r0] + b _0206A5D4 +_0206A300: + bl ov03_0233CAA8 + cmp r0, #0 + bne _0206A5D4 + add r0, sp, #0x11c + bl InitPreprocessorArgs + add r0, sp, #0x2a + mov r1, #0x2a + bl MemZero + ldr r0, _0206A5E0 ; =_020B0B48 + ldr r4, [r0] + bl GetLanguageType + ldrsb r1, [r4, #0x92] + cmp r1, r0 + add r0, sp, #0x2a + bne _0206A34C + add r1, r4, #0x94 + mov r2, #0x14 + bl StrncpySimpleNoPadSafe + b _0206A354 +_0206A34C: + ldr r1, _0206A600 ; =0x000038C9 + bl GetStringFromFileVeneer +_0206A354: + ldr r1, _0206A608 ; =0x00003793 + add r3, sp, #0x2a + add r2, sp, #0x11c + mov r0, #0x1c + str r3, [sp, #0x154] + bl ov03_0233CDD8 + ldr r0, _0206A5E0 ; =_020B0B48 + mov r1, #0x8000 + ldr r0, [r0] + str r1, [r0] + b _0206A5D4 +_0206A380: + mov r0, #1 + b _0206A5D8 +_0206A388: + bl ov03_0233CAD8 + ldr r0, _0206A5E0 ; =_020B0B48 + ldr r1, _0206A5E8 ; =0x00003001 + ldr r0, [r0] + str r1, [r0] + b _0206A5D4 +_0206A3A0: + bl ov03_0233CB3C + cmp r0, #2 + bne _0206A450 + bl ov03_0233CB10 + add r0, sp, #0xcc + bl InitPreprocessorArgs + ldr r0, _0206A5E0 ; =_020B0B48 + ldr r0, [r0] + add r0, r0, #0x70 + bl AddMissionToJobList + bl sub_0205F5A8 + bl sub_0205F710 + add r0, sp, #0 + mov r1, #0x2a + bl MemZero + ldr r0, _0206A5E0 ; =_020B0B48 + ldr r4, [r0] + bl GetLanguageType + ldrsb r1, [r4, #0x5a] + cmp r1, r0 + add r0, sp, #0 + bne _0206A408 + add r1, r4, #0x5c + mov r2, #0x14 + bl StrncpySimpleNoPadSafe + b _0206A410 +_0206A408: + ldr r1, _0206A600 ; =0x000038C9 + bl GetStringFromFileVeneer +_0206A410: + ldr r1, _0206A604 ; =0x0000379F + add r3, sp, #0 + add r2, sp, #0xcc + mov r0, #0x1c + str r3, [sp, #0x104] + bl ov03_0233CDD8 + ldr r0, _0206A5E0 ; =_020B0B48 + mov r1, #0 + ldr r0, [r0] + add r0, r0, #0x70 + bl CreateJobSummary + ldr r0, _0206A5E0 ; =_020B0B48 + mov r1, #0x2000 + ldr r0, [r0] + str r1, [r0] + b _0206A5D4 +_0206A450: + cmp r0, #1 + bne _0206A5D4 + bl ov03_0233CB10 + mov r0, #1 + b _0206A5D8 +_0206A464: + bl ov03_0233CDE4 + mov r4, r0 + bl sub_020698B8 + cmp r4, #0x12 + bne _0206A5D4 + bl sub_02069904 + ldr r0, _0206A5E0 ; =_020B0B48 + mov r1, #0x4000 + ldr r0, [r0] + str r1, [r0] + b _0206A5D4 +_0206A490: + bl ov03_0233CDE4 + cmp r0, #0x12 + bne _0206A5D4 + mov r0, #1 + b _0206A5D8 +_0206A4A4: + ldr r1, _0206A60C ; =0x0000023B + mov r0, #0 + bl ov03_0233CDC8 + ldr r0, _0206A5E0 ; =_020B0B48 + ldr r1, _0206A610 ; =0x00004002 + ldr r0, [r0] + str r1, [r0] + b _0206A5D4 +_0206A4C4: + bl ov03_0233CDE4 + cmp r0, #0x12 + bne _0206A5D4 + mov r0, #0xe0 + mov r1, #0x88 + mov r2, #1 + bl sub_02029F88 + bl sub_02003B94 + ldr r0, _0206A5E0 ; =_020B0B48 + ldr r1, _0206A614 ; =0x00004001 + ldr r0, [r0] + str r1, [r0] + b _0206A5D4 +_0206A4F8: + mov r0, #3 + bl NoteSaveBase + mov r4, r0 + bl sub_02003BC8 + bl sub_02029FBC + cmp r4, #0 + bne _0206A558 + ldr r0, _0206A5E0 ; =_020B0B48 + ldr r0, [r0] + add r0, r0, #0x70 + bl IsMissionTypeSpecialEpisode + cmp r0, #0 + mov r0, #0x1c + beq _0206A53C + ldr r1, _0206A618 ; =0x0000379E + bl ov03_0233CDC8 + b _0206A544 +_0206A53C: +#ifdef JAPAN + ldr r1, _0206A90C ; =0x000004CD +#else + mov r1, #0x23c +#endif + bl ov03_0233CDC8 +_0206A544: + ldr r0, _0206A5E0 ; =_020B0B48 + ldr r1, _0206A61C ; =0x00004003 + ldr r0, [r0] + str r1, [r0] + b _0206A5D4 +_0206A558: + cmp r4, #1 + moveq r0, #3 + beq _0206A5D8 + ldr r1, _0206A620 ; =0x00000239 + mov r0, #0x1c + bl ov03_0233CDC8 + ldr r0, _0206A5E0 ; =_020B0B48 + ldr r1, _0206A5EC ; =0x00004004 + ldr r0, [r0] + str r1, [r0] + b _0206A5D4 +_0206A584: + bl ov03_0233CDE4 + cmp r0, #0x12 + bne _0206A5D4 + ldr r1, _0206A624 ; =0x000037A0 + mov r0, #0x1c + bl ov03_0233CDC8 + ldr r0, _0206A5E0 ; =_020B0B48 + mov r1, #0x8000 + ldr r0, [r0] + str r1, [r0] + b _0206A5D4 +_0206A5B0: + bl ov03_0233CDE4 + cmp r0, #0x12 + bne _0206A5D4 + mov r0, #1 + b _0206A5D8 +_0206A5C4: + bl ov03_0233CDE4 + cmp r0, #0x12 + moveq r0, #2 + beq _0206A5D8 +_0206A5D4: + mov r0, #0 +_0206A5D8: + add sp, sp, #0x20c + ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +#if defined(EUROPE) +#define SUB_02069DC0_OFFSET 2 +#elif defined(JAPAN) +#define SUB_02069DC0_OFFSET -0x37E +#else +#define SUB_02069DC0_OFFSET 0 +#endif +_0206A5E0: .word _020B0B48 +_0206A5E4: .word 0x00001001 +_0206A5E8: .word 0x00003001 +_0206A5EC: .word 0x00004004 +_0206A5F0: .word sub_0206A628 +_0206A5F4: .word ov01_02337B68 +_0206A5F8: .word 0x000037A8 + SUB_02069DC0_OFFSET +_0206A5FC: .word 0x00002001 +#ifdef JAPAN +_0206A600: .word 0x00003507 +#else +_0206A600: .word 0x000038C9 + SUB_02069DC0_OFFSET +#endif +_0206A604: .word 0x0000379F + SUB_02069DC0_OFFSET +_0206A608: .word 0x00003793 + SUB_02069DC0_OFFSET +#ifdef JAPAN +_0206A60C: .word 0x000004CC +#else +_0206A60C: .word 0x0000023B +#endif +_0206A610: .word 0x00004002 +_0206A614: .word 0x00004001 +_0206A618: .word 0x0000379E + SUB_02069DC0_OFFSET +#ifdef JAPAN +_0206A90C: .word 0x000004CD +_0206A61C: .word 0x00004003 +_0206A620: .word 0x000004CA +#else +_0206A61C: .word 0x00004003 +_0206A620: .word 0x00000239 +#endif +_0206A624: .word 0x000037A0 + SUB_02069DC0_OFFSET + arm_func_end sub_02069DC0 + + arm_func_start sub_0206A628 +sub_0206A628: ; 0x0206A628 + stmdb sp!, {r4, lr} + mov r4, r0 + bl ov03_0233CAA8 + cmp r0, #1 + bne _0206A70C + add r0, r4, #4 + mov r1, #0x34 + bl ov01_02337B3C + ldrb r1, [r4, #3] + cmp r0, r1 + movne r0, #3 + ldmneia sp!, {r4, pc} + ldrb r0, [r4] + cmp r0, #0x12 + movne r0, #2 + ldmneia sp!, {r4, pc} + add r0, r4, #0x18 + bl IsMissionTypeSpecialEpisode + cmp r0, #0 + movne r0, #1 + ldmneia sp!, {r4, pc} + add r0, r4, #0x18 + bl sub_0205D1F4 + cmp r0, #0 + moveq r0, #6 + ldmeqia sp!, {r4, pc} + ldrsh r0, [r4, #0x2c] + mov r1, #1 + bl CanSendItem + cmp r0, #0 + moveq r0, #6 + ldmeqia sp!, {r4, pc} + ldrb r0, [r4, #0x2e] + cmp r0, #4 + addls pc, pc, r0, lsl #2 + b _0206A6E4 +_0206A6B8: ; jump table + b _0206A6E4 ; case 0 + b _0206A6CC ; case 1 + b _0206A6CC ; case 2 + b _0206A6CC ; case 3 + b _0206A6CC ; case 4 +_0206A6CC: + ldrsh r0, [r4, #0x30] + mov r1, #1 + bl CanSendItem + cmp r0, #0 + moveq r0, #6 + ldmeqia sp!, {r4, pc} +_0206A6E4: + add r0, r4, #0x18 + bl AlreadyHaveMission + cmp r0, #0 + movne r0, #4 + ldmneia sp!, {r4, pc} + add r0, r4, #0x18 + bl sub_0205FA38 + cmp r0, #0 + movne r0, #4 + ldmneia sp!, {r4, pc} +_0206A70C: + mov r0, #1 + ldmia sp!, {r4, pc} + arm_func_end sub_0206A628 diff --git a/asm/main_rodata_020A2808.s b/asm/main_rodata_020A2808.s index 6a0f21ed..dcc6b398 100644 --- a/asm/main_rodata_020A2808.s +++ b/asm/main_rodata_020A2808.s @@ -12921,8 +12921,8 @@ _020B0AFC: .global _020B0B04 _020B0B04: .byte 0x00, 0x00, 0x00, 0x00 - .global _020B0B08 -_020B0B08: + .global SPECIAL_ACTORS +SPECIAL_ACTORS: .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x3C, 0x00, 0x3D, 0x00, 0x3C, 0x00, 0x00, 0x00 .global _020B0B24 diff --git a/include/enums.h b/include/enums.h index 509b259b..8869526d 100644 --- a/include/enums.h +++ b/include/enums.h @@ -2015,6 +2015,395 @@ enum monster_id { }; #undef _MONSTER_ID_GENDERED +enum script_entity_id { + ENTITY_PLAYER = 0, + ENTITY_PLAYER_HERO = 1, + ENTITY_PLAYER_PARTNER = 2, + ENTITY_PLAYER_PARTNER2 = 3, + ENTITY_PLAYER_APPOINT = 4, + ENTITY_PLAYER_BIPPA = 5, + ENTITY_PLAYER_PUPURIN = 6, + ENTITY_PLAYER_KIMAWARI = 7, + ENTITY_PLAYER_FUTURE = 8, + ENTITY_PLAYER_CHARMS = 9, + ENTITY_ATTENDANT1 = 10, + ENTITY_ATTENDANT2 = 11, + ENTITY_ATTENDANT_HERO = 12, + ENTITY_ATTENDANT_PARTNER = 13, + ENTITY_ATTENDANT_PARTNER2 = 14, + ENTITY_ATTENDANT_APPOINT = 15, + ENTITY_ATTENDANT_BIPPA = 16, + ENTITY_ATTENDANT_PUPURIN = 17, + ENTITY_ATTENDANT_KIMAWARI = 18, + ENTITY_ATTENDANT_FUTURE = 19, + ENTITY_ATTENDANT_CHARMS = 20, + ENTITY_ATTENDANT_MANAFI = 21, + ENTITY_UNIT_NPC1 = 22, + ENTITY_UNIT_NPC2 = 23, + ENTITY_UNIT_NPC3 = 24, + ENTITY_UNIT_NPC4 = 25, + ENTITY_ADVENTURE_NPC1 = 26, + ENTITY_ADVENTURE_NPC2 = 27, + ENTITY_ADVENTURE_NPC3 = 28, + ENTITY_ADVENTURE_NPC4 = 29, + ENTITY_FRIEND_NPC1 = 30, + ENTITY_FRIEND_NPC2 = 31, + ENTITY_FRIEND_NPC3 = 32, + ENTITY_FRIEND_NPC4 = 33, + ENTITY_FRIEND_NPC5 = 34, + ENTITY_FRIEND_NPC6 = 35, + ENTITY_FRIEND_NPC7 = 36, + ENTITY_FRIEND_NPC8 = 37, + ENTITY_FRIEND_NPC9 = 38, + ENTITY_FRIEND_NPC10 = 39, + ENTITY_FRIEND_NPC11 = 40, + ENTITY_FRIEND_NPC12 = 41, + ENTITY_FRIEND_NPC13 = 42, + ENTITY_FRIEND_NPC14 = 43, + ENTITY_FRIEND_NPC15 = 44, + ENTITY_FRIEND_NPC16 = 45, + ENTITY_TALK_MAIN = 46, + ENTITY_TALK_SUB = 47, + ENTITY_EVENT_NPC_MAIN = 48, + ENTITY_EVENT_NPC_SUB = 49, + ENTITY_RANDOM_REQUEST_NPC01 = 50, + ENTITY_RANDOM_REQUEST_NPC02 = 51, + ENTITY_RANDOM_REQUEST_NPC03 = 52, + ENTITY_EVENT_NPC01 = 53, + ENTITY_EVENT_NPC02 = 54, + ENTITY_EVENT_NPC03 = 55, + ENTITY_EVENT_NPC04 = 56, + ENTITY_NPC_NEW_FRIEND = 57, + ENTITY_NPC_DEMO_HERO = 58, + ENTITY_NPC_DEMO_PARTNER = 59, + ENTITY_NPC_HERO = 60, + ENTITY_NPC_PARTNER = 61, + ENTITY_NPC_PARTNER2 = 62, + ENTITY_NPC_APPOINT = 63, + ENTITY_NPC_HERO_REAL = 64, + ENTITY_NPC_PARTNER_REAL = 65, + ENTITY_NPC_HERO_FIRST = 66, + ENTITY_NPC_PARTNER_FIRST = 67, + ENTITY_NPC_DEBUG = 68, + ENTITY_NPC_TEST001 = 69, + ENTITY_NPC_TEST002 = 70, + ENTITY_NPC_TEST003 = 71, + ENTITY_NPC_TEST004 = 72, + ENTITY_NPC_TEST005 = 73, + ENTITY_NPC_TEST006 = 74, + ENTITY_NPC_TEST007 = 75, + ENTITY_NPC_TEST008 = 76, + ENTITY_NPC_TEST009 = 77, + ENTITY_NPC_TEST010 = 78, + ENTITY_NPC_PUKURIN = 79, + ENTITY_NPC_ZUBATTO = 80, + ENTITY_NPC_DIGUDA = 81, + ENTITY_NPC_DAGUTORIO = 82, + ENTITY_NPC_MANKII = 83, + ENTITY_NPC_OKORIZARU = 84, + ENTITY_NPC_KOIRU = 85, + ENTITY_NPC_SURIIPU = 86, + ENTITY_NPC_KURABU = 87, + ENTITY_NPC_GARAGARA = 88, + ENTITY_NPC_DOGAASU = 89, + ENTITY_NPC_RAKKII = 90, + ENTITY_NPC_GARUURA = 91, + ENTITY_NPC_GYARADOSU = 92, + ENTITY_NPC_RAPURASU = 93, + ENTITY_NPC_OMUSUTAA = 94, + ENTITY_NPC_OMUSUTAA2 = 95, + ENTITY_NPC_KABUTOPUSU = 96, + ENTITY_NPC_NEITYIO = 97, + ENTITY_NPC_DENRYUU = 98, + ENTITY_NPC_MARIRU = 99, + ENTITY_NPC_USOKKII = 100, + ENTITY_NPC_KIMAWARI = 101, + ENTITY_NPC_HIMEGUMA = 102, + ENTITY_NPC_RINGUMA = 103, + ENTITY_NPC_SEREBII = 104, + ENTITY_NPC_JUPUTORU = 105, + ENTITY_NPC_PERIPPAA1 = 106, + ENTITY_NPC_PERIPPAA2 = 107, + ENTITY_NPC_YARUKIMONO = 108, + ENTITY_NPC_DOGOOMU = 109, + ENTITY_NPC_RURIRI = 110, + ENTITY_NPC_YAMIRAMI = 111, + ENTITY_NPC_CHAAREMU = 112, + ENTITY_NPC_KOOTASU = 113, + ENTITY_NPC_BANEBUU = 114, + ENTITY_NPC_HEIGANI = 115, + ENTITY_NPC_KAKUREON1 = 116, + ENTITY_NPC_KAKUREON2 = 117, + ENTITY_NPC_YOMAWARU = 118, + ENTITY_NPC_CHIRIIN = 119, + ENTITY_NPC_REJIROKKU = 120, + ENTITY_NPC_REJIAISU = 121, + ENTITY_NPC_REJISUCHIRU = 122, + ENTITY_NPC_GURAADON = 123, + ENTITY_NPC_BIPPA = 124, + ENTITY_NPC_RUKUSHIO1 = 125, + ENTITY_NPC_RUKUSHIO2 = 126, + ENTITY_NPC_RENTORAA = 127, + ENTITY_NPC_MIMIROPPU = 128, + ENTITY_NPC_SUKATANKU = 129, + ENTITY_NPC_MANENE = 130, + ENTITY_NPC_PERAPPU = 131, + ENTITY_NPC_MIKARUGE = 132, + ENTITY_NPC_GUREGGURU = 133, + ENTITY_NPC_JIBAKOIRU = 134, + ENTITY_NPC_EREKIBURU = 135, + ENTITY_NPC_YONOWAARU = 136, + ENTITY_NPC_YUKUSHII = 137, + ENTITY_NPC_EMURITTO = 138, + ENTITY_NPC_AGUNOMU = 139, + ENTITY_NPC_DIARUGA = 140, + ENTITY_NPC_PARUKIA = 141, + ENTITY_NPC_REJIGIGASU = 142, + ENTITY_NPC_GIRATYINA = 143, + ENTITY_NPC_KURESERIA = 144, + ENTITY_NPC_FIONE1 = 145, + ENTITY_NPC_FIONE2 = 146, + ENTITY_NPC_FIONE3 = 147, + ENTITY_NPC_FIONE4 = 148, + ENTITY_NPC_FIONE5 = 149, + ENTITY_NPC_FIONE6 = 150, + ENTITY_NPC_FIONE7 = 151, + ENTITY_NPC_FIONE8 = 152, + ENTITY_NPC_MANAFI = 153, + ENTITY_NPC_DAAKURAI = 154, + ENTITY_OBJECT001 = 155, + ENTITY_OBJECT002 = 156, + ENTITY_NPC_KOIRU2 = 157, + ENTITY_NPC_POPPO = 158, + ENTITY_NPC_TANEBOO = 159, + ENTITY_NPC_OOSUBAME = 160, + ENTITY_NPC_KEMUSSO = 161, + ENTITY_NPC_BURAKKII = 162, + ENTITY_NPC_KAGEBOUZU = 163, + ENTITY_NPC_YAMIKARASU = 164, + ENTITY_NPC_POCHIENA_A = 165, + ENTITY_NPC_POCHIENA_B = 166, + ENTITY_NPC_POCHIENA_C = 167, + ENTITY_NPC_ZANGUUSU = 168, + ENTITY_NPC_SUTORAIKU = 169, + ENTITY_NPC_SANDOPAN = 170, + ENTITY_NPC_PONIITA = 171, + ENTITY_NPC_BAKUUDA = 172, + ENTITY_NPC_MADATSUBOMI = 173, + ENTITY_NPC_TOGEPII = 174, + ENTITY_NPC_NYOROTONO = 175, + ENTITY_NPC_REDIBA = 176, + ENTITY_NPC_YADON = 177, + ENTITY_NPC_NAMAKERO = 178, + ENTITY_NPC_ERUREIDO = 179, + ENTITY_NPC_ROZUREIDO = 180, + ENTITY_NPC_DOSAIDON = 181, + ENTITY_NPC_MANYUURA = 182, + ENTITY_NPC_AABOKKU = 183, + ENTITY_NPC_DORAPION = 184, + ENTITY_NPC_BASHAAMO = 185, + ENTITY_NPC_ENPERUTO = 186, + ENTITY_NPC_HERAKUROSU = 187, + ENTITY_NPC_DERUBIRU_A = 188, + ENTITY_NPC_DERUBIRU_B = 189, + ENTITY_NPC_DERUBIRU_C = 190, + ENTITY_NPC_SAANAITO = 191, + ENTITY_NPC_TODOZERUGA = 192, + ENTITY_NPC_HASSAMU = 193, + ENTITY_NPC_BARIYAADO = 194, + ENTITY_NPC_FURIIZAA = 195, + ENTITY_NPC_YUKIMENOKO = 196, + ENTITY_NPC_RINGUMA2 = 197, + ENTITY_NPC_YAMIRAMI2 = 198, + ENTITY_NPC_YAMIRAMI3 = 199, + ENTITY_NPC_YAMIRAMI4 = 200, + ENTITY_NPC_YAMIRAMI5 = 201, + ENTITY_NPC_YAMIRAMI6 = 202, + ENTITY_NPC_RUKUSHIO3 = 203, + ENTITY_NPC_RUKUSHIO4 = 204, + ENTITY_NPC_RUKUSHIO5 = 205, + ENTITY_NPC_RUKUSHIO6 = 206, + ENTITY_NPC_RUKUSHIO7 = 207, + ENTITY_NPC_RUKUSHIO8 = 208, + ENTITY_NPC_HIIDORAN = 209, + ENTITY_NPC_RUGIA = 210, + ENTITY_NPC_MYUU = 211, + ENTITY_NPC_HOUOU = 212, + ENTITY_NPC_S_CHIRIIN = 213, + ENTITY_NPC_S_PUKURIN = 214, + ENTITY_NPC_S_YUKUSHII = 215, + ENTITY_NPC_S_AGUNOMU = 216, + ENTITY_NPC_S_EMURITTO = 217, + ENTITY_NPC_S_KIMAWARI = 218, + ENTITY_NPC_S_DIGUDA = 219, + ENTITY_NPC_S_DAGUTORIO = 220, + ENTITY_NPC_S_HEIGANI = 221, + ENTITY_NPC_S_DOGOOMU = 222, + ENTITY_NPC_S_BIPPA = 223, + ENTITY_NPC_S_PERAPPU = 224, + ENTITY_NPC_S_JUPUTORU = 225, + ENTITY_NPC_S_YONOWAARU = 226, + ENTITY_NPC_S_YAMIRAMI1 = 227, + ENTITY_NPC_S_YAMIRAMI2 = 228, + ENTITY_NPC_DARK_PUKURIN = 229, + ENTITY_OBJ_IMAGE_REJIGIGASU = 230, + ENTITY_NPC_DOOTAKUN1 = 231, + ENTITY_NPC_DOOTAKUN2 = 232, + ENTITY_NPC_DOOTAKUN3 = 233, + ENTITY_NPC_DOOTAKUN4 = 234, + ENTITY_NPC_DOOTAKUN5 = 235, + ENTITY_NPC_DOOTAKUN6 = 236, + ENTITY_OBJ_IMAGE_DOOTAKUN = 237, + ENTITY_OBJ_IMAGE_DOOTAKUN2 = 238, + ENTITY_OBJ_IMAGE_DOOTAKUN3 = 239, + ENTITY_OBJ_IMAGE_DOOTAKUN4 = 240, + ENTITY_OBJ_IMAGE_DOOTAKUN5 = 241, + ENTITY_OBJ_IMAGE_DOOTAKUN6 = 242, + ENTITY_NPC_SAWAMURAA1 = 243, + ENTITY_NPC_SAWAMURAA2 = 244, + ENTITY_NPC_SAWAMURAA3 = 245, + ENTITY_NPC_SAWAMURAA4 = 246, + ENTITY_NPC_SAWAMURAA5 = 247, + ENTITY_NPC_SAWAMURAA6 = 248, + ENTITY_OBJ_IMAGE_SAWAMURAA = 249, + ENTITY_OBJ_IMAGE_SAWAMURAA2 = 250, + ENTITY_OBJ_IMAGE_SAWAMURAA3 = 251, + ENTITY_OBJ_IMAGE_SAWAMURAA4 = 252, + ENTITY_OBJ_IMAGE_SAWAMURAA5 = 253, + ENTITY_OBJ_IMAGE_SAWAMURAA6 = 254, + ENTITY_NPC_DARK_DIARUGA = 255, + ENTITY_NPC_SHADOW_DAAKURAI = 256, + ENTITY_NPC_KURESERIA2 = 257, + ENTITY_NPC_BOSUGODORA = 258, + ENTITY_NPC_MAGUKARUGO = 259, + ENTITY_NPC_BUUBAAN = 260, + ENTITY_NPC_MUUMAAJI = 261, + ENTITY_NPC_BARUBIITO1 = 262, + ENTITY_NPC_BARUBIITO2 = 263, + ENTITY_NPC_BARUBIITO3 = 264, + ENTITY_NPC_BARUBIITO4 = 265, + ENTITY_NPC_IRUMIIZE1 = 266, + ENTITY_NPC_IRUMIIZE2 = 267, + ENTITY_NPC_IRUMIIZE3 = 268, + ENTITY_NPC_IRUMIIZE4 = 269, + ENTITY_NPC_GABAITO = 270, + ENTITY_NPC_REKKUUZA = 271, + ENTITY_NPC_KAIOOGA = 272, + ENTITY_NPC_JIRAACHI = 273, + ENTITY_NPC_BIIDARU = 274, + ENTITY_NPC_BIPPA_BRO = 275, + ENTITY_NPC_BIPPA_SIS = 276, + ENTITY_NPC_GURAIGAA = 277, + ENTITY_NPC_TATSUBEI = 278, + ENTITY_NPC_YUKIKABURI = 279, + ENTITY_NPC_MANMUU = 280, + ENTITY_NPC_ONIGOORI = 281, + ENTITY_NPC_ONIGOORI2 = 282, + ENTITY_NPC_ONIGOORI3 = 283, + ENTITY_NPC_ONIGOORI4 = 284, + ENTITY_NPC_PORIGON = 285, + ENTITY_NPC_PORIGON2 = 286, + ENTITY_NPC_YUKIWARASHI = 287, + ENTITY_NPC_YUKIWARASHI2 = 288, + ENTITY_NPC_YUKIWARASHI3 = 289, + ENTITY_NPC_YUKIWARASHI4 = 290, + ENTITY_NPC_JUPETTA = 291, + ENTITY_NPC_SUKORUPI = 292, + ENTITY_NPC_AAMARUDO = 293, + ENTITY_NPC_PUKURIN_PAPA = 294, + ENTITY_NPC_PUKURIN_MAMA = 295, + ENTITY_NPC_UPAA = 296, + ENTITY_NPC_MUCHUURU = 297, + ENTITY_NPC_SUBOMII = 298, + ENTITY_NPC_NIDOKINGU = 299, + ENTITY_NPC_SOONANO = 300, + ENTITY_NPC_SOONANSU = 301, + ENTITY_NPC_PATCHIIRU = 302, + ENTITY_NPC_OKUTAN = 303, + ENTITY_NPC_TSUBOTSUBO = 304, + ENTITY_NPC_RUNPAPPA = 305, + ENTITY_NPC_RUNPAPPA2 = 306, + ENTITY_NPC_RUNPAPPA3 = 307, + ENTITY_NPC_RUNPAPPA4 = 308, + ENTITY_NPC_RUNPAPPA5 = 309, + ENTITY_NPC_NASSHII = 310, + ENTITY_NPC_SHEIMI = 311, + ENTITY_NPC_SHEIMI1 = 312, + ENTITY_NPC_SHEIMI2 = 313, + ENTITY_NPC_SHEIMI3 = 314, + ENTITY_NPC_SHEIMI4 = 315, + ENTITY_NPC_SHEIMI5 = 316, + ENTITY_NPC_GOORIKII = 317, + ENTITY_NPC_KINOGASSA = 318, + ENTITY_NPC_KUCHIITO = 319, + ENTITY_NPC_NYUURA = 320, + ENTITY_NPC_KOIKINGU = 321, + ENTITY_NPC_HINBASU = 322, + ENTITY_NPC_FUWARAIDO = 323, + ENTITY_NPC_TAMATAMA = 324, + ENTITY_NPC_JIGUZAGUMA = 325, + ENTITY_NPC_MASUKIPPA = 326, + ENTITY_NPC_MASUKIPPA2 = 327, + ENTITY_NPC_MASUKIPPA3 = 328, + ENTITY_NPC_MASUKIPPA4 = 329, + ENTITY_NPC_MASUKIPPA5 = 330, + ENTITY_NPC_MASUKIPPA6 = 331, + ENTITY_NPC_BETOBETAA = 332, + ENTITY_NPC_BETOBETAA2 = 333, + ENTITY_NPC_BETOBETAA3 = 334, + ENTITY_NPC_BETOBETAA4 = 335, + ENTITY_NPC_BETOBETAA5 = 336, + ENTITY_NPC_BETOBETON = 337, + ENTITY_NPC_BETOBETON2 = 338, + ENTITY_NPC_BETOBETON3 = 339, + ENTITY_NPC_DERIBAADO = 340, + ENTITY_NPC_MERIIPU = 341, + ENTITY_NPC_WATAKKO = 342, + ENTITY_NPC_DONMERU = 343, + ENTITY_NPC_PACHIRISU = 344, + ENTITY_NPC_KIREIHANA = 345, + ENTITY_NPC_KIREIHANA2 = 346, + ENTITY_NPC_KIREIHANA3 = 347, + ENTITY_NPC_KIREIHANA4 = 348, + ENTITY_NPC_KODORA = 349, + ENTITY_NPC_KODORA2 = 350, + ENTITY_NPC_KODORA3 = 351, + ENTITY_NPC_KODORA4 = 352, + ENTITY_NPC_KODORA5 = 353, + ENTITY_NPC_KODORA6 = 354, + ENTITY_NPC_METAMON = 355, + ENTITY_NPC_GOROON = 356, + ENTITY_NPC_OTACHI = 357, + ENTITY_NPC_HERUGAA = 358, + ENTITY_NPC_NOKUTASU = 359, + ENTITY_NPC_NOKOTCHI = 360, + ENTITY_NPC_GOOSUTO = 361, + ENTITY_NPC_GOOSUTO2 = 362, + ENTITY_NPC_GOOSUTO3 = 363, + ENTITY_NPC_MAGUMAGGU = 364, + ENTITY_NPC_MAGUMAGGU2 = 365, + ENTITY_NPC_SHEIMI_FC = 366, + ENTITY_NPC_RAIBORUTO = 367, + ENTITY_NPC_RAKURAI = 368, + ENTITY_NPC_RAKURAI2 = 369, + ENTITY_NPC_RAKURAI3 = 370, + ENTITY_NPC_RAKURAI4 = 371, + ENTITY_NPC_RAKURAI5 = 372, + ENTITY_NPC_RAKURAI6 = 373, + ENTITY_NPC_RAKURAI7 = 374, + ENTITY_NPC_RAKURAI8 = 375, + ENTITY_NPC_YONOWAARU_N8 = 376, + ENTITY_NPC_YONOWAARU_N9 = 377, + ENTITY_NPC_METAMON_OTACHI = 378, + ENTITY_NPC_METAMON_KIREIHANA = 379, + ENTITY_NPC_BIIKUIN = 380, + ENTITY_NPC_DAINOOZU = 381, + ENTITY_NPC_BAKUONGU = 382, + ENTITY_NPC_NENDOORU = 383, + ENTITY_NPC_MEGAYANMA = 384, + ENTITY_NPC_PINPUKU = 385, +}; + // Actions that a monster can take on its turn enum action { ACTION_NOTHING = 0, // 0x0 diff --git a/include/main_02065B3C.h b/include/main_02065B3C.h new file mode 100644 index 00000000..aa11f4f5 --- /dev/null +++ b/include/main_02065B3C.h @@ -0,0 +1,34 @@ +#ifndef PMDSKY_MAIN_02065B3C_H +#define PMDSKY_MAIN_02065B3C_H + +#include "enums.h" + +struct special_actors { + enum monster_id event_npc02; + enum monster_id event_npc01; + enum monster_id demo_partner; + enum monster_id event_npc04; + enum monster_id event_npc03; + enum monster_id demo_hero; + enum monster_id new_friend; + enum monster_id random_request_npc02; + enum monster_id random_request_npc01; + enum script_entity_id event_npc_sub; + enum script_entity_id event_npc_main; + enum script_entity_id talk_sub; + enum script_entity_id talk_main; + u8 padding[2]; +}; + +extern struct special_actors SPECIAL_ACTORS; + +void SetActorTalkMainAndActorTalkSub(enum script_entity_id talk_main, enum script_entity_id talk_sub); +void SetActorTalkMain(enum script_entity_id talk_main); +void SetActorTalkSub(enum script_entity_id talk_sub); +void SetActorEventMain(enum script_entity_id event_npc_main); +void SetRandomRequestNpcs1And2(enum monster_id random_request_npc01, enum monster_id random_request_npc02); +void SetRandomRequestNpc03KindVar(enum monster_id kind); +void SetAllEventNpcs(enum monster_id event_npc01, enum monster_id event_npc02, enum monster_id event_npc03, enum monster_id event_npc04); +void SetNewFriendActor(enum monster_id new_friend); + +#endif diff --git a/main.lsf b/main.lsf index 371ee3df..436c4d46 100644 --- a/main.lsf +++ b/main.lsf @@ -213,6 +213,8 @@ Static main Object asm/main_0205EC98.o Object src/main_0205ED84.o Object asm/main_0205EDA4.o + Object src/main_02065B3C.o + Object asm/main_02065BD8.o Object src/dungeon_init_2.o Object asm/main_0206A750.o Object src/main_0206A84C.o diff --git a/src/main_02065B3C.c b/src/main_02065B3C.c new file mode 100644 index 00000000..625b072e --- /dev/null +++ b/src/main_02065B3C.c @@ -0,0 +1,48 @@ +#include "enums.h" +#include "main_02065B3C.h" +#include "script_variable.h" + +void SetActorTalkMainAndActorTalkSub(enum script_entity_id talk_main, enum script_entity_id talk_sub) +{ + SPECIAL_ACTORS.talk_main = talk_main; + SPECIAL_ACTORS.talk_sub = talk_sub; +} + +void SetActorTalkMain(enum script_entity_id talk_main) +{ + SPECIAL_ACTORS.talk_main = talk_main; +} + +void SetActorTalkSub(enum script_entity_id talk_sub) +{ + SPECIAL_ACTORS.talk_sub = talk_sub; +} + +void SetActorEventMain(enum script_entity_id event_npc_main) +{ + SPECIAL_ACTORS.event_npc_main = event_npc_main; +} + +void SetRandomRequestNpcs1And2(enum monster_id random_request_npc01, enum monster_id random_request_npc02) +{ + SPECIAL_ACTORS.random_request_npc01 = random_request_npc01; + SPECIAL_ACTORS.random_request_npc02 = random_request_npc02; +} + +void SetRandomRequestNpc03KindVar(enum monster_id kind) +{ + SaveScriptVariableValue(0, VAR_RANDOM_REQUEST_NPC03_KIND, kind); +} + +void SetAllEventNpcs(enum monster_id event_npc01, enum monster_id event_npc02, enum monster_id event_npc03, enum monster_id event_npc04) +{ + SPECIAL_ACTORS.event_npc01 = event_npc01; + SPECIAL_ACTORS.event_npc02 = event_npc02; + SPECIAL_ACTORS.event_npc03 = event_npc03; + SPECIAL_ACTORS.event_npc04 = event_npc04; +} + +void SetNewFriendActor(enum monster_id new_friend) +{ + SPECIAL_ACTORS.new_friend = new_friend; +} From 6e975da39b4e1a574044e72d71dafa9bca7da11c Mon Sep 17 00:00:00 2001 From: CecilArmitais Date: Fri, 24 Jul 2026 13:35:26 -0700 Subject: [PATCH 2/3] Added comments to script_entity_id --- include/enums.h | 633 ++++++++++++++++++++++++------------------------ 1 file changed, 317 insertions(+), 316 deletions(-) diff --git a/include/enums.h b/include/enums.h index 8869526d..117eb2e2 100644 --- a/include/enums.h +++ b/include/enums.h @@ -2015,29 +2015,30 @@ enum monster_id { }; #undef _MONSTER_ID_GENDERED +// Script entity IDs. While a few script entities differ between versions, the IDs are the same. enum script_entity_id { ENTITY_PLAYER = 0, ENTITY_PLAYER_HERO = 1, ENTITY_PLAYER_PARTNER = 2, ENTITY_PLAYER_PARTNER2 = 3, ENTITY_PLAYER_APPOINT = 4, - ENTITY_PLAYER_BIPPA = 5, - ENTITY_PLAYER_PUPURIN = 6, - ENTITY_PLAYER_KIMAWARI = 7, - ENTITY_PLAYER_FUTURE = 8, - ENTITY_PLAYER_CHARMS = 9, + ENTITY_PLAYER_BIPPA = 5, // Bidoof + ENTITY_PLAYER_PUPURIN = 6, // Igglybuff + ENTITY_PLAYER_KIMAWARI = 7, // Sunflora + ENTITY_PLAYER_FUTURE = 8, // Grovyle + ENTITY_PLAYER_CHARMS = 9, // Lopunny ENTITY_ATTENDANT1 = 10, ENTITY_ATTENDANT2 = 11, ENTITY_ATTENDANT_HERO = 12, ENTITY_ATTENDANT_PARTNER = 13, ENTITY_ATTENDANT_PARTNER2 = 14, ENTITY_ATTENDANT_APPOINT = 15, - ENTITY_ATTENDANT_BIPPA = 16, - ENTITY_ATTENDANT_PUPURIN = 17, - ENTITY_ATTENDANT_KIMAWARI = 18, - ENTITY_ATTENDANT_FUTURE = 19, - ENTITY_ATTENDANT_CHARMS = 20, - ENTITY_ATTENDANT_MANAFI = 21, + ENTITY_ATTENDANT_BIPPA = 16, // Bidoof + ENTITY_ATTENDANT_PUPURIN = 17, // Igglybuff + ENTITY_ATTENDANT_KIMAWARI = 18, // Sunflora + ENTITY_ATTENDANT_FUTURE = 19, // Grovyle + ENTITY_ATTENDANT_CHARMS = 20, // Lopunny + ENTITY_ATTENDANT_MANAFI = 21, // Manaphy ENTITY_UNIT_NPC1 = 22, ENTITY_UNIT_NPC2 = 23, ENTITY_UNIT_NPC3 = 24, @@ -2095,313 +2096,313 @@ enum script_entity_id { ENTITY_NPC_TEST008 = 76, ENTITY_NPC_TEST009 = 77, ENTITY_NPC_TEST010 = 78, - ENTITY_NPC_PUKURIN = 79, - ENTITY_NPC_ZUBATTO = 80, - ENTITY_NPC_DIGUDA = 81, - ENTITY_NPC_DAGUTORIO = 82, - ENTITY_NPC_MANKII = 83, - ENTITY_NPC_OKORIZARU = 84, - ENTITY_NPC_KOIRU = 85, - ENTITY_NPC_SURIIPU = 86, - ENTITY_NPC_KURABU = 87, - ENTITY_NPC_GARAGARA = 88, - ENTITY_NPC_DOGAASU = 89, - ENTITY_NPC_RAKKII = 90, - ENTITY_NPC_GARUURA = 91, - ENTITY_NPC_GYARADOSU = 92, - ENTITY_NPC_RAPURASU = 93, - ENTITY_NPC_OMUSUTAA = 94, - ENTITY_NPC_OMUSUTAA2 = 95, - ENTITY_NPC_KABUTOPUSU = 96, - ENTITY_NPC_NEITYIO = 97, - ENTITY_NPC_DENRYUU = 98, - ENTITY_NPC_MARIRU = 99, - ENTITY_NPC_USOKKII = 100, - ENTITY_NPC_KIMAWARI = 101, - ENTITY_NPC_HIMEGUMA = 102, - ENTITY_NPC_RINGUMA = 103, - ENTITY_NPC_SEREBII = 104, - ENTITY_NPC_JUPUTORU = 105, - ENTITY_NPC_PERIPPAA1 = 106, - ENTITY_NPC_PERIPPAA2 = 107, - ENTITY_NPC_YARUKIMONO = 108, - ENTITY_NPC_DOGOOMU = 109, - ENTITY_NPC_RURIRI = 110, - ENTITY_NPC_YAMIRAMI = 111, - ENTITY_NPC_CHAAREMU = 112, - ENTITY_NPC_KOOTASU = 113, - ENTITY_NPC_BANEBUU = 114, - ENTITY_NPC_HEIGANI = 115, - ENTITY_NPC_KAKUREON1 = 116, - ENTITY_NPC_KAKUREON2 = 117, - ENTITY_NPC_YOMAWARU = 118, - ENTITY_NPC_CHIRIIN = 119, - ENTITY_NPC_REJIROKKU = 120, - ENTITY_NPC_REJIAISU = 121, - ENTITY_NPC_REJISUCHIRU = 122, - ENTITY_NPC_GURAADON = 123, - ENTITY_NPC_BIPPA = 124, - ENTITY_NPC_RUKUSHIO1 = 125, - ENTITY_NPC_RUKUSHIO2 = 126, - ENTITY_NPC_RENTORAA = 127, - ENTITY_NPC_MIMIROPPU = 128, - ENTITY_NPC_SUKATANKU = 129, - ENTITY_NPC_MANENE = 130, - ENTITY_NPC_PERAPPU = 131, - ENTITY_NPC_MIKARUGE = 132, - ENTITY_NPC_GUREGGURU = 133, - ENTITY_NPC_JIBAKOIRU = 134, - ENTITY_NPC_EREKIBURU = 135, - ENTITY_NPC_YONOWAARU = 136, - ENTITY_NPC_YUKUSHII = 137, - ENTITY_NPC_EMURITTO = 138, - ENTITY_NPC_AGUNOMU = 139, - ENTITY_NPC_DIARUGA = 140, - ENTITY_NPC_PARUKIA = 141, - ENTITY_NPC_REJIGIGASU = 142, - ENTITY_NPC_GIRATYINA = 143, - ENTITY_NPC_KURESERIA = 144, - ENTITY_NPC_FIONE1 = 145, - ENTITY_NPC_FIONE2 = 146, - ENTITY_NPC_FIONE3 = 147, - ENTITY_NPC_FIONE4 = 148, - ENTITY_NPC_FIONE5 = 149, - ENTITY_NPC_FIONE6 = 150, - ENTITY_NPC_FIONE7 = 151, - ENTITY_NPC_FIONE8 = 152, - ENTITY_NPC_MANAFI = 153, - ENTITY_NPC_DAAKURAI = 154, + ENTITY_NPC_PUKURIN = 79, // Wigglytuff + ENTITY_NPC_ZUBATTO = 80, // Zubat + ENTITY_NPC_DIGUDA = 81, // Diglett + ENTITY_NPC_DAGUTORIO = 82, // Dugtrio + ENTITY_NPC_MANKII = 83, // Mankey + ENTITY_NPC_OKORIZARU = 84, // Primeape + ENTITY_NPC_KOIRU = 85, // Magnemite + ENTITY_NPC_SURIIPU = 86, // Drowzee + ENTITY_NPC_KURABU = 87, // Krabby + ENTITY_NPC_GARAGARA = 88, // Marowak + ENTITY_NPC_DOGAASU = 89, // Koffing + ENTITY_NPC_RAKKII = 90, // Chansey + ENTITY_NPC_GARUURA = 91, // Kangaskhan + ENTITY_NPC_GYARADOSU = 92, // Gyarados + ENTITY_NPC_RAPURASU = 93, // Lapras + ENTITY_NPC_OMUSUTAA = 94, // Omastar + ENTITY_NPC_OMUSUTAA2 = 95, // Omastar 2 + ENTITY_NPC_KABUTOPUSU = 96, // Kabutops + ENTITY_NPC_NEITYIO = 97, // Xatu + ENTITY_NPC_DENRYUU = 98, // Ampharos + ENTITY_NPC_MARIRU = 99, // Marill + ENTITY_NPC_USOKKII = 100, // Sudowoodo + ENTITY_NPC_KIMAWARI = 101, // Sunflora + ENTITY_NPC_HIMEGUMA = 102, // Teddiursa + ENTITY_NPC_RINGUMA = 103, // Ursaring + ENTITY_NPC_SEREBII = 104, // Celebi + ENTITY_NPC_JUPUTORU = 105, // Grovyle + ENTITY_NPC_PERIPPAA1 = 106, // Pelipper 1 + ENTITY_NPC_PERIPPAA2 = 107, // Pelipper 2 + ENTITY_NPC_YARUKIMONO = 108, // Vigoroth + ENTITY_NPC_DOGOOMU = 109, // Loudred + ENTITY_NPC_RURIRI = 110, // Azurill + ENTITY_NPC_YAMIRAMI = 111, // Sableye + ENTITY_NPC_CHAAREMU = 112, // Medicham + ENTITY_NPC_KOOTASU = 113, // Torkoal + ENTITY_NPC_BANEBUU = 114, // Spoink + ENTITY_NPC_HEIGANI = 115, // Corphish + ENTITY_NPC_KAKUREON1 = 116, // Kecleon 1 + ENTITY_NPC_KAKUREON2 = 117, // Kecleon 2 + ENTITY_NPC_YOMAWARU = 118, // Duskull + ENTITY_NPC_CHIRIIN = 119, // Chimecho + ENTITY_NPC_REJIROKKU = 120, // Regirock + ENTITY_NPC_REJIAISU = 121, // Regice + ENTITY_NPC_REJISUCHIRU = 122, // Registeel + ENTITY_NPC_GURAADON = 123, // Groudon + ENTITY_NPC_BIPPA = 124, // Bidoof + ENTITY_NPC_RUKUSHIO1 = 125, // Luxio 1 + ENTITY_NPC_RUKUSHIO2 = 126, // Luxio 2 + ENTITY_NPC_RENTORAA = 127, // Luxray + ENTITY_NPC_MIMIROPPU = 128, // Lopunny + ENTITY_NPC_SUKATANKU = 129, // Skuntank + ENTITY_NPC_MANENE = 130, // Mime Jr. + ENTITY_NPC_PERAPPU = 131, // Chatot + ENTITY_NPC_MIKARUGE = 132, // Spiritomb + ENTITY_NPC_GUREGGURU = 133, // Croagunk + ENTITY_NPC_JIBAKOIRU = 134, // Magnezone + ENTITY_NPC_EREKIBURU = 135, // Electivire + ENTITY_NPC_YONOWAARU = 136, // Dusknoir + ENTITY_NPC_YUKUSHII = 137, // Uxie + ENTITY_NPC_EMURITTO = 138, // Mesprit + ENTITY_NPC_AGUNOMU = 139, // Azelf + ENTITY_NPC_DIARUGA = 140, // Dialga + ENTITY_NPC_PARUKIA = 141, // Palkia + ENTITY_NPC_REJIGIGASU = 142, // Regigigas + ENTITY_NPC_GIRATYINA = 143, // Giratina + ENTITY_NPC_KURESERIA = 144, // Cresselia + ENTITY_NPC_FIONE1 = 145, // Phione 1 + ENTITY_NPC_FIONE2 = 146, // Phione 2 + ENTITY_NPC_FIONE3 = 147, // Phione 3 + ENTITY_NPC_FIONE4 = 148, // Phione 4 + ENTITY_NPC_FIONE5 = 149, // Phione 5 + ENTITY_NPC_FIONE6 = 150, // Phione 6 + ENTITY_NPC_FIONE7 = 151, // Phione 7 + ENTITY_NPC_FIONE8 = 152, // Phione 8 + ENTITY_NPC_MANAFI = 153, // Manaphy + ENTITY_NPC_DAAKURAI = 154, // Darkrai ENTITY_OBJECT001 = 155, ENTITY_OBJECT002 = 156, - ENTITY_NPC_KOIRU2 = 157, - ENTITY_NPC_POPPO = 158, - ENTITY_NPC_TANEBOO = 159, - ENTITY_NPC_OOSUBAME = 160, - ENTITY_NPC_KEMUSSO = 161, - ENTITY_NPC_BURAKKII = 162, - ENTITY_NPC_KAGEBOUZU = 163, - ENTITY_NPC_YAMIKARASU = 164, - ENTITY_NPC_POCHIENA_A = 165, - ENTITY_NPC_POCHIENA_B = 166, - ENTITY_NPC_POCHIENA_C = 167, - ENTITY_NPC_ZANGUUSU = 168, - ENTITY_NPC_SUTORAIKU = 169, - ENTITY_NPC_SANDOPAN = 170, - ENTITY_NPC_PONIITA = 171, - ENTITY_NPC_BAKUUDA = 172, - ENTITY_NPC_MADATSUBOMI = 173, - ENTITY_NPC_TOGEPII = 174, - ENTITY_NPC_NYOROTONO = 175, - ENTITY_NPC_REDIBA = 176, - ENTITY_NPC_YADON = 177, - ENTITY_NPC_NAMAKERO = 178, - ENTITY_NPC_ERUREIDO = 179, - ENTITY_NPC_ROZUREIDO = 180, - ENTITY_NPC_DOSAIDON = 181, - ENTITY_NPC_MANYUURA = 182, - ENTITY_NPC_AABOKKU = 183, - ENTITY_NPC_DORAPION = 184, - ENTITY_NPC_BASHAAMO = 185, - ENTITY_NPC_ENPERUTO = 186, - ENTITY_NPC_HERAKUROSU = 187, - ENTITY_NPC_DERUBIRU_A = 188, - ENTITY_NPC_DERUBIRU_B = 189, - ENTITY_NPC_DERUBIRU_C = 190, - ENTITY_NPC_SAANAITO = 191, - ENTITY_NPC_TODOZERUGA = 192, - ENTITY_NPC_HASSAMU = 193, - ENTITY_NPC_BARIYAADO = 194, - ENTITY_NPC_FURIIZAA = 195, - ENTITY_NPC_YUKIMENOKO = 196, - ENTITY_NPC_RINGUMA2 = 197, - ENTITY_NPC_YAMIRAMI2 = 198, - ENTITY_NPC_YAMIRAMI3 = 199, - ENTITY_NPC_YAMIRAMI4 = 200, - ENTITY_NPC_YAMIRAMI5 = 201, - ENTITY_NPC_YAMIRAMI6 = 202, - ENTITY_NPC_RUKUSHIO3 = 203, - ENTITY_NPC_RUKUSHIO4 = 204, - ENTITY_NPC_RUKUSHIO5 = 205, - ENTITY_NPC_RUKUSHIO6 = 206, - ENTITY_NPC_RUKUSHIO7 = 207, - ENTITY_NPC_RUKUSHIO8 = 208, - ENTITY_NPC_HIIDORAN = 209, - ENTITY_NPC_RUGIA = 210, - ENTITY_NPC_MYUU = 211, - ENTITY_NPC_HOUOU = 212, - ENTITY_NPC_S_CHIRIIN = 213, - ENTITY_NPC_S_PUKURIN = 214, - ENTITY_NPC_S_YUKUSHII = 215, - ENTITY_NPC_S_AGUNOMU = 216, - ENTITY_NPC_S_EMURITTO = 217, - ENTITY_NPC_S_KIMAWARI = 218, - ENTITY_NPC_S_DIGUDA = 219, - ENTITY_NPC_S_DAGUTORIO = 220, - ENTITY_NPC_S_HEIGANI = 221, - ENTITY_NPC_S_DOGOOMU = 222, - ENTITY_NPC_S_BIPPA = 223, - ENTITY_NPC_S_PERAPPU = 224, - ENTITY_NPC_S_JUPUTORU = 225, - ENTITY_NPC_S_YONOWAARU = 226, - ENTITY_NPC_S_YAMIRAMI1 = 227, - ENTITY_NPC_S_YAMIRAMI2 = 228, - ENTITY_NPC_DARK_PUKURIN = 229, - ENTITY_OBJ_IMAGE_REJIGIGASU = 230, - ENTITY_NPC_DOOTAKUN1 = 231, - ENTITY_NPC_DOOTAKUN2 = 232, - ENTITY_NPC_DOOTAKUN3 = 233, - ENTITY_NPC_DOOTAKUN4 = 234, - ENTITY_NPC_DOOTAKUN5 = 235, - ENTITY_NPC_DOOTAKUN6 = 236, - ENTITY_OBJ_IMAGE_DOOTAKUN = 237, - ENTITY_OBJ_IMAGE_DOOTAKUN2 = 238, - ENTITY_OBJ_IMAGE_DOOTAKUN3 = 239, - ENTITY_OBJ_IMAGE_DOOTAKUN4 = 240, - ENTITY_OBJ_IMAGE_DOOTAKUN5 = 241, - ENTITY_OBJ_IMAGE_DOOTAKUN6 = 242, - ENTITY_NPC_SAWAMURAA1 = 243, - ENTITY_NPC_SAWAMURAA2 = 244, - ENTITY_NPC_SAWAMURAA3 = 245, - ENTITY_NPC_SAWAMURAA4 = 246, - ENTITY_NPC_SAWAMURAA5 = 247, - ENTITY_NPC_SAWAMURAA6 = 248, - ENTITY_OBJ_IMAGE_SAWAMURAA = 249, - ENTITY_OBJ_IMAGE_SAWAMURAA2 = 250, - ENTITY_OBJ_IMAGE_SAWAMURAA3 = 251, - ENTITY_OBJ_IMAGE_SAWAMURAA4 = 252, - ENTITY_OBJ_IMAGE_SAWAMURAA5 = 253, - ENTITY_OBJ_IMAGE_SAWAMURAA6 = 254, - ENTITY_NPC_DARK_DIARUGA = 255, - ENTITY_NPC_SHADOW_DAAKURAI = 256, - ENTITY_NPC_KURESERIA2 = 257, - ENTITY_NPC_BOSUGODORA = 258, - ENTITY_NPC_MAGUKARUGO = 259, - ENTITY_NPC_BUUBAAN = 260, - ENTITY_NPC_MUUMAAJI = 261, - ENTITY_NPC_BARUBIITO1 = 262, - ENTITY_NPC_BARUBIITO2 = 263, - ENTITY_NPC_BARUBIITO3 = 264, - ENTITY_NPC_BARUBIITO4 = 265, - ENTITY_NPC_IRUMIIZE1 = 266, - ENTITY_NPC_IRUMIIZE2 = 267, - ENTITY_NPC_IRUMIIZE3 = 268, - ENTITY_NPC_IRUMIIZE4 = 269, - ENTITY_NPC_GABAITO = 270, - ENTITY_NPC_REKKUUZA = 271, - ENTITY_NPC_KAIOOGA = 272, - ENTITY_NPC_JIRAACHI = 273, - ENTITY_NPC_BIIDARU = 274, - ENTITY_NPC_BIPPA_BRO = 275, - ENTITY_NPC_BIPPA_SIS = 276, - ENTITY_NPC_GURAIGAA = 277, - ENTITY_NPC_TATSUBEI = 278, - ENTITY_NPC_YUKIKABURI = 279, - ENTITY_NPC_MANMUU = 280, - ENTITY_NPC_ONIGOORI = 281, - ENTITY_NPC_ONIGOORI2 = 282, - ENTITY_NPC_ONIGOORI3 = 283, - ENTITY_NPC_ONIGOORI4 = 284, - ENTITY_NPC_PORIGON = 285, - ENTITY_NPC_PORIGON2 = 286, - ENTITY_NPC_YUKIWARASHI = 287, - ENTITY_NPC_YUKIWARASHI2 = 288, - ENTITY_NPC_YUKIWARASHI3 = 289, - ENTITY_NPC_YUKIWARASHI4 = 290, - ENTITY_NPC_JUPETTA = 291, - ENTITY_NPC_SUKORUPI = 292, - ENTITY_NPC_AAMARUDO = 293, - ENTITY_NPC_PUKURIN_PAPA = 294, - ENTITY_NPC_PUKURIN_MAMA = 295, - ENTITY_NPC_UPAA = 296, - ENTITY_NPC_MUCHUURU = 297, - ENTITY_NPC_SUBOMII = 298, - ENTITY_NPC_NIDOKINGU = 299, - ENTITY_NPC_SOONANO = 300, - ENTITY_NPC_SOONANSU = 301, - ENTITY_NPC_PATCHIIRU = 302, - ENTITY_NPC_OKUTAN = 303, - ENTITY_NPC_TSUBOTSUBO = 304, - ENTITY_NPC_RUNPAPPA = 305, - ENTITY_NPC_RUNPAPPA2 = 306, - ENTITY_NPC_RUNPAPPA3 = 307, - ENTITY_NPC_RUNPAPPA4 = 308, - ENTITY_NPC_RUNPAPPA5 = 309, - ENTITY_NPC_NASSHII = 310, - ENTITY_NPC_SHEIMI = 311, - ENTITY_NPC_SHEIMI1 = 312, - ENTITY_NPC_SHEIMI2 = 313, - ENTITY_NPC_SHEIMI3 = 314, - ENTITY_NPC_SHEIMI4 = 315, - ENTITY_NPC_SHEIMI5 = 316, - ENTITY_NPC_GOORIKII = 317, - ENTITY_NPC_KINOGASSA = 318, - ENTITY_NPC_KUCHIITO = 319, - ENTITY_NPC_NYUURA = 320, - ENTITY_NPC_KOIKINGU = 321, - ENTITY_NPC_HINBASU = 322, - ENTITY_NPC_FUWARAIDO = 323, - ENTITY_NPC_TAMATAMA = 324, - ENTITY_NPC_JIGUZAGUMA = 325, - ENTITY_NPC_MASUKIPPA = 326, - ENTITY_NPC_MASUKIPPA2 = 327, - ENTITY_NPC_MASUKIPPA3 = 328, - ENTITY_NPC_MASUKIPPA4 = 329, - ENTITY_NPC_MASUKIPPA5 = 330, - ENTITY_NPC_MASUKIPPA6 = 331, - ENTITY_NPC_BETOBETAA = 332, - ENTITY_NPC_BETOBETAA2 = 333, - ENTITY_NPC_BETOBETAA3 = 334, - ENTITY_NPC_BETOBETAA4 = 335, - ENTITY_NPC_BETOBETAA5 = 336, - ENTITY_NPC_BETOBETON = 337, - ENTITY_NPC_BETOBETON2 = 338, - ENTITY_NPC_BETOBETON3 = 339, - ENTITY_NPC_DERIBAADO = 340, - ENTITY_NPC_MERIIPU = 341, - ENTITY_NPC_WATAKKO = 342, - ENTITY_NPC_DONMERU = 343, - ENTITY_NPC_PACHIRISU = 344, - ENTITY_NPC_KIREIHANA = 345, - ENTITY_NPC_KIREIHANA2 = 346, - ENTITY_NPC_KIREIHANA3 = 347, - ENTITY_NPC_KIREIHANA4 = 348, - ENTITY_NPC_KODORA = 349, - ENTITY_NPC_KODORA2 = 350, - ENTITY_NPC_KODORA3 = 351, - ENTITY_NPC_KODORA4 = 352, - ENTITY_NPC_KODORA5 = 353, - ENTITY_NPC_KODORA6 = 354, - ENTITY_NPC_METAMON = 355, - ENTITY_NPC_GOROON = 356, - ENTITY_NPC_OTACHI = 357, - ENTITY_NPC_HERUGAA = 358, - ENTITY_NPC_NOKUTASU = 359, - ENTITY_NPC_NOKOTCHI = 360, - ENTITY_NPC_GOOSUTO = 361, - ENTITY_NPC_GOOSUTO2 = 362, - ENTITY_NPC_GOOSUTO3 = 363, - ENTITY_NPC_MAGUMAGGU = 364, - ENTITY_NPC_MAGUMAGGU2 = 365, - ENTITY_NPC_SHEIMI_FC = 366, - ENTITY_NPC_RAIBORUTO = 367, - ENTITY_NPC_RAKURAI = 368, - ENTITY_NPC_RAKURAI2 = 369, - ENTITY_NPC_RAKURAI3 = 370, - ENTITY_NPC_RAKURAI4 = 371, - ENTITY_NPC_RAKURAI5 = 372, - ENTITY_NPC_RAKURAI6 = 373, - ENTITY_NPC_RAKURAI7 = 374, - ENTITY_NPC_RAKURAI8 = 375, - ENTITY_NPC_YONOWAARU_N8 = 376, - ENTITY_NPC_YONOWAARU_N9 = 377, - ENTITY_NPC_METAMON_OTACHI = 378, - ENTITY_NPC_METAMON_KIREIHANA = 379, - ENTITY_NPC_BIIKUIN = 380, - ENTITY_NPC_DAINOOZU = 381, - ENTITY_NPC_BAKUONGU = 382, - ENTITY_NPC_NENDOORU = 383, - ENTITY_NPC_MEGAYANMA = 384, - ENTITY_NPC_PINPUKU = 385, + ENTITY_NPC_KOIRU2 = 157, // Magnemite 2 + ENTITY_NPC_POPPO = 158, // Pidgey + ENTITY_NPC_TANEBOO = 159, // Seedot + ENTITY_NPC_OOSUBAME = 160, // Swellow + ENTITY_NPC_KEMUSSO = 161, // Wurmple + ENTITY_NPC_BURAKKII = 162, // Umbreon + ENTITY_NPC_KAGEBOUZU = 163, // Shuppet + ENTITY_NPC_YAMIKARASU = 164, // Murkrow + ENTITY_NPC_POCHIENA_A = 165, // Poochyena A + ENTITY_NPC_POCHIENA_B = 166, // Poochyena B + ENTITY_NPC_POCHIENA_C = 167, // Poochyena C + ENTITY_NPC_ZANGUUSU = 168, // Zangoose + ENTITY_NPC_SUTORAIKU = 169, // Scyther + ENTITY_NPC_SANDOPAN = 170, // Sandslash + ENTITY_NPC_PONIITA = 171, // Ponyta + ENTITY_NPC_BAKUUDA = 172, // Camerupt + ENTITY_NPC_MADATSUBOMI = 173, // Bellsprout + ENTITY_NPC_TOGEPII = 174, // Togepi + ENTITY_NPC_NYOROTONO = 175, // Politoed + ENTITY_NPC_REDIBA = 176, // Ledyba + ENTITY_NPC_YADON = 177, // Slowpoke + ENTITY_NPC_NAMAKERO = 178, // Slakoth + ENTITY_NPC_ERUREIDO = 179, // Gallade + ENTITY_NPC_ROZUREIDO = 180, // Roserade + ENTITY_NPC_DOSAIDON = 181, // Rhyperior + ENTITY_NPC_MANYUURA = 182, // Weavile + ENTITY_NPC_AABOKKU = 183, // Arbok + ENTITY_NPC_DORAPION = 184, // Drapion + ENTITY_NPC_BASHAAMO = 185, // Blaziken + ENTITY_NPC_ENPERUTO = 186, // Empoleon + ENTITY_NPC_HERAKUROSU = 187, // Heracross + ENTITY_NPC_DERUBIRU_A = 188, // Houndour A + ENTITY_NPC_DERUBIRU_B = 189, // Houndour B + ENTITY_NPC_DERUBIRU_C = 190, // Houndour C + ENTITY_NPC_SAANAITO = 191, // Gardevoir + ENTITY_NPC_TODOZERUGA = 192, // Walrein + ENTITY_NPC_HASSAMU = 193, // Scizor + ENTITY_NPC_BARIYAADO = 194, // Mr. Mime + ENTITY_NPC_FURIIZAA = 195, // Articuno + ENTITY_NPC_YUKIMENOKO = 196, // Froslass + ENTITY_NPC_RINGUMA2 = 197, // Ursaring 2 + ENTITY_NPC_YAMIRAMI2 = 198, // Sableye 2 + ENTITY_NPC_YAMIRAMI3 = 199, // Sableye 3 + ENTITY_NPC_YAMIRAMI4 = 200, // Sableye 4 + ENTITY_NPC_YAMIRAMI5 = 201, // Sableye 5 + ENTITY_NPC_YAMIRAMI6 = 202, // Sableye 6 + ENTITY_NPC_RUKUSHIO3 = 203, // Luxio 3 + ENTITY_NPC_RUKUSHIO4 = 204, // Luxio 4 + ENTITY_NPC_RUKUSHIO5 = 205, // Luxio 5 + ENTITY_NPC_RUKUSHIO6 = 206, // Luxio 6 + ENTITY_NPC_RUKUSHIO7 = 207, // Luxio 7 + ENTITY_NPC_RUKUSHIO8 = 208, // Luxio 8 + ENTITY_NPC_HIIDORAN = 209, // Heatran + ENTITY_NPC_RUGIA = 210, // Lugia + ENTITY_NPC_MYUU = 211, // Mew + ENTITY_NPC_HOUOU = 212, // Ho-Oh + ENTITY_NPC_S_CHIRIIN = 213, // Chimecho + ENTITY_NPC_S_PUKURIN = 214, // Wigglytuff + ENTITY_NPC_S_YUKUSHII = 215, // Uxie + ENTITY_NPC_S_AGUNOMU = 216, // Azelf + ENTITY_NPC_S_EMURITTO = 217, // Mesprit + ENTITY_NPC_S_KIMAWARI = 218, // Sunflora + ENTITY_NPC_S_DIGUDA = 219, // Diglett + ENTITY_NPC_S_DAGUTORIO = 220, // Dugtrio + ENTITY_NPC_S_HEIGANI = 221, // Corphish + ENTITY_NPC_S_DOGOOMU = 222, // Loudred + ENTITY_NPC_S_BIPPA = 223, // Bidoof + ENTITY_NPC_S_PERAPPU = 224, // Chatot + ENTITY_NPC_S_JUPUTORU = 225, // Grovyle + ENTITY_NPC_S_YONOWAARU = 226, // Dusknoir + ENTITY_NPC_S_YAMIRAMI1 = 227, // Sableye 1 + ENTITY_NPC_S_YAMIRAMI2 = 228, // Sableye 2 + ENTITY_NPC_DARK_PUKURIN = 229, // Wigglytuff + ENTITY_OBJ_IMAGE_REJIGIGASU = 230, // Regigigas + ENTITY_NPC_DOOTAKUN1 = 231, // Bronzong 1 + ENTITY_NPC_DOOTAKUN2 = 232, // Bronzong 2 + ENTITY_NPC_DOOTAKUN3 = 233, // Bronzong 3 + ENTITY_NPC_DOOTAKUN4 = 234, // Bronzong 4 + ENTITY_NPC_DOOTAKUN5 = 235, // Bronzong 5 + ENTITY_NPC_DOOTAKUN6 = 236, // Bronzong 6 + ENTITY_OBJ_IMAGE_DOOTAKUN = 237, // Bronzong + ENTITY_OBJ_IMAGE_DOOTAKUN2 = 238, // Bronzong 2 + ENTITY_OBJ_IMAGE_DOOTAKUN3 = 239, // Bronzong 3 + ENTITY_OBJ_IMAGE_DOOTAKUN4 = 240, // Bronzong 4 + ENTITY_OBJ_IMAGE_DOOTAKUN5 = 241, // Bronzong 5 + ENTITY_OBJ_IMAGE_DOOTAKUN6 = 242, // Bronzong 6 + ENTITY_NPC_SAWAMURAA1 = 243, // Hitmonlee 1 + ENTITY_NPC_SAWAMURAA2 = 244, // Hitmonlee 2 + ENTITY_NPC_SAWAMURAA3 = 245, // Hitmonlee 3 + ENTITY_NPC_SAWAMURAA4 = 246, // Hitmonlee 4 + ENTITY_NPC_SAWAMURAA5 = 247, // Hitmonlee 5 + ENTITY_NPC_SAWAMURAA6 = 248, // Hitmonlee 6 + ENTITY_OBJ_IMAGE_SAWAMURAA = 249, // Hitmonlee + ENTITY_OBJ_IMAGE_SAWAMURAA2 = 250, // Hitmonlee 2 + ENTITY_OBJ_IMAGE_SAWAMURAA3 = 251, // Hitmonlee 3 + ENTITY_OBJ_IMAGE_SAWAMURAA4 = 252, // Hitmonlee 4 + ENTITY_OBJ_IMAGE_SAWAMURAA5 = 253, // Hitmonlee 5 + ENTITY_OBJ_IMAGE_SAWAMURAA6 = 254, // Hitmonlee 6 + ENTITY_NPC_DARK_DIARUGA = 255, // Primal Dialga + ENTITY_NPC_SHADOW_DAAKURAI = 256, // Darkrai + ENTITY_NPC_KURESERIA2 = 257, // Cresselia 2 + ENTITY_NPC_BOSUGODORA = 258, // Aggron + ENTITY_NPC_MAGUKARUGO = 259, // Magcargo + ENTITY_NPC_BUUBAAN = 260, // Magmortar + ENTITY_NPC_MUUMAAJI = 261, // Mismagius + ENTITY_NPC_BARUBIITO1 = 262, // Volbeat 1 + ENTITY_NPC_BARUBIITO2 = 263, // Volbeat 2 + ENTITY_NPC_BARUBIITO3 = 264, // Volbeat 3 + ENTITY_NPC_BARUBIITO4 = 265, // Volbeat 4 + ENTITY_NPC_IRUMIIZE1 = 266, // Illumise 1 + ENTITY_NPC_IRUMIIZE2 = 267, // Illumise 2 + ENTITY_NPC_IRUMIIZE3 = 268, // Illumise 3 + ENTITY_NPC_IRUMIIZE4 = 269, // Illumise 4 + ENTITY_NPC_GABAITO = 270, // Gabite + ENTITY_NPC_REKKUUZA = 271, // Rayquaza + ENTITY_NPC_KAIOOGA = 272, // Kyogre + ENTITY_NPC_JIRAACHI = 273, // Jirachi + ENTITY_NPC_BIIDARU = 274, // Bibarel + ENTITY_NPC_BIPPA_BRO = 275, // Bidoof brother + ENTITY_NPC_BIPPA_SIS = 276, // Bidoof sister + ENTITY_NPC_GURAIGAA = 277, // Gligar + ENTITY_NPC_TATSUBEI = 278, // Bagon + ENTITY_NPC_YUKIKABURI = 279, // Snover + ENTITY_NPC_MANMUU = 280, // Mamoswine + ENTITY_NPC_ONIGOORI = 281, // Glalie + ENTITY_NPC_ONIGOORI2 = 282, // Glalie 2 + ENTITY_NPC_ONIGOORI3 = 283, // Glalie 3 + ENTITY_NPC_ONIGOORI4 = 284, // Glalie 4 + ENTITY_NPC_PORIGON = 285, // Porygon + ENTITY_NPC_PORIGON2 = 286, // Porygon2 + ENTITY_NPC_YUKIWARASHI = 287, // Snorunt + ENTITY_NPC_YUKIWARASHI2 = 288, // Snorunt 2 + ENTITY_NPC_YUKIWARASHI3 = 289, // Snorunt 3 + ENTITY_NPC_YUKIWARASHI4 = 290, // Snorunt 4 + ENTITY_NPC_JUPETTA = 291, // Banette + ENTITY_NPC_SUKORUPI = 292, // Skorupi + ENTITY_NPC_AAMARUDO = 293, // Armaldo + ENTITY_NPC_PUKURIN_PAPA = 294, // Wigglytuff Papa + ENTITY_NPC_PUKURIN_MAMA = 295, // Wigglytuff Mama + ENTITY_NPC_UPAA = 296, // Wooper + ENTITY_NPC_MUCHUURU = 297, // Smoochum + ENTITY_NPC_SUBOMII = 298, // Budew + ENTITY_NPC_NIDOKINGU = 299, // Nidoking + ENTITY_NPC_SOONANO = 300, // Wynaut + ENTITY_NPC_SOONANSU = 301, // Wobbuffet + ENTITY_NPC_PATCHIIRU = 302, // Spinda + ENTITY_NPC_OKUTAN = 303, // Octillery + ENTITY_NPC_TSUBOTSUBO = 304, // Shuckle + ENTITY_NPC_RUNPAPPA = 305, // Ludicolo + ENTITY_NPC_RUNPAPPA2 = 306, // Ludicolo 2 + ENTITY_NPC_RUNPAPPA3 = 307, // Ludicolo 3 + ENTITY_NPC_RUNPAPPA4 = 308, // Ludicolo 4 + ENTITY_NPC_RUNPAPPA5 = 309, // Ludicolo 5 + ENTITY_NPC_NASSHII = 310, // Exeggutor + ENTITY_NPC_SHEIMI = 311, // Shaymin + ENTITY_NPC_SHEIMI1 = 312, // Shaymin 1 + ENTITY_NPC_SHEIMI2 = 313, // Shaymin 2 + ENTITY_NPC_SHEIMI3 = 314, // Shaymin 3 + ENTITY_NPC_SHEIMI4 = 315, // Shaymin 4 + ENTITY_NPC_SHEIMI5 = 316, // Shaymin 5 + ENTITY_NPC_GOORIKII = 317, // Machoke + ENTITY_NPC_KINOGASSA = 318, // Breloom + ENTITY_NPC_KUCHIITO = 319, // Mawile + ENTITY_NPC_NYUURA = 320, // Sneasel + ENTITY_NPC_KOIKINGU = 321, // Magikarp + ENTITY_NPC_HINBASU = 322, // Feebas + ENTITY_NPC_FUWARAIDO = 323, // Drifblim + ENTITY_NPC_TAMATAMA = 324, // Exeggcute + ENTITY_NPC_JIGUZAGUMA = 325, // Zigzagoon + ENTITY_NPC_MASUKIPPA = 326, // Carnivine + ENTITY_NPC_MASUKIPPA2 = 327, // Carnivine 2 + ENTITY_NPC_MASUKIPPA3 = 328, // Carnivine 3 + ENTITY_NPC_MASUKIPPA4 = 329, // Carnivine 4 + ENTITY_NPC_MASUKIPPA5 = 330, // Carnivine 5 + ENTITY_NPC_MASUKIPPA6 = 331, // Carnivine 6 + ENTITY_NPC_BETOBETAA = 332, // Grimer + ENTITY_NPC_BETOBETAA2 = 333, // Grimer 2 + ENTITY_NPC_BETOBETAA3 = 334, // Grimer 3 + ENTITY_NPC_BETOBETAA4 = 335, // Grimer 4 + ENTITY_NPC_BETOBETAA5 = 336, // Grimer 5 + ENTITY_NPC_BETOBETON = 337, // Muk + ENTITY_NPC_BETOBETON2 = 338, // Muk 2 + ENTITY_NPC_BETOBETON3 = 339, // Muk 3 + ENTITY_NPC_DERIBAADO = 340, // Delibird + ENTITY_NPC_MERIIPU = 341, // Mareep + ENTITY_NPC_WATAKKO = 342, // Jumpluff + ENTITY_NPC_DONMERU = 343, // Numel + ENTITY_NPC_PACHIRISU = 344, // Pachirisu + ENTITY_NPC_KIREIHANA = 345, // Bellossom + ENTITY_NPC_KIREIHANA2 = 346, // Bellossom 2 + ENTITY_NPC_KIREIHANA3 = 347, // Bellossom 3 + ENTITY_NPC_KIREIHANA4 = 348, // Bellossom 4 + ENTITY_NPC_KODORA = 349, // Lairon 1 + ENTITY_NPC_KODORA2 = 350, // Lairon 2 + ENTITY_NPC_KODORA3 = 351, // Lairon 3 + ENTITY_NPC_KODORA4 = 352, // Lairon 4 + ENTITY_NPC_KODORA5 = 353, // Lairon 5 + ENTITY_NPC_KODORA6 = 354, // Lairon 6 + ENTITY_NPC_METAMON = 355, // Ditto + ENTITY_NPC_GOROON = 356, // Graveler + ENTITY_NPC_OTACHI = 357, // Sentret + ENTITY_NPC_HERUGAA = 358, // Houndoom + ENTITY_NPC_NOKUTASU = 359, // Cacturne + ENTITY_NPC_NOKOTCHI = 360, // Dunsparse + ENTITY_NPC_GOOSUTO = 361, // Haunter + ENTITY_NPC_GOOSUTO2 = 362, // Haunter 2 + ENTITY_NPC_GOOSUTO3 = 363, // Haunter 3 + ENTITY_NPC_MAGUMAGGU = 364, // Slugma + ENTITY_NPC_MAGUMAGGU2 = 365, // Slugma 2 + ENTITY_NPC_SHEIMI_FC = 366, // Shaymin Sky Forme + ENTITY_NPC_RAIBORUTO = 367, // Manectric + ENTITY_NPC_RAKURAI = 368, // Electrike + ENTITY_NPC_RAKURAI2 = 369, // Electrike 2 + ENTITY_NPC_RAKURAI3 = 370, // Electrike 3 + ENTITY_NPC_RAKURAI4 = 371, // Electrike 4 + ENTITY_NPC_RAKURAI5 = 372, // Electrike 5 + ENTITY_NPC_RAKURAI6 = 373, // Electrike 6 + ENTITY_NPC_RAKURAI7 = 374, // Electrike 7 + ENTITY_NPC_RAKURAI8 = 375, // Electrike 8 + ENTITY_NPC_YONOWAARU_N8 = 376, // Dusknoir + ENTITY_NPC_YONOWAARU_N9 = 377, // Dusknoir + ENTITY_NPC_METAMON_OTACHI = 378, // Ditto Sentret + ENTITY_NPC_METAMON_KIREIHANA = 379, // Ditto Bellossom + ENTITY_NPC_BIIKUIN = 380, // Vespiquen + ENTITY_NPC_DAINOOZU = 381, // Probopass + ENTITY_NPC_BAKUONGU = 382, // Exploud + ENTITY_NPC_NENDOORU = 383, // Claydol + ENTITY_NPC_MEGAYANMA = 384, // Yanmega + ENTITY_NPC_PINPUKU = 385, // Happiny }; // Actions that a monster can take on its turn From 435ad13a33ba97840e920c2fcabc32afa4ac94c5 Mon Sep 17 00:00:00 2001 From: CecilArmitais Date: Fri, 24 Jul 2026 13:42:08 -0700 Subject: [PATCH 3/3] Added union comment to special_actors --- include/main_02065B3C.h | 1 + 1 file changed, 1 insertion(+) diff --git a/include/main_02065B3C.h b/include/main_02065B3C.h index aa11f4f5..e6c40403 100644 --- a/include/main_02065B3C.h +++ b/include/main_02065B3C.h @@ -3,6 +3,7 @@ #include "enums.h" +//The earlier fields in this were changed from script_entity_id to monster_id based on how they are handled; if evidence suggests they can handle both, they should be converted into a union. struct special_actors { enum monster_id event_npc02; enum monster_id event_npc01;