diff --git a/asm/include/overlay_11_022FE5F8.inc b/asm/include/overlay_11_022FE5F8.inc index 2fc0ff08..17e19f25 100644 --- a/asm/include/overlay_11_022FE5F8.inc +++ b/asm/include/overlay_11_022FE5F8.inc @@ -1,40 +1,25 @@ #pragma once .public AddItemToBagNoHeld .public AnyDungeonRequestsDone -.public AppendStandardStringToMission -.public ApplyGummiBoostsToGroundMonster -.public ApplyGummiBoostsToTeamMember .public ApplyLevelUpBoostsToGroundMonster -.public BAG_ITEMS_PTR_MIRROR .public C_ROUTINES .public CheckInventoryMenuField0x1A0 .public CheckParentMenuField0x1A0 -.public CheckTeamMemberIdx .public CloseAdvancedMenu -.public CloseAdvancedTextBox .public CloseAreaNameBox -.public CloseCollectionMenu .public CloseDialogueBox .public CloseInventoryMenu .public CloseParentMenu .public CloseScrollBox .public CloseSimpleMenu -.public CloseSynthBin .public CloseTextBox -.public CloseTextBox2 .public CopyItemAtIdx .public CopyMenuControlWindowExtraInfo .public CopyOrInitPreprocessorArgs -.public CountNbItemsOfTypeInBag -.public CountNbItemsOfTypeInStorage .public CreateAdvancedMenu -.public CreateAdvancedTextBox .public CreateAreaNameBox -.public CreateCollectionMenu .public CreateDialogueBox .public CreateInventoryMenuOuter -.public CreateMonsterSummaryFromTeamMember -.public CreateParentMenu .public CreateParentMenuFromStringIds .public CreateScrollBoxSingle .public CreateSimpleMenu @@ -47,35 +32,22 @@ .public DigitInputMenuInit .public DigitInputMenuReturn .public DrawTextInWindow -.public DungeonMoveToGroundMove .public DungeonSwapIdxToId -.public EnableIqSkill .public EVENTS -.public EXCLUSIVE_ITEM_REQUIREMENTS_PTR .public FreeMissionRewardStructMain .public FuncThatCallsRunNextOpcode .public GetActiveRosterIndex .public GetActiveTeamMember -.public GetActorMatchingStorageId .public GetAdvancedMenuCurrentOption .public GetAdvancedMenuResult -.public GetCroagunkItemTemplates -.public GetCurrentBagCapacity -.public GetDexNumber .public GetDungeonMode -.public GetExclusiveItemType .public GetExecuteSpecialEpisodeType .public GetFirstEmptyMemberIdx .public GetFirstMatchingMemberIdx .public GetGameMode .public GetHero -.public GetInfoMoveGround -.public GetItemAtIdx -.public GetItemCategoryVeneer -.public GetItemMoveId16 .public GetKeyboardStatus .public GetKeyboardStringResult -.public GetLearnableIqSkills .public GetMaxReachedFloor .public GetMoneyCarried .public GetNameRaw @@ -91,23 +63,14 @@ .public GetStringFromFileVeneer .public GetTeamMember .public GetWindowContents -.public GetWindowIdPageStart -.public GetWindowIdSelectedItemOnPage -.public GetWindowIdSelectedMenuItemIdx .public InitMenu -.public InitMove .public InitPortraitParams .public InitPreprocessorArgs .public IsAdvancedMenuActive .public IsAdvancedMenuActive2 -.public IsAdvancedTextBoxActive .public IsAreaNameBoxActive .public IsBagFull -.public IsCollectionMenuActive -.public IsCollectionMenuState3 .public IsDialogueBoxActive -.public IsGummi -.public IsHM .public IsInventoryMenuActive .public IsInventoryMenuState3 .public IsMonsterOnTeam @@ -117,23 +80,55 @@ .public ItemZInit .public LoadFileFromRomVeneer .public LoadScriptVariableValue -.public LoadSynthBin .public MaybeGetColoredFormattedItemName .public MaybeGetFormattedItemName -.public MaybeGetUncoloredFormattedItemName .public MemAlloc -.public memcpy -.public MemcpySimple .public MemFree -.public MemZero .public NewWindowScreenCheck +.public PlaySeVolumeWrapper +.public PopInventoryMenuField0x1A3 +.public PreprocessString +.public PreprocessStringFromId +.public PrintBadgeMark +.public PrintIqSkillsMenu +.public RemoveItemNoHole +.public ResetAttributeBitfieldLivePerformer +.public ResumeAdvancedMenu +.public ReturnScriptMenuResult +.public ReturnScriptMenuResultZero +.public SaveScriptVariableValue +.public SaveScriptVariableValueBytes +.public SetAnimDataFields2 +.public SetAreaNameBoxState3 +.public SetAttributeBitfieldLivePerformer +.public SetInventoryMenuState0 +.public SetInventoryMenuState6 +.public SetNewFriendActor +.public SetParentMenuState7 +.public ShowDialogueBox +.public ShowKeyboard +.public ShowStringIdInDialogueBox +.public ShowStringInDialogueBox +.public SortItemsInBag +.public StrcpyName +.public StrcpySimple +.public StrncpyName +.public StrncpySimple +.public StrncpySimpleNoPadSafe +.public TEAM_INFO_BOX_DEFAULT_WINDOW_PARAMS +.public TEAM_MEMBER_TABLE_PTR +.public UnloadFile +.public UpdateWindow +.public ValidateTeamMembers +.public WorldMapSetCamera +.public WorldMapSetMode +.public ZeroInitMissionRewardDataStruct .public ov10_022BCC60 .public ov10_022BCC7C .public ov10_022BCCB0 .public ov10_022BCD10 .public ov10_022BCDA8 .public ov10_022BCDBC -.public ov10_022BCDF4 .public ov10_022BD394 .public ov11_022DC504 .public ov11_022E45F4 @@ -157,11 +152,16 @@ .public ov11_022F6FA8 .public ov11_022F7188 .public ov11_022F74A0 +.public ov11_02307334 +.public ov11_02308D1C +.public ov11_02309040 +.public ov11_023090DC +.public ov11_02309DF8 +.public ov11_0230A07C .public ov11_0230CFF4 .public ov11_0230D000 .public ov11_0230D220 .public ov11_0230D71C -.public ov11_0230D92C .public ov11_0230E964 .public ov11_0230F138 .public ov11_0230F1EC @@ -255,44 +255,6 @@ .public ov11_02322C20 .public ov11_02322C38 .public ov11_02322C50 -.public ov11_02322C78 -.public ov11_02322C88 -.public ov11_02322C98 -.public ov11_02322CA8 -.public ov11_02322CB8 -.public ov11_02322CC8 -.public ov11_02322CD8 -.public ov11_02322CF0 -.public ov11_02322D10 -.public ov11_02322D38 -.public ov11_02322D60 -.public ov11_02322D88 -.public ov11_02322DB0 -.public ov11_02322DB8 -.public ov11_02322DC8 -.public ov11_02322DD0 -.public ov11_02322DE0 -.public ov11_02322DF0 -.public ov11_02322E00 -.public ov11_02322E28 -.public ov11_02322E58 -.public ov11_02322E7C -.public ov11_02322EA0 -.public ov11_02322EAC -.public ov11_02322EBC -.public ov11_02322ECC -.public ov11_02322EDC -.public ov11_02322F24 -.public ov11_02322F30 -.public ov11_02322F40 -.public ov11_02322F58 -.public ov11_02322F5C -.public ov11_02322F80 -.public ov11_02322F84 -.public ov11_02322F98 -.public ov11_02322FD4 -.public ov11_02322FE4 -.public ov11_02322FF4 .public ov11_02324D04 .public ov11_02324D08 .public ov11_02324D0C @@ -316,87 +278,29 @@ .public ov11_02324D84 .public ov11_02324D88 .public ov11_02324D8C -.public ov11_02324D90 -.public ov11_02324D94 -.public ov11_02324D98 .public ov11_0238A074 .public ov11_0238A078 .public ov11_0238A080 .public ov11_0238A084 .public ov11_0238A088 -.public PlaySeVolumeWrapper -.public PopInventoryMenuField0x1A3 -.public PreprocessString -.public PreprocessStringFromId -.public PrintBadgeMark -.public PrintIqSkillsMenu -.public RecolorNameString -.public RemoveItemNoHole -.public RemoveItemNoHoleCheck -.public ResetAttributeBitfieldLivePerformer -.public ResumeAdvancedMenu -.public ResumeParentMenu -.public ReturnScriptMenuResult -.public ReturnScriptMenuResultZero -.public SaveScriptVariableValue -.public SaveScriptVariableValueBytes -.public SetAnimDataFields2 -.public SetAreaNameBoxState3 -.public SetAttributeBitfieldLivePerformer -.public SetCollectionMenuField0x1A4 -.public SetCollectionMenuField0x1C8 -.public SetInventoryMenuState0 -.public SetInventoryMenuState6 -.public SetItemAcquired -.public SetNewFriendActor -.public SetParentMenuState7 -.public SetWindowTitle -.public ShowDialogueBox -.public ShowKeyboard -.public ShowStringIdInDialogueBox -.public ShowStringInDialogueBox -.public SortItemsInBag .public sprintf -.public strcat -.public StrcmpMonsterName .public strcpy -.public StrcpyName -.public StrcpySimple -.public StringFromId -.public StrncpyName -.public StrncpySimple -.public StrncpySimpleNoPad -.public StrncpySimpleNoPadSafe -.public sub_020037A4 .public sub_02008BA8 .public sub_0200CF6C -.public sub_0200FD48 -.public sub_02010044 -.public sub_02011420 .public sub_02017C50 -.public sub_02017C74 .public sub_02025304_JP -.public sub_020262E0 .public sub_020265A8 .public sub_02027B1C .public sub_0202810C .public sub_0202812C .public sub_020282F4 -.public sub_02028354 .public sub_0202836C -.public sub_0202A03C -.public sub_0202B030 -.public sub_0202C620 -.public sub_0202C75C -.public sub_0202D07C -.public sub_0202D0EC .public sub_0202F16C .public sub_0202F190 .public sub_0202F2C4 .public sub_0202F334 .public sub_0202F3F8 .public sub_0202F954 -.public sub_020307EC .public sub_02034840 .public sub_0203559C .public sub_02035CE4 @@ -417,70 +321,19 @@ .public sub_0203D538 .public sub_0203F150 .public sub_0203F398 -.public sub_0203F974 .public sub_0203F990 -.public sub_0203FA64 -.public sub_0203FBD4 -.public sub_0203FD14 -.public sub_0203FD2C -.public sub_0203FD38 -.public sub_0203FD80 -.public sub_0203FDEC -.public sub_0204018C -.public sub_0204019C -.public sub_020407C0 -.public sub_020407EC -.public sub_02041094 -.public sub_020410A4 -.public sub_02041154 -.public sub_02041364 -.public sub_02041394 -.public sub_02041484 -.public sub_020415BC -.public sub_02041614 -.public sub_020416FC -.public sub_020417A8 -.public sub_02041A00 -.public sub_02041A18 .public sub_02041B7C .public sub_020420F4 -.public sub_02044688 -.public sub_02044800 -.public sub_020448EC -.public sub_02046A20 -.public sub_02046B04 -.public sub_02046BA0 -.public sub_02046BE8 -.public sub_02046C30 -.public sub_02046C78 -.public sub_02046D20 -.public sub_0204707C -.public sub_020470D0 -.public sub_02047148 -.public sub_02047150 -.public sub_02047188 .public sub_02048764 .public sub_02048794 .public sub_0204CF0C -.public sub_0204E210 .public sub_02052E2C -.public sub_02053A0C -.public sub_02053CA0 -.public sub_02053D1C -.public sub_020546E8 -.public sub_02055894 .public sub_02055B20 .public sub_02055D4C .public sub_02055DD0 -.public sub_02055FCC -.public sub_02056094 .public sub_0205633C -.public sub_020564B0 .public sub_02057180 .public sub_020572EC -.public sub_020582E0 -.public sub_020586F0 -.public sub_02058794 .public sub_0205B028 .public sub_02064FFC .public sub_02065C08 @@ -494,22 +347,3 @@ .public sub_02067664 .public sub_0206A84C .public sub_0206C110 -.public SWAP_SHOP_CLUMSET_ONE_STAR_STR -.public SWAP_SHOP_CLUMSET_THREE_STAR_STR -.public SWAP_SHOP_CLUMSET_TWO_STAR_STR -.public SWAP_SHOP_INVENTORY_PTRS -.public SWAP_SHOP_ONE_STAR_STR -.public SWAP_SHOP_RED_TEXT_TAG_STR -.public SWAP_SHOP_THREE_STAR_STR -.public SWAP_SHOP_TWO_STAR_STR -.public SWAP_SHOP_UNCENTER_TEXT_TAG_STR -.public SwapShopFreeDoublePointer -.public TEAM_INFO_BOX_DEFAULT_WINDOW_PARAMS -.public TEAM_MEMBER_TABLE_PTR -.public UnloadFile -.public UpdateWindow -.public ValidateTeamMembers -.public vsprintf -.public WorldMapSetCamera -.public WorldMapSetMode -.public ZeroInitMissionRewardDataStruct diff --git a/asm/include/overlay_11_02308D1C.inc b/asm/include/overlay_11_02308D1C.inc new file mode 100644 index 00000000..5c42fc68 --- /dev/null +++ b/asm/include/overlay_11_02308D1C.inc @@ -0,0 +1,189 @@ +#pragma once +.public AppendStandardStringToMission +.public BAG_ITEMS_PTR_MIRROR +.public CheckTeamMemberIdx +.public CloseAdvancedTextBox +.public CloseCollectionMenu +.public CloseDialogueBox +.public CloseInventoryMenu +.public CloseParentMenu +.public CloseScrollBox +.public CloseSynthBin +.public CloseTextBox2 +.public CountNbItemsOfTypeInBag +.public CountNbItemsOfTypeInStorage +.public CreateAdvancedTextBox +.public CreateCollectionMenu +.public CreateDialogueBox +.public CreateMonsterSummaryFromTeamMember +.public CreateParentMenu +.public CreateParentMenuFromStringIds +.public DrawTextInWindow +.public DungeonMoveToGroundMove +.public EXCLUSIVE_ITEM_REQUIREMENTS_PTR +.public GetActiveRosterIndex +.public GetActiveTeamMember +.public GetActorMatchingStorageId +.public GetCroagunkItemTemplates +.public GetCurrentBagCapacity +.public GetDexNumber +.public GetExclusiveItemType +.public GetGameMode +.public GetInfoMoveGround +.public GetItemAtIdx +.public GetItemMoveId16 +.public GetKeyboardStatus +.public GetKeyboardStringResult +.public GetPressedButtons +.public GetSimpleMenuResult__0202AEA4 +.public GetTeamMember +.public GetWindowIdPageStart +.public GetWindowIdSelectedItemOnPage +.public GetWindowIdSelectedMenuItemIdx +.public InitMenu +.public InitMove +.public InitPreprocessorArgs +.public IsAdvancedTextBoxActive +.public IsCollectionMenuActive +.public IsCollectionMenuState3 +.public IsParentMenuActive +.public LoadSynthBin +.public MaybeGetColoredFormattedItemName +.public MaybeGetUncoloredFormattedItemName +.public MemAlloc +.public MemFree +.public MemZero +.public MemcpySimple +.public PlaySeVolumeWrapper +.public PreprocessString +.public PreprocessStringFromId +.public PrintIqSkillsMenu +.public RecolorNameString +.public ResumeParentMenu +.public SWAP_SHOP_CLUMSET_ONE_STAR_STR +.public SWAP_SHOP_CLUMSET_THREE_STAR_STR +.public SWAP_SHOP_CLUMSET_TWO_STAR_STR +.public SWAP_SHOP_INVENTORY_PTRS +.public SWAP_SHOP_ONE_STAR_STR +.public SWAP_SHOP_RED_TEXT_TAG_STR +.public SWAP_SHOP_THREE_STAR_STR +.public SWAP_SHOP_TWO_STAR_STR +.public SWAP_SHOP_UNCENTER_TEXT_TAG_STR +.public SetCollectionMenuField0x1A4 +.public SetCollectionMenuField0x1C8 +.public SetWindowTitle +.public ShowKeyboard +.public StrcmpMonsterName +.public StrcpySimple +.public StrncpySimple +.public StrncpySimpleNoPad +.public StrncpySimpleNoPadSafe +.public SwapShopFreeDoublePointer +.public UpdateWindow +.public ov11_02301174 +.public ov11_0230D000 +.public ov11_0230D220 +.public ov11_0230D92C +.public ov11_02310BDC +.public ov11_02322DB8 +.public ov11_02322DC8 +.public ov11_02322DD0 +.public ov11_02322DE0 +.public ov11_02322DF0 +.public ov11_02322E00 +.public ov11_02322E28 +.public ov11_02322E58 +.public ov11_02322E7C +.public ov11_02322EA0 +.public ov11_02322EAC +.public ov11_02322EBC +.public ov11_02322ECC +.public ov11_02322EDC +.public ov11_02322F24 +.public ov11_02322F30 +.public ov11_02322F40 +.public ov11_02322F58 +.public ov11_02322F5C +.public ov11_02322F80 +.public ov11_02322F84 +.public ov11_02322F98 +.public ov11_02322FD4 +.public ov11_02322FE4 +.public ov11_02322FF4 +.public ov11_02324D8C +.public ov11_02324D90 +.public ov11_02324D94 +.public ov11_02324D98 +.public strcat +.public strcpy +.public sub_020037A4 +.public sub_0200FD48 +.public sub_02010044 +.public sub_02011420 +.public sub_02017C50 +.public sub_02017C74 +.public sub_020262E0 +.public sub_0202810C +.public sub_0202812C +.public sub_02028354 +.public sub_0202836C +.public sub_0202A03C +.public sub_0202B030 +.public sub_0202C620 +.public sub_0202C75C +.public sub_0202D07C +.public sub_0202D0EC +.public sub_020307EC +.public sub_02037468 +.public sub_0203909C +.public sub_02039218 +.public sub_0203931C +.public sub_0203F150 +.public sub_0203F398 +.public sub_0203F974 +.public sub_0203F990 +.public sub_0203FA64 +.public sub_0203FBD4 +.public sub_0203FD14 +.public sub_0203FD38 +.public sub_0203FD80 +.public sub_0203FDEC +.public sub_0204018C +.public sub_020407C0 +.public sub_020407EC +.public sub_02041094 +.public sub_020410A4 +.public sub_02041154 +.public sub_02041364 +.public sub_02041394 +.public sub_02041484 +.public sub_020416FC +.public sub_020417A8 +.public sub_02041A00 +.public sub_02041A18 +.public sub_02041B7C +.public sub_020420F4 +.public sub_02046A20 +.public sub_02046B04 +.public sub_02046BA0 +.public sub_02046BE8 +.public sub_02046C30 +.public sub_02046C78 +.public sub_02046D20 +.public sub_0204707C +.public sub_020470D0 +.public sub_02047148 +.public sub_02047150 +.public sub_02047188 +.public sub_0204E210 +.public sub_02053A0C +.public sub_02053D1C +.public sub_020546E8 +.public sub_02055894 +.public sub_02055FCC +.public sub_02056094 +.public sub_0205633C +.public sub_020564B0 +.public sub_020586F0 +.public sub_02058794 +.public vsprintf diff --git a/asm/overlay_11_022FE5F8.s b/asm/overlay_11_022FE5F8.s index c90d406b..8cd6ef66 100644 --- a/asm/overlay_11_022FE5F8.s +++ b/asm/overlay_11_022FE5F8.s @@ -10918,6612 +10918,3 @@ ov11_02307300: ; 0x02307300 .align 2, 0 _02307330: .word ov11_02324D8C arm_func_end ov11_02307300 - - arm_func_start ov11_02307334 -ov11_02307334: ; 0x02307334 - stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, lr} - sub sp, sp, #0x5a0 - ldr r0, _023082B4 ; =ov11_02324D8C - ldr r4, [r0] - ldr r1, [r4] - cmp r1, #0x29 - addls pc, pc, r1, lsl #2 - b _02308CF0 -_02307354: ; jump table - b _023073FC ; case 0 - b _023074B8 ; case 1 - b _02307464 ; case 2 - b _023078D4 ; case 3 - b _02308844 ; case 4 - b _02308940 ; case 5 - b _023089C0 ; case 6 - b _02308A14 ; case 7 - b _02308A54 ; case 8 - b _02308A88 ; case 9 - b _02308AB4 ; case 10 - b _02308B70 ; case 11 - b _02308BB0 ; case 12 - b _02308C4C ; case 13 - b _02308C84 ; case 14 - b _02308C90 ; case 15 - b _02308CE8 ; case 16 - b _02307A14 ; case 17 - b _02307A30 ; case 18 - b _02307C14 ; case 19 - b _02307CD0 ; case 20 - b _02307D08 ; case 21 - b _02307E68 ; case 22 - b _02307F20 ; case 23 - b _02307F58 ; case 24 - b _02307F84 ; case 25 - b _02308658 ; case 26 - b _0230871C ; case 27 - b _02308748 ; case 28 - b _023087A0 ; case 29 - b _023087D4 ; case 30 - b _023081D0 ; case 31 - b _02308214 ; case 32 - b _02308054 ; case 33 - b _023080BC ; case 34 - b _023083E0 ; case 35 - b _02308450 ; case 36 - b _02308470 ; case 37 - b _023084AC ; case 38 - b _023085C8 ; case 39 - b _02308614 ; case 40 - b _0230880C ; case 41 -_023073FC: - bl GetNbItemsInBag - ldr r2, _023082B8 ; =ov11_02307300 - add r1, r4, #0x31c - str r2, [sp] - str r1, [sp, #4] - mov r1, #0 - str r1, [sp, #8] - ldr r2, [r4, #0x10] - add r3, r4, #0x104 - bl CreateInventoryMenuOuter - ldr r2, _023082B4 ; =ov11_02324D8C - mov r1, #0 - ldr r2, [r2] - strb r0, [r2, #4] - ldr r0, _023082BC ; =ov11_02322C88 - bl CreateTextBox - ldr r1, _023082B4 ; =ov11_02324D8C - mvn r3, #0 - ldr r4, [r1] - mov r2, #1 - strb r0, [r4, #5] - ldr r0, [r1] - str r3, [r0, #0x18] - ldr r0, [r1] - str r2, [r0] - b _02308CF0 -_02307464: - bl IsBagNotEmpty - cmp r0, #0 - bne _02307494 - ldr r0, _023082B4 ; =ov11_02324D8C - ldr r0, [r0] - ldrsb r0, [r0, #4] - bl SetInventoryMenuState6 - ldr r0, _023082B4 ; =ov11_02324D8C - mov r1, #0xc - ldr r0, [r0] - str r1, [r0] - b _02308CF0 -_02307494: - ldr r0, _023082B4 ; =ov11_02324D8C - ldr r0, [r0] - ldrsb r0, [r0, #4] - bl ov10_022BCC7C - ldr r0, _023082B4 ; =ov11_02324D8C - mov r1, #1 - ldr r0, [r0] - str r1, [r0] - b _02308CF0 -_023074B8: - add r1, sp, #0xe - mov r0, #0 - bl GetPressedButtons - ldr r0, _023082B4 ; =ov11_02324D8C - ldr r0, [r0] - ldrsb r0, [r0, #4] - bl PopInventoryMenuField0x1A3 - ldrh r1, [sp, #0xe] - tst r1, #4 - bne _023074EC - tst r1, #0x800 - cmpeq r0, #0 - beq _02307548 -_023074EC: - cmp r0, #0 - bne _023074FC - mov r0, #5 - bl PlaySeVolumeWrapper -_023074FC: - bl SortItemsInBag - ldr r0, _023082B4 ; =ov11_02324D8C - mov r1, #0 - ldr r0, [r0] - str r1, [r0, #0x10] - bl GetNbItemsInBag - ldr r2, _023082B4 ; =ov11_02324D8C - mov r1, r0 - ldr r0, [r2] - ldrsb r0, [r0, #4] - bl ov10_022BCC60 - ldr r0, _023082B4 ; =ov11_02324D8C - mvn r2, #0 - ldr r1, [r0] - str r2, [r1, #0x18] - ldr r0, [r0] - ldrsb r0, [r0, #4] - bl ov10_022BCCB0 - b _02308CF0 -_02307548: - ldr r1, _023082B4 ; =ov11_02324D8C - mvn r0, #1 - ldr r1, [r1] - ldrsb r5, [r1, #5] - cmp r5, r0 - beq _0230760C - ldrsb r0, [r1, #4] - bl ov10_022BCDA8 - ldr r1, _023082B4 ; =ov11_02324D8C - mov r4, r0 - ldr r0, [r1] - ldr r0, [r0, #0x18] - cmp r0, r4 - beq _0230760C - mov r0, r4, lsl #0x10 - mov r0, r0, asr #0x10 - bl GetItemAtIdx - ldr r1, _023082B4 ; =ov11_02324D8C - mov r6, r0 - ldr r1, [r1] - mov r0, r5 - str r4, [r1, #0x18] - bl sub_02027B1C - ldrb r0, [r6] - tst r0, #1 - movne r0, #1 - moveq r0, #0 - tst r0, #0xff - beq _023075E4 - ldrsh r0, [r6, #4] -#if defined(EUROPE) - add r0, r0, #0x4b - add r0, r0, #0x2f00 -#elif defined(JAPAN) - add r0, r0, #0x41 - add r0, r0, #0x1d00 -#else - add r0, r0, #0x49 - add r0, r0, #0x2f00 -#endif - mov r0, r0, lsl #0x10 - mov r0, r0, lsr #0x10 - bl StringFromId - mov r1, r0 - add r0, sp, #0x20 - bl strcpy - b _023075F0 -_023075E4: - ldr r1, _023082C0 ; =ov11_02322DB0 - add r0, sp, #0x20 - bl strcpy -_023075F0: - mov r1, #2 - add r3, sp, #0x20 - mov r0, r5 - mov r2, r1 - bl DrawTextInWindow - mov r0, r5 - bl UpdateWindow -_0230760C: - ldr r0, _023082B4 ; =ov11_02324D8C - ldr r0, [r0] - ldrsb r0, [r0, #4] - bl IsInventoryMenuActive - cmp r0, #0 - bne _02307840 - ldr r0, _023082B4 ; =ov11_02324D8C - ldr r0, [r0] - ldrsb r0, [r0, #4] - bl ov10_022BCDBC - cmp r0, #0 - blt _0230781C - ldr r1, _023082B4 ; =ov11_02324D8C - ldr r2, [r1] - str r0, [r2, #0x10] - ldr r0, [r1] - ldr r0, [r0, #0x10] - mov r0, r0, lsl #0x10 - mov r0, r0, asr #0x10 - bl GetItemAtIdx - ldr r1, _023082B4 ; =ov11_02324D8C - mov r4, r0 - ldr r0, [r1] - ldrsh r1, [r4, #4] - add r0, r0, #0x200 - strh r1, [r0, #0x4e] - ldrb r0, [r4] - tst r0, #1 - movne r0, #1 - moveq r0, #0 - tst r0, #0xff - ldrne r0, _023082B4 ; =ov11_02324D8C - ldrnesh r1, [r4, #4] - ldreq r0, _023082B4 ; =ov11_02324D8C - ldr r0, [r0] - moveq r1, #0 - add r0, r0, #0x200 - strh r1, [r0, #0x4e] - ldr r0, _023082B4 ; =ov11_02324D8C - ldr r0, [r0] - add r0, r0, #0x200 - ldrsh r0, [r0, #0x4e] - bl GetItemCategoryVeneer - mov r5, r0 - bl GetGameMode - mov r6, r0 - cmp r5, #5 - bne _0230777C - cmp r6, #4 - cmpne r6, #5 - beq _0230777C - mov sb, #0 - mov r8, sb - mov r7, #3 - ldr r6, _023082C4 ; =ov11_02322D38 - ldr r5, _023082B4 ; =ov11_02324D8C - ldr r4, _023082C8 ; =0x000002B6 - b _02307734 -_023076F4: - ldr r0, [r5] - cmp r1, r4 - add r0, r0, sb - strb r8, [r0, #0x276] - bne _02307728 - ldr r0, [r5] - add r0, r0, #0x200 - ldrsh r0, [r0, #0x4e] - bl ov11_02309E48 - cmp r0, #0 - ldreq r0, [r5] - addeq r0, r0, sb - streqb r7, [r0, #0x276] -_02307728: - add r0, sb, #1 - mov r0, r0, lsl #0x10 - mov sb, r0, asr #0x10 -_02307734: - mov r0, sb, lsl #3 - ldrh r1, [r6, r0] - cmp r1, #0 - bne _023076F4 - ldr r1, _023082B4 ; =ov11_02324D8C - ldr r0, _023082CC ; =ov11_02322CB8 - ldr r2, [r1] - ldr r1, _023082D0 ; =0x00400213 - add r2, r2, #0x76 - add r4, r2, #0x200 - add r2, sp, #0x470 - mov r3, r6 - str r4, [sp, #0x4d0] - bl CreateParentMenuFromStringIds - ldr r1, _023082B4 ; =ov11_02324D8C - ldr r1, [r1] - strb r0, [r1, #6] - b _02307808 -_0230777C: - ldr r0, _023082B4 ; =ov11_02324D8C - ldr r0, [r0] - add r0, r0, #0x200 - ldrsh r0, [r0, #0x4e] - bl IsGummi - cmp r0, #0 - cmpne r6, #4 - cmpne r6, #5 - ldr r1, _023082D4 ; =0x00400013 - beq _023077C4 - ldr r0, _023082CC ; =ov11_02322CB8 - ldr r3, _023082D8 ; =ov11_02322D88 - mov r2, #0 - bl CreateParentMenuFromStringIds - ldr r1, _023082B4 ; =ov11_02324D8C - ldr r1, [r1] - strb r0, [r1, #6] - b _02307808 -_023077C4: - ldrb r0, [r4, #1] - mov r2, #0 - cmp r0, #0 - beq _023077F0 - ldr r0, _023082DC ; =ov11_02322CA8 - ldr r3, _023082E0 ; =ov11_02322D10 - bl CreateParentMenuFromStringIds - ldr r1, _023082B4 ; =ov11_02324D8C - ldr r1, [r1] - strb r0, [r1, #6] - b _02307808 -_023077F0: - ldr r0, _023082DC ; =ov11_02322CA8 - ldr r3, _023082E4 ; =ov11_02322D60 - bl CreateParentMenuFromStringIds - ldr r1, _023082B4 ; =ov11_02324D8C - ldr r1, [r1] - strb r0, [r1, #6] -_02307808: - ldr r0, _023082B4 ; =ov11_02324D8C - mov r1, #3 - ldr r0, [r0] - str r1, [r0] - b _02308CF0 -_0230781C: - ldr r0, _023082B4 ; =ov11_02324D8C - ldr r0, [r0] - ldrsb r0, [r0, #4] - bl ov10_022BCD10 - ldr r0, _023082B4 ; =ov11_02324D8C - mov r1, #0xe - ldr r0, [r0] - str r1, [r0] - b _02308CF0 -_02307840: - add r1, sp, #0xc - mov r0, #0 - bl GetPressedButtons - ldrh r0, [sp, #0xc] - tst r0, #8 - beq _02308CF0 - mov r0, #0 - bl PlaySeVolumeWrapper - ldr r0, _023082B4 ; =ov11_02324D8C - ldr r0, [r0] - ldrsb r0, [r0, #4] - bl ov10_022BCDF4 - ldr r0, _023082B4 ; =ov11_02324D8C - ldr r0, [r0] - ldrsb r0, [r0, #4] - bl ov10_022BCDA8 - ldr r1, _023082B4 ; =ov11_02324D8C - ldr r2, [r1] - str r0, [r2, #0x10] - ldr r0, [r1] - ldrsb r0, [r0, #5] - bl CloseTextBox2 - ldr r0, _023082B4 ; =ov11_02324D8C - mvn r2, #1 - ldr r1, [r0] - strb r2, [r1, #5] - ldr r0, [r0] - ldrsb r0, [r0, #4] - bl CloseInventoryMenu - ldr r0, _023082B4 ; =ov11_02324D8C - mvn r3, #1 - ldr r2, [r0] - mov r1, #0xa - strb r3, [r2, #4] - ldr r0, [r0] - str r1, [r0] - b _02308CF0 -_023078D4: - ldrsb r0, [r4, #6] - bl IsParentMenuActive - cmp r0, #0 - bne _02308CF0 - ldr r0, _023082B4 ; =ov11_02324D8C - ldr r0, [r0] - ldrsb r0, [r0, #6] - bl GetSimpleMenuResult__0202AEA4 - cmp r0, #8 - beq _023079E4 - ldr r1, _023082B4 ; =ov11_02324D8C - cmp r0, #0 - ldr r1, [r1] - str r0, [r1, #0x14] - bne _02307928 - bl ov11_02308D48 - ldr r0, _023082B4 ; =ov11_02324D8C - mov r1, #7 - ldr r0, [r0] - str r1, [r0] - b _02308CF0 -_02307928: - cmp r0, #1 - bne _02307948 - bl ov11_02308D48 - ldr r0, _023082B4 ; =ov11_02324D8C - mov r1, #9 - ldr r0, [r0] - str r1, [r0] - b _02308CF0 -_02307948: - cmp r0, #2 - bne _0230798C - add r2, sp, #0x500 - mov r4, #5 - ldr r0, _023082E8 ; =ov11_02322C98 - ldr r3, _023082EC ; =ov11_02322CD8 - add r2, r2, #8 - mov r1, #0x33 - str r4, [sp, #0x508] - bl CreateParentMenuFromStringIds - ldr r1, _023082B4 ; =ov11_02324D8C - mov r2, #4 - ldr r3, [r1] - strb r0, [r3, #7] - ldr r0, [r1] - str r2, [r0] - b _02308CF0 -_0230798C: - cmp r0, #6 - bne _023079AC - bl ov11_02308D48 - ldr r0, _023082B4 ; =ov11_02324D8C - mov r1, #0x11 - ldr r0, [r0] - str r1, [r0] - b _02308CF0 -_023079AC: - cmp r0, #7 - bne _023079CC - bl ov11_02308D48 - ldr r0, _023082B4 ; =ov11_02324D8C - mov r1, #0x18 - ldr r0, [r0] - str r1, [r0] - b _02308CF0 -_023079CC: - bl ov11_02308D48 - ldr r0, _023082B4 ; =ov11_02324D8C - mov r1, #0xa - ldr r0, [r0] - str r1, [r0] - b _02308CF0 -_023079E4: - ldr r0, _023082B4 ; =ov11_02324D8C - ldr r0, [r0] - ldrsb r0, [r0, #6] - bl CloseParentMenu - ldr r0, _023082B4 ; =ov11_02324D8C - mvn r3, #1 - ldr r2, [r0] - mov r1, #2 - strb r3, [r2, #6] - ldr r0, [r0] - str r1, [r0] - b _02308CF0 -_02307A14: - mov r0, #1 - bl ov11_02309040 - ldr r0, _023082B4 ; =ov11_02324D8C - mov r1, #0x12 - ldr r0, [r0] - str r1, [r0] - b _02308CF0 -_02307A30: - bl ov11_023090DC - cmp r0, #0 - beq _02308CF0 - bl ov11_02309E24 - mvn r1, #0 - cmp r0, r1 - beq _02307BFC - ldr r1, _023082B4 ; =ov11_02324D8C - add r0, sp, #0x18 - ldr r4, [r1] - add r5, r4, #0x238 - bl ov11_02309DAC - add r1, sp, #0x18 - mov r0, r5 - bl ov11_02308F4C - ldr r2, [r5, #0x10] - ldr r0, _023082B4 ; =ov11_02324D8C - ldrsh r1, [r5, #8] - ldr r0, [r0] - ldrsh r2, [r2] - add r0, r0, #0x280 - bl GetLearnableIqSkills - ldr r1, _023082B4 ; =ov11_02324D8C - mvn r2, #0 - ldr r3, [r1] - str r0, [r3, #0x30c] - ldr r0, [r1] - add r0, r0, #0x200 - strh r2, [r0, #0x50] - ldr r2, [r5, #0x10] - ldr r0, [r1] - ldrsh r2, [r2] - str r2, [r0, #0x318] - ldr r6, [r1] - ldr r1, [r4, #0x238] - add r0, r6, #0x200 - cmp r1, #0 - ldrsh r4, [r0, #0x4e] - bne _02307AE8 - ldrsh r0, [r5, #4] - bl GetTeamMember - mov r1, r4 - add r3, r6, #0x250 - mov r2, #1 - bl ApplyGummiBoostsToGroundMonster - b _02307B08 -_02307AE8: - cmp r1, #1 - bne _02307B08 - ldrsh r0, [r5, #4] - bl GetActiveTeamMember - mov r1, r4 - add r3, r6, #0x250 - mov r2, #1 - bl ApplyGummiBoostsToTeamMember -_02307B08: - ldr r0, _023082B4 ; =ov11_02324D8C - ldr r1, [r5, #0x10] - ldr r2, [r0] - ldrsh r0, [r1] - ldr r1, [r2, #0x318] - sub r0, r1, r0 - str r0, [r2, #0x318] - bl ov11_022DC504 - ldr r0, [r5] - cmp r0, #1 - bne _02307B3C - ldrsh r0, [r5, #4] - bl sub_02058794 -_02307B3C: - ldr r0, _023082B4 ; =ov11_02324D8C - ldr r2, [r5, #0x10] - ldr r0, [r0] - ldrsh r1, [r5, #8] - add r0, r0, #0xc5 - ldrsh r2, [r2] - add r0, r0, #0x200 - bl GetLearnableIqSkills - ldr r1, _023082B4 ; =ov11_02324D8C - mov r2, #1 - ldr r3, [r1] - str r0, [r3, #0x310] - ldr r0, [r1] - str r2, [r0, #0x314] - ldr r0, [r1] - add r0, r0, #0x200 - ldrsh r4, [r0, #0x50] - bl ov11_02308EDC - cmp r4, #0 - blt _02307BCC - cmp r4, #3 - bgt _02307BCC - ldr r0, _023082B4 ; =ov11_02324D8C - ldr r0, [r0] - ldr r0, [r0, #0x10] - mov r0, r0, lsl #0x10 - mov r0, r0, asr #0x10 - bl RemoveItemNoHoleCheck - ldr r0, _023082B4 ; =ov11_02324D8C - mvn r3, #0 - ldr r2, [r0] - mov r1, #0x13 - str r3, [r2, #0x18] - ldr r0, [r0] - str r1, [r0] - b _02307C0C -_02307BCC: - ldr r0, _023082B4 ; =ov11_02324D8C - ldr r2, _023082F0 ; =0x000002BE - ldr r3, [r0] - mov r1, #0x18 - ldrsb r0, [r3, #8] - add r3, r3, #0xb4 - bl ShowStringIdInDialogueBox - ldr r0, _023082B4 ; =ov11_02324D8C - mov r1, #0xd - ldr r0, [r0] - str r1, [r0] - b _02307C0C -_02307BFC: - ldr r0, _023082B4 ; =ov11_02324D8C - mov r1, #0 - ldr r0, [r0] - str r1, [r0] -_02307C0C: - bl ov11_02309DF8 - b _02308CF0 -_02307C14: - add r0, r4, #0x200 - ldrsh r1, [r0, #0x50] - cmp r1, #3 - addls pc, pc, r1, lsl #2 - b _02307C58 -_02307C28: ; jump table - b _02307C38 ; case 0 - b _02307C40 ; case 1 - b _02307C48 ; case 2 - b _02307C50 ; case 3 -_02307C38: - ldr r5, _023082F4 ; =0x000002B9 - b _02307C5C -_02307C40: - ldr r5, _023082F8 ; =0x000002BA - b _02307C5C -_02307C48: - ldr r5, _023082FC ; =0x000002BB - b _02307C5C -_02307C50: -#ifdef JAPAN - ldr r5, _02309898 ; =0x00002FDC -#else - mov r5, #0x2bc -#endif - b _02307C5C -_02307C58: - mov r5, #0 -_02307C5C: - ldr r0, [r4, #0x318] - cmp r0, #0 - bne _02307C78 - cmp r1, #0 - blt _02307C78 - cmp r1, #3 - ldrle r5, _02308300 ; =0x000002BD -_02307C78: - cmp r5, #0 - moveq r0, #0x10 - streq r0, [r4] - beq _02308CF0 - add r0, r4, #0x238 - bl ov11_0230901C - ldr r1, _023082B4 ; =ov11_02324D8C - ldr r1, [r1] - str r0, [r1, #0xb4] - bl ov11_02308EDC - ldr r0, _023082B4 ; =ov11_02324D8C - mov r2, r5 - ldr r3, [r0] - mov r1, #0x18 - ldrsb r0, [r3, #8] - add r3, r3, #0xb4 - bl ShowStringIdInDialogueBox - ldr r0, _023082B4 ; =ov11_02324D8C - mov r1, #0x14 - ldr r0, [r0] - str r1, [r0] - b _02308CF0 -_02307CD0: - ldrsb r0, [r4, #8] - bl IsDialogueBoxActive - cmp r0, #0 - bne _02308CF0 - ldr r0, _023082B4 ; =ov11_02324D8C - ldr r0, [r0] - ldrsb r0, [r0, #8] - bl ShowDialogueBox - bl ov11_02308F14 - ldr r0, _023082B4 ; =ov11_02324D8C - mov r1, #0x15 - ldr r0, [r0] - str r1, [r0] - b _02308CF0 -_02307D08: - mov r2, #1 - mov r1, #0 - mov r0, r2 - mov r3, r1 -_02307D18: - ldr r6, _023082B4 ; =ov11_02324D8C - mov r5, r3 - ldr ip, [r6] - mov r6, r3 - mov sb, r3 - ldr lr, [ip, #0x30c] - b _02307D50 -_02307D34: - add r7, ip, sb - ldrb r7, [r7, #0x280] - ldr r8, [ip, #0x314] - cmp r8, r7 - moveq r5, r2 - beq _02307D58 - add sb, sb, #1 -_02307D50: - cmp sb, lr - blt _02307D34 -_02307D58: - ldr r8, _023082B4 ; =ov11_02324D8C - mov r7, r1 - ldr ip, [r8] - ldr lr, [ip, #0x310] - b _02307D88 -_02307D6C: - add r8, ip, r7 - ldrb r8, [r8, #0x2c5] - ldr sb, [ip, #0x314] - cmp sb, r8 - moveq r6, r0 - beq _02307D90 - add r7, r7, #1 -_02307D88: - cmp r7, lr - blt _02307D6C -_02307D90: - cmp r5, r6 - beq _02307E2C - add r0, r4, #0x238 - bl ov11_0230901C - ldr r1, _023082B4 ; =ov11_02324D8C - ldr r2, [r1] - str r0, [r2, #0xb4] - ldr r2, [r1] - mov r0, #4 - ldr r1, [r2, #0x314] - str r1, [r2, #0xc4] - bl sub_02017C50 - bl ov11_02308EDC - ldr r0, _023082B4 ; =ov11_02324D8C - ldr r2, _02308304 ; =0x000002BF - ldr r3, [r0] - mov r1, #0x18 - ldrsb r0, [r3, #8] - add r3, r3, #0xb4 - bl ShowStringIdInDialogueBox - ldr r0, _023082B4 ; =ov11_02324D8C - ldr r1, [r0] - ldr r0, [r1, #0x244] - ldr r1, [r1, #0x314] - and r1, r1, #0xff - bl EnableIqSkill - ldr r0, _023082B4 ; =ov11_02324D8C - ldr r0, [r0] - add r0, r0, #0x238 - bl ov11_02308FD0 - ldr r0, _023082B4 ; =ov11_02324D8C - mov r1, #0x14 - ldr r3, [r0] - ldr r2, [r3, #0x314] - add r2, r2, #1 - str r2, [r3, #0x314] - ldr r0, [r0] - str r1, [r0] - b _02307E4C -_02307E2C: - ldr r6, [r4, #0x314] - ldr r5, _023082B4 ; =ov11_02324D8C - add r6, r6, #1 - str r6, [r4, #0x314] - ldr r4, [r5] - ldr r5, [r4, #0x314] - cmp r5, #0x45 - blt _02307D18 -_02307E4C: - ldr r0, _023082B4 ; =ov11_02324D8C - ldr r1, [r0] - ldr r0, [r1, #0x314] - cmp r0, #0x45 - movge r0, #0x16 - strge r0, [r1] - b _02308CF0 -_02307E68: - add r0, r4, #0x200 - ldrh r0, [r0, #0x52] - cmp r0, #8 - addls pc, pc, r0, lsl #2 - b _02307EC8 -_02307E7C: ; jump table - b _02307EA0 ; case 0 - b _02307EA8 ; case 1 - b _02307EB0 ; case 2 - b _02307EC8 ; case 3 - b _02307EB8 ; case 4 - b _02307EC8 ; case 5 - b _02307EC8 ; case 6 - b _02307EC8 ; case 7 - b _02307EC0 ; case 8 -_02307EA0: - mov r0, #0 - b _02307ECC -_02307EA8: - ldr r0, _02308308 ; =0x000002C1 - b _02307ECC -_02307EB0: - ldr r0, _0230830C ; =0x000002C2 - b _02307ECC -_02307EB8: - ldr r0, _02308310 ; =0x000002C3 - b _02307ECC -_02307EC0: -#ifdef JAPAN - ldr r0, _023098B0 ; =0x00002FE4 - b _02307ECC -_02307EC8: - ldr r0, _023098B4 ; =0x00002FE0 -#else - mov r0, #0x2c4 - b _02307ECC -_02307EC8: - mov r0, #0x2c0 -#endif -_02307ECC: - cmp r0, #0 - moveq r0, #0x10 - streq r0, [r4] - beq _02308CF0 - bl ov11_02308EDC - ldr r0, _023082B4 ; =ov11_02324D8C - ldr r2, _02308304 ; =0x000002BF - ldr r3, [r0] - mov r1, #0x18 - ldrsb r0, [r3, #8] - add r3, r3, #0xb4 - bl ShowStringIdInDialogueBox - ldr r0, _023082B4 ; =ov11_02324D8C - mov r1, #0x17 - ldr r3, [r0] - ldr r2, [r3, #0x314] - add r2, r2, #1 - str r2, [r3, #0x314] - ldr r0, [r0] - str r1, [r0] - b _02308CF0 -_02307F20: - ldrsb r0, [r4, #8] - bl IsDialogueBoxActive - cmp r0, #0 - bne _02308CF0 - ldr r0, _023082B4 ; =ov11_02324D8C - ldr r0, [r0] - ldrsb r0, [r0, #8] - bl ShowDialogueBox - bl ov11_02308F14 - ldr r0, _023082B4 ; =ov11_02324D8C - mov r1, #0x10 - ldr r0, [r0] - str r1, [r0] - b _02308CF0 -_02307F58: - ldr r0, [r4, #0x10] - mov r0, r0, lsl #0x10 - mov r0, r0, asr #0x10 - bl GetItemAtIdx - ldrsh r0, [r0, #4] - bl ov11_02309084 - ldr r0, _023082B4 ; =ov11_02324D8C - mov r1, #0x19 - ldr r0, [r0] - str r1, [r0] - b _02308CF0 -_02307F84: - bl ov11_023090DC - cmp r0, #0 - beq _02308CF0 - bl ov11_02309E24 - mvn r1, #0 - cmp r0, r1 - beq _0230803C - ldr r1, _023082B4 ; =ov11_02324D8C - add r0, sp, #0x10 - ldr r4, [r1] - bl ov11_02309DAC - add r1, sp, #0x10 - add r0, r4, #0x238 - bl ov11_02308F4C - add r0, r4, #0x238 - bl ov11_02308FEC - bl sub_020415BC - cmp r0, #0 - ldrne r0, _023082B4 ; =ov11_02324D8C - movne r1, #0x1d - ldrne r0, [r0] - strne r1, [r0] - bne _0230804C - ldr r0, _023082B4 ; =ov11_02324D8C - ldr r0, [r0] - ldr r0, [r0, #0x10] - mov r0, r0, lsl #0x10 - mov r0, r0, asr #0x10 - bl GetItemAtIdx - mov r4, r0 - ldrsh r0, [r4, #4] - bl IsHM - cmp r0, #0 - bne _02308028 - ldrsh r2, [r4, #4] - mov r0, r4 - mov r1, #0xbb - sub r2, r2, #0xbc - strh r2, [r4, #2] - strh r1, [r4, #4] - bl SetItemAcquired -_02308028: - ldr r0, _023082B4 ; =ov11_02324D8C - mov r1, #0x1a - ldr r0, [r0] - str r1, [r0] - b _0230804C -_0230803C: - ldr r0, _023082B4 ; =ov11_02324D8C - mov r1, #0 - ldr r0, [r0] - str r1, [r0] -_0230804C: - bl ov11_02309DF8 - b _02308CF0 -_02308054: - add r0, r4, #0x200 - ldrsh r2, [r0, #0x40] - ldrb r3, [r4, #0x242] - add r0, r4, #0x328 - mov r1, #2 - bl sub_02053CA0 - ldr r0, _023082B4 ; =ov11_02324D8C - ldr r0, [r0] - add r0, r0, #0x200 - ldrsh r0, [r0, #0x4e] - bl GetItemMoveId16 - bl sub_0203FD14 - ldr r0, _023082B4 ; =ov11_02324D8C - mov r1, #0 - ldr r0, [r0] - mov r2, r1 - add r3, r0, #0x328 - mov r0, #6 - bl sub_0204019C - ldr r1, _023082B4 ; =ov11_02324D8C - mov r2, #0x22 - ldr r3, [r1] - strb r0, [r3, #0xa] - ldr r0, [r1] - str r2, [r0] - b _02308CF0 -_023080BC: - bl sub_020407EC - cmp r0, #1 - beq _023080F0 - cmp r0, #2 - beq _023080DC - cmp r0, #7 - beq _02308124 - b _02308CF0 -_023080DC: - ldr r0, _023082B4 ; =ov11_02324D8C - mov r1, #0x1f - ldr r0, [r0] - str r1, [r0] - b _02308CF0 -_023080F0: - bl sub_020407C0 - ldr r0, _023082B4 ; =ov11_02324D8C - ldr r0, [r0] - ldrsb r0, [r0, #0xa] - bl CloseAdvancedTextBox - ldr r0, _023082B4 ; =ov11_02324D8C - mvn r3, #1 - ldr r2, [r0] - mov r1, #0x18 - strb r3, [r2, #0xa] - ldr r0, [r0] - str r1, [r0] - b _02308CF0 -_02308124: - bl sub_02041094 - cmp r0, #4 - bge _02308168 - bl sub_0203FD38 - ldr r2, _023082B4 ; =ov11_02324D8C - mov r1, r0 - ldr r0, [r2] - mov r2, #0x20 - add r0, r0, #0x56 - add r0, r0, #0x200 - bl memcpy - bl sub_02041094 - ldr r1, _023082B4 ; =ov11_02324D8C - ldr r1, [r1] - add r1, r1, #0x200 - strh r0, [r1, #0x54] - b _0230819C -_02308168: - bl sub_0203FD2C - ldr r2, _023082B4 ; =ov11_02324D8C - mov r1, r0 - ldr r0, [r2] - mov r2, #8 - add r0, r0, #0x56 - add r0, r0, #0x200 - bl memcpy - ldr r0, _023082B4 ; =ov11_02324D8C - mvn r1, #0 - ldr r0, [r0] - add r0, r0, #0x200 - strh r1, [r0, #0x54] -_0230819C: - bl sub_020407C0 - ldr r0, _023082B4 ; =ov11_02324D8C - ldr r0, [r0] - ldrsb r0, [r0, #0xa] - bl CloseAdvancedTextBox - ldr r0, _023082B4 ; =ov11_02324D8C - mvn r3, #1 - ldr r2, [r0] - mov r1, #0x27 - strb r3, [r2, #0xa] - ldr r0, [r0] - str r1, [r0] - b _02308CF0 -_023081D0: - mov r1, #1 - str r1, [r4, #0x1c] - mov r1, #3 - str r1, [sp] - ldr r1, [r0] - ldr r0, _02308314 ; =ov11_02322CC8 - ldr r3, _02308318 ; =ov11_02322CF0 - add r2, r1, #0x1c - mov r1, #0x33 - bl CreateSimpleMenuFromStringIds - ldr r1, _023082B4 ; =ov11_02324D8C - mov r2, #0x20 - ldr r3, [r1] - strb r0, [r3, #0xc] - ldr r0, [r1] - str r2, [r0] - b _02308CF0 -_02308214: - ldrsb r0, [r4, #0xc] - bl IsSimpleMenuActive - cmp r0, #0 - bne _02308CF0 - ldr r0, _023082B4 ; =ov11_02324D8C - ldr r0, [r0] - ldrsb r0, [r0, #0xc] - bl GetSimpleMenuResult__0202B870 - ldr r1, _023082B4 ; =ov11_02324D8C - mov r4, r0 - ldr r0, [r1] - ldrsb r0, [r0, #0xc] - bl CloseSimpleMenu - ldr r0, _023082B4 ; =ov11_02324D8C - mvn r1, #1 - ldr r0, [r0] - cmp r4, #0 - strb r1, [r0, #0xc] - beq _02308274 - cmp r4, #1 - beq _0230831C - cmp r4, #2 - beq _023083C8 - b _02308CF0 -_02308274: - bl sub_02041094 - ldr r2, _023082B4 ; =ov11_02324D8C - ldr r1, [r2] - add r1, r1, #0x200 - strh r0, [r1, #0x4c] - ldr r0, [r2] - ldrsb r0, [r0, #0xa] - bl CloseAdvancedTextBox - ldr r0, _023082B4 ; =ov11_02324D8C - mvn r3, #1 - ldr r2, [r0] - mov r1, #0x23 - strb r3, [r2, #0xa] - ldr r0, [r0] - str r1, [r0] - b _02308CF0 - .align 2, 0 -#ifdef JAPAN -#define OV11_02307334_OFFSET 0x2D20 -#else -#define OV11_02307334_OFFSET 0 -#endif -_023082B4: .word ov11_02324D8C -_023082B8: .word ov11_02307300 -_023082BC: .word ov11_02322C88 -_023082C0: .word ov11_02322DB0 -_023082C4: .word ov11_02322D38 -_023082C8: .word 0x000002B6 + OV11_02307334_OFFSET -_023082CC: .word ov11_02322CB8 -_023082D0: .word 0x00400213 -_023082D4: .word 0x00400013 -_023082D8: .word ov11_02322D88 -_023082DC: .word ov11_02322CA8 -_023082E0: .word ov11_02322D10 -_023082E4: .word ov11_02322D60 -_023082E8: .word ov11_02322C98 -_023082EC: .word ov11_02322CD8 -_023082F0: .word 0x000002BE + OV11_02307334_OFFSET -_023082F4: .word 0x000002B9 + OV11_02307334_OFFSET -_023082F8: .word 0x000002BA + OV11_02307334_OFFSET -_023082FC: .word 0x000002BB + OV11_02307334_OFFSET -#ifdef JAPAN -_02309898: .word 0x00002FDC -#endif -_02308300: .word 0x000002BD + OV11_02307334_OFFSET -_02308304: .word 0x000002BF + OV11_02307334_OFFSET -_02308308: .word 0x000002C1 + OV11_02307334_OFFSET -_0230830C: .word 0x000002C2 + OV11_02307334_OFFSET -_02308310: .word 0x000002C3 + OV11_02307334_OFFSET -#ifdef JAPAN -_023098B0: .word 0x00002FE4 -_023098B4: .word 0x00002FE0 -#endif -_02308314: .word ov11_02322CC8 -_02308318: .word ov11_02322CF0 -_0230831C: - bl sub_02041094 - cmp r0, #4 - bge _02308360 - bl sub_0203FD38 - ldr r2, _023082B4 ; =ov11_02324D8C - mov r1, r0 - ldr r0, [r2] - mov r2, #0x20 - add r0, r0, #0x56 - add r0, r0, #0x200 - bl memcpy - bl sub_02041094 - ldr r1, _023082B4 ; =ov11_02324D8C - ldr r1, [r1] - add r1, r1, #0x200 - strh r0, [r1, #0x54] - b _02308394 -_02308360: - bl sub_0203FD2C - ldr r2, _023082B4 ; =ov11_02324D8C - mov r1, r0 - ldr r0, [r2] - mov r2, #8 - add r0, r0, #0x56 - add r0, r0, #0x200 - bl memcpy - ldr r0, _023082B4 ; =ov11_02324D8C - mvn r1, #0 - ldr r0, [r0] - add r0, r0, #0x200 - strh r1, [r0, #0x54] -_02308394: - bl sub_020407C0 - ldr r0, _023082B4 ; =ov11_02324D8C - ldr r0, [r0] - ldrsb r0, [r0, #0xa] - bl CloseAdvancedTextBox - ldr r0, _023082B4 ; =ov11_02324D8C - mvn r3, #1 - ldr r2, [r0] - mov r1, #0x27 - strb r3, [r2, #0xa] - ldr r0, [r0] - str r1, [r0] - b _02308CF0 -_023083C8: - bl sub_020416FC - ldr r0, _023082B4 ; =ov11_02324D8C - mov r1, #0x22 - ldr r0, [r0] - str r1, [r0] - b _02308CF0 -_023083E0: - add r0, r4, #0x200 - ldrsh r0, [r0, #0x4c] - bl sub_02041154 - ldr r1, _023082B4 ; =ov11_02324D8C - ldr r4, _02308CFC ; =0x000008D7 - ldr r2, [r1] - str r0, [r2, #0xc4] - ldr r0, [r1] - add r0, r0, #0x200 - ldrsh r0, [r0, #0x4c] - cmp r0, #3 - bge _0230841C - bl sub_02041364 - cmp r0, #0 - subne r4, r4, #1 -_0230841C: - bl ov11_02308EDC - ldr r0, _023082B4 ; =ov11_02324D8C - mov r2, r4 - ldr r3, [r0] - mov r1, #0x18 - ldrsb r0, [r3, #8] - add r3, r3, #0xb4 - bl ShowStringIdInDialogueBox - ldr r0, _023082B4 ; =ov11_02324D8C - mov r1, #0x24 - ldr r0, [r0] - str r1, [r0] - b _02308CF0 -_02308450: - ldrsb r0, [r4, #8] - bl IsDialogueBoxActive - cmp r0, #0 - ldreq r0, _023082B4 ; =ov11_02324D8C - moveq r1, #0x25 - ldreq r0, [r0] - streq r1, [r0] - b _02308CF0 -_02308470: - add r2, sp, #0x500 - mov r4, #5 - ldr r3, _023082EC ; =ov11_02322CD8 - add r2, r2, #8 - mov r0, #0 - mov r1, #0x33 - str r4, [sp, #0x508] - bl CreateParentMenuFromStringIds - ldr r1, _023082B4 ; =ov11_02324D8C - mov r2, #0x26 - ldr r3, [r1] - strb r0, [r3, #7] - ldr r0, [r1] - str r2, [r0] - b _02308CF0 -_023084AC: - ldrsb r0, [r4, #7] - bl IsParentMenuActive - cmp r0, #0 - bne _02308CF0 - ldr r0, _023082B4 ; =ov11_02324D8C - ldr r0, [r0] - ldrsb r0, [r0, #7] - bl GetSimpleMenuResult__0202AEA4 - cmp r0, #4 - bne _02308570 - ldr r0, _023082B4 ; =ov11_02324D8C - ldr r0, [r0] - ldr r0, [r0, #0x10] - mov r0, r0, lsl #0x10 - mov r0, r0, asr #0x10 - bl GetItemAtIdx - mov r4, r0 - ldrsh r0, [r4, #4] - bl IsHM - cmp r0, #0 - bne _0230852C - ldrb r0, [r4, #1] - cmp r0, #0 - beq _02308510 - bl sub_020582E0 -_02308510: - ldrsh r2, [r4, #4] - mov r0, r4 - mov r1, #0xbb - sub r2, r2, #0xbc - strh r2, [r4, #2] - strh r1, [r4, #4] - bl SetItemAcquired -_0230852C: - ldr r0, _023082B4 ; =ov11_02324D8C - mov r2, #0x1a - ldr r1, [r0] - str r2, [r1] - ldr r1, [r0] - add r0, r1, #0x200 - ldrsh r0, [r0, #0x4c] - cmp r0, #4 - movge r0, #0x1b - strge r0, [r1] - bge _02308594 - bl sub_02041484 - ldr r0, _023082B4 ; =ov11_02324D8C - mov r1, #0x1a - ldr r0, [r0] - str r1, [r0] - b _02308594 -_02308570: - bl sub_020407C0 - ldr r0, _023082B4 ; =ov11_02324D8C - ldr r0, [r0] - add r0, r0, #0x238 - bl ov11_02308FEC - ldr r0, _023082B4 ; =ov11_02324D8C - mov r1, #0x21 - ldr r0, [r0] - str r1, [r0] -_02308594: - ldr r0, _023082B4 ; =ov11_02324D8C - ldr r0, [r0] - ldrsb r0, [r0, #7] - bl CloseParentMenu - ldr r0, _023082B4 ; =ov11_02324D8C - mvn r2, #1 - ldr r1, [r0] - strb r2, [r1, #7] - ldr r0, [r0] - ldrsb r0, [r0, #8] - bl ShowDialogueBox - bl ov11_02308F14 - b _02308CF0 -_023085C8: - add r0, r4, #0x200 - ldrsh r0, [r0, #0x54] - mov r3, #1 - cmp r0, #0 - movlt r2, #0 - movge r2, r0 - cmp r0, #0 - movlt r1, #1 - add r0, r4, #0x56 - movge r1, #4 - add r0, r0, #0x200 - bl sub_020417A8 - ldr r1, _023082B4 ; =ov11_02324D8C - mov r2, #0x28 - ldr r3, [r1] - strb r0, [r3, #0xb] - ldr r0, [r1] - str r2, [r0] - b _02308CF0 -_02308614: - ldrsb r0, [r4, #0xb] - bl IsScrollBoxActive - cmp r0, #0 - bne _02308CF0 - ldr r0, _023082B4 ; =ov11_02324D8C - ldr r0, [r0] - ldrsb r0, [r0, #0xb] - bl CloseScrollBox - bl sub_02041A00 - ldr r0, _023082B4 ; =ov11_02324D8C - mvn r3, #1 - ldr r2, [r0] - mov r1, #0x21 - strb r3, [r2, #0xb] - ldr r0, [r0] - str r1, [r0] - b _02308CF0 -_02308658: - add r0, r4, #0x200 - ldrsh r0, [r0, #0x4e] - bl GetItemMoveId16 - mov r4, r0 - ldr r0, _02308D00 ; =0x0000131B - mov r1, #0x100 - bl sub_02017C74 - mov r0, r4 - bl sub_02041614 - ldr r0, _023082B4 ; =ov11_02324D8C - ldr r1, [r0] - ldr r0, [r1, #0x238] - add r1, r1, #0x238 - cmp r0, #0 - bne _023086A0 - ldrsh r0, [r1, #4] - bl sub_0203FD80 - b _023086B0 -_023086A0: - cmp r0, #1 - bne _023086B0 - ldrsh r0, [r1, #4] - bl sub_0203FDEC -_023086B0: - bl sub_020407C0 - ldr r0, _023082B4 ; =ov11_02324D8C - ldr r1, [r0] - str r4, [r1, #0xc4] - ldr r0, [r0] - add r0, r0, #0x238 - bl ov11_02308DD8 - ldr r1, _023082B4 ; =ov11_02324D8C - ldr r1, [r1] - str r0, [r1, #0xec] - bl ov11_02308EDC - ldr r0, _023082B4 ; =ov11_02324D8C - ldr r2, _02308D04 ; =0x00000F23 - ldr r3, [r0] - mov r1, #0x18 - ldrsb r0, [r3, #8] - add r3, r3, #0xb4 - bl ShowStringIdInDialogueBox - ldr r0, _023082B4 ; =ov11_02324D8C - ldr r0, [r0] - add r0, r0, #0x238 - bl ov11_02308FD0 - ldr r0, _023082B4 ; =ov11_02324D8C - mov r1, #0x29 - ldr r0, [r0] - str r1, [r0] - b _02308CF0 -_0230871C: - bl sub_020407C0 - ldr r0, _023082B4 ; =ov11_02324D8C - mov r1, #0x1c - ldr r0, [r0] - str r1, [r0] - bl sub_020037A4 - ldr r1, _023082B4 ; =ov11_02324D8C - add r2, r0, #0xa - ldr r0, [r1] - str r2, [r0, #0x32c] - b _02308CF0 -_02308748: - bl sub_020037A4 - ldr r1, [r4, #0x32c] - cmp r0, r1 - ble _02308CF0 - add r0, r4, #0x238 - bl ov11_02308DD8 - ldr r1, _023082B4 ; =ov11_02324D8C - ldr r1, [r1] - str r0, [r1, #0xec] - bl ov11_02308EDC - ldr r0, _023082B4 ; =ov11_02324D8C - ldr r2, _02308D08 ; =0x00000F24 - ldr r3, [r0] - mov r1, #0x18 - ldrsb r0, [r3, #8] - add r3, r3, #0xb4 - bl ShowStringIdInDialogueBox - ldr r0, _023082B4 ; =ov11_02324D8C - mov r1, #0x29 - ldr r0, [r0] - str r1, [r0] - b _02308CF0 -_023087A0: - bl ov11_02308EDC - ldr r0, _023082B4 ; =ov11_02324D8C -#ifdef JAPAN - ldr r2, _0230A2B0_JP ; =0x0000248F - ldr r0, [r0] - mov r1, #0x18 -#else - mov r1, #0x18 - ldr r0, [r0] - add r2, r1, #0xf10 -#endif - ldrsb r0, [r0, #8] - mov r3, #0 - bl ShowStringIdInDialogueBox - ldr r0, _023082B4 ; =ov11_02324D8C - mov r1, #0x1e - ldr r0, [r0] - str r1, [r0] - b _02308CF0 -_023087D4: - ldrsb r0, [r4, #8] - bl IsDialogueBoxActive - cmp r0, #0 - bne _02308CF0 - ldr r0, _023082B4 ; =ov11_02324D8C - ldr r0, [r0] - ldrsb r0, [r0, #8] - bl ShowDialogueBox - bl ov11_02308F14 - ldr r0, _023082B4 ; =ov11_02324D8C - mov r1, #0x21 - ldr r0, [r0] - str r1, [r0] - b _02308CF0 -_0230880C: - ldrsb r0, [r4, #8] - bl IsDialogueBoxActive - cmp r0, #0 - bne _02308CF0 - ldr r0, _023082B4 ; =ov11_02324D8C - ldr r0, [r0] - ldrsb r0, [r0, #8] - bl ShowDialogueBox - bl ov11_02308F14 - ldr r0, _023082B4 ; =ov11_02324D8C - mov r1, #0 - ldr r0, [r0] - str r1, [r0] - b _02308CF0 -_02308844: - ldrsb r0, [r4, #7] - bl IsParentMenuActive - cmp r0, #0 - bne _02308CF0 - ldr r0, _023082B4 ; =ov11_02324D8C - ldr r0, [r0] - ldrsb r0, [r0, #7] - bl GetSimpleMenuResult__0202AEA4 - ldr r1, _023082B4 ; =ov11_02324D8C - mov r3, #2 - ldr r2, [r1] - cmp r0, #8 - str r3, [r2] - beq _02308900 - cmp r0, #4 - bne _02308900 - ldr r3, [r1] - mov r2, #0 - add r0, r3, #0x200 - ldrsh r0, [r0, #0x4e] - str r0, [r3, #0xc4] - ldr r0, [r1] - str r2, [r0, #0xd8] - ldr r0, [r1] - ldr r0, [r0, #0x10] - mov r0, r0, lsl #0x10 - mov r0, r0, asr #0x10 - bl RemoveItemNoHoleCheck - bl ov11_022DC504 - ldr r0, _023082B4 ; =ov11_02324D8C - mvn r1, #0 - ldr r0, [r0] - str r1, [r0, #0x18] - bl GetNbItemsInBag - ldr r2, _023082B4 ; =ov11_02324D8C - mov r1, r0 - ldr r0, [r2] - ldrsb r0, [r0, #4] - bl ov10_022BCC60 - ldr r0, _023082B4 ; =ov11_02324D8C - ldr r0, [r0] - ldrsb r0, [r0, #4] - bl SetInventoryMenuState6 - ldr r0, _023082B4 ; =ov11_02324D8C - mov r1, #5 - ldr r0, [r0] - str r1, [r0] -_02308900: - ldr r0, _023082B4 ; =ov11_02324D8C - ldr r0, [r0] - ldrsb r0, [r0, #7] - bl CloseParentMenu - ldr r0, _023082B4 ; =ov11_02324D8C - mvn r2, #1 - ldr r1, [r0] - strb r2, [r1, #7] - ldr r0, [r0] - ldrsb r0, [r0, #6] - bl CloseParentMenu - ldr r0, _023082B4 ; =ov11_02324D8C - mvn r1, #1 - ldr r0, [r0] - strb r1, [r0, #6] - b _02308CF0 -_02308940: - ldrsb r0, [r4, #4] - bl IsInventoryMenuActive - cmp r0, #0 - bne _02308CF0 - ldr r0, _023082B4 ; =ov11_02324D8C - ldr r0, [r0] - ldrsb r0, [r0, #5] - bl CloseTextBox2 - ldr r0, _023082B4 ; =ov11_02324D8C - mvn r2, #1 - ldr r1, [r0] - strb r2, [r1, #5] - ldr r0, [r0] - ldrsb r0, [r0, #4] - bl CloseInventoryMenu - ldr r0, _023082B4 ; =ov11_02324D8C - mvn r1, #1 - ldr r0, [r0] - strb r1, [r0, #4] - bl ov11_02308EDC - ldr r0, _023082B4 ; =ov11_02324D8C - ldr r2, _02308D0C ; =0x000002CB - ldr r3, [r0] - mov r1, #0x18 - ldrsb r0, [r3, #8] - add r3, r3, #0xb4 - bl ShowStringIdInDialogueBox - ldr r0, _023082B4 ; =ov11_02324D8C - mov r1, #6 - ldr r0, [r0] - str r1, [r0] - b _02308CF0 -_023089C0: - ldrsb r0, [r4, #8] - bl IsDialogueBoxActive - cmp r0, #0 - bne _02308CF0 - ldr r0, _023082B4 ; =ov11_02324D8C - ldr r0, [r0] - ldrsb r0, [r0, #8] - bl ShowDialogueBox - bl IsBagNotEmpty - cmp r0, #0 - ldreq r0, _023082B4 ; =ov11_02324D8C - moveq r1, #0xc - ldreq r0, [r0] - streq r1, [r0] - beq _02308CF0 - bl ov11_02308F14 - ldr r0, _023082B4 ; =ov11_02324D8C - mov r1, #0 - ldr r0, [r0] - str r1, [r0] - b _02308CF0 -_02308A14: - mov r2, #0 - str r2, [sp] - str r2, [sp, #4] - ldr r0, [r4, #0x10] - mov r3, r2 - mov r0, r0, lsl #0x10 - mov r0, r0, asr #0x10 - mov r1, #2 - bl sub_02044688 - ldr r1, _023082B4 ; =ov11_02324D8C - mov r2, #8 - ldr r3, [r1] - str r0, [r3, #0x324] - ldr r0, [r1] - str r2, [r0] - b _02308CF0 -_02308A54: - ldr r0, [r4, #0x324] - bl sub_02044800 - cmp r0, #1 - bne _02308CF0 - ldr r0, _023082B4 ; =ov11_02324D8C - ldr r0, [r0] - add r0, r0, #0x324 - bl sub_020448EC - ldr r0, _023082B4 ; =ov11_02324D8C - mov r1, #0 - ldr r0, [r0] - str r1, [r0] - b _02308CF0 -_02308A88: - ldr r0, [r4, #0x10] - mov r0, r0, lsl #0x10 - mov r0, r0, asr #0x10 - bl GetItemAtIdx - ldrb r0, [r0, #1] - bl sub_020582E0 - ldr r0, _023082B4 ; =ov11_02324D8C - mov r1, #0 - ldr r0, [r0] - str r1, [r0] - b _02308CF0 -_02308AB4: - ldr r0, [r4, #0x10] - mov r0, r0, lsl #0x10 - mov r0, r0, asr #0x10 - bl GetItemAtIdx - mov r4, r0 - ldrb r0, [r4] - tst r0, #1 - movne r0, #1 - moveq r0, #0 - tst r0, #0xff - ldrne r0, _023082B4 ; =ov11_02324D8C - ldrnesh r1, [r4, #4] - ldreq r0, _023082B4 ; =ov11_02324D8C - ldr r0, [r0] - moveq r1, #0 - add r0, r0, #0x200 - strh r1, [r0, #0x4e] - add r0, sp, #0x420 - bl InitPreprocessorArgs - ldr r0, _023082B4 ; =ov11_02324D8C - add r6, sp, #0x420 - ldr r1, [r0] - ldr r0, _02308D10 ; =ov11_02322C78 - add r5, r1, #0x200 - ldrsh r2, [r5, #0x4e] - ldr r1, _02308D14 ; =0x00001013 - ldr r3, _02308D18 ; =0x000008E4 - str r2, [sp, #0x430] - ldrh r4, [r4, #2] - mov r2, #0 - add r4, r4, #0xbc - str r4, [sp, #0x438] - str r6, [sp] - ldrsh r4, [r5, #0x4e] -#if defined(EUROPE) - add r4, r4, #0xd3 - add r4, r4, #0x2900 -#elif defined(JAPAN) - add r4, r4, #0xce - add r4, r4, #0x4100 -#else - add r4, r4, #0xd1 - add r4, r4, #0x2900 -#endif - mov r4, r4, lsl #0x10 - mov r4, r4, lsr #0x10 - stmib sp, {r4, r6} - bl CreateScrollBoxSingle - ldr r1, _023082B4 ; =ov11_02324D8C - mov r2, #0xb - ldr r3, [r1] - strb r0, [r3, #9] - ldr r0, [r1] - str r2, [r0] - b _02308CF0 -_02308B70: - ldrsb r0, [r4, #9] - bl IsScrollBoxActive - cmp r0, #0 - bne _02308CF0 - ldr r0, _023082B4 ; =ov11_02324D8C - ldr r0, [r0] - ldrsb r0, [r0, #9] - bl CloseScrollBox - ldr r0, _023082B4 ; =ov11_02324D8C - mvn r3, #1 - ldr r2, [r0] - mov r1, #0 - strb r3, [r2, #9] - ldr r0, [r0] - str r1, [r0] - b _02308CF0 -_02308BB0: - ldrsb r0, [r4, #5] - mvn r1, #1 - cmp r0, r1 - beq _02308BD4 - bl CloseTextBox2 - ldr r0, _023082B4 ; =ov11_02324D8C - mvn r1, #1 - ldr r0, [r0] - strb r1, [r0, #5] -_02308BD4: - ldr r0, _023082B4 ; =ov11_02324D8C - mvn r1, #1 - ldr r0, [r0] - ldrsb r0, [r0, #4] - cmp r0, r1 - beq _02308C00 - bl CloseInventoryMenu - ldr r0, _023082B4 ; =ov11_02324D8C - mvn r1, #1 - ldr r0, [r0] - strb r1, [r0, #4] -_02308C00: - ldr r1, _023082B4 ; =ov11_02324D8C - mvn r0, #1 - ldr r1, [r1] - ldrsb r1, [r1, #8] - cmp r1, r0 - bne _02308C1C - bl ov11_02308EDC -_02308C1C: - ldr r0, _023082B4 ; =ov11_02324D8C -#ifdef JAPAN - ldr r2, _0230A2C4_JP ; =0x00002FD4 - ldr r0, [r0] - mov r1, #0x18 -#else - mov r1, #0x18 - ldr r0, [r0] - mov r2, #0x2b4 -#endif - ldrsb r0, [r0, #8] - mov r3, #0 - bl ShowStringIdInDialogueBox - ldr r0, _023082B4 ; =ov11_02324D8C - mov r1, #0xd - ldr r0, [r0] - str r1, [r0] - b _02308CF0 -_02308C4C: - ldrsb r0, [r4, #8] - bl IsDialogueBoxActive - cmp r0, #0 - bne _02308CF0 - ldr r0, _023082B4 ; =ov11_02324D8C - ldr r0, [r0] - ldrsb r0, [r0, #8] - bl ShowDialogueBox - bl ov11_02308F14 - ldr r0, _023082B4 ; =ov11_02324D8C - mov r1, #0x10 - ldr r0, [r0] - str r1, [r0] - b _02308CF0 -_02308C84: - mov r0, #0xf - str r0, [r4] - b _02308CF0 -_02308C90: - ldrsb r0, [r4, #4] - bl IsInventoryMenuActive - cmp r0, #0 - bne _02308CE8 - ldr r0, _023082B4 ; =ov11_02324D8C - ldr r0, [r0] - ldrsb r0, [r0, #5] - bl CloseTextBox2 - ldr r0, _023082B4 ; =ov11_02324D8C - mvn r2, #1 - ldr r1, [r0] - strb r2, [r1, #5] - ldr r0, [r0] - ldrsb r0, [r0, #4] - bl CloseInventoryMenu - ldr r0, _023082B4 ; =ov11_02324D8C - mvn r3, #1 - ldr r2, [r0] - mov r1, #0x10 - strb r3, [r2, #4] - ldr r0, [r0] - str r1, [r0] -_02308CE8: - mov r0, #1 - b _02308CF4 -_02308CF0: - mov r0, #0 -_02308CF4: - add sp, sp, #0x5a0 - ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc} - .align 2, 0 -#ifdef JAPAN -_02308CFC: .word 0x00001D2F -_02308D00: .word 0x0000131B -_02308D04: .word 0x0000248A -_02308D08: .word 0x0000248B -_0230A2B0_JP: .word 0x0000248F -#else -_02308CFC: .word 0x000008D7 -_02308D00: .word 0x0000131B -_02308D04: .word 0x00000F23 -_02308D08: .word 0x00000F24 -#endif -_02308D0C: .word 0x000002CB + OV11_02307334_OFFSET -_02308D10: .word ov11_02322C78 -_02308D14: .word 0x00001013 -#ifdef JAPAN -_02308D18: .word 0x00001D3C -_0230A2C4_JP: .word 0x00002FD4 -#else -_02308D18: .word 0x000008E4 -#endif - arm_func_end ov11_02307334 - - arm_func_start ov11_02308D1C -ov11_02308D1C: ; 0x02308D1C - stmdb sp!, {r3, lr} - ldr r0, _02308D44 ; =ov11_02324D8C - ldr r0, [r0] - cmp r0, #0 - ldmeqia sp!, {r3, pc} - bl MemFree - ldr r0, _02308D44 ; =ov11_02324D8C - mov r1, #0 - str r1, [r0] - ldmia sp!, {r3, pc} - .align 2, 0 -_02308D44: .word ov11_02324D8C - arm_func_end ov11_02308D1C - - arm_func_start ov11_02308D48 -ov11_02308D48: ; 0x02308D48 - stmdb sp!, {r3, lr} - ldr r0, _02308DD4 ; =ov11_02324D8C - mvn r1, #1 - ldr r0, [r0] - ldrsb r0, [r0, #6] - cmp r0, r1 - beq _02308D78 - bl CloseParentMenu - ldr r0, _02308DD4 ; =ov11_02324D8C - mvn r1, #1 - ldr r0, [r0] - strb r1, [r0, #6] -_02308D78: - ldr r0, _02308DD4 ; =ov11_02324D8C - mvn r1, #1 - ldr r0, [r0] - ldrsb r0, [r0, #5] - cmp r0, r1 - beq _02308DA4 - bl CloseTextBox2 - ldr r0, _02308DD4 ; =ov11_02324D8C - mvn r1, #1 - ldr r0, [r0] - strb r1, [r0, #5] -_02308DA4: - ldr r0, _02308DD4 ; =ov11_02324D8C - mvn r1, #1 - ldr r0, [r0] - ldrsb r0, [r0, #4] - cmp r0, r1 - ldmeqia sp!, {r3, pc} - bl CloseInventoryMenu - ldr r0, _02308DD4 ; =ov11_02324D8C - mvn r1, #1 - ldr r0, [r0] - strb r1, [r0, #4] - ldmia sp!, {r3, pc} - .align 2, 0 -_02308DD4: .word ov11_02324D8C - arm_func_end ov11_02308D48 - - arm_func_start ov11_02308DD8 -ov11_02308DD8: ; 0x02308DD8 - stmdb sp!, {r3, r4, lr} - sub sp, sp, #0xc - ldr r1, [r0] - cmp r1, #0 - bne _02308E20 - ldrsh r0, [r0, #4] - bl GetTeamMember - mov r4, r0 - bl sub_02055894 - bl sub_020564B0 - ldr r1, _02308EAC ; =ov11_02324D8C - mov r2, r0 - ldr r0, [r1] - mov r1, r4 - add r0, r0, #0x36 - add r0, r0, #0x100 - bl sub_02056094 - b _02308E94 -_02308E20: - cmp r1, #1 - bne _02308E94 - ldrsh r0, [r0, #4] - bl GetActiveTeamMember - mov r4, r0 - add r0, sp, #0 - add r1, r4, #0x5e - mov r2, #0xa - bl StrncpySimpleNoPadSafe - ldrb r0, [r4] - mov r2, #0x44 - ldr r1, _02308EB0 ; =ov11_02322DB8 - tst r0, #2 - movne r0, #1 - moveq r0, #0 - tst r0, #0xff - ldrb r0, [r4, #1] - movne r2, #0x46 - add r3, sp, #0 - cmp r0, #0 - movne r0, #1 - moveq r0, #0 - tst r0, #0xff - ldr r0, _02308EAC ; =ov11_02324D8C - movne r2, #0x59 - ldr r0, [r0] - add r0, r0, #0x36 - add r0, r0, #0x100 - bl ov11_02308EB4 -_02308E94: - ldr r0, _02308EAC ; =ov11_02324D8C - ldr r0, [r0] - add r0, r0, #0x36 - add r0, r0, #0x100 - add sp, sp, #0xc - ldmia sp!, {r3, r4, pc} - .align 2, 0 -_02308EAC: .word ov11_02324D8C -_02308EB0: .word ov11_02322DB8 - arm_func_end ov11_02308DD8 - - arm_func_start ov11_02308EB4 -ov11_02308EB4: ; 0x02308EB4 - stmdb sp!, {r0, r1, r2, r3} - stmdb sp!, {r3, lr} - add r2, sp, #0xc - bic r2, r2, #3 - ldr r1, [sp, #0xc] - add r2, r2, #4 - bl vsprintf - ldmia sp!, {r3, lr} - add sp, sp, #0x10 - bx lr - arm_func_end ov11_02308EB4 - - arm_func_start ov11_02308EDC -ov11_02308EDC: ; 0x02308EDC - stmdb sp!, {r3, lr} - ldr r1, _02308F10 ; =ov11_02324D8C - mvn r0, #1 - ldr r1, [r1] - ldrsb r1, [r1, #8] - cmp r1, r0 - ldmneia sp!, {r3, pc} - mov r0, #0 - bl CreateDialogueBox - ldr r1, _02308F10 ; =ov11_02324D8C - ldr r1, [r1] - strb r0, [r1, #8] - ldmia sp!, {r3, pc} - .align 2, 0 -_02308F10: .word ov11_02324D8C - arm_func_end ov11_02308EDC - - arm_func_start ov11_02308F14 -ov11_02308F14: ; 0x02308F14 - stmdb sp!, {r3, lr} - ldr r0, _02308F48 ; =ov11_02324D8C - mvn r1, #1 - ldr r0, [r0] - ldrsb r0, [r0, #8] - cmp r0, r1 - ldmeqia sp!, {r3, pc} - bl CloseDialogueBox - ldr r0, _02308F48 ; =ov11_02324D8C - mvn r1, #1 - ldr r0, [r0] - strb r1, [r0, #8] - ldmia sp!, {r3, pc} - .align 2, 0 -_02308F48: .word ov11_02324D8C - arm_func_end ov11_02308F14 - - arm_func_start ov11_02308F4C -ov11_02308F4C: ; 0x02308F4C - stmdb sp!, {r4, lr} - ldr r2, [r1] - ldr r1, [r1, #4] - mov r4, r0 - str r2, [r4] - str r1, [r4, #4] - ldr r0, [r4] - cmp r0, #0 - bne _02308F9C - ldrsh r0, [r4, #4] - bl GetTeamMember - ldrsh r3, [r0, #4] - add r2, r0, #0x14 - add r1, r0, #8 - strh r3, [r4, #8] - ldrb r0, [r0, #2] - strb r0, [r4, #0xa] - str r2, [r4, #0xc] - str r1, [r4, #0x10] - ldmia sp!, {r4, pc} -_02308F9C: - cmp r0, #1 - ldmneia sp!, {r4, pc} - ldrsh r0, [r4, #4] - bl GetActiveTeamMember - ldrsh r3, [r0, #0xc] - add r2, r0, #0x4c - add r1, r0, #6 - strh r3, [r4, #8] - ldrb r0, [r0, #3] - strb r0, [r4, #0xa] - str r2, [r4, #0xc] - str r1, [r4, #0x10] - ldmia sp!, {r4, pc} - arm_func_end ov11_02308F4C - - arm_func_start ov11_02308FD0 -ov11_02308FD0: ; 0x02308FD0 - stmdb sp!, {r3, lr} - ldr r1, [r0] - cmp r1, #1 - ldmneia sp!, {r3, pc} - ldrsh r0, [r0, #4] - bl sub_02058794 - ldmia sp!, {r3, pc} - arm_func_end ov11_02308FD0 - - arm_func_start ov11_02308FEC -ov11_02308FEC: ; 0x02308FEC - stmdb sp!, {r3, lr} - ldr r1, [r0] - cmp r1, #0 - bne _02309008 - ldrsh r0, [r0, #4] - bl sub_0203FA64 - ldmia sp!, {r3, pc} -_02309008: - cmp r1, #1 - ldmneia sp!, {r3, pc} - ldrsh r0, [r0, #4] - bl sub_0203FBD4 - ldmia sp!, {r3, pc} - arm_func_end ov11_02308FEC - - arm_func_start ov11_0230901C -ov11_0230901C: ; 0x0230901C - ldr r1, [r0] - cmp r1, #0 - ldreqsh r0, [r0, #4] - orreq r0, r0, #0x20000 - bxeq lr - cmp r1, #1 - ldreqsh r0, [r0, #4] - orreq r0, r0, #0x30000 - bx lr - arm_func_end ov11_0230901C - - arm_func_start ov11_02309040 -ov11_02309040: ; 0x02309040 - stmdb sp!, {r4, lr} - mov r4, r0 - ldr r0, _0230907C ; =0x00000794 - mov r1, #8 - bl MemAlloc - ldr r1, _02309080 ; =ov11_02324D90 - cmp r0, #0 - str r0, [r1] - moveq r0, #0 -#ifdef JAPAN - strne r4, [r0, #0xf4] -#else - strne r4, [r0, #0x114] -#endif - ldrne r0, [r1] - movne r1, #0 - strne r1, [r0] - movne r0, #1 - ldmia sp!, {r4, pc} - .align 2, 0 -#ifdef JAPAN -_0230907C: .word 0x00000774 -#else -_0230907C: .word 0x00000794 -#endif -_02309080: .word ov11_02324D90 - arm_func_end ov11_02309040 - - arm_func_start ov11_02309084 -ov11_02309084: ; 0x02309084 -#ifdef JAPAN -#define OV11_02309084_OFFSET -0x20 -#else -#define OV11_02309084_OFFSET 0 -#endif - stmdb sp!, {r4, lr} - mov r4, r0 - ldr r0, _023090D4 ; =0x00000794 - mov r1, #8 - bl MemAlloc - ldr r1, _023090D8 ; =ov11_02324D90 - cmp r0, #0 - str r0, [r1] - moveq r0, #0 - ldmeqia sp!, {r4, pc} - mov r2, #2 - str r2, [r0, #0x114 + OV11_02309084_OFFSET] - ldr r0, [r1] - mov r2, #0 - str r2, [r0] - ldr r1, [r1] - mov r0, #1 -#ifdef JAPAN - strh r4, [r1, #0xf8] -#else - add r1, r1, #0x100 - strh r4, [r1, #0x18] -#endif - ldmia sp!, {r4, pc} - .align 2, 0 -#ifdef JAPAN -_023090D4: .word 0x00000774 -#else -_023090D4: .word 0x00000794 -#endif -_023090D8: .word ov11_02324D90 - arm_func_end ov11_02309084 - - arm_func_start ov11_023090DC -ov11_023090DC: ; 0x023090DC - stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} - sub sp, sp, #0x124 - ldr r0, _02309D80 ; =ov11_02324D90 - ldr r3, [r0] - ldr r0, [r3] - cmp r0, #0x1b - addls pc, pc, r0, lsl #2 - b _02309D74 -_023090FC: ; jump table - b _0230916C ; case 0 - b _0230955C ; case 1 - b _02309518 ; case 2 - b _02309724 ; case 3 - b _023097EC ; case 4 - b _0230984C ; case 5 - b _0230987C ; case 6 - b _023098A8 ; case 7 - b _023098E4 ; case 8 - b _023099B0 ; case 9 - b _023099CC ; case 10 - b _023099F8 ; case 11 - b _02309A2C ; case 12 - b _02309A68 ; case 13 - b _02309A8C ; case 14 - b _02309AB4 ; case 15 - b _02309AD0 ; case 16 - b _02309B40 ; case 17 - b _02309B5C ; case 18 - b _02309BA4 ; case 19 - b _02309C04 ; case 20 - b _02309CA4 ; case 21 - b _02309CE0 ; case 22 - b _02309CF8 ; case 23 - b _02309D20 ; case 24 - b _02309D38 ; case 25 - b _02309D54 ; case 26 - b _02309D6C ; case 27 -_0230916C: - ldr r5, [r3, #0x114 + OV11_02309084_OFFSET] - mov r0, #0 - str r0, [sp, #4] - ldr r8, [sp, #4] - add r4, r3, #0x11c + OV11_02309084_OFFSET - mov r2, r8 -#ifdef JAPAN - str r2, [sp, #8] - ldrsh r2, [r3, #0xf8] -#else - add r3, r3, #0x100 - str r2, [sp, #8] - ldrsh r2, [r3, #0x18] -#endif - mov r0, r4 - mov r1, r5 - str r2, [sp, #0x10] - ldr r2, _02309D84 ; =0x00401833 - add r7, r4, #0x38 - str r2, [sp, #0x14] - bl ov11_02309EE4 - mov r2, #0 - mov r1, r2 - b _023091C4 -_023091B8: - add r0, r4, r2 - strb r1, [r0, #0x70] - add r2, r2, #1 -_023091C4: - ldr r0, [r4, #0x30] - cmp r2, r0 - blt _023091B8 - cmp r5, #2 - bne _023092FC - mov sl, #0 - b _023092F0 -_023091E0: - ldr r0, [sp, #0x10] - add fp, r4, sl, lsl #3 - bl GetItemMoveId16 - ldr r1, [r4, sl, lsl #3] - mov r6, r0 - cmp r1, #1 - bne _02309258 - ldrsh r0, [fp, #4] - bl GetTeamMember - ldrsh r1, [r0, #4] - mov sb, #0 - mov r3, sb - str r1, [sp, #0xc] - mov fp, #1 - mov r1, #6 - b _0230924C -_02309220: - mla ip, sb, r1, r0 - ldrb r2, [ip, #0x22] - tst r2, #1 - movne r2, fp - moveq r2, r3 - tst r2, #0xff - beq _02309248 - ldrh r2, [ip, #0x24] - cmp r6, r2 - beq _023092B8 -_02309248: - add sb, sb, #1 -_0230924C: - cmp sb, #4 - blt _02309220 - b _023092B8 -_02309258: - cmp r1, #2 - bne _023092B8 - ldrsh r0, [fp, #4] - bl GetActiveTeamMember - ldrsh r1, [r0, #0xc] - mov sb, #0 - mov r2, sb - str r1, [sp, #0xc] - mov r3, #1 - b _023092B0 -_02309280: - add r1, r0, sb, lsl #3 - ldrb r1, [r1, #0x1c] - tst r1, #1 - movne r1, r3 - moveq r1, r2 - tst r1, #0xff - beq _023092AC - add r1, r0, sb, lsl #3 - ldrh r1, [r1, #0x20] - cmp r6, r1 - beq _023092B8 -_023092AC: - add sb, sb, #1 -_023092B0: - cmp sb, #4 - blt _02309280 -_023092B8: - ldr r1, [sp, #0xc] - mov r0, r6 - bl sub_02053D1C - cmp r0, #0 - beq _023092E0 - cmp sb, #4 - addlt r0, r4, sl - movlt r1, #3 - strltb r1, [r0, #0x70] - b _023092EC -_023092E0: - add r0, r4, sl - mov r1, #3 - strb r1, [r0, #0x70] -_023092EC: - add sl, sl, #1 -_023092F0: - ldr r0, [r4, #0x30] - cmp sl, r0 - blt _023091E0 -_023092FC: - mov sl, #0 - add r6, r4, #0x76 - add fp, sp, #0x5c - b _02309450 -_0230930C: - add sb, r4, sl, lsl #3 - ldr r0, [r4, sl, lsl #3] - cmp r0, #1 - bne _0230935C - ldrsh r0, [sb, #4] - bl GetTeamMember - ldrsh r1, [sb, #4] - mov sb, r0 - orr r0, r1, #0x20000 - str r0, [sp, #0x5c] - ldrsh r0, [sb, #4] - bl GetDexNumber - str r0, [sp, #0x80] - add r1, sb, #0x3a - add r0, sp, #0x1a - mov r2, #0 - bl RecolorNameString - add r0, sp, #0x1a - str r0, [sp, #0x94] - b _023093A0 -_0230935C: - cmp r0, #2 - bne _023093A0 - ldrsh r0, [sb, #4] - bl GetActiveTeamMember - ldrsh r1, [sb, #4] - mov sb, r0 - orr r0, r1, #0x30000 - str r0, [sp, #0x5c] - ldrsh r0, [sb, #0xc] - bl GetDexNumber - str r0, [sp, #0x80] - add r1, sb, #0x5e - add r0, sp, #0x1a - mov r2, #0 - bl RecolorNameString - add r0, sp, #0x1a - str r0, [sp, #0x94] -_023093A0: - cmp r5, #1 - mov r1, #0x100 - mov r3, #0 - bne _023093C8 - ldr r2, _02309D88 ; =ov11_02322E58 - add r0, r6, r8, lsl #8 - str fp, [sp] - mov sb, r8, lsl #8 - bl PreprocessString - b _0230941C -_023093C8: - cmp r5, #2 - bne _02309408 - add r0, r4, sl - ldrb r0, [r0, #0x70] - mov sb, r8, lsl #8 - tst r0, #2 - str fp, [sp] - beq _023093F8 - ldr r2, _02309D8C ; =ov11_02322E7C - add r0, r6, r8, lsl #8 - bl PreprocessString - b _0230941C -_023093F8: - ldr r2, _02309D88 ; =ov11_02322E58 - add r0, r6, r8, lsl #8 - bl PreprocessString - b _0230941C -_02309408: - ldr r2, _02309D90 ; =ov11_02322EA0 - add r0, r6, r8, lsl #8 - str fp, [sp] - mov sb, r8, lsl #8 - bl PreprocessString -_0230941C: - add r0, r4, sl - ldrb r0, [r0, #0x70] - add r8, r8, #1 - cmp r0, #0 - ldreq r0, [sp, #4] - cmpeq r0, #0 - moveq r0, #1 - streq r0, [sp, #4] - add r0, r6, sb - stmia r7, {r0, sl} - streq sl, [sp, #8] - add r7, r7, #8 - add sl, sl, #1 -_02309450: - ldr r0, [r4, #0x30] - cmp sl, r0 - blt _0230930C - mov r3, #0 - str r3, [r7] - sub r0, r3, #1 - str r0, [r7, #4] - ldr r0, [sp, #8] - ldr r1, _02309D80 ; =ov11_02324D90 - str r0, [r4, #0x34] - ldr r0, [r1] - mov r2, #0x10 - str r2, [r0, #0x88 + OV11_02309084_OFFSET] - ldr r0, [r1] - str r3, [r0, #0x7c + OV11_02309084_OFFSET] - ldr r3, [r1] - ldr r0, [r3, #0x114 + OV11_02309084_OFFSET] - cmp r0, #1 - ldreq r0, _02309D94 ; =0x000002F2 - streqh r0, [r3, #0x84 + OV11_02309084_OFFSET] - beq _023094E0 - cmp r0, #2 - ldrne r0, _02309D98 ; =0x00000A3A - strneh r0, [r3, #0x84 + OV11_02309084_OFFSET] - bne _023094E0 - ldr r2, _02309D94 ; =0x000002F2 - ldr r0, [sp, #0x14] - strh r2, [r3, #0x84 + OV11_02309084_OFFSET] - orr r0, r0, #0x200 - ldr r2, [r1] - str r0, [sp, #0x14] - add r0, r2, #0x18c + OV11_02309084_OFFSET - str r0, [r2, #0xdc + OV11_02309084_OFFSET] - ldr r1, [r1] - ldr r0, [r1, #0x150 + OV11_02309084_OFFSET] - str r0, [r1, #0x7c + OV11_02309084_OFFSET] -_023094E0: - ldr r1, _02309D80 ; =ov11_02324D90 - ldr r0, _02309D9C ; =ov11_02322DD0 - ldr r3, [r1] - ldr r1, [sp, #0x14] - add r2, r3, #0x7c + OV11_02309084_OFFSET - add r3, r3, #0x154 + OV11_02309084_OFFSET - bl CreateParentMenu - ldr r1, _02309D80 ; =ov11_02324D90 - mov r2, #1 - ldr r3, [r1] - strb r0, [r3, #4] - ldr r0, [r1] - str r2, [r0] - b _02309D74 -_02309518: - ldrsb r0, [r3, #4] - bl sub_02028354 - cmp r0, #3 - bne _02309538 - ldr r0, _02309D80 ; =ov11_02324D90 - ldr r0, [r0] - ldrsb r0, [r0, #4] - bl sub_0202810C -_02309538: - ldr r0, _02309D80 ; =ov11_02324D90 - ldr r0, [r0] - ldrsb r0, [r0, #4] - bl ResumeParentMenu - ldr r0, _02309D80 ; =ov11_02324D90 - mov r1, #1 - ldr r0, [r0] - str r1, [r0] - b _02309D74 -_0230955C: - add r1, sp, #0x18 - mov r0, #0 - ldr r5, [r3, #0x114 + OV11_02309084_OFFSET] - bl GetPressedButtons - ldrh r0, [sp, #0x18] - tst r0, #8 - beq _02309584 - cmp r5, #0 - moveq r0, #1 - beq _02309588 -_02309584: - mov r0, #0 -_02309588: - cmp r0, #0 - beq _023095E0 - ldr r0, _02309D80 ; =ov11_02324D90 - ldr r4, [r0] - ldrsb r0, [r4, #4] - bl GetWindowIdSelectedItemOnPage - add r0, r4, r0, lsl #3 - ldr r1, [r0, #0x158 + OV11_02309084_OFFSET] - ldr r0, _02309D80 ; =ov11_02324D90 - str r1, [r4, #0x10] - ldr r0, [r0] - ldrsb r0, [r0, #4] - bl sub_0202B030 - ldr r0, _02309D80 ; =ov11_02324D90 - ldr r0, [r0] - ldrsb r0, [r0, #4] - bl sub_0202812C - ldr r0, _02309D80 ; =ov11_02324D90 - mov r1, #4 - ldr r0, [r0] - str r1, [r0] - b _02309D74 -_023095E0: - ldr r0, _02309D80 ; =ov11_02324D90 - ldr r0, [r0] - ldrsb r0, [r0, #4] - bl IsParentMenuActive - cmp r0, #0 - bne _02309D74 - ldr r0, _02309D80 ; =ov11_02324D90 - ldr r0, [r0] - ldrsb r0, [r0, #4] - bl GetSimpleMenuResult__0202AEA4 - cmp r0, #0 - blt _02309704 - ldr r1, _02309D80 ; =ov11_02324D90 - ldr r2, [r1] - str r0, [r2, #0x10] - ldr r1, [r1] - add r2, r1, #0x11c + OV11_02309084_OFFSET - ldr r1, [r2, r0, lsl #3] - add r5, r2, r0, lsl #3 - cmp r1, #1 - bne _02309644 - ldrsh r0, [r5, #4] - bl GetTeamMember - ldrsh r4, [r0, #4] - b _02309658 -_02309644: - cmp r1, #2 - bne _02309658 - ldrsh r0, [r5, #4] - bl GetActiveTeamMember - ldrsh r4, [r0, #0xc] -_02309658: - mov r0, r5 - bl ov11_0230A044 - ldr r1, _02309D80 ; =ov11_02324D90 - mov r5, r0 - ldr r1, [r1] - ldr r0, [r1, #0x114 + OV11_02309084_OFFSET] - sub r0, r0, #1 - cmp r0, #1 - movls r0, #0x1a - strls r0, [r1] - bls _02309D74 - bl GetGameMode - cmp r0, #5 - beq _023096D0 - cmp r4, #0x140 - bne _023096D0 - mov r0, r5 - mov r1, r4 - bl StrcmpMonsterName - cmp r0, #0 - beq _023096D0 - ldr r0, _02309DA0 ; =ov11_02322DE0 - ldr r3, _02309DA4 ; =ov11_02322E28 - mov r1, #0x13 - mov r2, #0 - bl CreateParentMenuFromStringIds - ldr r1, _02309D80 ; =ov11_02324D90 - ldr r1, [r1] - strb r0, [r1, #5] - b _023096F0 -_023096D0: - ldr r0, _02309DA0 ; =ov11_02322DE0 - ldr r3, _02309DA8 ; =ov11_02322E00 - mov r1, #0x13 - mov r2, #0 - bl CreateParentMenuFromStringIds - ldr r1, _02309D80 ; =ov11_02324D90 - ldr r1, [r1] - strb r0, [r1, #5] -_023096F0: - ldr r0, _02309D80 ; =ov11_02324D90 - mov r1, #3 - ldr r0, [r0] - str r1, [r0] - b _02309D74 -_02309704: - ldr r0, _02309D80 ; =ov11_02324D90 - mov r3, #0x1a - ldr r2, [r0] - sub r1, r3, #0x1b - str r3, [r2] - ldr r0, [r0] - str r1, [r0, #0x10] - b _02309D74 -_02309724: - ldrsb r0, [r3, #5] - bl IsParentMenuActive - cmp r0, #0 - bne _02309D74 - ldr r0, _02309D80 ; =ov11_02324D90 - ldr r0, [r0] - ldrsb r0, [r0, #5] - bl GetSimpleMenuResult__0202AEA4 - mvn r1, #0 - cmp r0, r1 - beq _023097C8 - ldr r1, _02309D80 ; =ov11_02324D90 - cmp r0, #3 - ldr r2, [r1] - str r0, [r2, #0x14] - addls pc, pc, r0, lsl #2 - b _023097B4 -_02309768: ; jump table - b _02309778 ; case 0 - b _02309788 ; case 1 - b _02309798 ; case 2 - b _023097A8 ; case 3 -_02309778: - ldr r0, [r1] - mov r1, #4 - str r1, [r0] - b _023097B4 -_02309788: - ldr r0, [r1] - mov r1, #7 - str r1, [r0] - b _023097B4 -_02309798: - ldr r0, [r1] - mov r1, #0xc - str r1, [r0] - b _023097B4 -_023097A8: - ldr r0, [r1] - mov r1, #0xe - str r1, [r0] -_023097B4: - ldr r0, _02309D80 ; =ov11_02324D90 - ldr r0, [r0] - ldrsb r0, [r0, #4] - bl sub_0202812C - b _023097D8 -_023097C8: - ldr r0, _02309D80 ; =ov11_02324D90 - mov r1, #2 - ldr r0, [r0] - str r1, [r0] -_023097D8: - ldr r0, _02309D80 ; =ov11_02324D90 - ldr r0, [r0] - ldrsb r0, [r0, #5] - bl CloseParentMenu - b _02309D74 -_023097EC: - ldr r0, [r3, #0x10] - add r1, r3, #0x11c + OV11_02309084_OFFSET - add r4, r1, r0, lsl #3 - ldrsh r0, [r4, #4] - bl GetActiveTeamMember - ldrb r0, [r0, #1] - cmp r0, #0 - movne r5, #1 - ldrsh r0, [r4, #4] - moveq r5, #0 - bl GetActiveTeamMember - mov r1, r0 - add r0, sp, #0xac - and r2, r5, #0xff - bl CreateMonsterSummaryFromTeamMember - add r0, sp, #0xac - mov r1, #3 - bl sub_0203F150 - ldr r1, _02309D80 ; =ov11_02324D90 - mov r2, #5 - ldr r3, [r1] - strb r0, [r3, #9] - ldr r0, [r1] - str r2, [r0] -_0230984C: - bl sub_0203F398 - cmp r0, #1 - bne _02309D74 - bl sub_0203F974 - ldr r0, _02309D80 ; =ov11_02324D90 - mov r3, #1 - ldr r2, [r0] - mov r1, #6 - str r3, [r2, #0x18] - ldr r0, [r0] - str r1, [r0] - b _02309D74 -_0230987C: - ldr r1, [r3, #0x18] - sub r0, r1, #1 - str r0, [r3, #0x18] - cmp r1, #0 - bne _02309D74 - bl sub_0203F990 - ldr r0, _02309D80 ; =ov11_02324D90 - mov r1, #2 - ldr r0, [r0] - str r1, [r0] - b _02309D74 -_023098A8: - ldr r0, [r3, #0x10] -#ifdef JAPAN - mov r0, r0, lsl #0x10 - mov r0, r0, asr #0x10 -#else - add r0, r3, r0, lsl #3 - add r0, r0, #0x100 - ldrsh r0, [r0, #0x20] -#endif - bl sub_0203FBD4 - mov r1, #0 - mov r2, r1 - mov r0, #9 - bl sub_0204018C - ldr r1, _02309D80 ; =ov11_02324D90 - mov r2, #8 - ldr r3, [r1] - strb r0, [r3, #0xa] - ldr r0, [r1] - str r2, [r0] -_023098E4: - bl sub_020407EC - cmp r0, #1 - bne _02309934 - ldr r0, _02309D80 ; =ov11_02324D90 - ldr r1, [r0] - ldr r0, [r1, #0x10] - add r0, r1, r0, lsl #3 - add r0, r0, #0x100 - ldrsh r0, [r0, #0x20 + OV11_02309084_OFFSET] - bl sub_0203FDEC - bl sub_020407C0 - ldr r0, _02309D80 ; =ov11_02324D90 - ldr r0, [r0] - ldrsb r0, [r0, #0xa] - bl CloseAdvancedTextBox - ldr r0, _02309D80 ; =ov11_02324D90 - mov r1, #2 - ldr r0, [r0] - str r1, [r0] - b _02309D74 -_02309934: - cmp r0, #2 - cmpne r0, #7 - bne _02309D74 - ldr r0, _02309D80 ; =ov11_02324D90 - ldr r1, [r0] - ldr r0, [r1, #0x10] - add r1, r1, #0x11c + OV11_02309084_OFFSET - add r4, r1, r0, lsl #3 - bl sub_0203FD38 - ldr r2, _02309D80 ; =ov11_02324D90 - mov r1, r0 - ldr r0, [r2] - mov r2, #0x20 - add r0, r0, #0x1e - bl MemcpySimple - bl sub_02041094 - ldr r1, _02309D80 ; =ov11_02324D90 - ldr r1, [r1] - strh r0, [r1, #0x1c] - ldrsh r0, [r4, #4] - bl sub_0203FDEC - bl sub_020407C0 - ldr r0, _02309D80 ; =ov11_02324D90 - ldr r0, [r0] - ldrsb r0, [r0, #0xa] - bl CloseAdvancedTextBox - ldr r0, _02309D80 ; =ov11_02324D90 - mov r1, #0xa - ldr r0, [r0] - str r1, [r0] - b _02309D74 -_023099B0: - ldrsb r0, [r3, #0xa] - bl sub_020307EC - ldr r0, _02309D80 ; =ov11_02324D90 - mov r1, #8 - ldr r0, [r0] - str r1, [r0] - b _02309D74 -_023099CC: - ldrsh r2, [r3, #0x1c] - add r0, r3, #0x1e - mov r1, #4 - mov r3, #1 - bl sub_020417A8 - ldr r1, _02309D80 ; =ov11_02324D90 - mov r2, #0xb - ldr r3, [r1] - strb r0, [r3, #0xb] - ldr r0, [r1] - str r2, [r0] -_023099F8: - bl sub_02041A18 - cmp r0, #1 - bne _02309D74 - bl sub_02041A00 - ldr r0, _02309D80 ; =ov11_02324D90 - ldr r0, [r0] - ldrsb r0, [r0, #0xb] - bl CloseScrollBox - ldr r0, _02309D80 ; =ov11_02324D90 - mov r1, #7 - ldr r0, [r0] - str r1, [r0] - b _02309D74 -_02309A2C: - ldr r0, [r3, #0x10] - add r0, r3, r0, lsl #3 - add r0, r0, #0x100 - ldrsh r0, [r0, #0x20 + OV11_02309084_OFFSET] - bl GetActiveTeamMember - mov r1, r0 - ldrsh r0, [r1, #0xc] - ldrsh r2, [r1, #6] - add r1, r1, #0x4c - mov r3, #0 - bl PrintIqSkillsMenu - ldr r0, _02309D80 ; =ov11_02324D90 - mov r1, #0xd - ldr r0, [r0] - str r1, [r0] -_02309A68: - bl sub_02041B7C - cmp r0, #1 - bne _02309D74 - bl sub_020420F4 - ldr r0, _02309D80 ; =ov11_02324D90 - mov r1, #2 - ldr r0, [r0] - str r1, [r0] - b _02309D74 -_02309A8C: - bl ov11_0230D92C - ldr r0, _02309D80 ; =ov11_02324D90 - ldr r0, [r0] - ldrsb r0, [r0, #4] - bl CloseParentMenu - ldr r0, _02309D80 ; =ov11_02324D90 - mov r1, #0xf - ldr r0, [r0] - str r1, [r0] - b _02309D74 -_02309AB4: - bl ov11_0230D220 - cmp r0, #0 - ldreq r0, _02309D80 ; =ov11_02324D90 - moveq r1, #0x10 - ldreq r0, [r0] - streq r1, [r0] - b _02309D74 -_02309AD0: - ldr r0, [r3, #0x10] - add r1, r3, #0x11c + OV11_02309084_OFFSET - add r0, r1, r0, lsl #3 - bl ov11_0230A044 - ldr r2, _02309D80 ; =ov11_02324D90 - mov r1, r0 - ldr r0, [r2] - mov r2, #0xa - add r0, r0, #0x3e - bl StrncpySimpleNoPad - ldr r0, _02309D80 ; =ov11_02324D90 - ldr r1, [r0] -#ifdef JAPAN - add r0, r1, #0x48 -#else - add r0, r1, #0x52 -#endif - add r1, r1, #0x3e - bl StrcpySimple - ldr r1, _02309D80 ; =ov11_02324D90 - mov r0, #2 - ldr r3, [r1] - mov r2, #0 - add r1, r3, #0x3e -#ifdef JAPAN - add r3, r3, #0x48 -#else - add r3, r3, #0x52 -#endif - bl ShowKeyboard - bl ov11_02310BDC - ldr r0, _02309D80 ; =ov11_02324D90 - mov r1, #0x11 - ldr r0, [r0] - str r1, [r0] - b _02309D74 -_02309B40: - bl ov11_0230D220 - cmp r0, #0 - ldreq r0, _02309D80 ; =ov11_02324D90 - moveq r1, #0x12 - ldreq r0, [r0] - streq r1, [r0] - b _02309D74 -_02309B5C: - bl GetKeyboardStatus - cmp r0, #3 - bne _02309D74 - ldr r0, _02309D80 ; =ov11_02324D90 - mov r1, #0xa - ldr r0, [r0] - str r1, [r0, #0x18] - bl GetKeyboardStringResult - ldr r2, _02309D80 ; =ov11_02324D90 - mov r1, r0 - ldr r0, [r2] - add r0, r0, #0x3e - bl StrcpySimple - ldr r0, _02309D80 ; =ov11_02324D90 - mov r1, #0x13 - ldr r0, [r0] - str r1, [r0] - b _02309D74 -_02309BA4: - bl sub_02037468 - cmp r0, #0 - beq _02309D74 - ldr r0, _02309D80 ; =ov11_02324D90 - ldr r3, [r0] - ldr r2, [r3, #0x18] - sub r1, r2, #1 - str r1, [r3, #0x18] - cmp r2, #0 - bgt _02309D74 - ldr r1, [r0] - mov r2, #0xa -#ifdef JAPAN - add r0, r1, #0x52 -#else - add r0, r1, #0x66 -#endif - add r1, r1, #0x3e - bl StrncpySimpleNoPadSafe - ldr r0, _02309D80 ; =ov11_02324D90 - ldr r0, [r0] -#ifdef JAPAN - add r0, r0, #0x52 -#else - add r0, r0, #0x66 -#endif - bl sub_0203909C - ldr r0, _02309D80 ; =ov11_02324D90 - mov r1, #0x14 - ldr r0, [r0] - str r1, [r0] - b _02309D74 -_02309C04: - ldr r0, [r3, #0x10] - add r1, r3, #0x11c + OV11_02309084_OFFSET - add r4, r1, r0, lsl #3 - mov r0, r4 - bl ov11_0230A044 - mov r5, r0 - bl sub_0203931C - mvn r1, #0 - cmp r0, r1 - beq _02309D74 - cmp r0, #0 - beq _02309C4C - cmp r0, #1 - ldreq r0, _02309D80 ; =ov11_02324D90 - moveq r1, #0x15 - ldreq r0, [r0] - streq r1, [r0] - b _02309D74 -_02309C4C: - ldr r1, _02309D80 ; =ov11_02324D90 - mov r0, r5 - ldr r1, [r1] - mov r2, #0xa - add r1, r1, #0x3e - bl StrncpySimple - ldr r1, _02309D80 ; =ov11_02324D90 - mov r0, r5 - ldr r1, [r1] - mov r2, #0xa - add r1, r1, #0x3e - bl StrncpySimple - ldr r0, [r4] - cmp r0, #2 - bne _02309C90 - ldrsh r0, [r4, #4] - bl sub_02058794 -_02309C90: - ldr r0, _02309D80 ; =ov11_02324D90 - mov r1, #0x16 - ldr r0, [r0] - str r1, [r0] - b _02309D74 -_02309CA4: - bl sub_02039218 - cmp r0, #0 - beq _02309D74 - ldr r1, _02309D80 ; =ov11_02324D90 - mov r0, #2 - ldr r3, [r1] - mov r2, #0 - add r1, r3, #0x3e -#ifdef JAPAN - add r3, r3, #0x48 -#else - add r3, r3, #0x52 -#endif - bl ShowKeyboard - ldr r0, _02309D80 ; =ov11_02324D90 - mov r1, #0x12 - ldr r0, [r0] - str r1, [r0] - b _02309D74 -_02309CE0: - bl ov11_0230D92C - ldr r0, _02309D80 ; =ov11_02324D90 - mov r1, #0x17 - ldr r0, [r0] - str r1, [r0] - b _02309D74 -_02309CF8: - bl ov11_0230D220 - cmp r0, #0 - bne _02309D74 - bl sub_02039218 - cmp r0, #0 - ldrne r0, _02309D80 ; =ov11_02324D90 - movne r1, #0x18 - ldrne r0, [r0] - strne r1, [r0] - b _02309D74 -_02309D20: - bl ov11_0230D000 - ldr r0, _02309D80 ; =ov11_02324D90 - mov r1, #0x19 - ldr r0, [r0] - str r1, [r0] - b _02309D74 -_02309D38: - bl ov11_0230D220 - cmp r0, #0 - ldreq r0, _02309D80 ; =ov11_02324D90 - moveq r1, #0 - ldreq r0, [r0] - streq r1, [r0] - b _02309D74 -_02309D54: - ldrsb r0, [r3, #4] - bl CloseParentMenu - ldr r0, _02309D80 ; =ov11_02324D90 - mov r1, #0x1b - ldr r0, [r0] - str r1, [r0] -_02309D6C: - mov r0, #1 - b _02309D78 -_02309D74: - mov r0, #0 -_02309D78: - add sp, sp, #0x124 - ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_02309D80: .word ov11_02324D90 -_02309D84: .word 0x00401833 -_02309D88: .word ov11_02322E58 -_02309D8C: .word ov11_02322E7C -_02309D90: .word ov11_02322EA0 -#ifdef JAPAN -_02309D94: .word 0x00002FF2 -_02309D98: .word 0x00000875 -#else -_02309D94: .word 0x000002F2 -_02309D98: .word 0x00000A3A -#endif -_02309D9C: .word ov11_02322DD0 -_02309DA0: .word ov11_02322DE0 -_02309DA4: .word ov11_02322E28 -_02309DA8: .word ov11_02322E00 - arm_func_end ov11_023090DC - - arm_func_start ov11_02309DAC -ov11_02309DAC: ; 0x02309DAC - ldr r1, _02309DF4 ; =ov11_02324D90 - ldr r1, [r1] - ldr r2, [r1, #0x10] -#ifdef JAPAN - add r3, r1, #0xfc -#else - add r3, r1, #0x11c -#endif - ldr r1, [r3, r2, lsl #3] - add r2, r3, r2, lsl #3 - cmp r1, #1 - moveq r1, #0 - streq r1, [r0] - ldreqsh r1, [r2, #4] - streqh r1, [r0, #4] - bxeq lr - cmp r1, #2 - moveq r1, #1 - streq r1, [r0] - ldreqsh r1, [r2, #4] - streqh r1, [r0, #4] - bx lr - .align 2, 0 -_02309DF4: .word ov11_02324D90 - arm_func_end ov11_02309DAC - - arm_func_start ov11_02309DF8 -ov11_02309DF8: ; 0x02309DF8 - stmdb sp!, {r3, lr} - ldr r0, _02309E20 ; =ov11_02324D90 - ldr r0, [r0] - cmp r0, #0 - ldmeqia sp!, {r3, pc} - bl MemFree - ldr r0, _02309E20 ; =ov11_02324D90 - mov r1, #0 - str r1, [r0] - ldmia sp!, {r3, pc} - .align 2, 0 -_02309E20: .word ov11_02324D90 - arm_func_end ov11_02309DF8 - - arm_func_start ov11_02309E24 -ov11_02309E24: ; 0x02309E24 - ldr r0, _02309E44 ; =ov11_02324D90 - ldr r0, [r0] - cmp r0, #0 - ldrne r0, [r0, #0x10] - movne r0, r0, lsl #0x10 - movne r0, r0, asr #0x10 - mvneq r0, #0 - bx lr - .align 2, 0 -_02309E44: .word ov11_02324D90 - arm_func_end ov11_02309E24 - - arm_func_start ov11_02309E48 -ov11_02309E48: ; 0x02309E48 - stmdb sp!, {r3, r4, r5, r6, r7, lr} - mov r7, r0 - mov r0, #0x34 - mov r1, #0 - mov r5, #1 - bl MemAlloc - mov r1, #2 - mov r4, r0 - bl ov11_02309EE4 - mov r6, #0 - b _02309EBC -_02309E74: - ldr r0, [r4, r6, lsl #3] - add r1, r4, r6, lsl #3 - cmp r0, #1 - bne _02309E9C - ldrsh r0, [r1, #4] - mov r1, r7 - bl sub_02055FCC - cmp r0, #0 - bne _02309EC8 - b _02309EB8 -_02309E9C: - cmp r0, #2 - bne _02309EB8 - ldrsh r0, [r1, #4] - mov r1, r7 - bl sub_020586F0 - cmp r0, #0 - bne _02309EC8 -_02309EB8: - add r6, r6, #1 -_02309EBC: - ldr r0, [r4, #0x30] - cmp r6, r0 - blt _02309E74 -_02309EC8: - ldr r0, [r4, #0x30] - cmp r6, r0 - mov r0, r4 - moveq r5, #0 - bl MemFree - mov r0, r5 - ldmia sp!, {r3, r4, r5, r6, r7, pc} - arm_func_end ov11_02309E48 - - arm_func_start ov11_02309EE4 -ov11_02309EE4: ; 0x02309EE4 - stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - mov r4, #0 - mov sl, r0 - mov r5, r1 - mov r1, r4 - str r4, [sl, #0x30] - mov r0, r4 -_02309F00: - str r0, [sl, r1, lsl #3] - add r1, r1, #1 - cmp r1, #6 - blt _02309F00 - bl sub_0204E210 - mvn r1, #0 - cmp r0, r1 - bne _02309F2C - bl sub_0205633C - cmp r0, #0 - moveq r4, #1 -_02309F2C: - cmp r4, #0 - beq _02309FD4 - sub r0, r5, #1 - cmp r0, #1 - bhi _02309FD4 - bl GetGameMode - cmp r0, #1 - ldrls sb, _0230A03C ; =ov11_02322DC8 - mov fp, #2 - ldrhi sb, _0230A040 ; =ov11_02322DF0 - mov r5, #1 - mvn r4, #0 - b _02309FB8 -_02309F60: - ldrsh r0, [sb], #2 - bl GetActorMatchingStorageId - ldr r1, [sl, #0x30] - mov r7, r0 - cmp r7, r4 - add r8, sl, r1, lsl #3 - beq _02309FB8 - bl GetActiveRosterIndex - mov r6, r0 - cmp r6, r4 - streq r5, [r8] - streqh r7, [r8, #4] - beq _02309FAC - bl GetActiveTeamMember - ldrsh r0, [r0, #8] - bl CheckTeamMemberIdx - cmp r0, #0 - streq fp, [r8] - streqh r6, [r8, #4] -_02309FAC: - ldr r0, [sl, #0x30] - add r0, r0, #1 - str r0, [sl, #0x30] -_02309FB8: - ldrsh r0, [sb] - cmp r0, r4 - beq _0230A034 - ldr r0, [sl, #0x30] - cmp r0, #6 - blt _02309F60 - b _0230A034 -_02309FD4: - mov r7, #0 - mov r8, sl - mov r5, r7 - mov r6, #1 - mov r4, #2 -_02309FE8: - mov r0, r7 - bl GetActiveTeamMember - ldrb r0, [r0] - tst r0, #1 - movne r0, r6 - moveq r0, r5 - tst r0, #0xff - beq _0230A020 - str r4, [r8] - strh r7, [r8, #4] - ldr r0, [sl, #0x30] - add r8, r8, #8 - add r0, r0, #1 - str r0, [sl, #0x30] -_0230A020: - add r0, r7, #1 - mov r0, r0, lsl #0x10 - mov r7, r0, asr #0x10 - cmp r7, #4 - blt _02309FE8 -_0230A034: - ldr r0, [sl, #0x30] - ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_0230A03C: .word ov11_02322DC8 -_0230A040: .word ov11_02322DF0 - arm_func_end ov11_02309EE4 - - arm_func_start ov11_0230A044 -ov11_0230A044: ; 0x0230A044 - stmdb sp!, {r3, lr} - ldr r1, [r0] - cmp r1, #1 - bne _0230A064 - ldrsh r0, [r0, #4] - bl GetTeamMember - add r0, r0, #0x3a - ldmia sp!, {r3, pc} -_0230A064: - cmp r1, #2 - ldmneia sp!, {r3, pc} - ldrsh r0, [r0, #4] - bl GetActiveTeamMember - add r0, r0, #0x5e - ldmia sp!, {r3, pc} - arm_func_end ov11_0230A044 - - arm_func_start ov11_0230A07C -ov11_0230A07C: ; 0x0230A07C - stmdb sp!, {r3, lr} - ldr r0, _0230A0CC ; =ov11_02322ECC - bl InitMenu - cmp r0, #0 - ldmeqia sp!, {r3, pc} - mov r0, #0xc - mov r1, #8 - bl MemAlloc - ldr r1, _0230A0D0 ; =ov11_02324D94 - mov r3, #0 - str r0, [r1] - str r3, [r0, #4] - ldr r0, [r1] - sub r2, r3, #2 - str r3, [r0, #8] - ldr r0, [r1] - strb r2, [r0] - ldr r0, [r1] - strb r2, [r0, #1] - ldmia sp!, {r3, pc} - .align 2, 0 -_0230A0CC: .word ov11_02322ECC -_0230A0D0: .word ov11_02324D94 - arm_func_end ov11_0230A07C - - arm_func_start ov11_0230A0D4 -ov11_0230A0D4: ; 0x0230A0D4 - stmdb sp!, {r3, lr} - ldr r0, _0230A0FC ; =ov11_02324D94 - ldr r0, [r0] - cmp r0, #0 - ldmeqia sp!, {r3, pc} - bl MemFree - ldr r0, _0230A0FC ; =ov11_02324D94 - mov r1, #0 - str r1, [r0] - ldmia sp!, {r3, pc} - .align 2, 0 -_0230A0FC: .word ov11_02324D94 - arm_func_end ov11_0230A0D4 - - arm_func_start ov11_0230A100 -ov11_0230A100: ; 0x0230A100 - stmdb sp!, {r4, lr} - sub sp, sp, #0x138 - ldr r0, _0230A2B0 ; =ov11_02324D94 - ldr r2, [r0] - ldr r0, [r2, #8] - cmp r0, #6 - addls pc, pc, r0, lsl #2 - b _0230A2A4 -_0230A120: ; jump table - b _0230A13C ; case 0 - b _0230A184 ; case 1 - b _0230A13C ; case 2 - b _0230A1F4 ; case 3 - b _0230A258 ; case 4 - b _0230A298 ; case 5 - b _0230A298 ; case 6 -_0230A13C: - ldr lr, [r2, #4] - ldr ip, _0230A2B4 ; =0x00003FB8 - mov r4, #0x10 - ldr r0, _0230A2B8 ; =ov11_02322EAC - ldr r1, _0230A2BC ; =0x00401833 - ldr r3, _0230A2C0 ; =ov11_02322EDC - add r2, sp, #0xa0 - str lr, [sp, #0xa0] - strh ip, [sp, #0xa8] - str r4, [sp, #0xac] - bl CreateParentMenuFromStringIds - ldr r1, _0230A2B0 ; =ov11_02324D94 - mov r2, #1 - ldr r3, [r1] - strb r0, [r3] - ldr r0, [r1] - str r2, [r0, #8] - b _0230A2A4 -_0230A184: - ldrsb r0, [r2] - bl IsParentMenuActive - cmp r0, #0 - bne _0230A2A4 - ldr r0, _0230A2B0 ; =ov11_02324D94 - ldr r0, [r0] - ldrsb r0, [r0] - bl GetSimpleMenuResult__0202AEA4 - ldr r1, _0230A2B0 ; =ov11_02324D94 - mov r4, r0 - ldr r0, [r1] - ldrsb r0, [r0] - bl CloseParentMenu - ldr r0, _0230A2B0 ; =ov11_02324D94 - mvn r2, #1 - ldr r1, [r0] - cmp r4, #0 - strb r2, [r1] - ldrlt r0, [r0] - movlt r1, #6 - strlt r1, [r0, #8] - blt _0230A2A4 - ldr r2, [r0] - mov r1, #3 - str r4, [r2, #4] - ldr r0, [r0] - str r1, [r0, #8] - b _0230A2A4 -_0230A1F4: - mov r0, #0x10 - str r0, [sp, #0x14] - ldr r1, [r2, #4] - ldr r0, _0230A2C0 ; =ov11_02322EDC - mov r1, r1, lsl #3 - ldrh r1, [r0, r1] - mov r4, #8 - ldr r0, _0230A2C4 ; =ov11_02322EBC - strh r1, [sp, #0x10] - ldr r2, [r2, #4] - ldr r1, _0230A2C8 ; =0x00009833 - str r2, [sp, #8] - str r4, [sp] - mov r4, #1 - ldr r3, _0230A2CC ; =ov11_0230A2D0 - add r2, sp, #8 - str r4, [sp, #4] - bl CreateAdvancedTextBox - ldr r1, _0230A2B0 ; =ov11_02324D94 - mov r2, #4 - ldr r3, [r1] - strb r0, [r3, #1] - ldr r0, [r1] - str r2, [r0, #8] - b _0230A2A4 -_0230A258: - ldrsb r0, [r2, #1] - bl IsAdvancedTextBoxActive - cmp r0, #0 - bne _0230A2A4 - ldr r0, _0230A2B0 ; =ov11_02324D94 - ldr r0, [r0] - ldrsb r0, [r0, #1] - bl CloseAdvancedTextBox - ldr r0, _0230A2B0 ; =ov11_02324D94 - mvn r3, #1 - ldr r2, [r0] - mov r1, #2 - strb r3, [r2, #1] - ldr r0, [r0] - str r1, [r0, #8] - b _0230A2A4 -_0230A298: - bl ov11_02301174 - mov r0, #4 - b _0230A2A8 -_0230A2A4: - mov r0, #1 -_0230A2A8: - add sp, sp, #0x138 - ldmia sp!, {r4, pc} - .align 2, 0 -_0230A2B0: .word ov11_02324D94 -#if defined(EUROPE) -_0230A2B4: .word 0x00003FBA -#elif defined(JAPAN) -_0230A2B4: .word 0x000049BB -#else -_0230A2B4: .word 0x00003FB8 -#endif -_0230A2B8: .word ov11_02322EAC -_0230A2BC: .word 0x00401833 -_0230A2C0: .word ov11_02322EDC -_0230A2C4: .word ov11_02322EBC -_0230A2C8: .word 0x00009833 -_0230A2CC: .word ov11_0230A2D0 - arm_func_end ov11_0230A100 - - arm_func_start ov11_0230A2D0 -ov11_0230A2D0: ; 0x0230A2D0 - stmdb sp!, {r3, r4, r5, lr} - mov r5, r0 - bl GetWindowIdPageStart - mov r4, r0 - ldr r0, _0230A318 ; =ov11_02322EDC - mov r1, r4, lsl #3 - ldrh r1, [r0, r1] - mov r0, r5 - bl SetWindowTitle -#if defined(EUROPE) - add r0, r4, #0xc3 - add r0, r0, #0x3f00 -#elif defined(JAPAN) - add r0, r4, #0x1c4 - add r0, r0, #0x4800 -#else - add r0, r4, #0xc1 - add r0, r0, #0x3f00 -#endif - mov r1, r0, lsl #0x10 - mov r0, r5 - mov r3, r1, lsr #0x10 - mov r1, #4 - mov r2, #0x10 - bl AppendStandardStringToMission - ldmia sp!, {r3, r4, r5, pc} - .align 2, 0 -_0230A318: .word ov11_02322EDC - arm_func_end ov11_0230A2D0 - - arm_func_start ov11_0230A31C -ov11_0230A31C: ; 0x0230A31C - stmdb sp!, {r4, r5, r6, lr} - mov r6, r0 - mov r5, r1 - mov r0, #0x148 - mov r1, #8 - bl MemAlloc - ldr r2, _0230A38C ; =ov11_02324D98 - mov r1, #0x148 - str r0, [r2, #4] - bl MemZero - ldr r0, _0230A38C ; =ov11_02324D98 - mov ip, #4 - ldr r4, [r0, #4] - stmib r4, {r5, r6} - add lr, r4, #0xc -_0230A358: - ldmia r6!, {r0, r1, r2, r3} - stmia lr!, {r0, r1, r2, r3} - subs ip, ip, #1 - bne _0230A358 - ldr r1, [r6] - mvn r0, #1 - str r1, [lr] - strb r0, [r4, #0x74] - strb r0, [r4, #0x78] - mov r0, #0 - str r0, [r4] - str r0, [r4, #0x144] - ldmia sp!, {r4, r5, r6, pc} - .align 2, 0 -_0230A38C: .word ov11_02324D98 - arm_func_end ov11_0230A31C - - arm_func_start ov11_0230A390 -ov11_0230A390: ; 0x0230A390 - stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} - sub sp, sp, #0x1b4 - ldr r0, _0230AD0C ; =ov11_02324D98 - ldr sb, [r0, #4] - ldr r0, [sb] - cmp r0, #0xe - addls pc, pc, r0, lsl #2 - b _0230AD00 -_0230A3B0: ; jump table - b _0230A3EC ; case 0 - b _0230A41C ; case 1 - b _0230A4B8 ; case 2 - b _0230A510 ; case 3 - b _0230A68C ; case 4 - b _0230A68C ; case 5 - b _0230A6C8 ; case 6 - b _0230A6E4 ; case 7 - b _0230A750 ; case 8 - b _0230A844 ; case 9 - b _0230A958 ; case 10 - b _0230A98C ; case 11 - b _0230A9D0 ; case 12 - b _0230AB1C ; case 13 - b _0230ACE4 ; case 14 -_0230A3EC: - ldr r0, [sb, #8] - ldrb r0, [r0, #1] - cmp r0, #0x64 - bhs _0230A410 - ldr r0, [sb, #4] - cmp r0, #0 - ble _0230A410 - mov r0, #1 - bl sub_02017C50 -_0230A410: - mov r0, #1 - str r0, [sb] - b _0230AD00 -_0230A41C: - ldr r5, [sb, #8] - ldrb r2, [r5, #1] - cmp r2, #0x64 - bhs _0230A440 - ldrb r1, [sb, #0xd] - ldr r0, [sb, #4] - add r0, r1, r0 - cmp r2, r0 - blt _0230A44C -_0230A440: - mov r0, #0xd - str r0, [sb] - b _0230AD00 -_0230A44C: - mov r0, #0x100 - mov r1, #0xf - bl MemAlloc - mov r4, r0 - mov r0, r5 - bl sub_020546E8 - add r0, sp, #0x164 - bl InitPreprocessorArgs - mov r0, r5 - bl sub_02055894 - bl sub_020564B0 - mov r2, r0 - mov r0, r4 - mov r1, r5 - bl sub_02056094 - str r4, [sp, #0x19c] - ldrb r2, [r5, #1] - ldr r1, _0230AD10 ; =0x000004A6 - mov r0, #0x1c - str r2, [sp, #0x188] - add r2, sp, #0x164 - bl sub_02046BE8 - mov r0, r4 - bl MemFree - mov r0, #2 - str r0, [sb] - b _0230AD00 -_0230A4B8: - bl sub_02046C78 - cmp r0, #0 - movne r0, #6 - moveq r0, #0 - cmp r0, #6 - bne _0230AD00 -#ifdef JAPAN - ldr r0, [sb, #8] - ldr r3, _0230C2B4 ; =0x000003E7 - ldrsh r1, [r0, #4] - ldrb r2, [r0, #1] - add r0, sb, #0x54 -#else - ldr r3, [sb, #8] - add r0, sb, #0x54 - ldrsh r1, [r3, #4] - ldrb r2, [r3, #1] - ldrsh r3, [r3, #8] -#endif - bl sub_02053A0C - strh r0, [sb, #0x50] - mov r0, #0 - strh r0, [sb, #0x52] - ldrh r0, [sb, #0x50] - cmp r0, #0 - movne r0, #3 - strne r0, [sb] - moveq r0, #1 - streq r0, [sb] - b _0230AD00 -_0230A510: - ldrh r1, [sb, #0x52] - ldrh r0, [sb, #0x50] - ldr r4, [sb, #8] - mov r8, #0 - cmp r1, r0 - movhs r0, #1 - sub r5, r8, #1 - strhs r0, [sb] - bhs _0230AD00 - mov sl, r8 - add r2, sb, r1, lsl #1 - mov r6, r8 - mov r7, #1 - mov r0, #6 - b _0230A58C -_0230A54C: - mla r3, sl, r0, r4 - ldrb r1, [r3, #0x22] - tst r1, #1 - movne r1, r7 - moveq r1, r6 - tst r1, #0xff - beq _0230A580 - ldrh r3, [r3, #0x24] - ldrh r1, [r2, #0x54] - cmp r3, r1 - bne _0230A588 - mov r8, #1 - b _0230A594 -_0230A580: - cmp r5, #0 - movlt r5, sl -_0230A588: - add sl, sl, #1 -_0230A58C: - cmp sl, #4 - blt _0230A54C -_0230A594: - cmp r8, #0 - ldrneh r0, [sb, #0x52] - addne r0, r0, #1 - strneh r0, [sb, #0x52] - bne _0230AD00 - add r0, sp, #0x114 - bl InitPreprocessorArgs - mov r0, #0x100 - mov r1, #0xf - bl MemAlloc - mov r6, r0 - mov r0, r4 - bl sub_02055894 - bl sub_020564B0 - mov r2, r0 - mov r0, r6 - mov r1, r4 - bl sub_02056094 - str r6, [sp, #0x14c] - cmp r5, #0 - blt _0230A644 - ldrh r1, [sb, #0x52] - add r2, r4, #0x22 - mov r0, #6 - add r1, sb, r1, lsl #1 - mla r0, r5, r0, r2 - ldrh r1, [r1, #0x54] - bl GetInfoMoveGround - ldrh r2, [sb, #0x52] - ldr r0, _0230AD14 ; =0x0000131B - mov r1, #0x100 - add r2, sb, r2, lsl #1 - ldrh r2, [r2, #0x54] - str r2, [sp, #0x124] - bl sub_02017C74 - ldr r1, _0230AD18 ; =0x000004A8 - add r2, sp, #0x114 - mov r0, #0x1c - bl sub_02046BE8 - ldrh r1, [sb, #0x52] - mov r0, #4 - add r1, r1, #1 - strh r1, [sb, #0x52] - b _0230A67C -_0230A644: - ldrsh r2, [r4, #4] - ldr r0, _0230AD1C ; =0xFFFFFE5E - ldr r1, _0230AD20 ; =0x000004A9 -#ifdef JAPAN - add r0, r2, r0 - mov r0, r0, lsl #0x10 - mov r0, r0, asr #0x10 - mov r0, r0, lsl #0x10 - mov r0, r0, lsr #0x10 - cmp r0, #3 - addls r1, r1, #1 -#else - add r2, r2, r0 - mov r2, r2, lsl #0x10 - mov r2, r2, asr #0x10 - mov r2, r2, lsl #0x10 - mov r2, r2, lsr #0x10 - cmp r2, #3 - rsbls r1, r0, #0x308 -#endif - add r2, sp, #0x114 - mov r0, #0x1c - bl sub_02046BE8 - mov r0, #5 -_0230A67C: - str r0, [sb] - mov r0, r6 - bl MemFree - b _0230AD00 -_0230A68C: - bl sub_02046C78 - cmp r0, #0 - movne r0, #6 - moveq r0, #0 - cmp r0, #6 - bne _0230AD00 - ldr r0, [sb] - cmp r0, #5 - moveq r0, #0 - streqh r0, [sb, #0x76] - moveq r0, #6 - streq r0, [sb] - movne r0, #1 - strne r0, [sb] - b _0230AD00 -_0230A6C8: - bl sub_02046D20 - mov r0, #7 - str r0, [sb] - bl sub_020037A4 - add r0, r0, #0xa - str r0, [sb, #0x144] - b _0230AD00 -_0230A6E4: - bl sub_020037A4 - ldr r1, [sb, #0x144] - cmp r1, r0 - bge _0230AD00 - ldr r1, _0230AD0C ; =ov11_02324D98 - mvn r0, #1 - ldr r4, [r1, #4] - ldrsb r1, [r4, #0x74] - cmp r1, r0 - bne _0230A744 - ldrh r0, [r4, #0x52] - add r0, r4, r0, lsl #1 - ldrh r0, [r0, #0x54] - bl sub_0203FD14 - ldr r0, [r4, #8] - bl sub_02055894 - bl sub_0203FA64 - mov r1, #0 - mov r2, r1 - mov r0, #3 - bl sub_0204018C - strb r0, [r4, #0x74] - ldrsh r0, [r4, #0x76] - bl sub_020410A4 -_0230A744: - mov r0, #8 - str r0, [sb] - b _0230AD00 -_0230A750: - bl sub_020407EC - cmp r0, #1 - beq _0230AD00 - cmp r0, #7 - bne _0230A7A4 - bl sub_02041094 - strh r0, [sb, #0x76] - bl sub_0203FD38 - mov r1, r0 - add r0, sb, #0x7a - mov r2, #0x20 - bl MemcpySimple - ldrh r1, [sb, #0x52] - add r0, sb, #0x9a - add r1, sb, r1, lsl #1 - ldrh r1, [r1, #0x54] - bl InitMove - bl ov11_0230ADCC - mov r0, #0xa - str r0, [sb] - b _0230AD00 -_0230A7A4: - cmp r0, #2 - bne _0230AD00 - bl sub_02041094 - strh r0, [sb, #0x76] - add r0, sb, #0xa4 - mov r1, #0x98 - bl MemZero - mov r2, #0 - mov r1, r2 -_0230A7C8: - add r0, sb, r2 - add r2, r2, #1 - strb r1, [r0, #0x13c] - cmp r2, #5 - blt _0230A7C8 - ldrsh r0, [sb, #0x76] - cmp r0, #4 - bge _0230A7F4 - bl sub_02041364 - cmp r0, #0 - bne _0230A7FC -_0230A7F4: - mov r0, #3 - strb r0, [sb, #0x13d] -_0230A7FC: - ldr r0, _0230AD0C ; =ov11_02324D98 - ldr r1, _0230AD24 ; =ov11_02322F5C - ldrsb r3, [r0] - add r2, sb, #0x13c - ldr r0, _0230AD28 ; =ov11_02322F58 - ldr r3, [r1, r3, lsl #3] - mov r1, #0 - str r3, [sb, #0xa4] - str r2, [sb, #0x104] - stmia sp, {r0, r1} - ldr r0, _0230AD2C ; =ov11_02322F30 - ldr r2, _0230AD30 ; =0x00000233 - add r3, sb, #0xa4 - str r1, [sp, #8] - bl sub_02046A20 - mov r0, #9 - str r0, [sb] - b _0230AD00 -_0230A844: - bl ov11_0230AD94 - mov r4, r0 - bl sub_02046BA0 - ldr r1, _0230AD0C ; =ov11_02324D98 - cmp r4, #6 - strb r0, [r1] - bne _0230A870 - bl sub_020416FC - mov r0, #6 - str r0, [sb] - b _0230AD00 -_0230A870: - cmp r4, #1 - bne _0230A8F8 - ldrsh r0, [sb, #0x76] - cmp r0, #4 - bge _0230A890 - bl sub_02041364 - cmp r0, #0 - bne _0230A898 -_0230A890: - ldr r4, _0230AD34 ; =0x000004AC - b _0230A89C -_0230A898: - ldr r4, _0230AD38 ; =0x000004AB -_0230A89C: - add r0, sp, #0xc4 - bl InitPreprocessorArgs - ldrsh r0, [sb, #0x76] - bl sub_02041154 - str r0, [sp, #0xd4] - bl ov11_0230ADCC - add r0, sb, #0xa4 - mov r1, #0x98 - bl MemZero - mov r0, #5 - str r0, [sb, #0xa4] - ldr r1, _0230AD3C ; =ov11_02322F40 - add r0, sp, #0xc4 - stmia sp, {r1, r4} - str r0, [sp, #8] - mov r0, #0 - mov r1, r0 - mov r2, #0x33 - add r3, sb, #0xa4 - bl sub_02046A20 - mov r0, #0xc - str r0, [sb] - b _0230AD00 -_0230A8F8: - cmp r4, #2 - bne _0230A918 - ldrsh r0, [sb, #0x76] - bl sub_02041394 - bl ov11_0230ADCC - mov r0, #6 - str r0, [sb] - b _0230AD00 -_0230A918: - cmp r4, #3 - bne _0230AD00 - bl sub_0203FD38 - mov r1, r0 - add r0, sb, #0x7a - mov r2, #0x20 - bl MemcpySimple - ldrh r1, [sb, #0x52] - add r0, sb, #0x9a - add r1, sb, r1, lsl #1 - ldrh r1, [r1, #0x54] - bl InitMove - bl ov11_0230ADCC - mov r0, #0xa - str r0, [sb] - b _0230AD00 -_0230A958: - ldrsb r1, [sb, #0x78] - mvn r0, #1 - cmp r1, r0 - bne _0230A980 - ldrsh r2, [sb, #0x76] - add r0, sb, #0x7a - mov r1, #5 - mov r3, #1 - bl sub_020417A8 - strb r0, [sb, #0x78] -_0230A980: - mov r0, #0xb - str r0, [sb] - b _0230AD00 -_0230A98C: - bl sub_02041A18 - cmp r0, #1 - bne _0230AD00 - ldr r1, _0230AD0C ; =ov11_02324D98 - mvn r0, #1 - ldr r4, [r1, #4] - ldrsb r1, [r4, #0x78] - cmp r1, r0 - beq _0230A9C4 - bl sub_02041A00 - ldrsb r0, [r4, #0x78] - bl CloseScrollBox - mvn r0, #1 - strb r0, [r4, #0x78] -_0230A9C4: - mov r0, #6 - str r0, [sb] - b _0230AD00 -_0230A9D0: - bl ov11_0230AD94 - cmp r0, #4 - bne _0230AB08 - ldrsh r0, [sb, #0x76] - cmp r0, #4 - blt _0230AA00 - ldrh r1, [sb, #0x52] - mov r0, #1 - add r1, r1, #1 - strh r1, [sb, #0x52] - str r0, [sb] - b _0230AAFC -_0230AA00: - ldr r7, [sb, #8] - mvn r5, #0 - bl sub_02041484 - bl sub_0203FD38 - mov r6, r0 - mov r8, #0 - add r4, r7, #0x22 - mov fp, #6 -_0230AA20: - mul sl, r8, fp - add r0, r4, sl - add r1, r6, r8, lsl #3 - bl DungeonMoveToGroundMove - cmp r5, #0 - bge _0230AA54 - add r0, r7, sl - ldrb r0, [r0, #0x22] - tst r0, #1 - movne r0, #1 - moveq r0, #0 - tst r0, #0xff - moveq r5, r8 -_0230AA54: - add r8, r8, #1 - cmp r8, #4 - blt _0230AA20 - add r0, sp, #0x74 - bl InitPreprocessorArgs - mov r0, #0x100 - mov r1, #0xf - bl MemAlloc - mov r4, r0 - mov r0, r7 - bl sub_02055894 - bl sub_020564B0 - mov r2, r0 - mov r0, r4 - mov r1, r7 - bl sub_02056094 - add r1, r7, #0x22 - mov r0, #6 - str r4, [sp, #0xac] - mla r0, r5, r0, r1 - ldrh r1, [sb, #0x52] - add r1, sb, r1, lsl #1 - ldrh r1, [r1, #0x54] - bl GetInfoMoveGround - ldrh r2, [sb, #0x52] - ldr r0, _0230AD14 ; =0x0000131B - mov r1, #0x100 - add r2, sb, r2, lsl #1 - ldrh r2, [r2, #0x54] - str r2, [sp, #0x84] - bl sub_02017C74 - ldr r1, _0230AD18 ; =0x000004A8 - mov r0, #0x1c - add r2, sp, #0x74 - bl sub_02046BE8 - ldrh r2, [sb, #0x52] - mov r0, r4 - mov r1, #4 - add r2, r2, #1 - strh r2, [sb, #0x52] - str r1, [sb] - bl MemFree -_0230AAFC: - mov r0, #0 - bl sub_020410A4 - b _0230AD00 -_0230AB08: - sub r0, r0, #5 - cmp r0, #1 - movls r0, #6 - strls r0, [sb] - b _0230AD00 -_0230AB1C: - mov r0, #0x400 - mov r1, #0xf - ldr r6, [sb, #8] - mov r7, #0 - bl MemAlloc - mov r4, r0 - mov r0, #0x100 - mov r1, #0xf - bl MemAlloc - str r0, [sp, #0xc] - mov r0, #0x100 - mov r1, #0xf - bl MemAlloc - mov r5, r0 - mov r0, r7 - strb r0, [r4] - mov r0, r6 - bl sub_02055894 - bl sub_020564B0 - mov r2, r0 - mov r0, r5 - mov r1, r6 - bl sub_02056094 - add r0, sp, #0x24 - bl InitPreprocessorArgs - mov r8, r7 - ldrb r1, [r6, #0xc] - ldrb r0, [sb, #0x18] - ldrsh r3, [r6, #0xa] - ldrsh r2, [sb, #0x16] - sub r0, r1, r0 - str r0, [sp, #0x14] - sub r2, r3, r2 - str r2, [sp, #0x10] - ldrb r1, [r6, #0xe] - ldrb r0, [sb, #0x1a] - ldrb r3, [r6, #0xd] - ldrb r2, [sb, #0x19] - sub r0, r1, r0 - str r0, [sp, #0x1c] - sub r2, r3, r2 - ldrb r1, [r6, #0xf] - ldrb r0, [sb, #0x1b] - str r2, [sp, #0x18] - mov sl, r8 - sub r0, r1, r0 - str r0, [sp, #0x20] -_0230ABD8: - add r0, sp, #0x10 - ldr fp, [r0, sl, lsl #2] - cmp fp, #0 - ble _0230AC58 - cmp r7, #0 - beq _0230AC10 - cmp r8, #3 - beq _0230AC04 - ldr r1, _0230AD40 ; =ov11_02322F80 - mov r0, r4 - bl strcat -_0230AC04: - ldr r1, _0230AD44 ; =ov11_02322F84 - mov r0, r4 - bl strcat -_0230AC10: - add r0, sp, #0x24 - ldr r2, _0230AD48 ; =ov11_02322F24 - mov r3, sl, lsl #1 - ldrh r2, [r2, r3] - str r5, [sp, #0x5c] - add r0, r0, sl, lsl #2 - str fp, [r0, #0x24] - add r0, sp, #0x24 - str r0, [sp] - ldr r0, [sp, #0xc] - mov r1, #0x100 - mov r3, #0 - bl PreprocessStringFromId - ldr r1, [sp, #0xc] - mov r0, r4 - bl strcat - mov r7, #1 - add r8, r8, #1 -_0230AC58: - add sl, sl, #1 - cmp sl, #5 - blt _0230ABD8 - ldr r1, _0230AD44 ; =ov11_02322F84 - mov r0, r4 - bl strcat - cmp r7, #0 - beq _0230AC8C - add r2, sp, #0x24 - mov r1, r4 - mov r0, #0x1c - bl sub_02046C30 - b _0230ACB4 -_0230AC8C: - ldrb r1, [r6, #1] - ldrb r0, [sb, #0xd] - cmp r1, r0 - bne _0230ACB4 - ldr r1, _0230AD4C ; =0x000004A7 - add r2, sp, #0x24 - mov r0, #0x1c - str r5, [sp, #0x5c] - bl sub_02046BE8 - mov r7, #1 -_0230ACB4: - mov r0, r4 - bl MemFree - ldr r0, [sp, #0xc] - bl MemFree - mov r0, r5 - bl MemFree - cmp r7, #0 - movne r0, #0xe - strne r0, [sb] - bne _0230AD00 - mov r0, #1 - b _0230AD04 -_0230ACE4: - bl sub_02046C78 - cmp r0, #0 - movne r0, #6 - moveq r0, #0 - cmp r0, #6 - moveq r0, #1 - beq _0230AD04 -_0230AD00: - mov r0, #0 -_0230AD04: - add sp, sp, #0x1b4 - ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -#ifdef JAPAN -#define OV11_0230A390_OFFSET 0x3725 -#else -#define OV11_0230A390_OFFSET 0 -#endif -_0230AD0C: .word ov11_02324D98 -_0230AD10: .word 0x000004A6 + OV11_0230A390_OFFSET -#ifdef JAPAN -_0230C2B4: .word 0x000003E7 -#endif -_0230AD14: .word 0x0000131B -_0230AD18: .word 0x000004A8 + OV11_0230A390_OFFSET -_0230AD1C: .word 0xFFFFFE5E -_0230AD20: .word 0x000004A9 + OV11_0230A390_OFFSET -_0230AD24: .word ov11_02322F5C -_0230AD28: .word ov11_02322F58 -_0230AD2C: .word ov11_02322F30 -_0230AD30: .word 0x00000233 -_0230AD34: .word 0x000004AC + OV11_0230A390_OFFSET -_0230AD38: .word 0x000004AB + OV11_0230A390_OFFSET -_0230AD3C: .word ov11_02322F40 -_0230AD40: .word ov11_02322F80 -_0230AD44: .word ov11_02322F84 -_0230AD48: .word ov11_02322F24 -_0230AD4C: .word 0x000004A7 + OV11_0230A390_OFFSET - arm_func_end ov11_0230A390 - - arm_func_start ov11_0230AD50 -ov11_0230AD50: ; 0x0230AD50 - stmdb sp!, {r3, lr} - ldr r0, _0230AD78 ; =ov11_02324D98 - ldr r0, [r0, #4] - cmp r0, #0 - ldmeqia sp!, {r3, pc} - bl MemFree - ldr r0, _0230AD78 ; =ov11_02324D98 - mov r1, #0 - str r1, [r0, #4] - ldmia sp!, {r3, pc} - .align 2, 0 -_0230AD78: .word ov11_02324D98 - arm_func_end ov11_0230AD50 - - arm_func_start IsGroundMonsterAtMaxLevel -IsGroundMonsterAtMaxLevel: ; 0x0230AD7C - ldrb r0, [r0, #1] - cmp r0, #0x64 - movhs r0, #1 - movlo r0, #0 - and r0, r0, #0xff - bx lr - arm_func_end IsGroundMonsterAtMaxLevel - - arm_func_start ov11_0230AD94 -ov11_0230AD94: ; 0x0230AD94 - stmdb sp!, {r3, lr} - bl sub_02046B04 - mvn r2, #0 - cmp r0, r2 - moveq r0, #0 - ldmeqia sp!, {r3, pc} - sub r1, r2, #1 - cmp r0, r1 - moveq r0, #6 - ldmeqia sp!, {r3, pc} - sub r1, r2, #2 - cmp r0, r1 - moveq r0, #6 - ldmia sp!, {r3, pc} - arm_func_end ov11_0230AD94 - - arm_func_start ov11_0230ADCC -ov11_0230ADCC: ; 0x0230ADCC - stmdb sp!, {r4, lr} - ldr r1, _0230AE0C ; =ov11_02324D98 - mvn r0, #1 - ldr r4, [r1, #4] - ldrsb r1, [r4, #0x74] - cmp r1, r0 - ldmeqia sp!, {r4, pc} - ldr r0, [r4, #8] - bl sub_02055894 - bl sub_0203FD80 - bl sub_020407C0 - ldrsb r0, [r4, #0x74] - bl CloseAdvancedTextBox - mvn r0, #1 - strb r0, [r4, #0x74] - ldmia sp!, {r4, pc} - .align 2, 0 -_0230AE0C: .word ov11_02324D98 - arm_func_end ov11_0230ADCC - - arm_func_start ov11_0230AE10 -ov11_0230AE10: ; 0x0230AE10 - stmdb sp!, {r3, r4, r5, lr} - mov r5, r0 - ldr r0, [r5] - cmp r0, #0 - cmpne r0, #1 - ldmneia sp!, {r3, r4, r5, pc} - mov r0, #0x10 - mov r1, #8 - bl MemAlloc - ldr r2, _0230AE78 ; =EXCLUSIVE_ITEM_REQUIREMENTS_PTR - mov r1, #0x10 - str r0, [r2] - bl MemZero - ldr r0, _0230AE78 ; =EXCLUSIVE_ITEM_REQUIREMENTS_PTR - ldmia r5, {r1, r2} - ldr r4, [r0] - str r1, [r4] - add r0, r4, #0xc - add r1, r4, #0xe - str r2, [r4, #4] - bl ov11_0230C050 - ldr r1, _0230AE7C ; =ov11_02322F98 - ldr r2, _0230AE80 ; =GetExclusiveItemRequirements - add r0, r4, #8 - bl sub_0204707C - ldmia sp!, {r3, r4, r5, pc} - .align 2, 0 -_0230AE78: .word EXCLUSIVE_ITEM_REQUIREMENTS_PTR -_0230AE7C: .word ov11_02322F98 -_0230AE80: .word GetExclusiveItemRequirements - arm_func_end ov11_0230AE10 - - arm_func_start ov11_0230AE84 -ov11_0230AE84: ; 0x0230AE84 - stmdb sp!, {r3, lr} - ldr r0, _0230AECC ; =EXCLUSIVE_ITEM_REQUIREMENTS_PTR - ldr r0, [r0] - cmp r0, #0 - ldrne r0, [r0, #8] - cmpne r0, #0 - beq _0230AEC4 - bl sub_020470D0 - ldr r0, _0230AECC ; =EXCLUSIVE_ITEM_REQUIREMENTS_PTR - ldr r0, [r0] - ldr r0, [r0, #8] - bl sub_02047148 - mvn r1, #0 - cmp r0, r1 - moveq r0, #1 - ldmeqia sp!, {r3, pc} -_0230AEC4: - mov r0, #0 - ldmia sp!, {r3, pc} - .align 2, 0 -_0230AECC: .word EXCLUSIVE_ITEM_REQUIREMENTS_PTR - arm_func_end ov11_0230AE84 - - arm_func_start ov11_0230AED0 -ov11_0230AED0: ; 0x0230AED0 - stmdb sp!, {r3, lr} - ldr r0, _0230AF08 ; =EXCLUSIVE_ITEM_REQUIREMENTS_PTR - ldr r0, [r0] - cmp r0, #0 - ldmeqia sp!, {r3, pc} - add r0, r0, #8 - bl sub_02047150 - ldr r0, _0230AF08 ; =EXCLUSIVE_ITEM_REQUIREMENTS_PTR - ldr r0, [r0] - bl MemFree - ldr r0, _0230AF08 ; =EXCLUSIVE_ITEM_REQUIREMENTS_PTR - mov r1, #0 - str r1, [r0] - ldmia sp!, {r3, pc} - .align 2, 0 -_0230AF08: .word EXCLUSIVE_ITEM_REQUIREMENTS_PTR - arm_func_end ov11_0230AED0 - - arm_func_start ov11_0230AF0C -ov11_0230AF0C: ; 0x0230AF0C - ldr r1, _0230AF30 ; =EXCLUSIVE_ITEM_REQUIREMENTS_PTR - ldr r2, [r0] - ldr r3, [r1] - ldr r1, [r0, #4] - ldr ip, _0230AF34 ; =sub_02047188 - str r2, [r3] - add r0, r3, #8 - str r1, [r3, #4] - bx ip - .align 2, 0 -_0230AF30: .word EXCLUSIVE_ITEM_REQUIREMENTS_PTR -_0230AF34: .word sub_02047188 - arm_func_end ov11_0230AF0C - - arm_func_start GetExclusiveItemRequirements -GetExclusiveItemRequirements: ; 0x0230AF38 - stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} - sub sp, sp, #0x15c - ldr r1, _0230B1DC ; =EXCLUSIVE_ITEM_REQUIREMENTS_PTR - mov r7, r0 - ldr r6, [r1] - add r0, sp, #0xa - ldrsh r8, [r6, #4] - mov r2, #0 - mov r3, #1 - add r1, sp, #4 - strh r8, [sp, #8] - strh r2, [sp, #6] - strb r3, [sp, #4] - mov sb, #0x10 - bl MaybeGetColoredFormattedItemName - add r0, sp, #0x10c - bl InitPreprocessorArgs - mov r0, r7 - mov r1, #0x18 - mov r2, sb - add r3, sp, #0xa - bl DrawTextInWindow - mov r0, r8 - bl ov11_0230C068 - cmp r0, #3 - addls pc, pc, r0, lsl #2 - b _0230AFF8 -_0230AFA4: ; jump table - b _0230AFB4 ; case 0 - b _0230AFB4 ; case 1 - b _0230AFCC ; case 2 - b _0230AFE4 ; case 3 -_0230AFB4: - ldr r3, _0230B1E0 ; =SWAP_SHOP_ONE_STAR_STR - mov r0, r7 - mov r1, #0x6c - mov r2, sb - bl DrawTextInWindow - b _0230AFF8 -_0230AFCC: - ldr r3, _0230B1E4 ; =SWAP_SHOP_TWO_STAR_STR - mov r0, r7 - mov r1, #0x6c - mov r2, sb - bl DrawTextInWindow - b _0230AFF8 -_0230AFE4: - ldr r3, _0230B1E8 ; =SWAP_SHOP_THREE_STAR_STR - mov r0, r7 - mov r1, #0x6c - mov r2, sb - bl DrawTextInWindow -_0230AFF8: - ldr r0, [r6] - cmp r0, #0 - bne _0230B144 - ldr r3, _0230B1EC ; =0x000004B2 - mov r0, r7 - mov r1, #0x18 - mov r2, #0x28 - mov r4, #0 - bl AppendStandardStringToMission - ldr r3, _0230B1F0 ; =0x000004B3 - mov r0, r7 - mov r1, #0x7a - mov r2, #0x28 - bl AppendStandardStringToMission - mov r0, r8 - add sb, sb, #0x30 - bl GetExclusiveItemType - cmp r0, #0xa - addls pc, pc, r0, lsl #2 - b _0230B0E0 -_0230B048: ; jump table - b _0230B0E0 ; case 0 - b _0230B0E0 ; case 1 - b _0230B0E0 ; case 2 - b _0230B074 ; case 3 - b _0230B088 ; case 4 - b _0230B0E0 ; case 5 - b _0230B0E0 ; case 6 - b _0230B074 ; case 7 - b _0230B088 ; case 8 - b _0230B0E0 ; case 9 - b _0230B09C ; case 10 -_0230B074: - sub r0, r8, #2 - mov r0, r0, lsl #0x10 - mov r5, r0, asr #0x10 - mov r4, #2 - b _0230B0E0 -_0230B088: - sub r0, r8, #3 - mov r0, r0, lsl #0x10 - mov r5, r0, asr #0x10 - mov r4, #3 - b _0230B0E0 -_0230B09C: - sub r0, r8, #0x1bc - mov r0, r0, lsl #0x10 - mov r0, r0, asr #0x10 - mov r0, r0, lsl #0x10 - mov r0, r0, lsr #0x10 - cmp r0, #7 - ldrls r5, _0230B1F4 ; =0x000002FE - movls r4, #3 - bls _0230B0E0 - sub r0, r8, #0x1c4 - mov r0, r0, lsl #0x10 - mov r0, r0, asr #0x10 - mov r0, r0, lsl #0x10 - mov r0, r0, lsr #0x10 - cmp r0, #3 - ldrls r5, _0230B1F8 ; =0x00000336 - movls r4, #3 -_0230B0E0: - mov sl, #0 - add fp, sp, #0x10c - b _0230B138 -_0230B0EC: - mov r0, r5 - str r5, [sp, #0x11c] - bl CountNbItemsOfTypeInBag - mov r8, r0 - mov r0, r5 - bl CountNbItemsOfTypeInStorage - add r0, r8, r0 - str r0, [sp, #0x130] - ldr r3, _0230B1FC ; =0x000004B5 - mov r0, r7 - mov r1, #0x18 - mov r2, sb - str fp, [sp] - bl sub_020262E0 - add r0, r5, #1 - mov r0, r0, lsl #0x10 - add sb, sb, #0xc - mov r5, r0, asr #0x10 - add sl, sl, #1 -_0230B138: - cmp sl, r4 - blt _0230B0EC - b _0230B184 -_0230B144: - cmp r0, #1 - bne _0230B184 - ldr r3, _0230B1EC ; =0x000004B2 - mov r0, r7 - mov r1, #0x18 - mov r2, #0x28 - bl AppendStandardStringToMission - ldrh r0, [r6, #6] - ldr r3, _0230B200 ; =0x000004B4 - add r4, sp, #0x10c - str r0, [sp, #0x130] - mov r0, r7 - mov r1, #0x18 - mov r2, #0x40 - str r4, [sp] - bl sub_020262E0 -_0230B184: - ldrh r0, [r6, #0xc] - add r1, sp, #0x10c - ldr r3, _0230B204 ; =0x000004B6 - str r0, [sp, #0x130] - str r1, [sp] - mov r0, r7 - mov r1, #0x1c - mov r2, #0x7e - bl sub_020262E0 - ldrh r0, [r6, #0xe] - ldr r3, _0230B208 ; =0x000004B7 - add r4, sp, #0x10c - str r0, [sp, #0x130] - mov r0, r7 - mov r1, #0x1c - mov r2, #0x8a - str r4, [sp] - bl sub_020262E0 - mov r0, r7 - bl UpdateWindow - add sp, sp, #0x15c - ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -#ifdef JAPAN -#define GET_EXCLUSIVE_ITEM_REQUIREMENTS_OFFSET 0x3528 -#else -#define GET_EXCLUSIVE_ITEM_REQUIREMENTS_OFFSET 0 -#endif -_0230B1DC: .word EXCLUSIVE_ITEM_REQUIREMENTS_PTR -_0230B1E0: .word SWAP_SHOP_ONE_STAR_STR -_0230B1E4: .word SWAP_SHOP_TWO_STAR_STR -_0230B1E8: .word SWAP_SHOP_THREE_STAR_STR -_0230B1EC: .word 0x000004B2 + GET_EXCLUSIVE_ITEM_REQUIREMENTS_OFFSET -_0230B1F0: .word 0x000004B3 + GET_EXCLUSIVE_ITEM_REQUIREMENTS_OFFSET -_0230B1F4: .word 0x000002FE -_0230B1F8: .word 0x00000336 -_0230B1FC: .word 0x000004B5 + GET_EXCLUSIVE_ITEM_REQUIREMENTS_OFFSET -_0230B200: .word 0x000004B4 + GET_EXCLUSIVE_ITEM_REQUIREMENTS_OFFSET -_0230B204: .word 0x000004B6 + GET_EXCLUSIVE_ITEM_REQUIREMENTS_OFFSET -_0230B208: .word 0x000004B7 + GET_EXCLUSIVE_ITEM_REQUIREMENTS_OFFSET - arm_func_end GetExclusiveItemRequirements - - arm_func_start SwapShopInventoryManager -SwapShopInventoryManager: ; 0x0230B20C - stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - sub sp, sp, #0x20 - ldr r2, _0230B664 ; =SWAP_SHOP_INVENTORY_PTRS - mov r4, r0 - ldr r0, [r2, #4] - mov r8, r1 - cmp r0, #0 - ldr r5, _0230B668 ; =0x00401A33 - mov r6, #0 - ldr r7, _0230B66C ; =ov11_0230BD5C - bne _0230B24C - ldr r0, _0230B670 ; =0x000046D4 - mov r1, #8 - bl MemAlloc - ldr r1, _0230B664 ; =SWAP_SHOP_INVENTORY_PTRS - str r0, [r1, #4] -_0230B24C: - ldr r0, _0230B664 ; =SWAP_SHOP_INVENTORY_PTRS - ldr r0, [r0, #4] - str r4, [r0] - bl ov11_0230BF98 - bl LoadSynthBin - ldr sb, _0230B664 ; =SWAP_SHOP_INVENTORY_PTRS - mov r2, #0 - ldr r3, [sb, #4] - mov r1, #0x10 - add r3, r3, #0x4000 - strb r0, [r3, #0x6c4] - ldr r0, [sb, #4] - cmp r4, #3 - add r0, r0, #0x4000 - str r2, [r0, #0x6c8] - ldr r0, [sb, #4] - add r0, r0, #0x4000 - str r2, [r0, #0x6cc] - ldr r0, [sb, #4] - add r0, r0, #0x4000 - str r1, [r0, #0x638] - addls pc, pc, r4, lsl #2 - b _0230B474 -_0230B2A8: ; jump table - b _0230B2B8 ; case 0 - b _0230B2EC ; case 1 - b _0230B308 ; case 2 - b _0230B428 ; case 3 -_0230B2B8: - bl ov11_0230C3CC - bl ov11_0230C61C - mov r0, sb - ldr r0, [r0, #4] - add r0, r0, #0xe6 - add r0, r0, #0x4500 - bl GetCroagunkItemTemplates - mov r0, sb - ldr r0, [r0, #4] - ldr r1, _0230B674 ; =0x000003A6 - add r0, r0, #0x4600 - strh r1, [r0, #0x34] - b _0230B474 -_0230B2EC: - bl ov11_0230C4D4 - mov r0, sb - ldr r0, [r0, #4] - ldr r1, _0230B678 ; =0x000003A7 - add r0, r0, #0x4600 - strh r1, [r0, #0x34] - b _0230B474 -_0230B308: - mov r0, r8, lsl #0x10 - mov r0, r0, asr #0x10 - bl sub_02011420 - mov sb, #0 - mov sl, sb - str r0, [sp, #0x14] - mov fp, sb - b _0230B370 -_0230B328: - ldr r1, [r1] - mov r0, sl, lsl #1 - ldrsh r0, [r1, r0] - bl GetExclusiveItemType - cmp r0, #1 - blt _0230B348 - cmp r0, #4 - ble _0230B36C -_0230B348: - ldr r1, [sp, #0x14] - mov r0, sb, lsl #0x10 - ldr r2, [r1] - mov r1, sl, lsl #1 - ldrh r2, [r2, r1] - mov r1, fp - mov r0, r0, lsr #0x10 - bl ov11_0230C924 - add sb, sb, #1 -_0230B36C: - add sl, sl, #1 -_0230B370: - ldr r1, [sp, #0x14] - ldr r0, [r1, #4] - cmp sl, r0 - blt _0230B328 - mov sl, #0 - mov fp, sl - b _0230B3D4 -_0230B38C: - ldr r1, [r0] - mov r0, sl, lsl #1 - ldrsh r0, [r1, r0] - bl GetExclusiveItemType - cmp r0, #1 - blt _0230B3D0 - cmp r0, #4 - bgt _0230B3D0 - ldr r1, [sp, #0x14] - mov r0, sb, lsl #0x10 - ldr r2, [r1] - mov r1, sl, lsl #1 - ldrh r2, [r2, r1] - mov r1, fp - mov r0, r0, lsr #0x10 - bl ov11_0230C924 - add sb, sb, #1 -_0230B3D0: - add sl, sl, #1 -_0230B3D4: - ldr r0, [sp, #0x14] - ldr r2, [r0, #4] - cmp sl, r2 - blt _0230B38C - ldr r1, _0230B664 ; =SWAP_SHOP_INVENTORY_PTRS - add r0, sp, #0x14 - ldr r1, [r1, #4] - add r1, r1, #0x4600 - strh r2, [r1, #0x26] - bl SwapShopFreeDoublePointer - ldr r1, _0230B664 ; =SWAP_SHOP_INVENTORY_PTRS - mov r0, r8, lsl #0x10 - ldr r2, [r1, #4] - mov r3, r0, asr #0x10 - add r0, r2, #0x4000 - str r3, [r0, #0x63c] - ldr r0, [r1, #4] -#ifdef JAPAN - ldr r1, _0230CC20_JP ; =0x000032B2 -#else - mov r1, #0x3a8 -#endif - add r0, r0, #0x4600 - strh r1, [r0, #0x34] - b _0230B474 -_0230B428: - add r1, sp, #0xc - add r2, sp, #0xe - mov r0, #1 - bl ov11_0230C1D0 - mov r3, sb - ldr r1, [r3, #4] - ldr r7, _0230B67C ; =0x0000032F - add r1, r1, #0x4600 - strh r0, [r1, #0x26] - ldr r0, [r3, #4] - ldr r2, _0230B680 ; =0x80040004 - add r0, r0, #0x4600 - strh r7, [r0, #0x34] - ldr r0, [r3, #4] - ldr r6, _0230B684 ; =ov11_0230B78C - add r0, r0, #0x4600 - ldr r7, _0230B688 ; =ov11_0230BE34 - strh r8, [r0, #0x28] - orr r5, r5, r2 -_0230B474: - cmp r4, #0 - bne _0230B5A8 - ldr r0, _0230B664 ; =SWAP_SHOP_INVENTORY_PTRS - mov r1, #6 - ldrsh r2, [r0] - ldr r0, [r0, #4] - add r0, r0, #0xe6 - smulbb r8, r2, r1 - add sb, r0, #0x1400 - ldrh r0, [sb, r8] - add sl, sb, r8 - bl ov11_0230C9EC - ldr r1, _0230B664 ; =SWAP_SHOP_INVENTORY_PTRS - str r0, [sp, #0x18] - ldrh r0, [r1] - bl ov11_0230C970 - strh r0, [sp, #0x1c] - ldrh r0, [sb, r8] - cmp r0, #1 - movne r0, #0 - strneh r0, [sp, #0x1e] - bne _0230B4E8 - ldr r0, _0230B664 ; =SWAP_SHOP_INVENTORY_PTRS - ldrh r1, [sl, #2] - ldr r0, [r0, #4] - add r0, r0, r1, lsl #3 - add r0, r0, #0x4500 - ldrh r0, [r0, #0xea] - strh r0, [sp, #0x1e] -_0230B4E8: - add r0, sp, #0x18 - bl ov11_0230AE10 - ldr r0, _0230B664 ; =SWAP_SHOP_INVENTORY_PTRS - add r1, sp, #0x12 - ldr r2, [r0, #4] - ldrsh r8, [r0] - add r3, r2, #0x4600 - add r2, sp, #0x10 - mov r0, #0 - strh r8, [r3, #0xd0] - bl ov11_0230C1D0 - ldr fp, _0230B664 ; =SWAP_SHOP_INVENTORY_PTRS - ldrh r2, [sp, #0x12] - ldr r0, [fp, #4] - ldrh r1, [sp, #0x10] - add r0, r0, #0x4600 - ldrh r8, [r0, #0x26] - add sb, r2, r1 - mov sl, #0 - b _0230B5A0 -_0230B538: - mov r0, sl, lsl #0x10 - mov r1, r0, lsr #0x10 - ldr r2, [fp, #4] - mov r0, #6 - mla r0, r1, r0, r2 - add r0, r0, #0x1400 - ldrh r0, [r0, #0xe6] - bl ov11_0230C9EC - mov r0, r0, lsl #0x10 - mov r0, r0, lsr #0x10 - cmp r0, #1 - bne _0230B59C - ldr r0, [fp, #4] - mov r1, #6 - mla r1, sl, r1, r0 - add r1, r1, #0x1400 - ldrh r1, [r1, #0xe8] - add r1, r0, r1, lsl #3 - add r1, r1, #0x4500 - ldrh r1, [r1, #0xea] - cmp r1, sb - addgt r0, r0, sl - addgt r1, r0, #0x1000 - movgt r0, #2 - strgtb r0, [r1, #0xb8] -_0230B59C: - add sl, sl, #1 -_0230B5A0: - cmp sl, r8 - blt _0230B538 -_0230B5A8: - ldr r8, _0230B664 ; =SWAP_SHOP_INVENTORY_PTRS - mov r1, r5 - ldr sb, [r8, #4] - mov r3, r7 - add r2, sb, #0x4600 - ldrh r2, [r2, #0x26] - ldr r0, _0230B68C ; =ov11_02322FE4 - mov r5, #8 - str r2, [sb, #4] - ldr r2, [r8, #4] - ldrsh r7, [r8] - add r2, r2, #0x4000 - str r7, [r2, #0x62c] - ldr sb, [r8, #4] - add r2, sb, #0xb8 - add r7, r2, #0x1000 - add r2, sb, #0x4000 - str r7, [r2, #0x68c] - ldr r2, [r8, #4] - str r6, [sp] - ldr r6, [r2, #4] - add r2, r2, #0x22c - str r6, [sp, #4] - add r2, r2, #0x4400 - str r5, [sp, #8] - bl CreateCollectionMenu - mov r2, r8 - ldr r1, [r2, #4] - cmp r4, #3 - add r1, r1, #0x1000 - strb r0, [r1, #0x4e4] - bne _0230B65C - ldr r0, [r2, #4] - mov r1, #1 - add r0, r0, #0x1400 - ldrsb r0, [r0, #0xe4] - bl SetCollectionMenuField0x1C8 - mov r0, r8 - ldr r0, [r0, #4] - ldr r1, _0230B690 ; =ov11_0230BF38 - add r0, r0, #0x1400 - ldrsb r0, [r0, #0xe4] - bl SetCollectionMenuField0x1A4 - bl ov11_0230CAA4 - bl ov11_0230C9F8 -_0230B65C: - add sp, sp, #0x20 - ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_0230B664: .word SWAP_SHOP_INVENTORY_PTRS -_0230B668: .word 0x00401A33 -_0230B66C: .word ov11_0230BD5C -_0230B670: .word 0x000046D4 -#ifdef JAPAN -_0230B674: .word 0x000032B0 -_0230B678: .word 0x000032B1 -_0230CC20_JP: .word 0x000032B2 -_0230B67C: .word 0x000031F4 -#else -_0230B674: .word 0x000003A6 -_0230B678: .word 0x000003A7 -_0230B67C: .word 0x0000032F -#endif -_0230B680: .word 0x80040004 -_0230B684: .word ov11_0230B78C -_0230B688: .word ov11_0230BE34 -_0230B68C: .word ov11_02322FE4 -_0230B690: .word ov11_0230BF38 - arm_func_end SwapShopInventoryManager - - arm_func_start ov11_0230B694 -ov11_0230B694: ; 0x0230B694 - stmdb sp!, {r4, lr} - ldr r0, _0230B71C ; =SWAP_SHOP_INVENTORY_PTRS - ldr r0, [r0, #4] - cmp r0, #0 - bne _0230B6BC - ldr r0, _0230B720 ; =0x000046D4 - mov r1, #8 - bl MemAlloc - ldr r1, _0230B71C ; =SWAP_SHOP_INVENTORY_PTRS - str r0, [r1, #4] -_0230B6BC: - bl LoadSynthBin - mov r4, r0 - bl ov11_0230BF98 - bl ov11_0230C3CC - bl ov11_0230C61C - mov r0, #0 - bl GetCroagunkItemTemplates - ldr r1, _0230B71C ; =SWAP_SHOP_INVENTORY_PTRS - cmp r4, #0 - ldr r1, [r1, #4] - add r1, r1, #0x4600 - ldrh r1, [r1, #0x26] - add r4, r1, r0 - beq _0230B6F8 - bl CloseSynthBin -_0230B6F8: - ldr r0, _0230B71C ; =SWAP_SHOP_INVENTORY_PTRS - ldr r0, [r0, #4] - bl MemFree - ldr r1, _0230B71C ; =SWAP_SHOP_INVENTORY_PTRS - mov r0, #0 - str r0, [r1, #4] - cmp r4, #0 - movne r0, #1 - ldmia sp!, {r4, pc} - .align 2, 0 -_0230B71C: .word SWAP_SHOP_INVENTORY_PTRS -_0230B720: .word 0x000046D4 - arm_func_end ov11_0230B694 - - arm_func_start ov11_0230B724 -ov11_0230B724: ; 0x0230B724 - stmdb sp!, {r4, lr} - ldr r0, _0230B784 ; =SWAP_SHOP_INVENTORY_PTRS - ldr r0, [r0, #4] - cmp r0, #0 - bne _0230B74C - ldr r0, _0230B788 ; =0x000046D4 - mov r1, #8 - bl MemAlloc - ldr r1, _0230B784 ; =SWAP_SHOP_INVENTORY_PTRS - str r0, [r1, #4] -_0230B74C: - bl ov11_0230BF98 - bl ov11_0230C4D4 - ldr r0, _0230B784 ; =SWAP_SHOP_INVENTORY_PTRS - ldr r0, [r0, #4] - add r1, r0, #0x4600 - ldrh r4, [r1, #0x26] - bl MemFree - ldr r0, _0230B784 ; =SWAP_SHOP_INVENTORY_PTRS - mov r1, #0 - str r1, [r0, #4] - cmp r4, #0 - movne r1, #1 - and r0, r1, #0xff - ldmia sp!, {r4, pc} - .align 2, 0 -_0230B784: .word SWAP_SHOP_INVENTORY_PTRS -_0230B788: .word 0x000046D4 - arm_func_end ov11_0230B724 - - arm_func_start ov11_0230B78C -ov11_0230B78C: ; 0x0230B78C - stmdb sp!, {r3, r4, r5, lr} - ldr r1, _0230B870 ; =SWAP_SHOP_INVENTORY_PTRS - tst r0, #0x400 - ldr r4, [r1, #4] - beq _0230B868 - add r0, r4, #0x1400 - ldrsb r0, [r0, #0xe4] - bl GetWindowIdSelectedMenuItemIdx - add r1, r4, #0xe6 - add r2, r1, #0x1400 - mov r1, #6 - mla r5, r0, r1, r2 - ldrb r0, [r5, #4] - cmp r0, #0 - beq _0230B7E8 - mov r0, r1 - bl PlaySeVolumeWrapper - mov r1, #0 - strb r1, [r5, #4] - add r0, r4, #0x1400 - ldrsb r0, [r0, #0xe4] - bl sub_0202D07C - b _0230B83C -_0230B7E8: - bl ov11_0230B874 - add r1, r4, #0x4600 - ldrh r1, [r1, #0x28] - cmp r0, r1 - bge _0230B834 - mov r0, #6 - bl PlaySeVolumeWrapper - mov r0, #1 - strb r0, [r5, #4] - bl ov11_0230B874 - add r1, r4, #0x4600 - ldrh r1, [r1, #0x28] - cmp r1, r0 - bne _0230B83C - add r0, r4, #0x1400 - ldrsb r0, [r0, #0xe4] - mov r1, #1 - bl sub_0202D07C - b _0230B83C -_0230B834: - mov r0, #2 - bl PlaySeVolumeWrapper -_0230B83C: - ldr r0, _0230B870 ; =SWAP_SHOP_INVENTORY_PTRS - ldr r1, [r0, #4] - add r0, r1, #0x4000 - ldr r0, [r0, #0x6c8] - cmp r0, #0 - beq _0230B860 - add r0, r1, #0x2c8 - add r0, r0, #0x4400 - bl sub_02047188 -_0230B860: - mov r0, #1 - ldmia sp!, {r3, r4, r5, pc} -_0230B868: - mov r0, #0 - ldmia sp!, {r3, r4, r5, pc} - .align 2, 0 -_0230B870: .word SWAP_SHOP_INVENTORY_PTRS - arm_func_end ov11_0230B78C - - arm_func_start ov11_0230B874 -ov11_0230B874: ; 0x0230B874 - stmdb sp!, {r3, lr} - ldr r1, _0230B8BC ; =SWAP_SHOP_INVENTORY_PTRS - mov r0, #0 - ldr ip, [r1, #4] - mov r3, r0 - add r1, ip, #0x4600 - ldrh lr, [r1, #0x26] - mov r1, #6 - b _0230B8B0 -_0230B898: - mla r2, r3, r1, ip - add r2, r2, #0x1000 - ldrb r2, [r2, #0x4ea] - add r3, r3, #1 - cmp r2, #0 - addne r0, r0, #1 -_0230B8B0: - cmp r3, lr - blt _0230B898 - ldmia sp!, {r3, pc} - .align 2, 0 -_0230B8BC: .word SWAP_SHOP_INVENTORY_PTRS - arm_func_end ov11_0230B874 - - arm_func_start ov11_0230B8C0 -ov11_0230B8C0: ; 0x0230B8C0 - stmdb sp!, {r3, r4, r5, lr} - ldr r1, _0230B910 ; =SWAP_SHOP_INVENTORY_PTRS - mov r4, r0 - ldr r0, [r1, #4] - add r0, r0, #0x1400 - ldrsb r0, [r0, #0xe4] - bl sub_0202D0EC - mov r5, r0 - mov r0, r5, lsl #0x10 - mov r0, r0, lsr #0x10 - bl ov11_0230C970 - ldr r1, _0230B910 ; =SWAP_SHOP_INVENTORY_PTRS - strh r0, [r4] - ldr r0, [r1, #4] - add r0, r0, r5, lsl #1 - add r0, r0, #0x2d00 - ldrh r0, [r0, #0xee] - strh r0, [r4, #2] - ldrsh r0, [r4] - ldmia sp!, {r3, r4, r5, pc} - .align 2, 0 -_0230B910: .word SWAP_SHOP_INVENTORY_PTRS - arm_func_end ov11_0230B8C0 - - arm_func_start ov11_0230B914 -ov11_0230B914: ; 0x0230B914 - stmdb sp!, {r3, lr} - ldr r0, _0230B954 ; =SWAP_SHOP_INVENTORY_PTRS - ldr r0, [r0, #4] - add r0, r0, #0x1400 - ldrsb r0, [r0, #0xe4] - bl sub_0202D0EC - ldr r1, _0230B954 ; =SWAP_SHOP_INVENTORY_PTRS - mov r0, r0, lsl #0x10 - ldr r2, [r1, #4] - mov r1, r0, lsr #0x10 - mov r0, #6 - mla r0, r1, r0, r2 - add r0, r0, #0x1400 - ldrh r0, [r0, #0xe6] - bl ov11_0230C9EC - ldmia sp!, {r3, pc} - .align 2, 0 -_0230B954: .word SWAP_SHOP_INVENTORY_PTRS - arm_func_end ov11_0230B914 - - arm_func_start ov11_0230B958 -ov11_0230B958: ; 0x0230B958 - stmdb sp!, {r3, lr} - ldr r0, _0230B9B8 ; =SWAP_SHOP_INVENTORY_PTRS - ldr r0, [r0, #4] - add r0, r0, #0x1400 - ldrsb r0, [r0, #0xe4] - bl sub_0202D0EC - ldr r2, _0230B9B8 ; =SWAP_SHOP_INVENTORY_PTRS - mov r1, r0, lsl #0x10 - mov r3, r1, lsr #0x10 - ldr ip, [r2, #4] - mov r1, #6 - mla r2, r3, r1, ip - add r2, r2, #0x1400 - ldrh r2, [r2, #0xe6] - cmp r2, #1 - movne r0, #0 - ldmneia sp!, {r3, pc} - mla r1, r0, r1, ip - add r0, r1, #0x1400 - ldrh r0, [r0, #0xe8] - add r0, ip, r0, lsl #3 - add r0, r0, #0x4500 - ldrh r0, [r0, #0xea] - ldmia sp!, {r3, pc} - .align 2, 0 -_0230B9B8: .word SWAP_SHOP_INVENTORY_PTRS - arm_func_end ov11_0230B958 - - arm_func_start ov11_0230B9BC -ov11_0230B9BC: ; 0x0230B9BC - stmdb sp!, {r3, lr} - ldr r0, _0230BA60 ; =SWAP_SHOP_INVENTORY_PTRS - ldr r0, [r0, #4] - cmp r0, #0 - ldmeqia sp!, {r3, pc} - bl ov11_0230AED0 - bl ov11_0230CAE4 - bl ov11_0230CA38 - ldr r0, _0230BA60 ; =SWAP_SHOP_INVENTORY_PTRS - ldr r0, [r0, #4] - add r0, r0, #0x4000 - ldrb r0, [r0, #0x6c4] - cmp r0, #0 - beq _0230B9F8 - bl CloseSynthBin -_0230B9F8: - ldr r0, _0230BA60 ; =SWAP_SHOP_INVENTORY_PTRS - mvn r1, #1 - ldr r0, [r0, #4] - add r0, r0, #0x1400 - ldrsb r0, [r0, #0xe4] - cmp r0, r1 - beq _0230BA44 - bl sub_0202D0EC - ldr r1, _0230BA60 ; =SWAP_SHOP_INVENTORY_PTRS - strh r0, [r1] - ldr r0, [r1, #4] - add r0, r0, #0x1400 - ldrsb r0, [r0, #0xe4] - bl sub_0202836C - ldr r0, _0230BA60 ; =SWAP_SHOP_INVENTORY_PTRS - ldr r0, [r0, #4] - add r0, r0, #0x1400 - ldrsb r0, [r0, #0xe4] - bl CloseCollectionMenu -_0230BA44: - ldr r0, _0230BA60 ; =SWAP_SHOP_INVENTORY_PTRS - ldr r0, [r0, #4] - bl MemFree - ldr r0, _0230BA60 ; =SWAP_SHOP_INVENTORY_PTRS - mov r1, #0 - str r1, [r0, #4] - ldmia sp!, {r3, pc} - .align 2, 0 -_0230BA60: .word SWAP_SHOP_INVENTORY_PTRS - arm_func_end ov11_0230B9BC - - arm_func_start ov11_0230BA64 -ov11_0230BA64: ; 0x0230BA64 - stmdb sp!, {r3, r4, r5, lr} - sub sp, sp, #8 - ldr r0, _0230BB18 ; =SWAP_SHOP_INVENTORY_PTRS - ldr r4, [r0, #4] - cmp r4, #0 - moveq r0, #0 - beq _0230BB10 - add r0, r4, #0x1400 - ldrsb r0, [r0, #0xe4] - bl sub_0202D0EC - mov r5, r0 - bl ov11_0230AE84 - cmp r0, #0 - addne r0, r4, #0x4600 - ldrneh r0, [r0, #0xd0] - cmpne r0, r5 - beq _0230BAD8 - bl ov11_0230B914 - mov r1, r5, lsl #0x10 - str r0, [sp] - mov r0, r1, lsr #0x10 - bl ov11_0230C970 - strh r0, [sp, #4] - bl ov11_0230B958 - strh r0, [sp, #6] - add r0, sp, #0 - bl ov11_0230AF0C - add r0, r4, #0x4600 - strh r5, [r0, #0xd0] -_0230BAD8: - add r0, r4, #0x1400 - ldrsb r0, [r0, #0xe4] - bl IsCollectionMenuActive - cmp r0, #0 - bne _0230BB0C - add r0, r4, #0x1400 - ldrsb r0, [r0, #0xe4] - bl sub_0202C75C - mvn r1, #0 - cmp r0, r1 - moveq r0, #2 - movne r0, #3 - b _0230BB10 -_0230BB0C: - mov r0, #0 -_0230BB10: - add sp, sp, #8 - ldmia sp!, {r3, r4, r5, pc} - .align 2, 0 -_0230BB18: .word SWAP_SHOP_INVENTORY_PTRS - arm_func_end ov11_0230BA64 - - arm_func_start ov11_0230BB1C -ov11_0230BB1C: ; 0x0230BB1C - stmdb sp!, {r3, lr} - ldr r0, _0230BB94 ; =SWAP_SHOP_INVENTORY_PTRS - ldr r0, [r0, #4] - cmp r0, #0 - addne r0, r0, #0x1400 - ldrnesb r0, [r0, #0xe4] - mvnne r1, #1 - cmpne r0, r1 - ldmeqia sp!, {r3, pc} - bl sub_0202D0EC - ldr r1, _0230BB94 ; =SWAP_SHOP_INVENTORY_PTRS - strh r0, [r1] - bl ov11_0230CA38 - bl ov11_0230CAE4 - ldr r0, _0230BB94 ; =SWAP_SHOP_INVENTORY_PTRS - ldr r0, [r0, #4] - add r0, r0, #0x1400 - ldrsb r0, [r0, #0xe4] - bl sub_0202836C - ldr r0, _0230BB94 ; =SWAP_SHOP_INVENTORY_PTRS - ldr r0, [r0, #4] - add r0, r0, #0x1400 - ldrsb r0, [r0, #0xe4] - bl CloseCollectionMenu - ldr r0, _0230BB94 ; =SWAP_SHOP_INVENTORY_PTRS - mvn r1, #1 - ldr r0, [r0, #4] - add r0, r0, #0x1000 - strb r1, [r0, #0x4e4] - ldmia sp!, {r3, pc} - .align 2, 0 -_0230BB94: .word SWAP_SHOP_INVENTORY_PTRS - arm_func_end ov11_0230BB1C - - arm_func_start ov11_0230BB98 -ov11_0230BB98: ; 0x0230BB98 - stmdb sp!, {r4, r5, lr} - sub sp, sp, #0xc - ldr r0, _0230BCD8 ; =SWAP_SHOP_INVENTORY_PTRS - ldr r2, [r0, #4] - cmp r2, #0 - beq _0230BCD0 - add r0, r2, #0x1400 - ldrsb r1, [r0, #0xe4] - mvn r0, #1 - cmp r1, r0 - bne _0230BCD0 - ldr r0, [r2] - ldr r1, _0230BCDC ; =0x00401833 - ldr r3, _0230BCE0 ; =ov11_0230BD5C - cmp r0, #3 - mov r5, #0 - addls pc, pc, r0, lsl #2 - b _0230BC00 -_0230BBE0: ; jump table - b _0230BC00 ; case 0 - b _0230BC00 ; case 1 - b _0230BC00 ; case 2 - b _0230BBF0 ; case 3 -_0230BBF0: - ldr r0, _0230BCE4 ; =0x80040004 - ldr r5, _0230BCE8 ; =ov11_0230B78C - ldr r3, _0230BCEC ; =ov11_0230BE34 - orr r1, r1, r0 -_0230BC00: - ldr ip, _0230BCD8 ; =SWAP_SHOP_INVENTORY_PTRS - add r2, r2, #0x4000 - ldrsh r4, [ip] - ldr r0, _0230BCF0 ; =ov11_02322FE4 - mov lr, #8 - str r4, [r2, #0x62c] - ldr r2, [ip, #4] - str r5, [sp] - ldr ip, [r2, #4] - add r2, r2, #0x22c - add r2, r2, #0x4400 - stmib sp, {ip, lr} - bl CreateCollectionMenu - ldr r2, _0230BCD8 ; =SWAP_SHOP_INVENTORY_PTRS - ldr r1, [r2, #4] - add r1, r1, #0x1000 - strb r0, [r1, #0x4e4] - ldr r1, [r2, #4] - ldr r0, [r1] - cmp r0, #3 - bne _0230BCD0 - add r0, r1, #0x1400 - ldrsb r0, [r0, #0xe4] - mov r1, #1 - bl SetCollectionMenuField0x1C8 - ldr r0, _0230BCD8 ; =SWAP_SHOP_INVENTORY_PTRS - ldr r1, _0230BCF4 ; =ov11_0230BF38 - ldr r0, [r0, #4] - add r0, r0, #0x1400 - ldrsb r0, [r0, #0xe4] - bl SetCollectionMenuField0x1A4 - bl ov11_0230CAA4 - bl ov11_0230C9F8 - ldr r0, _0230BCD8 ; =SWAP_SHOP_INVENTORY_PTRS - ldr r4, [r0, #4] - ldr r0, [r4] - cmp r0, #3 - addls pc, pc, r0, lsl #2 - b _0230BCD0 -_0230BC9C: ; jump table - b _0230BCD0 ; case 0 - b _0230BCD0 ; case 1 - b _0230BCD0 ; case 2 - b _0230BCAC ; case 3 -_0230BCAC: - bl ov11_0230B874 - add r1, r4, #0x4600 - ldrh r1, [r1, #0x28] - cmp r1, r0 - bne _0230BCD0 - add r0, r4, #0x1400 - ldrsb r0, [r0, #0xe4] - mov r1, #1 - bl sub_0202D07C -_0230BCD0: - add sp, sp, #0xc - ldmia sp!, {r4, r5, pc} - .align 2, 0 -_0230BCD8: .word SWAP_SHOP_INVENTORY_PTRS -_0230BCDC: .word 0x00401833 -_0230BCE0: .word ov11_0230BD5C -_0230BCE4: .word 0x80040004 -_0230BCE8: .word ov11_0230B78C -_0230BCEC: .word ov11_0230BE34 -_0230BCF0: .word ov11_02322FE4 -_0230BCF4: .word ov11_0230BF38 - arm_func_end ov11_0230BB98 - - arm_func_start ov11_0230BCF8 -ov11_0230BCF8: ; 0x0230BCF8 - stmdb sp!, {r3, lr} - ldr r0, _0230BD24 ; =SWAP_SHOP_INVENTORY_PTRS - ldr r0, [r0, #4] - cmp r0, #0 - addne r0, r0, #0x1400 - ldrnesb r0, [r0, #0xe4] - mvnne r1, #1 - cmpne r0, r1 - ldmeqia sp!, {r3, pc} - bl sub_0202C620 - ldmia sp!, {r3, pc} - .align 2, 0 -_0230BD24: .word SWAP_SHOP_INVENTORY_PTRS - arm_func_end ov11_0230BCF8 - - arm_func_start ov11_0230BD28 -ov11_0230BD28: ; 0x0230BD28 - stmdb sp!, {r3, lr} - ldr r0, _0230BD58 ; =SWAP_SHOP_INVENTORY_PTRS - ldr r0, [r0, #4] - cmp r0, #0 - addne r0, r0, #0x1400 - ldrnesb r0, [r0, #0xe4] - mvnne r1, #1 - cmpne r0, r1 - moveq r0, #0 - ldmeqia sp!, {r3, pc} - bl IsCollectionMenuState3 - ldmia sp!, {r3, pc} - .align 2, 0 -_0230BD58: .word SWAP_SHOP_INVENTORY_PTRS - arm_func_end ov11_0230BD28 - - arm_func_start ov11_0230BD5C -ov11_0230BD5C: ; 0x0230BD5C - stmdb sp!, {r4, r5, r6, lr} - sub sp, sp, #0x58 - mov r5, r1 - mov r1, r5, lsl #0x10 - mov r6, r0 - mov r0, r1, lsr #0x10 - mov r4, r2 - bl ov11_0230C970 - ldr r1, _0230BE28 ; =SWAP_SHOP_INVENTORY_PTRS - strh r0, [sp, #4] - ldr r3, [r1, #4] - mov r1, #1 - add r0, r3, r5, lsl #1 - add r0, r0, #0x2d00 - ldrh r2, [r0, #0xee] - add r0, r3, r5 - add r0, r0, #0x1000 - strh r2, [sp, #2] - strb r1, [sp] - ldrb r0, [r0, #0xb8] - add r1, sp, #0 - mov r2, #0 - tst r0, #2 - beq _0230BDEC - add r0, sp, #6 - bl MaybeGetUncoloredFormattedItemName - ldr r1, _0230BE2C ; =SWAP_SHOP_RED_TEXT_TAG_STR - mov r0, r6 - bl strcpy - add r1, sp, #6 - mov r0, r6 - bl strcat - ldr r1, _0230BE30 ; =SWAP_SHOP_UNCENTER_TEXT_TAG_STR - mov r0, r6 - bl strcat - b _0230BDF4 -_0230BDEC: - mov r0, r6 - bl MaybeGetColoredFormattedItemName -_0230BDF4: - ldr r1, _0230BE28 ; =SWAP_SHOP_INVENTORY_PTRS - mov r0, #6 - ldr r1, [r1, #4] - mla r0, r5, r0, r1 - add r0, r0, #0x1000 - ldrb r0, [r0, #0x4ea] - cmp r0, #0 - movne r1, #1 - moveq r1, #0 - mov r0, r6 - str r1, [r4] - add sp, sp, #0x58 - ldmia sp!, {r4, r5, r6, pc} - .align 2, 0 -_0230BE28: .word SWAP_SHOP_INVENTORY_PTRS -_0230BE2C: .word SWAP_SHOP_RED_TEXT_TAG_STR -_0230BE30: .word SWAP_SHOP_UNCENTER_TEXT_TAG_STR - arm_func_end ov11_0230BD5C - - arm_func_start ov11_0230BE34 -ov11_0230BE34: ; 0x0230BE34 - stmdb sp!, {r4, r5, r6, lr} - sub sp, sp, #8 - ldr r3, _0230BF28 ; =SWAP_SHOP_INVENTORY_PTRS - mov r5, r1 - mov r1, r5, lsl #0x10 - mov r6, r0 - mov r0, r1, lsr #0x10 - ldr r3, [r3, #4] - mov r1, #6 - mla r1, r0, r1, r3 - add r1, r1, #0x1400 - ldrh r1, [r1, #0xe6] - mov r4, r2 - cmp r1, #4 - moveq r0, #0 - beq _0230BF20 - bl ov11_0230C970 - ldr r1, _0230BF28 ; =SWAP_SHOP_INVENTORY_PTRS - strh r0, [sp, #4] - ldr r0, [r1, #4] - add r1, sp, #0 - add r0, r0, r5, lsl #1 - add r0, r0, #0x2d00 - ldrh ip, [r0, #0xee] - mov r3, #1 - mov r0, r6 - mov r2, #0 - strh ip, [sp, #2] - strb r3, [sp] - bl MaybeGetColoredFormattedItemName - ldrsh r0, [sp, #4] - bl ov11_0230C068 - cmp r0, #3 - addls pc, pc, r0, lsl #2 - b _0230BEE8 -_0230BEC0: ; jump table - b _0230BED0 ; case 0 - b _0230BED0 ; case 1 - b _0230BED8 ; case 2 - b _0230BEE0 ; case 3 -_0230BED0: - ldr r1, _0230BF2C ; =SWAP_SHOP_CLUMSET_ONE_STAR_STR - b _0230BEEC -_0230BED8: - ldr r1, _0230BF30 ; =SWAP_SHOP_CLUMSET_TWO_STAR_STR - b _0230BEEC -_0230BEE0: - ldr r1, _0230BF34 ; =SWAP_SHOP_CLUMSET_THREE_STAR_STR - b _0230BEEC -_0230BEE8: - mov r1, #0 -_0230BEEC: - mov r0, r6 - bl strcat - ldr r1, _0230BF28 ; =SWAP_SHOP_INVENTORY_PTRS - mov r0, #6 - ldr r1, [r1, #4] - mla r0, r5, r0, r1 - add r0, r0, #0x1000 - ldrb r0, [r0, #0x4ea] - cmp r0, #0 - movne r1, #1 - moveq r1, #0 - mov r0, r6 - str r1, [r4] -_0230BF20: - add sp, sp, #8 - ldmia sp!, {r4, r5, r6, pc} - .align 2, 0 -_0230BF28: .word SWAP_SHOP_INVENTORY_PTRS -_0230BF2C: .word SWAP_SHOP_CLUMSET_ONE_STAR_STR -_0230BF30: .word SWAP_SHOP_CLUMSET_TWO_STAR_STR -_0230BF34: .word SWAP_SHOP_CLUMSET_THREE_STAR_STR - arm_func_end ov11_0230BE34 - - arm_func_start ov11_0230BF38 -ov11_0230BF38: ; 0x0230BF38 - stmdb sp!, {r3, lr} - ldr r3, _0230BF8C ; =SWAP_SHOP_INVENTORY_PTRS - mov r2, r2, lsl #0x10 - ldr ip, [r3, #4] - mov r3, r2, lsr #0x10 - mov r2, #6 - mla r2, r3, r2, ip - add r2, r2, #0x1400 - ldrh r2, [r2, #0xe6] - mov r3, r0 - cmp r2, #2 - ldreq r0, _0230BF90 ; =0x0000032F - streqh r0, [r1, #0x1c] - beq _0230BF7C - cmp r2, #3 - ldreq r0, _0230BF94 ; =0x00004623 - streqh r0, [r1, #0x1c] -_0230BF7C: - mov r0, r1 - mov r1, r3 - bl sub_0202A03C - ldmia sp!, {r3, pc} - .align 2, 0 -_0230BF8C: .word SWAP_SHOP_INVENTORY_PTRS -#if defined(EUROPE) -_0230BF90: .word 0x0000032F -_0230BF94: .word 0x00004642 -#elif defined(JAPAN) -_0230BF90: .word 0x000031F4 -_0230BF94: .word 0x00001CDF -#else -_0230BF90: .word 0x0000032F -_0230BF94: .word 0x00004623 -#endif - arm_func_end ov11_0230BF38 - - arm_func_start ov11_0230BF98 -ov11_0230BF98: ; 0x0230BF98 - stmdb sp!, {r3, r4, r5, r6, r7, lr} - mov r4, #0 - ldr r3, _0230C048 ; =SWAP_SHOP_INVENTORY_PTRS - ldr r2, _0230C04C ; =0x0000042C - mov r0, r4 -_0230BFAC: - ldr r1, [r3, #4] - add r1, r1, r4, lsl #2 - str r0, [r1, #8] - ldr r1, [r3, #4] - add r1, r1, r4 - add r1, r1, #0x1000 - add r4, r4, #1 - strb r0, [r1, #0xb8] - cmp r4, r2 - blt _0230BFAC - ldr r2, _0230C048 ; =SWAP_SHOP_INVENTORY_PTRS - mov r5, #0 -_0230BFDC: - ldr r1, [r2, #4] - add r1, r1, r0, lsl #1 - add r1, r1, #0x3e00 - strh r5, [r1, #0x16] - ldr r1, [r2, #4] - add r1, r1, r0, lsl #1 - add r1, r1, #0x3600 - add r0, r0, #1 - strh r5, [r1, #0x46] - cmp r0, #0x3e8 - blt _0230BFDC - ldr r7, _0230C048 ; =SWAP_SHOP_INVENTORY_PTRS - ldr r6, _0230C04C ; =0x0000042C - mov r4, #0 -_0230C014: - ldr r1, [r7, #4] - mov r0, r5, lsl #0x10 - add r1, r1, r5, lsl #1 - add r3, r1, #0x2d00 - mov r1, r4 - mov r2, r4 - mov r0, r0, lsr #0x10 - strh r4, [r3, #0xee] - bl ov11_0230C924 - add r5, r5, #1 - cmp r5, r6 - blt _0230C014 - ldmia sp!, {r3, r4, r5, r6, r7, pc} - .align 2, 0 -_0230C048: .word SWAP_SHOP_INVENTORY_PTRS -_0230C04C: .word 0x0000042C - arm_func_end ov11_0230BF98 - - arm_func_start ov11_0230C050 -ov11_0230C050: ; 0x0230C050 - ldr ip, _0230C064 ; =ov11_0230C1D0 - mov r2, r1 - mov r1, r0 - mov r0, #0 - bx ip - .align 2, 0 -_0230C064: .word ov11_0230C1D0 - arm_func_end ov11_0230C050 - - arm_func_start ov11_0230C068 -ov11_0230C068: ; 0x0230C068 - cmp r0, #0x1bc - blt _0230C080 - ldr r1, _0230C0FC ; =0x000001C3 - cmp r0, r1 - movle r0, #3 - bxle lr -_0230C080: - cmp r0, #0x1c4 - blt _0230C098 - ldr r1, _0230C100 ; =0x000001C7 - cmp r0, r1 - movle r0, #3 - bxle lr -_0230C098: - cmp r0, #0x1c8 - blt _0230C0B0 - ldr r1, _0230C104 ; =0x000001D7 - cmp r0, r1 - movle r0, #3 - bxle lr -_0230C0B0: - cmp r0, #0x1d8 - blt _0230C0C8 - ldr r1, _0230C108 ; =0x000001F9 - cmp r0, r1 - movle r0, #3 - bxle lr -_0230C0C8: - ldr r1, _0230C10C ; =0x000003F6 - cmp r0, r1 - blt _0230C0E4 - ldr r1, _0230C110 ; =0x00000547 - cmp r0, r1 - movle r0, #3 - bxle lr -_0230C0E4: - ldr r1, _0230C114 ; =0xFFFFFE06 - add r0, r0, r1 - mov r1, r0, lsr #0x1f - rsb r0, r1, r0, lsl #30 - add r0, r1, r0, ror #30 - bx lr - .align 2, 0 -_0230C0FC: .word 0x000001C3 -_0230C100: .word 0x000001C7 -_0230C104: .word 0x000001D7 -_0230C108: .word 0x000001F9 -_0230C10C: .word 0x000003F6 -_0230C110: .word 0x00000547 -_0230C114: .word 0xFFFFFE06 - arm_func_end ov11_0230C068 - - arm_func_start ov11_0230C118 -ov11_0230C118: ; 0x0230C118 - stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, lr} - ldr r6, _0230C1CC ; =SWAP_SHOP_INVENTORY_PTRS - mov lr, #0 - ldr r7, [r6, #4] - mov r4, lr - add r6, r7, #0xe6 - add ip, r6, #0x1400 - add r6, r7, #0x4600 - mov r5, lr - mov r7, #6 - b _0230C1AC -_0230C144: - mla sb, r5, r7, ip - ldrb r8, [sb, #4] - cmp r8, #0 - beq _0230C1A8 - ldrh r8, [sb] - cmp r8, #2 - beq _0230C16C - cmp r8, #3 - beq _0230C18C - b _0230C1A8 -_0230C16C: - cmp r1, #0 - ldrneh sb, [sb, #2] - movne r8, lr, lsl #1 - strneh sb, [r1, r8] - add r8, lr, #1 - mov lr, r8, lsl #0x10 - mov lr, lr, lsr #0x10 - b _0230C1A8 -_0230C18C: - cmp r3, #0 - movne r8, r4, lsl #1 - ldrneh sb, [sb, #2] - add r4, r4, #1 - mov r4, r4, lsl #0x10 - strneh sb, [r3, r8] - mov r4, r4, lsr #0x10 -_0230C1A8: - add r5, r5, #1 -_0230C1AC: - ldrh r8, [r6, #0x26] - cmp r5, r8 - blt _0230C144 - cmp r0, #0 - strneh lr, [r0] - cmp r2, #0 - strneh r4, [r2] - ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc} - .align 2, 0 -_0230C1CC: .word SWAP_SHOP_INVENTORY_PTRS - arm_func_end ov11_0230C118 - - arm_func_start ov11_0230C1D0 -ov11_0230C1D0: ; 0x0230C1D0 - stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - mov r6, r0 - mov r5, r1 - mov r4, r2 - bl GetCurrentBagCapacity - mov fp, r0 - bl sub_0200FD48 - mov r8, #0 - mov r7, r0 - mov sb, r8 - mov sl, r8 - cmp r5, #0 - beq _0230C288 - b _0230C278 -_0230C208: - ldr r0, _0230C3C4 ; =BAG_ITEMS_PTR_MIRROR - ldr r1, [r0] - mov r0, #6 - mul r0, sl, r0 - ldr r1, [r1, #0x384] - add r2, r1, r0 - ldrb r0, [r1, r0] - tst r0, #1 - movne r0, #1 - moveq r0, #0 - tst r0, #0xff - beq _0230C274 - ldrsh r1, [r2, #4] - cmp r1, #0x1bc - blt _0230C274 - ldr r0, _0230C3C8 ; =0x00000547 - cmp r1, r0 - bgt _0230C274 - cmp r6, #0 - beq _0230C270 - mov r0, r8, lsl #0x10 - mov r2, sl, lsl #0x10 - mov r0, r0, lsr #0x10 - mov r1, #2 - mov r2, r2, lsr #0x10 - bl ov11_0230C924 -_0230C270: - add r8, r8, #1 -_0230C274: - add sl, sl, #1 -_0230C278: - cmp sl, fp - blt _0230C208 - mov sl, r8 - strh r8, [r5] -_0230C288: - cmp r4, #0 - beq _0230C3BC - ldr r0, _0230C3C4 ; =BAG_ITEMS_PTR_MIRROR - mov r5, #0 - ldr r2, [r0] - ldr r0, _0230C3C8 ; =0x00000547 - b _0230C2CC -_0230C2A4: - add r1, r2, r5, lsl #1 - add r1, r1, #0x300 - ldrsh r1, [r1, #0x8a] - cmp r1, #0 - beq _0230C2D4 - cmp r1, #0x1bc - blt _0230C2C8 - cmp r1, r0 - ble _0230C2D4 -_0230C2C8: - add r5, r5, #1 -_0230C2CC: - cmp r5, r7 - blt _0230C2A4 -_0230C2D4: - cmp r5, r7 - bge _0230C31C - add r0, r2, r5, lsl #1 - add r0, r0, #0x300 - ldrsh r0, [r0, #0x8a] - cmp r0, #0 - beq _0230C31C - tst r8, #7 - cmpne r6, #0 - beq _0230C31C - mov r0, r8, lsl #0x10 - mov r0, r0, lsr #0x10 - mov r1, #4 - mov r2, #0 - bl ov11_0230C924 - add r8, r8, #1 - add r0, r8, #7 - bic sl, r0, #7 -_0230C31C: - ldr fp, _0230C3C4 ; =BAG_ITEMS_PTR_MIRROR - b _0230C37C -_0230C324: - ldr r0, [fp] - add r0, r0, r5, lsl #1 - add r0, r0, #0x300 - ldrsh r1, [r0, #0x8a] - cmp r1, #0 - beq _0230C384 - cmp r1, #0x1bc - blt _0230C378 - ldr r0, _0230C3C8 ; =0x00000547 - cmp r1, r0 - bgt _0230C378 - cmp r6, #0 - beq _0230C374 - add r0, sl, sb - mov r0, r0, lsl #0x10 - mov r2, r5, lsl #0x10 - mov r1, #3 - mov r0, r0, lsr #0x10 - mov r2, r2, lsr #0x10 - bl ov11_0230C924 -_0230C374: - add sb, sb, #1 -_0230C378: - add r5, r5, #1 -_0230C37C: - cmp r5, r7 - blt _0230C324 -_0230C384: - strh sb, [r4] - cmp r8, #0 - ble _0230C3B8 - tst sb, #7 - cmpne r6, #0 - beq _0230C3B8 - add r0, sl, sb - mov r0, r0, lsl #0x10 - mov r0, r0, lsr #0x10 - mov r1, #4 - mov r2, #0 - bl ov11_0230C924 - add sb, sb, #1 -_0230C3B8: - add sl, sl, sb -_0230C3BC: - mov r0, sl - ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_0230C3C4: .word BAG_ITEMS_PTR_MIRROR -_0230C3C8: .word 0x00000547 - arm_func_end ov11_0230C1D0 - - arm_func_start ov11_0230C3CC -ov11_0230C3CC: ; 0x0230C3CC - stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - bl GetCurrentBagCapacity - mov r7, r0 - bl sub_0200FD48 - mov sb, #0 - mov r8, r0 - mov sl, sb - mov fp, #1 - ldr r6, _0230C4C8 ; =BAG_ITEMS_PTR_MIRROR - mov r5, #6 - ldr r4, _0230C4CC ; =0x000003F5 - b _0230C450 -_0230C3FC: - mul r1, sl, r5 - ldr r0, [r6] - ldr r2, [r0, #0x384] - ldrb r0, [r2, r1] - add r1, r2, r1 - tst r0, #1 - movne r0, fp - moveq r0, #0 - tst r0, #0xff - beq _0230C44C - ldrsh r0, [r1, #4] - cmp r0, r4, lsr #1 - blt _0230C44C - cmp r0, r4 - bgt _0230C44C - ldrh r1, [r1, #2] - mov r2, sb - bl ov11_0230C5A0 - cmp r0, #0 - addne sb, sb, #1 -_0230C44C: - add sl, sl, #1 -_0230C450: - cmp sl, r7 - blt _0230C3FC - mov r4, #0 - ldr r6, _0230C4C8 ; =BAG_ITEMS_PTR_MIRROR - ldr r5, _0230C4CC ; =0x000003F5 - b _0230C4AC -_0230C468: - ldr r0, [r6] - add r1, r0, r4, lsl #1 - add r0, r1, #0x300 - ldrsh r0, [r0, #0x8a] - cmp r0, #0 - beq _0230C4B4 - cmp r0, r5, lsr #1 - blt _0230C4A8 - cmp r0, r5 - bgt _0230C4A8 - add r1, r1, #0xb00 - ldrh r1, [r1, #0x5a] - mov r2, sb - bl ov11_0230C5A0 - cmp r0, #0 - addne sb, sb, #1 -_0230C4A8: - add r4, r4, #1 -_0230C4AC: - cmp r4, r8 - blt _0230C468 -_0230C4B4: - ldr r0, _0230C4D0 ; =SWAP_SHOP_INVENTORY_PTRS - ldr r0, [r0, #4] - add r0, r0, #0x4600 - strh sb, [r0, #0x28] - ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_0230C4C8: .word BAG_ITEMS_PTR_MIRROR -_0230C4CC: .word 0x000003F5 -_0230C4D0: .word SWAP_SHOP_INVENTORY_PTRS - arm_func_end ov11_0230C3CC - - arm_func_start ov11_0230C4D4 -ov11_0230C4D4: ; 0x0230C4D4 - stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - bl GetCurrentBagCapacity - mov r8, #0 - mov r7, r0 - mov sb, r8 - mov r4, #6 - ldr r6, _0230C594 ; =BAG_ITEMS_PTR_MIRROR - ldr r5, _0230C598 ; =SWAP_SHOP_INVENTORY_PTRS - ldr fp, _0230C59C ; =0x0000018F - b _0230C578 -_0230C4FC: - mul sl, sb, r4 - ldr r0, [r6] - ldr r1, [r0, #0x384] - ldrb r0, [r1, sl] - add r1, r1, sl - tst r0, #1 - movne r0, #1 - moveq r0, #0 - tst r0, #0xff - beq _0230C574 - ldrsh r0, [r1, #4] - cmp r0, #0x16c - blt _0230C574 - cmp r0, fp - bgt _0230C574 - mov r0, r8, lsl #0x10 - mov r2, sb, lsl #0x10 - mov r1, #2 - mov r0, r0, lsr #0x10 - mov r2, r2, lsr #0x10 - bl ov11_0230C924 - ldr r1, [r6] - ldr r0, [r5, #4] - ldr r1, [r1, #0x384] - add r0, r0, r8, lsl #1 - add r1, r1, sl - ldrh r1, [r1, #2] - add r0, r0, #0x2d00 - add r8, r8, #1 - strh r1, [r0, #0xee] -_0230C574: - add sb, sb, #1 -_0230C578: - cmp sb, r7 - blt _0230C4FC - ldr r0, _0230C598 ; =SWAP_SHOP_INVENTORY_PTRS - ldr r0, [r0, #4] - add r0, r0, #0x4600 - strh r8, [r0, #0x26] - ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_0230C594: .word BAG_ITEMS_PTR_MIRROR -_0230C598: .word SWAP_SHOP_INVENTORY_PTRS -_0230C59C: .word 0x0000018F - arm_func_end ov11_0230C4D4 - - arm_func_start ov11_0230C5A0 -ov11_0230C5A0: ; 0x0230C5A0 - stmdb sp!, {r4, lr} - cmp r2, #0 - beq _0230C5EC - ldr r3, _0230C618 ; =SWAP_SHOP_INVENTORY_PTRS - mov lr, #0 - ldr r4, [r3, #4] - b _0230C5E4 -_0230C5BC: - add ip, r4, lr, lsl #1 - add r3, ip, #0x3600 - ldrh r3, [r3, #0x46] - cmp r0, r3 - addeq r3, ip, #0x3e00 - ldreqh r3, [r3, #0x16] - cmpeq r1, r3 - moveq r0, #0 - ldmeqia sp!, {r4, pc} - add lr, lr, #1 -_0230C5E4: - cmp lr, r2 - blt _0230C5BC -_0230C5EC: - ldr ip, _0230C618 ; =SWAP_SHOP_INVENTORY_PTRS - ldr r3, [ip, #4] - add r3, r3, r2, lsl #1 - add r3, r3, #0x3600 - strh r0, [r3, #0x46] - ldr r3, [ip, #4] - mov r0, #1 - add r2, r3, r2, lsl #1 - add r2, r2, #0x3e00 - strh r1, [r2, #0x16] - ldmia sp!, {r4, pc} - .align 2, 0 -_0230C618: .word SWAP_SHOP_INVENTORY_PTRS - arm_func_end ov11_0230C5A0 - - arm_func_start ov11_0230C61C -ov11_0230C61C: ; 0x0230C61C - stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, lr} - ldr r4, _0230C8DC ; =0x000001FA - mov r5, #0 -_0230C628: - ldr r0, _0230C8E0 ; =SWAP_SHOP_INVENTORY_PTRS - ldr lr, [r0, #4] - add r0, lr, #0x4600 - ldrh ip, [r0, #0x28] - cmp ip, #0 - moveq r0, #0 - beq _0230C6C0 - mov r0, r4, lsl #0x10 - mov r3, #0 - mov r2, r0, asr #0x10 - add r1, r2, #1 - add r0, r2, #2 - mov r7, r3 - mov r8, r3 - mov sb, r3 - b _0230C698 -_0230C668: - add r6, lr, r3, lsl #1 - add r6, r6, #0x3600 - ldrh r6, [r6, #0x46] - cmp r2, r6 - moveq r2, sb - beq _0230C694 - cmp r1, r6 - moveq r1, r8 - beq _0230C694 - cmp r0, r6 - moveq r0, r7 -_0230C694: - add r3, r3, #1 -_0230C698: - cmp r3, ip - blt _0230C668 - cmp r2, #0 - cmpeq r1, #0 - bne _0230C6BC - cmp r0, #0 - moveq r0, #2 - movne r0, #1 - b _0230C6C0 -_0230C6BC: - mov r0, #0 -_0230C6C0: - cmp r0, #1 - beq _0230C834 - cmp r0, #2 - bne _0230C86C - add r0, lr, r5, lsl #1 - ldr r2, _0230C8E4 ; =0x000002FE - add r0, r0, #0x2d00 - mov r1, #0 - strh r1, [r0, #0xee] - cmp r4, r2 - bne _0230C7AC - mov r0, r5, lsl #0x10 - ldr r2, _0230C8E8 ; =0x000001BD - mov r0, r0, lsr #0x10 - bl ov11_0230C924 - add r0, r5, #1 - mov r0, r0, lsl #0x10 - ldr r2, _0230C8EC ; =0x000001BE - mov r0, r0, lsr #0x10 - mov r1, #0 - bl ov11_0230C924 - add r0, r5, #2 - mov r0, r0, lsl #0x10 - ldr r2, _0230C8F0 ; =0x000001BF - mov r0, r0, lsr #0x10 - mov r1, #0 - bl ov11_0230C924 - add r0, r5, #3 - mov r0, r0, lsl #0x10 - mov r0, r0, lsr #0x10 - mov r1, #0 - mov r2, #0x1c0 - bl ov11_0230C924 - add r0, r5, #4 - mov r0, r0, lsl #0x10 - mov r0, r0, lsr #0x10 - mov r1, #0 - ldr r2, _0230C8F4 ; =0x000001C1 - bl ov11_0230C924 - add r0, r5, #5 - mov r0, r0, lsl #0x10 - mov r0, r0, lsr #0x10 - mov r1, #0 - ldr r2, _0230C8F8 ; =0x000001C2 - bl ov11_0230C924 - add r0, r5, #6 - mov r0, r0, lsl #0x10 - mov r0, r0, lsr #0x10 - mov r1, #0 - ldr r2, _0230C8FC ; =0x000001C3 - bl ov11_0230C924 - add r0, r5, #7 - mov r0, r0, lsl #0x10 - mov r0, r0, lsr #0x10 - add r5, r5, #8 - mov r1, #0 - mov r2, #0x1bc - bl ov11_0230C924 - b _0230C834 -_0230C7AC: - add r0, r2, #0x38 - cmp r4, r0 - bne _0230C818 - mov r0, r5, lsl #0x10 - ldr r2, _0230C900 ; =0x000001C5 - mov r0, r0, lsr #0x10 - bl ov11_0230C924 - add r0, r5, #1 - mov r0, r0, lsl #0x10 - ldr r2, _0230C904 ; =0x000001C6 - mov r0, r0, lsr #0x10 - mov r1, #0 - bl ov11_0230C924 - add r0, r5, #2 - mov r0, r0, lsl #0x10 - ldr r2, _0230C908 ; =0x000001C7 - mov r0, r0, lsr #0x10 - mov r1, #0 - bl ov11_0230C924 - add r0, r5, #3 - mov r0, r0, lsl #0x10 - mov r0, r0, lsr #0x10 - mov r1, #0 - mov r2, #0x1c4 - add r5, r5, #4 - bl ov11_0230C924 - b _0230C834 -_0230C818: - add r2, r4, #3 - mov r0, r5, lsl #0x10 - mov r2, r2, lsl #0x10 - mov r0, r0, lsr #0x10 - mov r2, r2, lsr #0x10 - add r5, r5, #1 - bl ov11_0230C924 -_0230C834: - add r1, r4, #2 - mov r0, r5, lsl #0x10 - mov r1, r1, lsl #0x10 - mov r0, r0, lsr #0x10 - mov r2, r1, lsr #0x10 - mov r1, #0 - bl ov11_0230C924 - ldr r0, _0230C8E0 ; =SWAP_SHOP_INVENTORY_PTRS - mov r1, #0 - ldr r0, [r0, #4] - add r0, r0, r5, lsl #1 - add r0, r0, #0x2d00 - strh r1, [r0, #0xee] - add r5, r5, #1 -_0230C86C: - ldr r0, _0230C90C ; =0x000003F6 - add r4, r4, #4 - cmp r4, r0 - blt _0230C628 - ldr r0, _0230C8E0 ; =SWAP_SHOP_INVENTORY_PTRS - ldr r0, [r0, #4] - add r0, r0, #0xe6 - add r0, r0, #0x4500 - bl GetCroagunkItemTemplates - mov r6, r0 - mov r7, #0 - mov r4, #1 - b _0230C8C0 -_0230C8A0: - mov r0, r5, lsl #0x10 - mov r2, r7, lsl #0x10 - mov r1, r4 - mov r0, r0, lsr #0x10 - mov r2, r2, lsr #0x10 - add r5, r5, #1 - bl ov11_0230C924 - add r7, r7, #1 -_0230C8C0: - cmp r7, r6 - blt _0230C8A0 - ldr r0, _0230C8E0 ; =SWAP_SHOP_INVENTORY_PTRS - ldr r0, [r0, #4] - add r0, r0, #0x4600 - strh r5, [r0, #0x26] - ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc} - .align 2, 0 -_0230C8DC: .word 0x000001FA -_0230C8E0: .word SWAP_SHOP_INVENTORY_PTRS -_0230C8E4: .word 0x000002FE -_0230C8E8: .word 0x000001BD -_0230C8EC: .word 0x000001BE -_0230C8F0: .word 0x000001BF -_0230C8F4: .word 0x000001C1 -_0230C8F8: .word 0x000001C2 -_0230C8FC: .word 0x000001C3 -_0230C900: .word 0x000001C5 -_0230C904: .word 0x000001C6 -_0230C908: .word 0x000001C7 -_0230C90C: .word 0x000003F6 - arm_func_end ov11_0230C61C - - arm_func_start ov11_0230C910 -ov11_0230C910: ; 0x0230C910 - ldr r0, _0230C920 ; =SWAP_SHOP_INVENTORY_PTRS - mov r1, #0 - strh r1, [r0] - bx lr - .align 2, 0 -_0230C920: .word SWAP_SHOP_INVENTORY_PTRS - arm_func_end ov11_0230C910 - - arm_func_start ov11_0230C924 -ov11_0230C924: ; 0x0230C924 - stmdb sp!, {r3, lr} - mov r3, #6 - mul lr, r0, r3 - ldr r3, _0230C96C ; =SWAP_SHOP_INVENTORY_PTRS - mov ip, #0 - ldr r0, [r3, #4] - add r0, r0, lr - add r0, r0, #0x1400 - strh r1, [r0, #0xe6] - ldr r0, [r3, #4] - add r0, r0, lr - add r0, r0, #0x1400 - strh r2, [r0, #0xe8] - ldr r0, [r3, #4] - add r0, r0, lr - add r0, r0, #0x1000 - strb ip, [r0, #0x4ea] - ldmia sp!, {r3, pc} - .align 2, 0 -_0230C96C: .word SWAP_SHOP_INVENTORY_PTRS - arm_func_end ov11_0230C924 - - arm_func_start ov11_0230C970 -ov11_0230C970: ; 0x0230C970 - stmdb sp!, {r3, lr} - mov r1, #6 - ldr r2, _0230C9E8 ; =SWAP_SHOP_INVENTORY_PTRS - mul r1, r0, r1 - ldr r3, [r2, #4] - add r0, r3, #0xe6 - add r2, r0, #0x1400 - ldrh r0, [r2, r1] - add r1, r2, r1 - cmp r0, #1 - beq _0230C9B0 - cmp r0, #2 - beq _0230C9C4 - cmp r0, #3 - beq _0230C9D4 - b _0230C9E0 -_0230C9B0: - ldrh r0, [r1, #2] - add r0, r3, r0, lsl #3 - add r0, r0, #0x4500 - ldrsh r0, [r0, #0xe6] - ldmia sp!, {r3, pc} -_0230C9C4: - ldrsh r0, [r1, #2] - bl GetItemAtIdx - ldrsh r0, [r0, #4] - ldmia sp!, {r3, pc} -_0230C9D4: - ldrsh r0, [r1, #2] - bl sub_02010044 - ldmia sp!, {r3, pc} -_0230C9E0: - ldrsh r0, [r1, #2] - ldmia sp!, {r3, pc} - .align 2, 0 -_0230C9E8: .word SWAP_SHOP_INVENTORY_PTRS - arm_func_end ov11_0230C970 - - arm_func_start ov11_0230C9EC -ov11_0230C9EC: ; 0x0230C9EC - cmp r0, #4 - moveq r0, #4 - bx lr - arm_func_end ov11_0230C9EC - - arm_func_start ov11_0230C9F8 -ov11_0230C9F8: ; 0x0230C9F8 - stmdb sp!, {r3, lr} - ldr r0, _0230CA2C ; =SWAP_SHOP_INVENTORY_PTRS - ldr r1, [r0, #4] - add r0, r1, #0x4000 - ldr r0, [r0, #0x6cc] - cmp r0, #0 - ldmneia sp!, {r3, pc} - add r0, r1, #0x2cc - ldr r1, _0230CA30 ; =ov11_02322FF4 - ldr r2, _0230CA34 ; =ov11_0230CA7C - add r0, r0, #0x4400 - bl sub_0204707C - ldmia sp!, {r3, pc} - .align 2, 0 -_0230CA2C: .word SWAP_SHOP_INVENTORY_PTRS -_0230CA30: .word ov11_02322FF4 -_0230CA34: .word ov11_0230CA7C - arm_func_end ov11_0230C9F8 - - arm_func_start ov11_0230CA38 -ov11_0230CA38: ; 0x0230CA38 - stmdb sp!, {r3, lr} - ldr r0, _0230CA78 ; =SWAP_SHOP_INVENTORY_PTRS - ldr r1, [r0, #4] - add r0, r1, #0x4000 - ldr r0, [r0, #0x6cc] - cmp r0, #0 - ldmeqia sp!, {r3, pc} - add r0, r1, #0x2cc - add r0, r0, #0x4400 - bl sub_02047150 - ldr r0, _0230CA78 ; =SWAP_SHOP_INVENTORY_PTRS - mov r1, #0 - ldr r0, [r0, #4] - add r0, r0, #0x4000 - str r1, [r0, #0x6cc] - ldmia sp!, {r3, pc} - .align 2, 0 -_0230CA78: .word SWAP_SHOP_INVENTORY_PTRS - arm_func_end ov11_0230CA38 - - arm_func_start ov11_0230CA7C -ov11_0230CA7C: ; 0x0230CA7C - stmdb sp!, {r4, lr} - ldr r3, _0230CAA0 ; =0x000003A9 - mov r4, r0 - mov r1, #6 - mov r2, #2 - bl AppendStandardStringToMission - mov r0, r4 - bl UpdateWindow - ldmia sp!, {r4, pc} - .align 2, 0 -#ifdef JAPAN -_0230CAA0: .word 0x000032B3 -#else -_0230CAA0: .word 0x000003A9 -#endif - arm_func_end ov11_0230CA7C - - arm_func_start ov11_0230CAA4 -ov11_0230CAA4: ; 0x0230CAA4 - stmdb sp!, {r3, lr} - ldr r0, _0230CAD8 ; =SWAP_SHOP_INVENTORY_PTRS - ldr r1, [r0, #4] - add r0, r1, #0x4000 - ldr r0, [r0, #0x6c8] - cmp r0, #0 - ldmneia sp!, {r3, pc} - add r0, r1, #0x2c8 - ldr r1, _0230CADC ; =ov11_02322FD4 - ldr r2, _0230CAE0 ; =ov11_0230CB28 - add r0, r0, #0x4400 - bl sub_0204707C - ldmia sp!, {r3, pc} - .align 2, 0 -_0230CAD8: .word SWAP_SHOP_INVENTORY_PTRS -_0230CADC: .word ov11_02322FD4 -_0230CAE0: .word ov11_0230CB28 - arm_func_end ov11_0230CAA4 - - arm_func_start ov11_0230CAE4 -ov11_0230CAE4: ; 0x0230CAE4 - stmdb sp!, {r3, lr} - ldr r0, _0230CB24 ; =SWAP_SHOP_INVENTORY_PTRS - ldr r1, [r0, #4] - add r0, r1, #0x4000 - ldr r0, [r0, #0x6c8] - cmp r0, #0 - ldmeqia sp!, {r3, pc} - add r0, r1, #0x2c8 - add r0, r0, #0x4400 - bl sub_02047150 - ldr r0, _0230CB24 ; =SWAP_SHOP_INVENTORY_PTRS - mov r1, #0 - ldr r0, [r0, #4] - add r0, r0, #0x4000 - str r1, [r0, #0x6c8] - ldmia sp!, {r3, pc} - .align 2, 0 -_0230CB24: .word SWAP_SHOP_INVENTORY_PTRS - arm_func_end ov11_0230CAE4 - - arm_func_start ov11_0230CB28 -ov11_0230CB28: ; 0x0230CB28 - stmdb sp!, {r3, r4, lr} - sub sp, sp, #0x54 - mov r4, r0 - add r0, sp, #4 - bl InitPreprocessorArgs - bl ov11_0230B874 - ldr r1, _0230CB84 ; =SWAP_SHOP_INVENTORY_PTRS - str r0, [sp, #0x28] - ldr r0, [r1, #4] -#ifdef JAPAN - add r2, sp, #4 - add r0, r0, #0x4600 - ldrh r1, [r0, #0x28] - ldr r3, _0230E130 ; =0x000032B4 - mov r0, r4 - str r1, [sp, #0x2c] - str r2, [sp] - mov r1, #6 - mov r2, #2 -#else - mov r2, #2 - add r0, r0, #0x4600 - ldrh r3, [r0, #0x28] - add r1, sp, #4 - mov r0, r4 - str r3, [sp, #0x2c] - str r1, [sp] - add r3, r2, #0x3a8 - mov r1, #6 -#endif - bl sub_020262E0 - mov r0, r4 - bl UpdateWindow - add sp, sp, #0x54 - ldmia sp!, {r3, r4, pc} - .align 2, 0 -_0230CB84: .word SWAP_SHOP_INVENTORY_PTRS -#ifdef JAPAN -_0230E130: .word 0x000032B4 -#endif - arm_func_end ov11_0230CB28 diff --git a/asm/overlay_11_02308D1C.s b/asm/overlay_11_02308D1C.s new file mode 100644 index 00000000..5c13f0b1 --- /dev/null +++ b/asm/overlay_11_02308D1C.s @@ -0,0 +1,4763 @@ + .include "asm/macros.inc" + .include "overlay_11_02308D1C.inc" + + .text + + arm_func_start ov11_02308D1C +ov11_02308D1C: ; 0x02308D1C + stmdb sp!, {r3, lr} + ldr r0, _02308D44 ; =ov11_02324D8C + ldr r0, [r0] + cmp r0, #0 + ldmeqia sp!, {r3, pc} + bl MemFree + ldr r0, _02308D44 ; =ov11_02324D8C + mov r1, #0 + str r1, [r0] + ldmia sp!, {r3, pc} + .align 2, 0 +_02308D44: .word ov11_02324D8C + arm_func_end ov11_02308D1C + + arm_func_start ov11_02308D48 +ov11_02308D48: ; 0x02308D48 + stmdb sp!, {r3, lr} + ldr r0, _02308DD4 ; =ov11_02324D8C + mvn r1, #1 + ldr r0, [r0] + ldrsb r0, [r0, #6] + cmp r0, r1 + beq _02308D78 + bl CloseParentMenu + ldr r0, _02308DD4 ; =ov11_02324D8C + mvn r1, #1 + ldr r0, [r0] + strb r1, [r0, #6] +_02308D78: + ldr r0, _02308DD4 ; =ov11_02324D8C + mvn r1, #1 + ldr r0, [r0] + ldrsb r0, [r0, #5] + cmp r0, r1 + beq _02308DA4 + bl CloseTextBox2 + ldr r0, _02308DD4 ; =ov11_02324D8C + mvn r1, #1 + ldr r0, [r0] + strb r1, [r0, #5] +_02308DA4: + ldr r0, _02308DD4 ; =ov11_02324D8C + mvn r1, #1 + ldr r0, [r0] + ldrsb r0, [r0, #4] + cmp r0, r1 + ldmeqia sp!, {r3, pc} + bl CloseInventoryMenu + ldr r0, _02308DD4 ; =ov11_02324D8C + mvn r1, #1 + ldr r0, [r0] + strb r1, [r0, #4] + ldmia sp!, {r3, pc} + .align 2, 0 +_02308DD4: .word ov11_02324D8C + arm_func_end ov11_02308D48 + + arm_func_start ov11_02308DD8 +ov11_02308DD8: ; 0x02308DD8 + stmdb sp!, {r3, r4, lr} + sub sp, sp, #0xc + ldr r1, [r0] + cmp r1, #0 + bne _02308E20 + ldrsh r0, [r0, #4] + bl GetTeamMember + mov r4, r0 + bl sub_02055894 + bl sub_020564B0 + ldr r1, _02308EAC ; =ov11_02324D8C + mov r2, r0 + ldr r0, [r1] + mov r1, r4 + add r0, r0, #0x36 + add r0, r0, #0x100 + bl sub_02056094 + b _02308E94 +_02308E20: + cmp r1, #1 + bne _02308E94 + ldrsh r0, [r0, #4] + bl GetActiveTeamMember + mov r4, r0 + add r0, sp, #0 + add r1, r4, #0x5e + mov r2, #0xa + bl StrncpySimpleNoPadSafe + ldrb r0, [r4] + mov r2, #0x44 + ldr r1, _02308EB0 ; =ov11_02322DB8 + tst r0, #2 + movne r0, #1 + moveq r0, #0 + tst r0, #0xff + ldrb r0, [r4, #1] + movne r2, #0x46 + add r3, sp, #0 + cmp r0, #0 + movne r0, #1 + moveq r0, #0 + tst r0, #0xff + ldr r0, _02308EAC ; =ov11_02324D8C + movne r2, #0x59 + ldr r0, [r0] + add r0, r0, #0x36 + add r0, r0, #0x100 + bl ov11_02308EB4 +_02308E94: + ldr r0, _02308EAC ; =ov11_02324D8C + ldr r0, [r0] + add r0, r0, #0x36 + add r0, r0, #0x100 + add sp, sp, #0xc + ldmia sp!, {r3, r4, pc} + .align 2, 0 +_02308EAC: .word ov11_02324D8C +_02308EB0: .word ov11_02322DB8 + arm_func_end ov11_02308DD8 + + arm_func_start ov11_02308EB4 +ov11_02308EB4: ; 0x02308EB4 + stmdb sp!, {r0, r1, r2, r3} + stmdb sp!, {r3, lr} + add r2, sp, #0xc + bic r2, r2, #3 + ldr r1, [sp, #0xc] + add r2, r2, #4 + bl vsprintf + ldmia sp!, {r3, lr} + add sp, sp, #0x10 + bx lr + arm_func_end ov11_02308EB4 + + arm_func_start ov11_02308EDC +ov11_02308EDC: ; 0x02308EDC + stmdb sp!, {r3, lr} + ldr r1, _02308F10 ; =ov11_02324D8C + mvn r0, #1 + ldr r1, [r1] + ldrsb r1, [r1, #8] + cmp r1, r0 + ldmneia sp!, {r3, pc} + mov r0, #0 + bl CreateDialogueBox + ldr r1, _02308F10 ; =ov11_02324D8C + ldr r1, [r1] + strb r0, [r1, #8] + ldmia sp!, {r3, pc} + .align 2, 0 +_02308F10: .word ov11_02324D8C + arm_func_end ov11_02308EDC + + arm_func_start ov11_02308F14 +ov11_02308F14: ; 0x02308F14 + stmdb sp!, {r3, lr} + ldr r0, _02308F48 ; =ov11_02324D8C + mvn r1, #1 + ldr r0, [r0] + ldrsb r0, [r0, #8] + cmp r0, r1 + ldmeqia sp!, {r3, pc} + bl CloseDialogueBox + ldr r0, _02308F48 ; =ov11_02324D8C + mvn r1, #1 + ldr r0, [r0] + strb r1, [r0, #8] + ldmia sp!, {r3, pc} + .align 2, 0 +_02308F48: .word ov11_02324D8C + arm_func_end ov11_02308F14 + + arm_func_start ov11_02308F4C +ov11_02308F4C: ; 0x02308F4C + stmdb sp!, {r4, lr} + ldr r2, [r1] + ldr r1, [r1, #4] + mov r4, r0 + str r2, [r4] + str r1, [r4, #4] + ldr r0, [r4] + cmp r0, #0 + bne _02308F9C + ldrsh r0, [r4, #4] + bl GetTeamMember + ldrsh r3, [r0, #4] + add r2, r0, #0x14 + add r1, r0, #8 + strh r3, [r4, #8] + ldrb r0, [r0, #2] + strb r0, [r4, #0xa] + str r2, [r4, #0xc] + str r1, [r4, #0x10] + ldmia sp!, {r4, pc} +_02308F9C: + cmp r0, #1 + ldmneia sp!, {r4, pc} + ldrsh r0, [r4, #4] + bl GetActiveTeamMember + ldrsh r3, [r0, #0xc] + add r2, r0, #0x4c + add r1, r0, #6 + strh r3, [r4, #8] + ldrb r0, [r0, #3] + strb r0, [r4, #0xa] + str r2, [r4, #0xc] + str r1, [r4, #0x10] + ldmia sp!, {r4, pc} + arm_func_end ov11_02308F4C + + arm_func_start ov11_02308FD0 +ov11_02308FD0: ; 0x02308FD0 + stmdb sp!, {r3, lr} + ldr r1, [r0] + cmp r1, #1 + ldmneia sp!, {r3, pc} + ldrsh r0, [r0, #4] + bl sub_02058794 + ldmia sp!, {r3, pc} + arm_func_end ov11_02308FD0 + + arm_func_start ov11_02308FEC +ov11_02308FEC: ; 0x02308FEC + stmdb sp!, {r3, lr} + ldr r1, [r0] + cmp r1, #0 + bne _02309008 + ldrsh r0, [r0, #4] + bl sub_0203FA64 + ldmia sp!, {r3, pc} +_02309008: + cmp r1, #1 + ldmneia sp!, {r3, pc} + ldrsh r0, [r0, #4] + bl sub_0203FBD4 + ldmia sp!, {r3, pc} + arm_func_end ov11_02308FEC + + arm_func_start ov11_0230901C +ov11_0230901C: ; 0x0230901C + ldr r1, [r0] + cmp r1, #0 + ldreqsh r0, [r0, #4] + orreq r0, r0, #0x20000 + bxeq lr + cmp r1, #1 + ldreqsh r0, [r0, #4] + orreq r0, r0, #0x30000 + bx lr + arm_func_end ov11_0230901C + + arm_func_start ov11_02309040 +ov11_02309040: ; 0x02309040 + stmdb sp!, {r4, lr} + mov r4, r0 + ldr r0, _0230907C ; =0x00000794 + mov r1, #8 + bl MemAlloc + ldr r1, _02309080 ; =ov11_02324D90 + cmp r0, #0 + str r0, [r1] + moveq r0, #0 +#ifdef JAPAN + strne r4, [r0, #0xf4] +#else + strne r4, [r0, #0x114] +#endif + ldrne r0, [r1] + movne r1, #0 + strne r1, [r0] + movne r0, #1 + ldmia sp!, {r4, pc} + .align 2, 0 +#ifdef JAPAN +_0230907C: .word 0x00000774 +#else +_0230907C: .word 0x00000794 +#endif +_02309080: .word ov11_02324D90 + arm_func_end ov11_02309040 + + arm_func_start ov11_02309084 +ov11_02309084: ; 0x02309084 +#ifdef JAPAN +#define OV11_02309084_OFFSET -0x20 +#else +#define OV11_02309084_OFFSET 0 +#endif + stmdb sp!, {r4, lr} + mov r4, r0 + ldr r0, _023090D4 ; =0x00000794 + mov r1, #8 + bl MemAlloc + ldr r1, _023090D8 ; =ov11_02324D90 + cmp r0, #0 + str r0, [r1] + moveq r0, #0 + ldmeqia sp!, {r4, pc} + mov r2, #2 + str r2, [r0, #0x114 + OV11_02309084_OFFSET] + ldr r0, [r1] + mov r2, #0 + str r2, [r0] + ldr r1, [r1] + mov r0, #1 +#ifdef JAPAN + strh r4, [r1, #0xf8] +#else + add r1, r1, #0x100 + strh r4, [r1, #0x18] +#endif + ldmia sp!, {r4, pc} + .align 2, 0 +#ifdef JAPAN +_023090D4: .word 0x00000774 +#else +_023090D4: .word 0x00000794 +#endif +_023090D8: .word ov11_02324D90 + arm_func_end ov11_02309084 + + arm_func_start ov11_023090DC +ov11_023090DC: ; 0x023090DC + stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x124 + ldr r0, _02309D80 ; =ov11_02324D90 + ldr r3, [r0] + ldr r0, [r3] + cmp r0, #0x1b + addls pc, pc, r0, lsl #2 + b _02309D74 +_023090FC: ; jump table + b _0230916C ; case 0 + b _0230955C ; case 1 + b _02309518 ; case 2 + b _02309724 ; case 3 + b _023097EC ; case 4 + b _0230984C ; case 5 + b _0230987C ; case 6 + b _023098A8 ; case 7 + b _023098E4 ; case 8 + b _023099B0 ; case 9 + b _023099CC ; case 10 + b _023099F8 ; case 11 + b _02309A2C ; case 12 + b _02309A68 ; case 13 + b _02309A8C ; case 14 + b _02309AB4 ; case 15 + b _02309AD0 ; case 16 + b _02309B40 ; case 17 + b _02309B5C ; case 18 + b _02309BA4 ; case 19 + b _02309C04 ; case 20 + b _02309CA4 ; case 21 + b _02309CE0 ; case 22 + b _02309CF8 ; case 23 + b _02309D20 ; case 24 + b _02309D38 ; case 25 + b _02309D54 ; case 26 + b _02309D6C ; case 27 +_0230916C: + ldr r5, [r3, #0x114 + OV11_02309084_OFFSET] + mov r0, #0 + str r0, [sp, #4] + ldr r8, [sp, #4] + add r4, r3, #0x11c + OV11_02309084_OFFSET + mov r2, r8 +#ifdef JAPAN + str r2, [sp, #8] + ldrsh r2, [r3, #0xf8] +#else + add r3, r3, #0x100 + str r2, [sp, #8] + ldrsh r2, [r3, #0x18] +#endif + mov r0, r4 + mov r1, r5 + str r2, [sp, #0x10] + ldr r2, _02309D84 ; =0x00401833 + add r7, r4, #0x38 + str r2, [sp, #0x14] + bl ov11_02309EE4 + mov r2, #0 + mov r1, r2 + b _023091C4 +_023091B8: + add r0, r4, r2 + strb r1, [r0, #0x70] + add r2, r2, #1 +_023091C4: + ldr r0, [r4, #0x30] + cmp r2, r0 + blt _023091B8 + cmp r5, #2 + bne _023092FC + mov sl, #0 + b _023092F0 +_023091E0: + ldr r0, [sp, #0x10] + add fp, r4, sl, lsl #3 + bl GetItemMoveId16 + ldr r1, [r4, sl, lsl #3] + mov r6, r0 + cmp r1, #1 + bne _02309258 + ldrsh r0, [fp, #4] + bl GetTeamMember + ldrsh r1, [r0, #4] + mov sb, #0 + mov r3, sb + str r1, [sp, #0xc] + mov fp, #1 + mov r1, #6 + b _0230924C +_02309220: + mla ip, sb, r1, r0 + ldrb r2, [ip, #0x22] + tst r2, #1 + movne r2, fp + moveq r2, r3 + tst r2, #0xff + beq _02309248 + ldrh r2, [ip, #0x24] + cmp r6, r2 + beq _023092B8 +_02309248: + add sb, sb, #1 +_0230924C: + cmp sb, #4 + blt _02309220 + b _023092B8 +_02309258: + cmp r1, #2 + bne _023092B8 + ldrsh r0, [fp, #4] + bl GetActiveTeamMember + ldrsh r1, [r0, #0xc] + mov sb, #0 + mov r2, sb + str r1, [sp, #0xc] + mov r3, #1 + b _023092B0 +_02309280: + add r1, r0, sb, lsl #3 + ldrb r1, [r1, #0x1c] + tst r1, #1 + movne r1, r3 + moveq r1, r2 + tst r1, #0xff + beq _023092AC + add r1, r0, sb, lsl #3 + ldrh r1, [r1, #0x20] + cmp r6, r1 + beq _023092B8 +_023092AC: + add sb, sb, #1 +_023092B0: + cmp sb, #4 + blt _02309280 +_023092B8: + ldr r1, [sp, #0xc] + mov r0, r6 + bl sub_02053D1C + cmp r0, #0 + beq _023092E0 + cmp sb, #4 + addlt r0, r4, sl + movlt r1, #3 + strltb r1, [r0, #0x70] + b _023092EC +_023092E0: + add r0, r4, sl + mov r1, #3 + strb r1, [r0, #0x70] +_023092EC: + add sl, sl, #1 +_023092F0: + ldr r0, [r4, #0x30] + cmp sl, r0 + blt _023091E0 +_023092FC: + mov sl, #0 + add r6, r4, #0x76 + add fp, sp, #0x5c + b _02309450 +_0230930C: + add sb, r4, sl, lsl #3 + ldr r0, [r4, sl, lsl #3] + cmp r0, #1 + bne _0230935C + ldrsh r0, [sb, #4] + bl GetTeamMember + ldrsh r1, [sb, #4] + mov sb, r0 + orr r0, r1, #0x20000 + str r0, [sp, #0x5c] + ldrsh r0, [sb, #4] + bl GetDexNumber + str r0, [sp, #0x80] + add r1, sb, #0x3a + add r0, sp, #0x1a + mov r2, #0 + bl RecolorNameString + add r0, sp, #0x1a + str r0, [sp, #0x94] + b _023093A0 +_0230935C: + cmp r0, #2 + bne _023093A0 + ldrsh r0, [sb, #4] + bl GetActiveTeamMember + ldrsh r1, [sb, #4] + mov sb, r0 + orr r0, r1, #0x30000 + str r0, [sp, #0x5c] + ldrsh r0, [sb, #0xc] + bl GetDexNumber + str r0, [sp, #0x80] + add r1, sb, #0x5e + add r0, sp, #0x1a + mov r2, #0 + bl RecolorNameString + add r0, sp, #0x1a + str r0, [sp, #0x94] +_023093A0: + cmp r5, #1 + mov r1, #0x100 + mov r3, #0 + bne _023093C8 + ldr r2, _02309D88 ; =ov11_02322E58 + add r0, r6, r8, lsl #8 + str fp, [sp] + mov sb, r8, lsl #8 + bl PreprocessString + b _0230941C +_023093C8: + cmp r5, #2 + bne _02309408 + add r0, r4, sl + ldrb r0, [r0, #0x70] + mov sb, r8, lsl #8 + tst r0, #2 + str fp, [sp] + beq _023093F8 + ldr r2, _02309D8C ; =ov11_02322E7C + add r0, r6, r8, lsl #8 + bl PreprocessString + b _0230941C +_023093F8: + ldr r2, _02309D88 ; =ov11_02322E58 + add r0, r6, r8, lsl #8 + bl PreprocessString + b _0230941C +_02309408: + ldr r2, _02309D90 ; =ov11_02322EA0 + add r0, r6, r8, lsl #8 + str fp, [sp] + mov sb, r8, lsl #8 + bl PreprocessString +_0230941C: + add r0, r4, sl + ldrb r0, [r0, #0x70] + add r8, r8, #1 + cmp r0, #0 + ldreq r0, [sp, #4] + cmpeq r0, #0 + moveq r0, #1 + streq r0, [sp, #4] + add r0, r6, sb + stmia r7, {r0, sl} + streq sl, [sp, #8] + add r7, r7, #8 + add sl, sl, #1 +_02309450: + ldr r0, [r4, #0x30] + cmp sl, r0 + blt _0230930C + mov r3, #0 + str r3, [r7] + sub r0, r3, #1 + str r0, [r7, #4] + ldr r0, [sp, #8] + ldr r1, _02309D80 ; =ov11_02324D90 + str r0, [r4, #0x34] + ldr r0, [r1] + mov r2, #0x10 + str r2, [r0, #0x88 + OV11_02309084_OFFSET] + ldr r0, [r1] + str r3, [r0, #0x7c + OV11_02309084_OFFSET] + ldr r3, [r1] + ldr r0, [r3, #0x114 + OV11_02309084_OFFSET] + cmp r0, #1 + ldreq r0, _02309D94 ; =0x000002F2 + streqh r0, [r3, #0x84 + OV11_02309084_OFFSET] + beq _023094E0 + cmp r0, #2 + ldrne r0, _02309D98 ; =0x00000A3A + strneh r0, [r3, #0x84 + OV11_02309084_OFFSET] + bne _023094E0 + ldr r2, _02309D94 ; =0x000002F2 + ldr r0, [sp, #0x14] + strh r2, [r3, #0x84 + OV11_02309084_OFFSET] + orr r0, r0, #0x200 + ldr r2, [r1] + str r0, [sp, #0x14] + add r0, r2, #0x18c + OV11_02309084_OFFSET + str r0, [r2, #0xdc + OV11_02309084_OFFSET] + ldr r1, [r1] + ldr r0, [r1, #0x150 + OV11_02309084_OFFSET] + str r0, [r1, #0x7c + OV11_02309084_OFFSET] +_023094E0: + ldr r1, _02309D80 ; =ov11_02324D90 + ldr r0, _02309D9C ; =ov11_02322DD0 + ldr r3, [r1] + ldr r1, [sp, #0x14] + add r2, r3, #0x7c + OV11_02309084_OFFSET + add r3, r3, #0x154 + OV11_02309084_OFFSET + bl CreateParentMenu + ldr r1, _02309D80 ; =ov11_02324D90 + mov r2, #1 + ldr r3, [r1] + strb r0, [r3, #4] + ldr r0, [r1] + str r2, [r0] + b _02309D74 +_02309518: + ldrsb r0, [r3, #4] + bl sub_02028354 + cmp r0, #3 + bne _02309538 + ldr r0, _02309D80 ; =ov11_02324D90 + ldr r0, [r0] + ldrsb r0, [r0, #4] + bl sub_0202810C +_02309538: + ldr r0, _02309D80 ; =ov11_02324D90 + ldr r0, [r0] + ldrsb r0, [r0, #4] + bl ResumeParentMenu + ldr r0, _02309D80 ; =ov11_02324D90 + mov r1, #1 + ldr r0, [r0] + str r1, [r0] + b _02309D74 +_0230955C: + add r1, sp, #0x18 + mov r0, #0 + ldr r5, [r3, #0x114 + OV11_02309084_OFFSET] + bl GetPressedButtons + ldrh r0, [sp, #0x18] + tst r0, #8 + beq _02309584 + cmp r5, #0 + moveq r0, #1 + beq _02309588 +_02309584: + mov r0, #0 +_02309588: + cmp r0, #0 + beq _023095E0 + ldr r0, _02309D80 ; =ov11_02324D90 + ldr r4, [r0] + ldrsb r0, [r4, #4] + bl GetWindowIdSelectedItemOnPage + add r0, r4, r0, lsl #3 + ldr r1, [r0, #0x158 + OV11_02309084_OFFSET] + ldr r0, _02309D80 ; =ov11_02324D90 + str r1, [r4, #0x10] + ldr r0, [r0] + ldrsb r0, [r0, #4] + bl sub_0202B030 + ldr r0, _02309D80 ; =ov11_02324D90 + ldr r0, [r0] + ldrsb r0, [r0, #4] + bl sub_0202812C + ldr r0, _02309D80 ; =ov11_02324D90 + mov r1, #4 + ldr r0, [r0] + str r1, [r0] + b _02309D74 +_023095E0: + ldr r0, _02309D80 ; =ov11_02324D90 + ldr r0, [r0] + ldrsb r0, [r0, #4] + bl IsParentMenuActive + cmp r0, #0 + bne _02309D74 + ldr r0, _02309D80 ; =ov11_02324D90 + ldr r0, [r0] + ldrsb r0, [r0, #4] + bl GetSimpleMenuResult__0202AEA4 + cmp r0, #0 + blt _02309704 + ldr r1, _02309D80 ; =ov11_02324D90 + ldr r2, [r1] + str r0, [r2, #0x10] + ldr r1, [r1] + add r2, r1, #0x11c + OV11_02309084_OFFSET + ldr r1, [r2, r0, lsl #3] + add r5, r2, r0, lsl #3 + cmp r1, #1 + bne _02309644 + ldrsh r0, [r5, #4] + bl GetTeamMember + ldrsh r4, [r0, #4] + b _02309658 +_02309644: + cmp r1, #2 + bne _02309658 + ldrsh r0, [r5, #4] + bl GetActiveTeamMember + ldrsh r4, [r0, #0xc] +_02309658: + mov r0, r5 + bl ov11_0230A044 + ldr r1, _02309D80 ; =ov11_02324D90 + mov r5, r0 + ldr r1, [r1] + ldr r0, [r1, #0x114 + OV11_02309084_OFFSET] + sub r0, r0, #1 + cmp r0, #1 + movls r0, #0x1a + strls r0, [r1] + bls _02309D74 + bl GetGameMode + cmp r0, #5 + beq _023096D0 + cmp r4, #0x140 + bne _023096D0 + mov r0, r5 + mov r1, r4 + bl StrcmpMonsterName + cmp r0, #0 + beq _023096D0 + ldr r0, _02309DA0 ; =ov11_02322DE0 + ldr r3, _02309DA4 ; =ov11_02322E28 + mov r1, #0x13 + mov r2, #0 + bl CreateParentMenuFromStringIds + ldr r1, _02309D80 ; =ov11_02324D90 + ldr r1, [r1] + strb r0, [r1, #5] + b _023096F0 +_023096D0: + ldr r0, _02309DA0 ; =ov11_02322DE0 + ldr r3, _02309DA8 ; =ov11_02322E00 + mov r1, #0x13 + mov r2, #0 + bl CreateParentMenuFromStringIds + ldr r1, _02309D80 ; =ov11_02324D90 + ldr r1, [r1] + strb r0, [r1, #5] +_023096F0: + ldr r0, _02309D80 ; =ov11_02324D90 + mov r1, #3 + ldr r0, [r0] + str r1, [r0] + b _02309D74 +_02309704: + ldr r0, _02309D80 ; =ov11_02324D90 + mov r3, #0x1a + ldr r2, [r0] + sub r1, r3, #0x1b + str r3, [r2] + ldr r0, [r0] + str r1, [r0, #0x10] + b _02309D74 +_02309724: + ldrsb r0, [r3, #5] + bl IsParentMenuActive + cmp r0, #0 + bne _02309D74 + ldr r0, _02309D80 ; =ov11_02324D90 + ldr r0, [r0] + ldrsb r0, [r0, #5] + bl GetSimpleMenuResult__0202AEA4 + mvn r1, #0 + cmp r0, r1 + beq _023097C8 + ldr r1, _02309D80 ; =ov11_02324D90 + cmp r0, #3 + ldr r2, [r1] + str r0, [r2, #0x14] + addls pc, pc, r0, lsl #2 + b _023097B4 +_02309768: ; jump table + b _02309778 ; case 0 + b _02309788 ; case 1 + b _02309798 ; case 2 + b _023097A8 ; case 3 +_02309778: + ldr r0, [r1] + mov r1, #4 + str r1, [r0] + b _023097B4 +_02309788: + ldr r0, [r1] + mov r1, #7 + str r1, [r0] + b _023097B4 +_02309798: + ldr r0, [r1] + mov r1, #0xc + str r1, [r0] + b _023097B4 +_023097A8: + ldr r0, [r1] + mov r1, #0xe + str r1, [r0] +_023097B4: + ldr r0, _02309D80 ; =ov11_02324D90 + ldr r0, [r0] + ldrsb r0, [r0, #4] + bl sub_0202812C + b _023097D8 +_023097C8: + ldr r0, _02309D80 ; =ov11_02324D90 + mov r1, #2 + ldr r0, [r0] + str r1, [r0] +_023097D8: + ldr r0, _02309D80 ; =ov11_02324D90 + ldr r0, [r0] + ldrsb r0, [r0, #5] + bl CloseParentMenu + b _02309D74 +_023097EC: + ldr r0, [r3, #0x10] + add r1, r3, #0x11c + OV11_02309084_OFFSET + add r4, r1, r0, lsl #3 + ldrsh r0, [r4, #4] + bl GetActiveTeamMember + ldrb r0, [r0, #1] + cmp r0, #0 + movne r5, #1 + ldrsh r0, [r4, #4] + moveq r5, #0 + bl GetActiveTeamMember + mov r1, r0 + add r0, sp, #0xac + and r2, r5, #0xff + bl CreateMonsterSummaryFromTeamMember + add r0, sp, #0xac + mov r1, #3 + bl sub_0203F150 + ldr r1, _02309D80 ; =ov11_02324D90 + mov r2, #5 + ldr r3, [r1] + strb r0, [r3, #9] + ldr r0, [r1] + str r2, [r0] +_0230984C: + bl sub_0203F398 + cmp r0, #1 + bne _02309D74 + bl sub_0203F974 + ldr r0, _02309D80 ; =ov11_02324D90 + mov r3, #1 + ldr r2, [r0] + mov r1, #6 + str r3, [r2, #0x18] + ldr r0, [r0] + str r1, [r0] + b _02309D74 +_0230987C: + ldr r1, [r3, #0x18] + sub r0, r1, #1 + str r0, [r3, #0x18] + cmp r1, #0 + bne _02309D74 + bl sub_0203F990 + ldr r0, _02309D80 ; =ov11_02324D90 + mov r1, #2 + ldr r0, [r0] + str r1, [r0] + b _02309D74 +_023098A8: + ldr r0, [r3, #0x10] +#ifdef JAPAN + mov r0, r0, lsl #0x10 + mov r0, r0, asr #0x10 +#else + add r0, r3, r0, lsl #3 + add r0, r0, #0x100 + ldrsh r0, [r0, #0x20] +#endif + bl sub_0203FBD4 + mov r1, #0 + mov r2, r1 + mov r0, #9 + bl sub_0204018C + ldr r1, _02309D80 ; =ov11_02324D90 + mov r2, #8 + ldr r3, [r1] + strb r0, [r3, #0xa] + ldr r0, [r1] + str r2, [r0] +_023098E4: + bl sub_020407EC + cmp r0, #1 + bne _02309934 + ldr r0, _02309D80 ; =ov11_02324D90 + ldr r1, [r0] + ldr r0, [r1, #0x10] + add r0, r1, r0, lsl #3 + add r0, r0, #0x100 + ldrsh r0, [r0, #0x20 + OV11_02309084_OFFSET] + bl sub_0203FDEC + bl sub_020407C0 + ldr r0, _02309D80 ; =ov11_02324D90 + ldr r0, [r0] + ldrsb r0, [r0, #0xa] + bl CloseAdvancedTextBox + ldr r0, _02309D80 ; =ov11_02324D90 + mov r1, #2 + ldr r0, [r0] + str r1, [r0] + b _02309D74 +_02309934: + cmp r0, #2 + cmpne r0, #7 + bne _02309D74 + ldr r0, _02309D80 ; =ov11_02324D90 + ldr r1, [r0] + ldr r0, [r1, #0x10] + add r1, r1, #0x11c + OV11_02309084_OFFSET + add r4, r1, r0, lsl #3 + bl sub_0203FD38 + ldr r2, _02309D80 ; =ov11_02324D90 + mov r1, r0 + ldr r0, [r2] + mov r2, #0x20 + add r0, r0, #0x1e + bl MemcpySimple + bl sub_02041094 + ldr r1, _02309D80 ; =ov11_02324D90 + ldr r1, [r1] + strh r0, [r1, #0x1c] + ldrsh r0, [r4, #4] + bl sub_0203FDEC + bl sub_020407C0 + ldr r0, _02309D80 ; =ov11_02324D90 + ldr r0, [r0] + ldrsb r0, [r0, #0xa] + bl CloseAdvancedTextBox + ldr r0, _02309D80 ; =ov11_02324D90 + mov r1, #0xa + ldr r0, [r0] + str r1, [r0] + b _02309D74 +_023099B0: + ldrsb r0, [r3, #0xa] + bl sub_020307EC + ldr r0, _02309D80 ; =ov11_02324D90 + mov r1, #8 + ldr r0, [r0] + str r1, [r0] + b _02309D74 +_023099CC: + ldrsh r2, [r3, #0x1c] + add r0, r3, #0x1e + mov r1, #4 + mov r3, #1 + bl sub_020417A8 + ldr r1, _02309D80 ; =ov11_02324D90 + mov r2, #0xb + ldr r3, [r1] + strb r0, [r3, #0xb] + ldr r0, [r1] + str r2, [r0] +_023099F8: + bl sub_02041A18 + cmp r0, #1 + bne _02309D74 + bl sub_02041A00 + ldr r0, _02309D80 ; =ov11_02324D90 + ldr r0, [r0] + ldrsb r0, [r0, #0xb] + bl CloseScrollBox + ldr r0, _02309D80 ; =ov11_02324D90 + mov r1, #7 + ldr r0, [r0] + str r1, [r0] + b _02309D74 +_02309A2C: + ldr r0, [r3, #0x10] + add r0, r3, r0, lsl #3 + add r0, r0, #0x100 + ldrsh r0, [r0, #0x20 + OV11_02309084_OFFSET] + bl GetActiveTeamMember + mov r1, r0 + ldrsh r0, [r1, #0xc] + ldrsh r2, [r1, #6] + add r1, r1, #0x4c + mov r3, #0 + bl PrintIqSkillsMenu + ldr r0, _02309D80 ; =ov11_02324D90 + mov r1, #0xd + ldr r0, [r0] + str r1, [r0] +_02309A68: + bl sub_02041B7C + cmp r0, #1 + bne _02309D74 + bl sub_020420F4 + ldr r0, _02309D80 ; =ov11_02324D90 + mov r1, #2 + ldr r0, [r0] + str r1, [r0] + b _02309D74 +_02309A8C: + bl ov11_0230D92C + ldr r0, _02309D80 ; =ov11_02324D90 + ldr r0, [r0] + ldrsb r0, [r0, #4] + bl CloseParentMenu + ldr r0, _02309D80 ; =ov11_02324D90 + mov r1, #0xf + ldr r0, [r0] + str r1, [r0] + b _02309D74 +_02309AB4: + bl ov11_0230D220 + cmp r0, #0 + ldreq r0, _02309D80 ; =ov11_02324D90 + moveq r1, #0x10 + ldreq r0, [r0] + streq r1, [r0] + b _02309D74 +_02309AD0: + ldr r0, [r3, #0x10] + add r1, r3, #0x11c + OV11_02309084_OFFSET + add r0, r1, r0, lsl #3 + bl ov11_0230A044 + ldr r2, _02309D80 ; =ov11_02324D90 + mov r1, r0 + ldr r0, [r2] + mov r2, #0xa + add r0, r0, #0x3e + bl StrncpySimpleNoPad + ldr r0, _02309D80 ; =ov11_02324D90 + ldr r1, [r0] +#ifdef JAPAN + add r0, r1, #0x48 +#else + add r0, r1, #0x52 +#endif + add r1, r1, #0x3e + bl StrcpySimple + ldr r1, _02309D80 ; =ov11_02324D90 + mov r0, #2 + ldr r3, [r1] + mov r2, #0 + add r1, r3, #0x3e +#ifdef JAPAN + add r3, r3, #0x48 +#else + add r3, r3, #0x52 +#endif + bl ShowKeyboard + bl ov11_02310BDC + ldr r0, _02309D80 ; =ov11_02324D90 + mov r1, #0x11 + ldr r0, [r0] + str r1, [r0] + b _02309D74 +_02309B40: + bl ov11_0230D220 + cmp r0, #0 + ldreq r0, _02309D80 ; =ov11_02324D90 + moveq r1, #0x12 + ldreq r0, [r0] + streq r1, [r0] + b _02309D74 +_02309B5C: + bl GetKeyboardStatus + cmp r0, #3 + bne _02309D74 + ldr r0, _02309D80 ; =ov11_02324D90 + mov r1, #0xa + ldr r0, [r0] + str r1, [r0, #0x18] + bl GetKeyboardStringResult + ldr r2, _02309D80 ; =ov11_02324D90 + mov r1, r0 + ldr r0, [r2] + add r0, r0, #0x3e + bl StrcpySimple + ldr r0, _02309D80 ; =ov11_02324D90 + mov r1, #0x13 + ldr r0, [r0] + str r1, [r0] + b _02309D74 +_02309BA4: + bl sub_02037468 + cmp r0, #0 + beq _02309D74 + ldr r0, _02309D80 ; =ov11_02324D90 + ldr r3, [r0] + ldr r2, [r3, #0x18] + sub r1, r2, #1 + str r1, [r3, #0x18] + cmp r2, #0 + bgt _02309D74 + ldr r1, [r0] + mov r2, #0xa +#ifdef JAPAN + add r0, r1, #0x52 +#else + add r0, r1, #0x66 +#endif + add r1, r1, #0x3e + bl StrncpySimpleNoPadSafe + ldr r0, _02309D80 ; =ov11_02324D90 + ldr r0, [r0] +#ifdef JAPAN + add r0, r0, #0x52 +#else + add r0, r0, #0x66 +#endif + bl sub_0203909C + ldr r0, _02309D80 ; =ov11_02324D90 + mov r1, #0x14 + ldr r0, [r0] + str r1, [r0] + b _02309D74 +_02309C04: + ldr r0, [r3, #0x10] + add r1, r3, #0x11c + OV11_02309084_OFFSET + add r4, r1, r0, lsl #3 + mov r0, r4 + bl ov11_0230A044 + mov r5, r0 + bl sub_0203931C + mvn r1, #0 + cmp r0, r1 + beq _02309D74 + cmp r0, #0 + beq _02309C4C + cmp r0, #1 + ldreq r0, _02309D80 ; =ov11_02324D90 + moveq r1, #0x15 + ldreq r0, [r0] + streq r1, [r0] + b _02309D74 +_02309C4C: + ldr r1, _02309D80 ; =ov11_02324D90 + mov r0, r5 + ldr r1, [r1] + mov r2, #0xa + add r1, r1, #0x3e + bl StrncpySimple + ldr r1, _02309D80 ; =ov11_02324D90 + mov r0, r5 + ldr r1, [r1] + mov r2, #0xa + add r1, r1, #0x3e + bl StrncpySimple + ldr r0, [r4] + cmp r0, #2 + bne _02309C90 + ldrsh r0, [r4, #4] + bl sub_02058794 +_02309C90: + ldr r0, _02309D80 ; =ov11_02324D90 + mov r1, #0x16 + ldr r0, [r0] + str r1, [r0] + b _02309D74 +_02309CA4: + bl sub_02039218 + cmp r0, #0 + beq _02309D74 + ldr r1, _02309D80 ; =ov11_02324D90 + mov r0, #2 + ldr r3, [r1] + mov r2, #0 + add r1, r3, #0x3e +#ifdef JAPAN + add r3, r3, #0x48 +#else + add r3, r3, #0x52 +#endif + bl ShowKeyboard + ldr r0, _02309D80 ; =ov11_02324D90 + mov r1, #0x12 + ldr r0, [r0] + str r1, [r0] + b _02309D74 +_02309CE0: + bl ov11_0230D92C + ldr r0, _02309D80 ; =ov11_02324D90 + mov r1, #0x17 + ldr r0, [r0] + str r1, [r0] + b _02309D74 +_02309CF8: + bl ov11_0230D220 + cmp r0, #0 + bne _02309D74 + bl sub_02039218 + cmp r0, #0 + ldrne r0, _02309D80 ; =ov11_02324D90 + movne r1, #0x18 + ldrne r0, [r0] + strne r1, [r0] + b _02309D74 +_02309D20: + bl ov11_0230D000 + ldr r0, _02309D80 ; =ov11_02324D90 + mov r1, #0x19 + ldr r0, [r0] + str r1, [r0] + b _02309D74 +_02309D38: + bl ov11_0230D220 + cmp r0, #0 + ldreq r0, _02309D80 ; =ov11_02324D90 + moveq r1, #0 + ldreq r0, [r0] + streq r1, [r0] + b _02309D74 +_02309D54: + ldrsb r0, [r3, #4] + bl CloseParentMenu + ldr r0, _02309D80 ; =ov11_02324D90 + mov r1, #0x1b + ldr r0, [r0] + str r1, [r0] +_02309D6C: + mov r0, #1 + b _02309D78 +_02309D74: + mov r0, #0 +_02309D78: + add sp, sp, #0x124 + ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_02309D80: .word ov11_02324D90 +_02309D84: .word 0x00401833 +_02309D88: .word ov11_02322E58 +_02309D8C: .word ov11_02322E7C +_02309D90: .word ov11_02322EA0 +#ifdef JAPAN +_02309D94: .word 0x00002FF2 +_02309D98: .word 0x00000875 +#else +_02309D94: .word 0x000002F2 +_02309D98: .word 0x00000A3A +#endif +_02309D9C: .word ov11_02322DD0 +_02309DA0: .word ov11_02322DE0 +_02309DA4: .word ov11_02322E28 +_02309DA8: .word ov11_02322E00 + arm_func_end ov11_023090DC + + arm_func_start ov11_02309DAC +ov11_02309DAC: ; 0x02309DAC + ldr r1, _02309DF4 ; =ov11_02324D90 + ldr r1, [r1] + ldr r2, [r1, #0x10] +#ifdef JAPAN + add r3, r1, #0xfc +#else + add r3, r1, #0x11c +#endif + ldr r1, [r3, r2, lsl #3] + add r2, r3, r2, lsl #3 + cmp r1, #1 + moveq r1, #0 + streq r1, [r0] + ldreqsh r1, [r2, #4] + streqh r1, [r0, #4] + bxeq lr + cmp r1, #2 + moveq r1, #1 + streq r1, [r0] + ldreqsh r1, [r2, #4] + streqh r1, [r0, #4] + bx lr + .align 2, 0 +_02309DF4: .word ov11_02324D90 + arm_func_end ov11_02309DAC + + arm_func_start ov11_02309DF8 +ov11_02309DF8: ; 0x02309DF8 + stmdb sp!, {r3, lr} + ldr r0, _02309E20 ; =ov11_02324D90 + ldr r0, [r0] + cmp r0, #0 + ldmeqia sp!, {r3, pc} + bl MemFree + ldr r0, _02309E20 ; =ov11_02324D90 + mov r1, #0 + str r1, [r0] + ldmia sp!, {r3, pc} + .align 2, 0 +_02309E20: .word ov11_02324D90 + arm_func_end ov11_02309DF8 + + arm_func_start ov11_02309E24 +ov11_02309E24: ; 0x02309E24 + ldr r0, _02309E44 ; =ov11_02324D90 + ldr r0, [r0] + cmp r0, #0 + ldrne r0, [r0, #0x10] + movne r0, r0, lsl #0x10 + movne r0, r0, asr #0x10 + mvneq r0, #0 + bx lr + .align 2, 0 +_02309E44: .word ov11_02324D90 + arm_func_end ov11_02309E24 + + arm_func_start ov11_02309E48 +ov11_02309E48: ; 0x02309E48 + stmdb sp!, {r3, r4, r5, r6, r7, lr} + mov r7, r0 + mov r0, #0x34 + mov r1, #0 + mov r5, #1 + bl MemAlloc + mov r1, #2 + mov r4, r0 + bl ov11_02309EE4 + mov r6, #0 + b _02309EBC +_02309E74: + ldr r0, [r4, r6, lsl #3] + add r1, r4, r6, lsl #3 + cmp r0, #1 + bne _02309E9C + ldrsh r0, [r1, #4] + mov r1, r7 + bl sub_02055FCC + cmp r0, #0 + bne _02309EC8 + b _02309EB8 +_02309E9C: + cmp r0, #2 + bne _02309EB8 + ldrsh r0, [r1, #4] + mov r1, r7 + bl sub_020586F0 + cmp r0, #0 + bne _02309EC8 +_02309EB8: + add r6, r6, #1 +_02309EBC: + ldr r0, [r4, #0x30] + cmp r6, r0 + blt _02309E74 +_02309EC8: + ldr r0, [r4, #0x30] + cmp r6, r0 + mov r0, r4 + moveq r5, #0 + bl MemFree + mov r0, r5 + ldmia sp!, {r3, r4, r5, r6, r7, pc} + arm_func_end ov11_02309E48 + + arm_func_start ov11_02309EE4 +ov11_02309EE4: ; 0x02309EE4 + stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + mov r4, #0 + mov sl, r0 + mov r5, r1 + mov r1, r4 + str r4, [sl, #0x30] + mov r0, r4 +_02309F00: + str r0, [sl, r1, lsl #3] + add r1, r1, #1 + cmp r1, #6 + blt _02309F00 + bl sub_0204E210 + mvn r1, #0 + cmp r0, r1 + bne _02309F2C + bl sub_0205633C + cmp r0, #0 + moveq r4, #1 +_02309F2C: + cmp r4, #0 + beq _02309FD4 + sub r0, r5, #1 + cmp r0, #1 + bhi _02309FD4 + bl GetGameMode + cmp r0, #1 + ldrls sb, _0230A03C ; =ov11_02322DC8 + mov fp, #2 + ldrhi sb, _0230A040 ; =ov11_02322DF0 + mov r5, #1 + mvn r4, #0 + b _02309FB8 +_02309F60: + ldrsh r0, [sb], #2 + bl GetActorMatchingStorageId + ldr r1, [sl, #0x30] + mov r7, r0 + cmp r7, r4 + add r8, sl, r1, lsl #3 + beq _02309FB8 + bl GetActiveRosterIndex + mov r6, r0 + cmp r6, r4 + streq r5, [r8] + streqh r7, [r8, #4] + beq _02309FAC + bl GetActiveTeamMember + ldrsh r0, [r0, #8] + bl CheckTeamMemberIdx + cmp r0, #0 + streq fp, [r8] + streqh r6, [r8, #4] +_02309FAC: + ldr r0, [sl, #0x30] + add r0, r0, #1 + str r0, [sl, #0x30] +_02309FB8: + ldrsh r0, [sb] + cmp r0, r4 + beq _0230A034 + ldr r0, [sl, #0x30] + cmp r0, #6 + blt _02309F60 + b _0230A034 +_02309FD4: + mov r7, #0 + mov r8, sl + mov r5, r7 + mov r6, #1 + mov r4, #2 +_02309FE8: + mov r0, r7 + bl GetActiveTeamMember + ldrb r0, [r0] + tst r0, #1 + movne r0, r6 + moveq r0, r5 + tst r0, #0xff + beq _0230A020 + str r4, [r8] + strh r7, [r8, #4] + ldr r0, [sl, #0x30] + add r8, r8, #8 + add r0, r0, #1 + str r0, [sl, #0x30] +_0230A020: + add r0, r7, #1 + mov r0, r0, lsl #0x10 + mov r7, r0, asr #0x10 + cmp r7, #4 + blt _02309FE8 +_0230A034: + ldr r0, [sl, #0x30] + ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_0230A03C: .word ov11_02322DC8 +_0230A040: .word ov11_02322DF0 + arm_func_end ov11_02309EE4 + + arm_func_start ov11_0230A044 +ov11_0230A044: ; 0x0230A044 + stmdb sp!, {r3, lr} + ldr r1, [r0] + cmp r1, #1 + bne _0230A064 + ldrsh r0, [r0, #4] + bl GetTeamMember + add r0, r0, #0x3a + ldmia sp!, {r3, pc} +_0230A064: + cmp r1, #2 + ldmneia sp!, {r3, pc} + ldrsh r0, [r0, #4] + bl GetActiveTeamMember + add r0, r0, #0x5e + ldmia sp!, {r3, pc} + arm_func_end ov11_0230A044 + + arm_func_start ov11_0230A07C +ov11_0230A07C: ; 0x0230A07C + stmdb sp!, {r3, lr} + ldr r0, _0230A0CC ; =ov11_02322ECC + bl InitMenu + cmp r0, #0 + ldmeqia sp!, {r3, pc} + mov r0, #0xc + mov r1, #8 + bl MemAlloc + ldr r1, _0230A0D0 ; =ov11_02324D94 + mov r3, #0 + str r0, [r1] + str r3, [r0, #4] + ldr r0, [r1] + sub r2, r3, #2 + str r3, [r0, #8] + ldr r0, [r1] + strb r2, [r0] + ldr r0, [r1] + strb r2, [r0, #1] + ldmia sp!, {r3, pc} + .align 2, 0 +_0230A0CC: .word ov11_02322ECC +_0230A0D0: .word ov11_02324D94 + arm_func_end ov11_0230A07C + + arm_func_start ov11_0230A0D4 +ov11_0230A0D4: ; 0x0230A0D4 + stmdb sp!, {r3, lr} + ldr r0, _0230A0FC ; =ov11_02324D94 + ldr r0, [r0] + cmp r0, #0 + ldmeqia sp!, {r3, pc} + bl MemFree + ldr r0, _0230A0FC ; =ov11_02324D94 + mov r1, #0 + str r1, [r0] + ldmia sp!, {r3, pc} + .align 2, 0 +_0230A0FC: .word ov11_02324D94 + arm_func_end ov11_0230A0D4 + + arm_func_start ov11_0230A100 +ov11_0230A100: ; 0x0230A100 + stmdb sp!, {r4, lr} + sub sp, sp, #0x138 + ldr r0, _0230A2B0 ; =ov11_02324D94 + ldr r2, [r0] + ldr r0, [r2, #8] + cmp r0, #6 + addls pc, pc, r0, lsl #2 + b _0230A2A4 +_0230A120: ; jump table + b _0230A13C ; case 0 + b _0230A184 ; case 1 + b _0230A13C ; case 2 + b _0230A1F4 ; case 3 + b _0230A258 ; case 4 + b _0230A298 ; case 5 + b _0230A298 ; case 6 +_0230A13C: + ldr lr, [r2, #4] + ldr ip, _0230A2B4 ; =0x00003FB8 + mov r4, #0x10 + ldr r0, _0230A2B8 ; =ov11_02322EAC + ldr r1, _0230A2BC ; =0x00401833 + ldr r3, _0230A2C0 ; =ov11_02322EDC + add r2, sp, #0xa0 + str lr, [sp, #0xa0] + strh ip, [sp, #0xa8] + str r4, [sp, #0xac] + bl CreateParentMenuFromStringIds + ldr r1, _0230A2B0 ; =ov11_02324D94 + mov r2, #1 + ldr r3, [r1] + strb r0, [r3] + ldr r0, [r1] + str r2, [r0, #8] + b _0230A2A4 +_0230A184: + ldrsb r0, [r2] + bl IsParentMenuActive + cmp r0, #0 + bne _0230A2A4 + ldr r0, _0230A2B0 ; =ov11_02324D94 + ldr r0, [r0] + ldrsb r0, [r0] + bl GetSimpleMenuResult__0202AEA4 + ldr r1, _0230A2B0 ; =ov11_02324D94 + mov r4, r0 + ldr r0, [r1] + ldrsb r0, [r0] + bl CloseParentMenu + ldr r0, _0230A2B0 ; =ov11_02324D94 + mvn r2, #1 + ldr r1, [r0] + cmp r4, #0 + strb r2, [r1] + ldrlt r0, [r0] + movlt r1, #6 + strlt r1, [r0, #8] + blt _0230A2A4 + ldr r2, [r0] + mov r1, #3 + str r4, [r2, #4] + ldr r0, [r0] + str r1, [r0, #8] + b _0230A2A4 +_0230A1F4: + mov r0, #0x10 + str r0, [sp, #0x14] + ldr r1, [r2, #4] + ldr r0, _0230A2C0 ; =ov11_02322EDC + mov r1, r1, lsl #3 + ldrh r1, [r0, r1] + mov r4, #8 + ldr r0, _0230A2C4 ; =ov11_02322EBC + strh r1, [sp, #0x10] + ldr r2, [r2, #4] + ldr r1, _0230A2C8 ; =0x00009833 + str r2, [sp, #8] + str r4, [sp] + mov r4, #1 + ldr r3, _0230A2CC ; =ov11_0230A2D0 + add r2, sp, #8 + str r4, [sp, #4] + bl CreateAdvancedTextBox + ldr r1, _0230A2B0 ; =ov11_02324D94 + mov r2, #4 + ldr r3, [r1] + strb r0, [r3, #1] + ldr r0, [r1] + str r2, [r0, #8] + b _0230A2A4 +_0230A258: + ldrsb r0, [r2, #1] + bl IsAdvancedTextBoxActive + cmp r0, #0 + bne _0230A2A4 + ldr r0, _0230A2B0 ; =ov11_02324D94 + ldr r0, [r0] + ldrsb r0, [r0, #1] + bl CloseAdvancedTextBox + ldr r0, _0230A2B0 ; =ov11_02324D94 + mvn r3, #1 + ldr r2, [r0] + mov r1, #2 + strb r3, [r2, #1] + ldr r0, [r0] + str r1, [r0, #8] + b _0230A2A4 +_0230A298: + bl ov11_02301174 + mov r0, #4 + b _0230A2A8 +_0230A2A4: + mov r0, #1 +_0230A2A8: + add sp, sp, #0x138 + ldmia sp!, {r4, pc} + .align 2, 0 +_0230A2B0: .word ov11_02324D94 +#if defined(EUROPE) +_0230A2B4: .word 0x00003FBA +#elif defined(JAPAN) +_0230A2B4: .word 0x000049BB +#else +_0230A2B4: .word 0x00003FB8 +#endif +_0230A2B8: .word ov11_02322EAC +_0230A2BC: .word 0x00401833 +_0230A2C0: .word ov11_02322EDC +_0230A2C4: .word ov11_02322EBC +_0230A2C8: .word 0x00009833 +_0230A2CC: .word ov11_0230A2D0 + arm_func_end ov11_0230A100 + + arm_func_start ov11_0230A2D0 +ov11_0230A2D0: ; 0x0230A2D0 + stmdb sp!, {r3, r4, r5, lr} + mov r5, r0 + bl GetWindowIdPageStart + mov r4, r0 + ldr r0, _0230A318 ; =ov11_02322EDC + mov r1, r4, lsl #3 + ldrh r1, [r0, r1] + mov r0, r5 + bl SetWindowTitle +#if defined(EUROPE) + add r0, r4, #0xc3 + add r0, r0, #0x3f00 +#elif defined(JAPAN) + add r0, r4, #0x1c4 + add r0, r0, #0x4800 +#else + add r0, r4, #0xc1 + add r0, r0, #0x3f00 +#endif + mov r1, r0, lsl #0x10 + mov r0, r5 + mov r3, r1, lsr #0x10 + mov r1, #4 + mov r2, #0x10 + bl AppendStandardStringToMission + ldmia sp!, {r3, r4, r5, pc} + .align 2, 0 +_0230A318: .word ov11_02322EDC + arm_func_end ov11_0230A2D0 + + arm_func_start ov11_0230A31C +ov11_0230A31C: ; 0x0230A31C + stmdb sp!, {r4, r5, r6, lr} + mov r6, r0 + mov r5, r1 + mov r0, #0x148 + mov r1, #8 + bl MemAlloc + ldr r2, _0230A38C ; =ov11_02324D98 + mov r1, #0x148 + str r0, [r2, #4] + bl MemZero + ldr r0, _0230A38C ; =ov11_02324D98 + mov ip, #4 + ldr r4, [r0, #4] + stmib r4, {r5, r6} + add lr, r4, #0xc +_0230A358: + ldmia r6!, {r0, r1, r2, r3} + stmia lr!, {r0, r1, r2, r3} + subs ip, ip, #1 + bne _0230A358 + ldr r1, [r6] + mvn r0, #1 + str r1, [lr] + strb r0, [r4, #0x74] + strb r0, [r4, #0x78] + mov r0, #0 + str r0, [r4] + str r0, [r4, #0x144] + ldmia sp!, {r4, r5, r6, pc} + .align 2, 0 +_0230A38C: .word ov11_02324D98 + arm_func_end ov11_0230A31C + + arm_func_start ov11_0230A390 +ov11_0230A390: ; 0x0230A390 + stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x1b4 + ldr r0, _0230AD0C ; =ov11_02324D98 + ldr sb, [r0, #4] + ldr r0, [sb] + cmp r0, #0xe + addls pc, pc, r0, lsl #2 + b _0230AD00 +_0230A3B0: ; jump table + b _0230A3EC ; case 0 + b _0230A41C ; case 1 + b _0230A4B8 ; case 2 + b _0230A510 ; case 3 + b _0230A68C ; case 4 + b _0230A68C ; case 5 + b _0230A6C8 ; case 6 + b _0230A6E4 ; case 7 + b _0230A750 ; case 8 + b _0230A844 ; case 9 + b _0230A958 ; case 10 + b _0230A98C ; case 11 + b _0230A9D0 ; case 12 + b _0230AB1C ; case 13 + b _0230ACE4 ; case 14 +_0230A3EC: + ldr r0, [sb, #8] + ldrb r0, [r0, #1] + cmp r0, #0x64 + bhs _0230A410 + ldr r0, [sb, #4] + cmp r0, #0 + ble _0230A410 + mov r0, #1 + bl sub_02017C50 +_0230A410: + mov r0, #1 + str r0, [sb] + b _0230AD00 +_0230A41C: + ldr r5, [sb, #8] + ldrb r2, [r5, #1] + cmp r2, #0x64 + bhs _0230A440 + ldrb r1, [sb, #0xd] + ldr r0, [sb, #4] + add r0, r1, r0 + cmp r2, r0 + blt _0230A44C +_0230A440: + mov r0, #0xd + str r0, [sb] + b _0230AD00 +_0230A44C: + mov r0, #0x100 + mov r1, #0xf + bl MemAlloc + mov r4, r0 + mov r0, r5 + bl sub_020546E8 + add r0, sp, #0x164 + bl InitPreprocessorArgs + mov r0, r5 + bl sub_02055894 + bl sub_020564B0 + mov r2, r0 + mov r0, r4 + mov r1, r5 + bl sub_02056094 + str r4, [sp, #0x19c] + ldrb r2, [r5, #1] + ldr r1, _0230AD10 ; =0x000004A6 + mov r0, #0x1c + str r2, [sp, #0x188] + add r2, sp, #0x164 + bl sub_02046BE8 + mov r0, r4 + bl MemFree + mov r0, #2 + str r0, [sb] + b _0230AD00 +_0230A4B8: + bl sub_02046C78 + cmp r0, #0 + movne r0, #6 + moveq r0, #0 + cmp r0, #6 + bne _0230AD00 +#ifdef JAPAN + ldr r0, [sb, #8] + ldr r3, _0230C2B4 ; =0x000003E7 + ldrsh r1, [r0, #4] + ldrb r2, [r0, #1] + add r0, sb, #0x54 +#else + ldr r3, [sb, #8] + add r0, sb, #0x54 + ldrsh r1, [r3, #4] + ldrb r2, [r3, #1] + ldrsh r3, [r3, #8] +#endif + bl sub_02053A0C + strh r0, [sb, #0x50] + mov r0, #0 + strh r0, [sb, #0x52] + ldrh r0, [sb, #0x50] + cmp r0, #0 + movne r0, #3 + strne r0, [sb] + moveq r0, #1 + streq r0, [sb] + b _0230AD00 +_0230A510: + ldrh r1, [sb, #0x52] + ldrh r0, [sb, #0x50] + ldr r4, [sb, #8] + mov r8, #0 + cmp r1, r0 + movhs r0, #1 + sub r5, r8, #1 + strhs r0, [sb] + bhs _0230AD00 + mov sl, r8 + add r2, sb, r1, lsl #1 + mov r6, r8 + mov r7, #1 + mov r0, #6 + b _0230A58C +_0230A54C: + mla r3, sl, r0, r4 + ldrb r1, [r3, #0x22] + tst r1, #1 + movne r1, r7 + moveq r1, r6 + tst r1, #0xff + beq _0230A580 + ldrh r3, [r3, #0x24] + ldrh r1, [r2, #0x54] + cmp r3, r1 + bne _0230A588 + mov r8, #1 + b _0230A594 +_0230A580: + cmp r5, #0 + movlt r5, sl +_0230A588: + add sl, sl, #1 +_0230A58C: + cmp sl, #4 + blt _0230A54C +_0230A594: + cmp r8, #0 + ldrneh r0, [sb, #0x52] + addne r0, r0, #1 + strneh r0, [sb, #0x52] + bne _0230AD00 + add r0, sp, #0x114 + bl InitPreprocessorArgs + mov r0, #0x100 + mov r1, #0xf + bl MemAlloc + mov r6, r0 + mov r0, r4 + bl sub_02055894 + bl sub_020564B0 + mov r2, r0 + mov r0, r6 + mov r1, r4 + bl sub_02056094 + str r6, [sp, #0x14c] + cmp r5, #0 + blt _0230A644 + ldrh r1, [sb, #0x52] + add r2, r4, #0x22 + mov r0, #6 + add r1, sb, r1, lsl #1 + mla r0, r5, r0, r2 + ldrh r1, [r1, #0x54] + bl GetInfoMoveGround + ldrh r2, [sb, #0x52] + ldr r0, _0230AD14 ; =0x0000131B + mov r1, #0x100 + add r2, sb, r2, lsl #1 + ldrh r2, [r2, #0x54] + str r2, [sp, #0x124] + bl sub_02017C74 + ldr r1, _0230AD18 ; =0x000004A8 + add r2, sp, #0x114 + mov r0, #0x1c + bl sub_02046BE8 + ldrh r1, [sb, #0x52] + mov r0, #4 + add r1, r1, #1 + strh r1, [sb, #0x52] + b _0230A67C +_0230A644: + ldrsh r2, [r4, #4] + ldr r0, _0230AD1C ; =0xFFFFFE5E + ldr r1, _0230AD20 ; =0x000004A9 +#ifdef JAPAN + add r0, r2, r0 + mov r0, r0, lsl #0x10 + mov r0, r0, asr #0x10 + mov r0, r0, lsl #0x10 + mov r0, r0, lsr #0x10 + cmp r0, #3 + addls r1, r1, #1 +#else + add r2, r2, r0 + mov r2, r2, lsl #0x10 + mov r2, r2, asr #0x10 + mov r2, r2, lsl #0x10 + mov r2, r2, lsr #0x10 + cmp r2, #3 + rsbls r1, r0, #0x308 +#endif + add r2, sp, #0x114 + mov r0, #0x1c + bl sub_02046BE8 + mov r0, #5 +_0230A67C: + str r0, [sb] + mov r0, r6 + bl MemFree + b _0230AD00 +_0230A68C: + bl sub_02046C78 + cmp r0, #0 + movne r0, #6 + moveq r0, #0 + cmp r0, #6 + bne _0230AD00 + ldr r0, [sb] + cmp r0, #5 + moveq r0, #0 + streqh r0, [sb, #0x76] + moveq r0, #6 + streq r0, [sb] + movne r0, #1 + strne r0, [sb] + b _0230AD00 +_0230A6C8: + bl sub_02046D20 + mov r0, #7 + str r0, [sb] + bl sub_020037A4 + add r0, r0, #0xa + str r0, [sb, #0x144] + b _0230AD00 +_0230A6E4: + bl sub_020037A4 + ldr r1, [sb, #0x144] + cmp r1, r0 + bge _0230AD00 + ldr r1, _0230AD0C ; =ov11_02324D98 + mvn r0, #1 + ldr r4, [r1, #4] + ldrsb r1, [r4, #0x74] + cmp r1, r0 + bne _0230A744 + ldrh r0, [r4, #0x52] + add r0, r4, r0, lsl #1 + ldrh r0, [r0, #0x54] + bl sub_0203FD14 + ldr r0, [r4, #8] + bl sub_02055894 + bl sub_0203FA64 + mov r1, #0 + mov r2, r1 + mov r0, #3 + bl sub_0204018C + strb r0, [r4, #0x74] + ldrsh r0, [r4, #0x76] + bl sub_020410A4 +_0230A744: + mov r0, #8 + str r0, [sb] + b _0230AD00 +_0230A750: + bl sub_020407EC + cmp r0, #1 + beq _0230AD00 + cmp r0, #7 + bne _0230A7A4 + bl sub_02041094 + strh r0, [sb, #0x76] + bl sub_0203FD38 + mov r1, r0 + add r0, sb, #0x7a + mov r2, #0x20 + bl MemcpySimple + ldrh r1, [sb, #0x52] + add r0, sb, #0x9a + add r1, sb, r1, lsl #1 + ldrh r1, [r1, #0x54] + bl InitMove + bl ov11_0230ADCC + mov r0, #0xa + str r0, [sb] + b _0230AD00 +_0230A7A4: + cmp r0, #2 + bne _0230AD00 + bl sub_02041094 + strh r0, [sb, #0x76] + add r0, sb, #0xa4 + mov r1, #0x98 + bl MemZero + mov r2, #0 + mov r1, r2 +_0230A7C8: + add r0, sb, r2 + add r2, r2, #1 + strb r1, [r0, #0x13c] + cmp r2, #5 + blt _0230A7C8 + ldrsh r0, [sb, #0x76] + cmp r0, #4 + bge _0230A7F4 + bl sub_02041364 + cmp r0, #0 + bne _0230A7FC +_0230A7F4: + mov r0, #3 + strb r0, [sb, #0x13d] +_0230A7FC: + ldr r0, _0230AD0C ; =ov11_02324D98 + ldr r1, _0230AD24 ; =ov11_02322F5C + ldrsb r3, [r0] + add r2, sb, #0x13c + ldr r0, _0230AD28 ; =ov11_02322F58 + ldr r3, [r1, r3, lsl #3] + mov r1, #0 + str r3, [sb, #0xa4] + str r2, [sb, #0x104] + stmia sp, {r0, r1} + ldr r0, _0230AD2C ; =ov11_02322F30 + ldr r2, _0230AD30 ; =0x00000233 + add r3, sb, #0xa4 + str r1, [sp, #8] + bl sub_02046A20 + mov r0, #9 + str r0, [sb] + b _0230AD00 +_0230A844: + bl ov11_0230AD94 + mov r4, r0 + bl sub_02046BA0 + ldr r1, _0230AD0C ; =ov11_02324D98 + cmp r4, #6 + strb r0, [r1] + bne _0230A870 + bl sub_020416FC + mov r0, #6 + str r0, [sb] + b _0230AD00 +_0230A870: + cmp r4, #1 + bne _0230A8F8 + ldrsh r0, [sb, #0x76] + cmp r0, #4 + bge _0230A890 + bl sub_02041364 + cmp r0, #0 + bne _0230A898 +_0230A890: + ldr r4, _0230AD34 ; =0x000004AC + b _0230A89C +_0230A898: + ldr r4, _0230AD38 ; =0x000004AB +_0230A89C: + add r0, sp, #0xc4 + bl InitPreprocessorArgs + ldrsh r0, [sb, #0x76] + bl sub_02041154 + str r0, [sp, #0xd4] + bl ov11_0230ADCC + add r0, sb, #0xa4 + mov r1, #0x98 + bl MemZero + mov r0, #5 + str r0, [sb, #0xa4] + ldr r1, _0230AD3C ; =ov11_02322F40 + add r0, sp, #0xc4 + stmia sp, {r1, r4} + str r0, [sp, #8] + mov r0, #0 + mov r1, r0 + mov r2, #0x33 + add r3, sb, #0xa4 + bl sub_02046A20 + mov r0, #0xc + str r0, [sb] + b _0230AD00 +_0230A8F8: + cmp r4, #2 + bne _0230A918 + ldrsh r0, [sb, #0x76] + bl sub_02041394 + bl ov11_0230ADCC + mov r0, #6 + str r0, [sb] + b _0230AD00 +_0230A918: + cmp r4, #3 + bne _0230AD00 + bl sub_0203FD38 + mov r1, r0 + add r0, sb, #0x7a + mov r2, #0x20 + bl MemcpySimple + ldrh r1, [sb, #0x52] + add r0, sb, #0x9a + add r1, sb, r1, lsl #1 + ldrh r1, [r1, #0x54] + bl InitMove + bl ov11_0230ADCC + mov r0, #0xa + str r0, [sb] + b _0230AD00 +_0230A958: + ldrsb r1, [sb, #0x78] + mvn r0, #1 + cmp r1, r0 + bne _0230A980 + ldrsh r2, [sb, #0x76] + add r0, sb, #0x7a + mov r1, #5 + mov r3, #1 + bl sub_020417A8 + strb r0, [sb, #0x78] +_0230A980: + mov r0, #0xb + str r0, [sb] + b _0230AD00 +_0230A98C: + bl sub_02041A18 + cmp r0, #1 + bne _0230AD00 + ldr r1, _0230AD0C ; =ov11_02324D98 + mvn r0, #1 + ldr r4, [r1, #4] + ldrsb r1, [r4, #0x78] + cmp r1, r0 + beq _0230A9C4 + bl sub_02041A00 + ldrsb r0, [r4, #0x78] + bl CloseScrollBox + mvn r0, #1 + strb r0, [r4, #0x78] +_0230A9C4: + mov r0, #6 + str r0, [sb] + b _0230AD00 +_0230A9D0: + bl ov11_0230AD94 + cmp r0, #4 + bne _0230AB08 + ldrsh r0, [sb, #0x76] + cmp r0, #4 + blt _0230AA00 + ldrh r1, [sb, #0x52] + mov r0, #1 + add r1, r1, #1 + strh r1, [sb, #0x52] + str r0, [sb] + b _0230AAFC +_0230AA00: + ldr r7, [sb, #8] + mvn r5, #0 + bl sub_02041484 + bl sub_0203FD38 + mov r6, r0 + mov r8, #0 + add r4, r7, #0x22 + mov fp, #6 +_0230AA20: + mul sl, r8, fp + add r0, r4, sl + add r1, r6, r8, lsl #3 + bl DungeonMoveToGroundMove + cmp r5, #0 + bge _0230AA54 + add r0, r7, sl + ldrb r0, [r0, #0x22] + tst r0, #1 + movne r0, #1 + moveq r0, #0 + tst r0, #0xff + moveq r5, r8 +_0230AA54: + add r8, r8, #1 + cmp r8, #4 + blt _0230AA20 + add r0, sp, #0x74 + bl InitPreprocessorArgs + mov r0, #0x100 + mov r1, #0xf + bl MemAlloc + mov r4, r0 + mov r0, r7 + bl sub_02055894 + bl sub_020564B0 + mov r2, r0 + mov r0, r4 + mov r1, r7 + bl sub_02056094 + add r1, r7, #0x22 + mov r0, #6 + str r4, [sp, #0xac] + mla r0, r5, r0, r1 + ldrh r1, [sb, #0x52] + add r1, sb, r1, lsl #1 + ldrh r1, [r1, #0x54] + bl GetInfoMoveGround + ldrh r2, [sb, #0x52] + ldr r0, _0230AD14 ; =0x0000131B + mov r1, #0x100 + add r2, sb, r2, lsl #1 + ldrh r2, [r2, #0x54] + str r2, [sp, #0x84] + bl sub_02017C74 + ldr r1, _0230AD18 ; =0x000004A8 + mov r0, #0x1c + add r2, sp, #0x74 + bl sub_02046BE8 + ldrh r2, [sb, #0x52] + mov r0, r4 + mov r1, #4 + add r2, r2, #1 + strh r2, [sb, #0x52] + str r1, [sb] + bl MemFree +_0230AAFC: + mov r0, #0 + bl sub_020410A4 + b _0230AD00 +_0230AB08: + sub r0, r0, #5 + cmp r0, #1 + movls r0, #6 + strls r0, [sb] + b _0230AD00 +_0230AB1C: + mov r0, #0x400 + mov r1, #0xf + ldr r6, [sb, #8] + mov r7, #0 + bl MemAlloc + mov r4, r0 + mov r0, #0x100 + mov r1, #0xf + bl MemAlloc + str r0, [sp, #0xc] + mov r0, #0x100 + mov r1, #0xf + bl MemAlloc + mov r5, r0 + mov r0, r7 + strb r0, [r4] + mov r0, r6 + bl sub_02055894 + bl sub_020564B0 + mov r2, r0 + mov r0, r5 + mov r1, r6 + bl sub_02056094 + add r0, sp, #0x24 + bl InitPreprocessorArgs + mov r8, r7 + ldrb r1, [r6, #0xc] + ldrb r0, [sb, #0x18] + ldrsh r3, [r6, #0xa] + ldrsh r2, [sb, #0x16] + sub r0, r1, r0 + str r0, [sp, #0x14] + sub r2, r3, r2 + str r2, [sp, #0x10] + ldrb r1, [r6, #0xe] + ldrb r0, [sb, #0x1a] + ldrb r3, [r6, #0xd] + ldrb r2, [sb, #0x19] + sub r0, r1, r0 + str r0, [sp, #0x1c] + sub r2, r3, r2 + ldrb r1, [r6, #0xf] + ldrb r0, [sb, #0x1b] + str r2, [sp, #0x18] + mov sl, r8 + sub r0, r1, r0 + str r0, [sp, #0x20] +_0230ABD8: + add r0, sp, #0x10 + ldr fp, [r0, sl, lsl #2] + cmp fp, #0 + ble _0230AC58 + cmp r7, #0 + beq _0230AC10 + cmp r8, #3 + beq _0230AC04 + ldr r1, _0230AD40 ; =ov11_02322F80 + mov r0, r4 + bl strcat +_0230AC04: + ldr r1, _0230AD44 ; =ov11_02322F84 + mov r0, r4 + bl strcat +_0230AC10: + add r0, sp, #0x24 + ldr r2, _0230AD48 ; =ov11_02322F24 + mov r3, sl, lsl #1 + ldrh r2, [r2, r3] + str r5, [sp, #0x5c] + add r0, r0, sl, lsl #2 + str fp, [r0, #0x24] + add r0, sp, #0x24 + str r0, [sp] + ldr r0, [sp, #0xc] + mov r1, #0x100 + mov r3, #0 + bl PreprocessStringFromId + ldr r1, [sp, #0xc] + mov r0, r4 + bl strcat + mov r7, #1 + add r8, r8, #1 +_0230AC58: + add sl, sl, #1 + cmp sl, #5 + blt _0230ABD8 + ldr r1, _0230AD44 ; =ov11_02322F84 + mov r0, r4 + bl strcat + cmp r7, #0 + beq _0230AC8C + add r2, sp, #0x24 + mov r1, r4 + mov r0, #0x1c + bl sub_02046C30 + b _0230ACB4 +_0230AC8C: + ldrb r1, [r6, #1] + ldrb r0, [sb, #0xd] + cmp r1, r0 + bne _0230ACB4 + ldr r1, _0230AD4C ; =0x000004A7 + add r2, sp, #0x24 + mov r0, #0x1c + str r5, [sp, #0x5c] + bl sub_02046BE8 + mov r7, #1 +_0230ACB4: + mov r0, r4 + bl MemFree + ldr r0, [sp, #0xc] + bl MemFree + mov r0, r5 + bl MemFree + cmp r7, #0 + movne r0, #0xe + strne r0, [sb] + bne _0230AD00 + mov r0, #1 + b _0230AD04 +_0230ACE4: + bl sub_02046C78 + cmp r0, #0 + movne r0, #6 + moveq r0, #0 + cmp r0, #6 + moveq r0, #1 + beq _0230AD04 +_0230AD00: + mov r0, #0 +_0230AD04: + add sp, sp, #0x1b4 + ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +#ifdef JAPAN +#define OV11_0230A390_OFFSET 0x3725 +#else +#define OV11_0230A390_OFFSET 0 +#endif +_0230AD0C: .word ov11_02324D98 +_0230AD10: .word 0x000004A6 + OV11_0230A390_OFFSET +#ifdef JAPAN +_0230C2B4: .word 0x000003E7 +#endif +_0230AD14: .word 0x0000131B +_0230AD18: .word 0x000004A8 + OV11_0230A390_OFFSET +_0230AD1C: .word 0xFFFFFE5E +_0230AD20: .word 0x000004A9 + OV11_0230A390_OFFSET +_0230AD24: .word ov11_02322F5C +_0230AD28: .word ov11_02322F58 +_0230AD2C: .word ov11_02322F30 +_0230AD30: .word 0x00000233 +_0230AD34: .word 0x000004AC + OV11_0230A390_OFFSET +_0230AD38: .word 0x000004AB + OV11_0230A390_OFFSET +_0230AD3C: .word ov11_02322F40 +_0230AD40: .word ov11_02322F80 +_0230AD44: .word ov11_02322F84 +_0230AD48: .word ov11_02322F24 +_0230AD4C: .word 0x000004A7 + OV11_0230A390_OFFSET + arm_func_end ov11_0230A390 + + arm_func_start ov11_0230AD50 +ov11_0230AD50: ; 0x0230AD50 + stmdb sp!, {r3, lr} + ldr r0, _0230AD78 ; =ov11_02324D98 + ldr r0, [r0, #4] + cmp r0, #0 + ldmeqia sp!, {r3, pc} + bl MemFree + ldr r0, _0230AD78 ; =ov11_02324D98 + mov r1, #0 + str r1, [r0, #4] + ldmia sp!, {r3, pc} + .align 2, 0 +_0230AD78: .word ov11_02324D98 + arm_func_end ov11_0230AD50 + + arm_func_start IsGroundMonsterAtMaxLevel +IsGroundMonsterAtMaxLevel: ; 0x0230AD7C + ldrb r0, [r0, #1] + cmp r0, #0x64 + movhs r0, #1 + movlo r0, #0 + and r0, r0, #0xff + bx lr + arm_func_end IsGroundMonsterAtMaxLevel + + arm_func_start ov11_0230AD94 +ov11_0230AD94: ; 0x0230AD94 + stmdb sp!, {r3, lr} + bl sub_02046B04 + mvn r2, #0 + cmp r0, r2 + moveq r0, #0 + ldmeqia sp!, {r3, pc} + sub r1, r2, #1 + cmp r0, r1 + moveq r0, #6 + ldmeqia sp!, {r3, pc} + sub r1, r2, #2 + cmp r0, r1 + moveq r0, #6 + ldmia sp!, {r3, pc} + arm_func_end ov11_0230AD94 + + arm_func_start ov11_0230ADCC +ov11_0230ADCC: ; 0x0230ADCC + stmdb sp!, {r4, lr} + ldr r1, _0230AE0C ; =ov11_02324D98 + mvn r0, #1 + ldr r4, [r1, #4] + ldrsb r1, [r4, #0x74] + cmp r1, r0 + ldmeqia sp!, {r4, pc} + ldr r0, [r4, #8] + bl sub_02055894 + bl sub_0203FD80 + bl sub_020407C0 + ldrsb r0, [r4, #0x74] + bl CloseAdvancedTextBox + mvn r0, #1 + strb r0, [r4, #0x74] + ldmia sp!, {r4, pc} + .align 2, 0 +_0230AE0C: .word ov11_02324D98 + arm_func_end ov11_0230ADCC + + arm_func_start ov11_0230AE10 +ov11_0230AE10: ; 0x0230AE10 + stmdb sp!, {r3, r4, r5, lr} + mov r5, r0 + ldr r0, [r5] + cmp r0, #0 + cmpne r0, #1 + ldmneia sp!, {r3, r4, r5, pc} + mov r0, #0x10 + mov r1, #8 + bl MemAlloc + ldr r2, _0230AE78 ; =EXCLUSIVE_ITEM_REQUIREMENTS_PTR + mov r1, #0x10 + str r0, [r2] + bl MemZero + ldr r0, _0230AE78 ; =EXCLUSIVE_ITEM_REQUIREMENTS_PTR + ldmia r5, {r1, r2} + ldr r4, [r0] + str r1, [r4] + add r0, r4, #0xc + add r1, r4, #0xe + str r2, [r4, #4] + bl ov11_0230C050 + ldr r1, _0230AE7C ; =ov11_02322F98 + ldr r2, _0230AE80 ; =GetExclusiveItemRequirements + add r0, r4, #8 + bl sub_0204707C + ldmia sp!, {r3, r4, r5, pc} + .align 2, 0 +_0230AE78: .word EXCLUSIVE_ITEM_REQUIREMENTS_PTR +_0230AE7C: .word ov11_02322F98 +_0230AE80: .word GetExclusiveItemRequirements + arm_func_end ov11_0230AE10 + + arm_func_start ov11_0230AE84 +ov11_0230AE84: ; 0x0230AE84 + stmdb sp!, {r3, lr} + ldr r0, _0230AECC ; =EXCLUSIVE_ITEM_REQUIREMENTS_PTR + ldr r0, [r0] + cmp r0, #0 + ldrne r0, [r0, #8] + cmpne r0, #0 + beq _0230AEC4 + bl sub_020470D0 + ldr r0, _0230AECC ; =EXCLUSIVE_ITEM_REQUIREMENTS_PTR + ldr r0, [r0] + ldr r0, [r0, #8] + bl sub_02047148 + mvn r1, #0 + cmp r0, r1 + moveq r0, #1 + ldmeqia sp!, {r3, pc} +_0230AEC4: + mov r0, #0 + ldmia sp!, {r3, pc} + .align 2, 0 +_0230AECC: .word EXCLUSIVE_ITEM_REQUIREMENTS_PTR + arm_func_end ov11_0230AE84 + + arm_func_start ov11_0230AED0 +ov11_0230AED0: ; 0x0230AED0 + stmdb sp!, {r3, lr} + ldr r0, _0230AF08 ; =EXCLUSIVE_ITEM_REQUIREMENTS_PTR + ldr r0, [r0] + cmp r0, #0 + ldmeqia sp!, {r3, pc} + add r0, r0, #8 + bl sub_02047150 + ldr r0, _0230AF08 ; =EXCLUSIVE_ITEM_REQUIREMENTS_PTR + ldr r0, [r0] + bl MemFree + ldr r0, _0230AF08 ; =EXCLUSIVE_ITEM_REQUIREMENTS_PTR + mov r1, #0 + str r1, [r0] + ldmia sp!, {r3, pc} + .align 2, 0 +_0230AF08: .word EXCLUSIVE_ITEM_REQUIREMENTS_PTR + arm_func_end ov11_0230AED0 + + arm_func_start ov11_0230AF0C +ov11_0230AF0C: ; 0x0230AF0C + ldr r1, _0230AF30 ; =EXCLUSIVE_ITEM_REQUIREMENTS_PTR + ldr r2, [r0] + ldr r3, [r1] + ldr r1, [r0, #4] + ldr ip, _0230AF34 ; =sub_02047188 + str r2, [r3] + add r0, r3, #8 + str r1, [r3, #4] + bx ip + .align 2, 0 +_0230AF30: .word EXCLUSIVE_ITEM_REQUIREMENTS_PTR +_0230AF34: .word sub_02047188 + arm_func_end ov11_0230AF0C + + arm_func_start GetExclusiveItemRequirements +GetExclusiveItemRequirements: ; 0x0230AF38 + stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x15c + ldr r1, _0230B1DC ; =EXCLUSIVE_ITEM_REQUIREMENTS_PTR + mov r7, r0 + ldr r6, [r1] + add r0, sp, #0xa + ldrsh r8, [r6, #4] + mov r2, #0 + mov r3, #1 + add r1, sp, #4 + strh r8, [sp, #8] + strh r2, [sp, #6] + strb r3, [sp, #4] + mov sb, #0x10 + bl MaybeGetColoredFormattedItemName + add r0, sp, #0x10c + bl InitPreprocessorArgs + mov r0, r7 + mov r1, #0x18 + mov r2, sb + add r3, sp, #0xa + bl DrawTextInWindow + mov r0, r8 + bl ov11_0230C068 + cmp r0, #3 + addls pc, pc, r0, lsl #2 + b _0230AFF8 +_0230AFA4: ; jump table + b _0230AFB4 ; case 0 + b _0230AFB4 ; case 1 + b _0230AFCC ; case 2 + b _0230AFE4 ; case 3 +_0230AFB4: + ldr r3, _0230B1E0 ; =SWAP_SHOP_ONE_STAR_STR + mov r0, r7 + mov r1, #0x6c + mov r2, sb + bl DrawTextInWindow + b _0230AFF8 +_0230AFCC: + ldr r3, _0230B1E4 ; =SWAP_SHOP_TWO_STAR_STR + mov r0, r7 + mov r1, #0x6c + mov r2, sb + bl DrawTextInWindow + b _0230AFF8 +_0230AFE4: + ldr r3, _0230B1E8 ; =SWAP_SHOP_THREE_STAR_STR + mov r0, r7 + mov r1, #0x6c + mov r2, sb + bl DrawTextInWindow +_0230AFF8: + ldr r0, [r6] + cmp r0, #0 + bne _0230B144 + ldr r3, _0230B1EC ; =0x000004B2 + mov r0, r7 + mov r1, #0x18 + mov r2, #0x28 + mov r4, #0 + bl AppendStandardStringToMission + ldr r3, _0230B1F0 ; =0x000004B3 + mov r0, r7 + mov r1, #0x7a + mov r2, #0x28 + bl AppendStandardStringToMission + mov r0, r8 + add sb, sb, #0x30 + bl GetExclusiveItemType + cmp r0, #0xa + addls pc, pc, r0, lsl #2 + b _0230B0E0 +_0230B048: ; jump table + b _0230B0E0 ; case 0 + b _0230B0E0 ; case 1 + b _0230B0E0 ; case 2 + b _0230B074 ; case 3 + b _0230B088 ; case 4 + b _0230B0E0 ; case 5 + b _0230B0E0 ; case 6 + b _0230B074 ; case 7 + b _0230B088 ; case 8 + b _0230B0E0 ; case 9 + b _0230B09C ; case 10 +_0230B074: + sub r0, r8, #2 + mov r0, r0, lsl #0x10 + mov r5, r0, asr #0x10 + mov r4, #2 + b _0230B0E0 +_0230B088: + sub r0, r8, #3 + mov r0, r0, lsl #0x10 + mov r5, r0, asr #0x10 + mov r4, #3 + b _0230B0E0 +_0230B09C: + sub r0, r8, #0x1bc + mov r0, r0, lsl #0x10 + mov r0, r0, asr #0x10 + mov r0, r0, lsl #0x10 + mov r0, r0, lsr #0x10 + cmp r0, #7 + ldrls r5, _0230B1F4 ; =0x000002FE + movls r4, #3 + bls _0230B0E0 + sub r0, r8, #0x1c4 + mov r0, r0, lsl #0x10 + mov r0, r0, asr #0x10 + mov r0, r0, lsl #0x10 + mov r0, r0, lsr #0x10 + cmp r0, #3 + ldrls r5, _0230B1F8 ; =0x00000336 + movls r4, #3 +_0230B0E0: + mov sl, #0 + add fp, sp, #0x10c + b _0230B138 +_0230B0EC: + mov r0, r5 + str r5, [sp, #0x11c] + bl CountNbItemsOfTypeInBag + mov r8, r0 + mov r0, r5 + bl CountNbItemsOfTypeInStorage + add r0, r8, r0 + str r0, [sp, #0x130] + ldr r3, _0230B1FC ; =0x000004B5 + mov r0, r7 + mov r1, #0x18 + mov r2, sb + str fp, [sp] + bl sub_020262E0 + add r0, r5, #1 + mov r0, r0, lsl #0x10 + add sb, sb, #0xc + mov r5, r0, asr #0x10 + add sl, sl, #1 +_0230B138: + cmp sl, r4 + blt _0230B0EC + b _0230B184 +_0230B144: + cmp r0, #1 + bne _0230B184 + ldr r3, _0230B1EC ; =0x000004B2 + mov r0, r7 + mov r1, #0x18 + mov r2, #0x28 + bl AppendStandardStringToMission + ldrh r0, [r6, #6] + ldr r3, _0230B200 ; =0x000004B4 + add r4, sp, #0x10c + str r0, [sp, #0x130] + mov r0, r7 + mov r1, #0x18 + mov r2, #0x40 + str r4, [sp] + bl sub_020262E0 +_0230B184: + ldrh r0, [r6, #0xc] + add r1, sp, #0x10c + ldr r3, _0230B204 ; =0x000004B6 + str r0, [sp, #0x130] + str r1, [sp] + mov r0, r7 + mov r1, #0x1c + mov r2, #0x7e + bl sub_020262E0 + ldrh r0, [r6, #0xe] + ldr r3, _0230B208 ; =0x000004B7 + add r4, sp, #0x10c + str r0, [sp, #0x130] + mov r0, r7 + mov r1, #0x1c + mov r2, #0x8a + str r4, [sp] + bl sub_020262E0 + mov r0, r7 + bl UpdateWindow + add sp, sp, #0x15c + ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +#ifdef JAPAN +#define GET_EXCLUSIVE_ITEM_REQUIREMENTS_OFFSET 0x3528 +#else +#define GET_EXCLUSIVE_ITEM_REQUIREMENTS_OFFSET 0 +#endif +_0230B1DC: .word EXCLUSIVE_ITEM_REQUIREMENTS_PTR +_0230B1E0: .word SWAP_SHOP_ONE_STAR_STR +_0230B1E4: .word SWAP_SHOP_TWO_STAR_STR +_0230B1E8: .word SWAP_SHOP_THREE_STAR_STR +_0230B1EC: .word 0x000004B2 + GET_EXCLUSIVE_ITEM_REQUIREMENTS_OFFSET +_0230B1F0: .word 0x000004B3 + GET_EXCLUSIVE_ITEM_REQUIREMENTS_OFFSET +_0230B1F4: .word 0x000002FE +_0230B1F8: .word 0x00000336 +_0230B1FC: .word 0x000004B5 + GET_EXCLUSIVE_ITEM_REQUIREMENTS_OFFSET +_0230B200: .word 0x000004B4 + GET_EXCLUSIVE_ITEM_REQUIREMENTS_OFFSET +_0230B204: .word 0x000004B6 + GET_EXCLUSIVE_ITEM_REQUIREMENTS_OFFSET +_0230B208: .word 0x000004B7 + GET_EXCLUSIVE_ITEM_REQUIREMENTS_OFFSET + arm_func_end GetExclusiveItemRequirements + + arm_func_start SwapShopInventoryManager +SwapShopInventoryManager: ; 0x0230B20C + stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x20 + ldr r2, _0230B664 ; =SWAP_SHOP_INVENTORY_PTRS + mov r4, r0 + ldr r0, [r2, #4] + mov r8, r1 + cmp r0, #0 + ldr r5, _0230B668 ; =0x00401A33 + mov r6, #0 + ldr r7, _0230B66C ; =ov11_0230BD5C + bne _0230B24C + ldr r0, _0230B670 ; =0x000046D4 + mov r1, #8 + bl MemAlloc + ldr r1, _0230B664 ; =SWAP_SHOP_INVENTORY_PTRS + str r0, [r1, #4] +_0230B24C: + ldr r0, _0230B664 ; =SWAP_SHOP_INVENTORY_PTRS + ldr r0, [r0, #4] + str r4, [r0] + bl ov11_0230BF98 + bl LoadSynthBin + ldr sb, _0230B664 ; =SWAP_SHOP_INVENTORY_PTRS + mov r2, #0 + ldr r3, [sb, #4] + mov r1, #0x10 + add r3, r3, #0x4000 + strb r0, [r3, #0x6c4] + ldr r0, [sb, #4] + cmp r4, #3 + add r0, r0, #0x4000 + str r2, [r0, #0x6c8] + ldr r0, [sb, #4] + add r0, r0, #0x4000 + str r2, [r0, #0x6cc] + ldr r0, [sb, #4] + add r0, r0, #0x4000 + str r1, [r0, #0x638] + addls pc, pc, r4, lsl #2 + b _0230B474 +_0230B2A8: ; jump table + b _0230B2B8 ; case 0 + b _0230B2EC ; case 1 + b _0230B308 ; case 2 + b _0230B428 ; case 3 +_0230B2B8: + bl ov11_0230C3CC + bl ov11_0230C61C + mov r0, sb + ldr r0, [r0, #4] + add r0, r0, #0xe6 + add r0, r0, #0x4500 + bl GetCroagunkItemTemplates + mov r0, sb + ldr r0, [r0, #4] + ldr r1, _0230B674 ; =0x000003A6 + add r0, r0, #0x4600 + strh r1, [r0, #0x34] + b _0230B474 +_0230B2EC: + bl ov11_0230C4D4 + mov r0, sb + ldr r0, [r0, #4] + ldr r1, _0230B678 ; =0x000003A7 + add r0, r0, #0x4600 + strh r1, [r0, #0x34] + b _0230B474 +_0230B308: + mov r0, r8, lsl #0x10 + mov r0, r0, asr #0x10 + bl sub_02011420 + mov sb, #0 + mov sl, sb + str r0, [sp, #0x14] + mov fp, sb + b _0230B370 +_0230B328: + ldr r1, [r1] + mov r0, sl, lsl #1 + ldrsh r0, [r1, r0] + bl GetExclusiveItemType + cmp r0, #1 + blt _0230B348 + cmp r0, #4 + ble _0230B36C +_0230B348: + ldr r1, [sp, #0x14] + mov r0, sb, lsl #0x10 + ldr r2, [r1] + mov r1, sl, lsl #1 + ldrh r2, [r2, r1] + mov r1, fp + mov r0, r0, lsr #0x10 + bl ov11_0230C924 + add sb, sb, #1 +_0230B36C: + add sl, sl, #1 +_0230B370: + ldr r1, [sp, #0x14] + ldr r0, [r1, #4] + cmp sl, r0 + blt _0230B328 + mov sl, #0 + mov fp, sl + b _0230B3D4 +_0230B38C: + ldr r1, [r0] + mov r0, sl, lsl #1 + ldrsh r0, [r1, r0] + bl GetExclusiveItemType + cmp r0, #1 + blt _0230B3D0 + cmp r0, #4 + bgt _0230B3D0 + ldr r1, [sp, #0x14] + mov r0, sb, lsl #0x10 + ldr r2, [r1] + mov r1, sl, lsl #1 + ldrh r2, [r2, r1] + mov r1, fp + mov r0, r0, lsr #0x10 + bl ov11_0230C924 + add sb, sb, #1 +_0230B3D0: + add sl, sl, #1 +_0230B3D4: + ldr r0, [sp, #0x14] + ldr r2, [r0, #4] + cmp sl, r2 + blt _0230B38C + ldr r1, _0230B664 ; =SWAP_SHOP_INVENTORY_PTRS + add r0, sp, #0x14 + ldr r1, [r1, #4] + add r1, r1, #0x4600 + strh r2, [r1, #0x26] + bl SwapShopFreeDoublePointer + ldr r1, _0230B664 ; =SWAP_SHOP_INVENTORY_PTRS + mov r0, r8, lsl #0x10 + ldr r2, [r1, #4] + mov r3, r0, asr #0x10 + add r0, r2, #0x4000 + str r3, [r0, #0x63c] + ldr r0, [r1, #4] +#ifdef JAPAN + ldr r1, _0230CC20_JP ; =0x000032B2 +#else + mov r1, #0x3a8 +#endif + add r0, r0, #0x4600 + strh r1, [r0, #0x34] + b _0230B474 +_0230B428: + add r1, sp, #0xc + add r2, sp, #0xe + mov r0, #1 + bl ov11_0230C1D0 + mov r3, sb + ldr r1, [r3, #4] + ldr r7, _0230B67C ; =0x0000032F + add r1, r1, #0x4600 + strh r0, [r1, #0x26] + ldr r0, [r3, #4] + ldr r2, _0230B680 ; =0x80040004 + add r0, r0, #0x4600 + strh r7, [r0, #0x34] + ldr r0, [r3, #4] + ldr r6, _0230B684 ; =ov11_0230B78C + add r0, r0, #0x4600 + ldr r7, _0230B688 ; =ov11_0230BE34 + strh r8, [r0, #0x28] + orr r5, r5, r2 +_0230B474: + cmp r4, #0 + bne _0230B5A8 + ldr r0, _0230B664 ; =SWAP_SHOP_INVENTORY_PTRS + mov r1, #6 + ldrsh r2, [r0] + ldr r0, [r0, #4] + add r0, r0, #0xe6 + smulbb r8, r2, r1 + add sb, r0, #0x1400 + ldrh r0, [sb, r8] + add sl, sb, r8 + bl ov11_0230C9EC + ldr r1, _0230B664 ; =SWAP_SHOP_INVENTORY_PTRS + str r0, [sp, #0x18] + ldrh r0, [r1] + bl ov11_0230C970 + strh r0, [sp, #0x1c] + ldrh r0, [sb, r8] + cmp r0, #1 + movne r0, #0 + strneh r0, [sp, #0x1e] + bne _0230B4E8 + ldr r0, _0230B664 ; =SWAP_SHOP_INVENTORY_PTRS + ldrh r1, [sl, #2] + ldr r0, [r0, #4] + add r0, r0, r1, lsl #3 + add r0, r0, #0x4500 + ldrh r0, [r0, #0xea] + strh r0, [sp, #0x1e] +_0230B4E8: + add r0, sp, #0x18 + bl ov11_0230AE10 + ldr r0, _0230B664 ; =SWAP_SHOP_INVENTORY_PTRS + add r1, sp, #0x12 + ldr r2, [r0, #4] + ldrsh r8, [r0] + add r3, r2, #0x4600 + add r2, sp, #0x10 + mov r0, #0 + strh r8, [r3, #0xd0] + bl ov11_0230C1D0 + ldr fp, _0230B664 ; =SWAP_SHOP_INVENTORY_PTRS + ldrh r2, [sp, #0x12] + ldr r0, [fp, #4] + ldrh r1, [sp, #0x10] + add r0, r0, #0x4600 + ldrh r8, [r0, #0x26] + add sb, r2, r1 + mov sl, #0 + b _0230B5A0 +_0230B538: + mov r0, sl, lsl #0x10 + mov r1, r0, lsr #0x10 + ldr r2, [fp, #4] + mov r0, #6 + mla r0, r1, r0, r2 + add r0, r0, #0x1400 + ldrh r0, [r0, #0xe6] + bl ov11_0230C9EC + mov r0, r0, lsl #0x10 + mov r0, r0, lsr #0x10 + cmp r0, #1 + bne _0230B59C + ldr r0, [fp, #4] + mov r1, #6 + mla r1, sl, r1, r0 + add r1, r1, #0x1400 + ldrh r1, [r1, #0xe8] + add r1, r0, r1, lsl #3 + add r1, r1, #0x4500 + ldrh r1, [r1, #0xea] + cmp r1, sb + addgt r0, r0, sl + addgt r1, r0, #0x1000 + movgt r0, #2 + strgtb r0, [r1, #0xb8] +_0230B59C: + add sl, sl, #1 +_0230B5A0: + cmp sl, r8 + blt _0230B538 +_0230B5A8: + ldr r8, _0230B664 ; =SWAP_SHOP_INVENTORY_PTRS + mov r1, r5 + ldr sb, [r8, #4] + mov r3, r7 + add r2, sb, #0x4600 + ldrh r2, [r2, #0x26] + ldr r0, _0230B68C ; =ov11_02322FE4 + mov r5, #8 + str r2, [sb, #4] + ldr r2, [r8, #4] + ldrsh r7, [r8] + add r2, r2, #0x4000 + str r7, [r2, #0x62c] + ldr sb, [r8, #4] + add r2, sb, #0xb8 + add r7, r2, #0x1000 + add r2, sb, #0x4000 + str r7, [r2, #0x68c] + ldr r2, [r8, #4] + str r6, [sp] + ldr r6, [r2, #4] + add r2, r2, #0x22c + str r6, [sp, #4] + add r2, r2, #0x4400 + str r5, [sp, #8] + bl CreateCollectionMenu + mov r2, r8 + ldr r1, [r2, #4] + cmp r4, #3 + add r1, r1, #0x1000 + strb r0, [r1, #0x4e4] + bne _0230B65C + ldr r0, [r2, #4] + mov r1, #1 + add r0, r0, #0x1400 + ldrsb r0, [r0, #0xe4] + bl SetCollectionMenuField0x1C8 + mov r0, r8 + ldr r0, [r0, #4] + ldr r1, _0230B690 ; =ov11_0230BF38 + add r0, r0, #0x1400 + ldrsb r0, [r0, #0xe4] + bl SetCollectionMenuField0x1A4 + bl ov11_0230CAA4 + bl ov11_0230C9F8 +_0230B65C: + add sp, sp, #0x20 + ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_0230B664: .word SWAP_SHOP_INVENTORY_PTRS +_0230B668: .word 0x00401A33 +_0230B66C: .word ov11_0230BD5C +_0230B670: .word 0x000046D4 +#ifdef JAPAN +_0230B674: .word 0x000032B0 +_0230B678: .word 0x000032B1 +_0230CC20_JP: .word 0x000032B2 +_0230B67C: .word 0x000031F4 +#else +_0230B674: .word 0x000003A6 +_0230B678: .word 0x000003A7 +_0230B67C: .word 0x0000032F +#endif +_0230B680: .word 0x80040004 +_0230B684: .word ov11_0230B78C +_0230B688: .word ov11_0230BE34 +_0230B68C: .word ov11_02322FE4 +_0230B690: .word ov11_0230BF38 + arm_func_end SwapShopInventoryManager + + arm_func_start ov11_0230B694 +ov11_0230B694: ; 0x0230B694 + stmdb sp!, {r4, lr} + ldr r0, _0230B71C ; =SWAP_SHOP_INVENTORY_PTRS + ldr r0, [r0, #4] + cmp r0, #0 + bne _0230B6BC + ldr r0, _0230B720 ; =0x000046D4 + mov r1, #8 + bl MemAlloc + ldr r1, _0230B71C ; =SWAP_SHOP_INVENTORY_PTRS + str r0, [r1, #4] +_0230B6BC: + bl LoadSynthBin + mov r4, r0 + bl ov11_0230BF98 + bl ov11_0230C3CC + bl ov11_0230C61C + mov r0, #0 + bl GetCroagunkItemTemplates + ldr r1, _0230B71C ; =SWAP_SHOP_INVENTORY_PTRS + cmp r4, #0 + ldr r1, [r1, #4] + add r1, r1, #0x4600 + ldrh r1, [r1, #0x26] + add r4, r1, r0 + beq _0230B6F8 + bl CloseSynthBin +_0230B6F8: + ldr r0, _0230B71C ; =SWAP_SHOP_INVENTORY_PTRS + ldr r0, [r0, #4] + bl MemFree + ldr r1, _0230B71C ; =SWAP_SHOP_INVENTORY_PTRS + mov r0, #0 + str r0, [r1, #4] + cmp r4, #0 + movne r0, #1 + ldmia sp!, {r4, pc} + .align 2, 0 +_0230B71C: .word SWAP_SHOP_INVENTORY_PTRS +_0230B720: .word 0x000046D4 + arm_func_end ov11_0230B694 + + arm_func_start ov11_0230B724 +ov11_0230B724: ; 0x0230B724 + stmdb sp!, {r4, lr} + ldr r0, _0230B784 ; =SWAP_SHOP_INVENTORY_PTRS + ldr r0, [r0, #4] + cmp r0, #0 + bne _0230B74C + ldr r0, _0230B788 ; =0x000046D4 + mov r1, #8 + bl MemAlloc + ldr r1, _0230B784 ; =SWAP_SHOP_INVENTORY_PTRS + str r0, [r1, #4] +_0230B74C: + bl ov11_0230BF98 + bl ov11_0230C4D4 + ldr r0, _0230B784 ; =SWAP_SHOP_INVENTORY_PTRS + ldr r0, [r0, #4] + add r1, r0, #0x4600 + ldrh r4, [r1, #0x26] + bl MemFree + ldr r0, _0230B784 ; =SWAP_SHOP_INVENTORY_PTRS + mov r1, #0 + str r1, [r0, #4] + cmp r4, #0 + movne r1, #1 + and r0, r1, #0xff + ldmia sp!, {r4, pc} + .align 2, 0 +_0230B784: .word SWAP_SHOP_INVENTORY_PTRS +_0230B788: .word 0x000046D4 + arm_func_end ov11_0230B724 + + arm_func_start ov11_0230B78C +ov11_0230B78C: ; 0x0230B78C + stmdb sp!, {r3, r4, r5, lr} + ldr r1, _0230B870 ; =SWAP_SHOP_INVENTORY_PTRS + tst r0, #0x400 + ldr r4, [r1, #4] + beq _0230B868 + add r0, r4, #0x1400 + ldrsb r0, [r0, #0xe4] + bl GetWindowIdSelectedMenuItemIdx + add r1, r4, #0xe6 + add r2, r1, #0x1400 + mov r1, #6 + mla r5, r0, r1, r2 + ldrb r0, [r5, #4] + cmp r0, #0 + beq _0230B7E8 + mov r0, r1 + bl PlaySeVolumeWrapper + mov r1, #0 + strb r1, [r5, #4] + add r0, r4, #0x1400 + ldrsb r0, [r0, #0xe4] + bl sub_0202D07C + b _0230B83C +_0230B7E8: + bl ov11_0230B874 + add r1, r4, #0x4600 + ldrh r1, [r1, #0x28] + cmp r0, r1 + bge _0230B834 + mov r0, #6 + bl PlaySeVolumeWrapper + mov r0, #1 + strb r0, [r5, #4] + bl ov11_0230B874 + add r1, r4, #0x4600 + ldrh r1, [r1, #0x28] + cmp r1, r0 + bne _0230B83C + add r0, r4, #0x1400 + ldrsb r0, [r0, #0xe4] + mov r1, #1 + bl sub_0202D07C + b _0230B83C +_0230B834: + mov r0, #2 + bl PlaySeVolumeWrapper +_0230B83C: + ldr r0, _0230B870 ; =SWAP_SHOP_INVENTORY_PTRS + ldr r1, [r0, #4] + add r0, r1, #0x4000 + ldr r0, [r0, #0x6c8] + cmp r0, #0 + beq _0230B860 + add r0, r1, #0x2c8 + add r0, r0, #0x4400 + bl sub_02047188 +_0230B860: + mov r0, #1 + ldmia sp!, {r3, r4, r5, pc} +_0230B868: + mov r0, #0 + ldmia sp!, {r3, r4, r5, pc} + .align 2, 0 +_0230B870: .word SWAP_SHOP_INVENTORY_PTRS + arm_func_end ov11_0230B78C + + arm_func_start ov11_0230B874 +ov11_0230B874: ; 0x0230B874 + stmdb sp!, {r3, lr} + ldr r1, _0230B8BC ; =SWAP_SHOP_INVENTORY_PTRS + mov r0, #0 + ldr ip, [r1, #4] + mov r3, r0 + add r1, ip, #0x4600 + ldrh lr, [r1, #0x26] + mov r1, #6 + b _0230B8B0 +_0230B898: + mla r2, r3, r1, ip + add r2, r2, #0x1000 + ldrb r2, [r2, #0x4ea] + add r3, r3, #1 + cmp r2, #0 + addne r0, r0, #1 +_0230B8B0: + cmp r3, lr + blt _0230B898 + ldmia sp!, {r3, pc} + .align 2, 0 +_0230B8BC: .word SWAP_SHOP_INVENTORY_PTRS + arm_func_end ov11_0230B874 + + arm_func_start ov11_0230B8C0 +ov11_0230B8C0: ; 0x0230B8C0 + stmdb sp!, {r3, r4, r5, lr} + ldr r1, _0230B910 ; =SWAP_SHOP_INVENTORY_PTRS + mov r4, r0 + ldr r0, [r1, #4] + add r0, r0, #0x1400 + ldrsb r0, [r0, #0xe4] + bl sub_0202D0EC + mov r5, r0 + mov r0, r5, lsl #0x10 + mov r0, r0, lsr #0x10 + bl ov11_0230C970 + ldr r1, _0230B910 ; =SWAP_SHOP_INVENTORY_PTRS + strh r0, [r4] + ldr r0, [r1, #4] + add r0, r0, r5, lsl #1 + add r0, r0, #0x2d00 + ldrh r0, [r0, #0xee] + strh r0, [r4, #2] + ldrsh r0, [r4] + ldmia sp!, {r3, r4, r5, pc} + .align 2, 0 +_0230B910: .word SWAP_SHOP_INVENTORY_PTRS + arm_func_end ov11_0230B8C0 + + arm_func_start ov11_0230B914 +ov11_0230B914: ; 0x0230B914 + stmdb sp!, {r3, lr} + ldr r0, _0230B954 ; =SWAP_SHOP_INVENTORY_PTRS + ldr r0, [r0, #4] + add r0, r0, #0x1400 + ldrsb r0, [r0, #0xe4] + bl sub_0202D0EC + ldr r1, _0230B954 ; =SWAP_SHOP_INVENTORY_PTRS + mov r0, r0, lsl #0x10 + ldr r2, [r1, #4] + mov r1, r0, lsr #0x10 + mov r0, #6 + mla r0, r1, r0, r2 + add r0, r0, #0x1400 + ldrh r0, [r0, #0xe6] + bl ov11_0230C9EC + ldmia sp!, {r3, pc} + .align 2, 0 +_0230B954: .word SWAP_SHOP_INVENTORY_PTRS + arm_func_end ov11_0230B914 + + arm_func_start ov11_0230B958 +ov11_0230B958: ; 0x0230B958 + stmdb sp!, {r3, lr} + ldr r0, _0230B9B8 ; =SWAP_SHOP_INVENTORY_PTRS + ldr r0, [r0, #4] + add r0, r0, #0x1400 + ldrsb r0, [r0, #0xe4] + bl sub_0202D0EC + ldr r2, _0230B9B8 ; =SWAP_SHOP_INVENTORY_PTRS + mov r1, r0, lsl #0x10 + mov r3, r1, lsr #0x10 + ldr ip, [r2, #4] + mov r1, #6 + mla r2, r3, r1, ip + add r2, r2, #0x1400 + ldrh r2, [r2, #0xe6] + cmp r2, #1 + movne r0, #0 + ldmneia sp!, {r3, pc} + mla r1, r0, r1, ip + add r0, r1, #0x1400 + ldrh r0, [r0, #0xe8] + add r0, ip, r0, lsl #3 + add r0, r0, #0x4500 + ldrh r0, [r0, #0xea] + ldmia sp!, {r3, pc} + .align 2, 0 +_0230B9B8: .word SWAP_SHOP_INVENTORY_PTRS + arm_func_end ov11_0230B958 + + arm_func_start ov11_0230B9BC +ov11_0230B9BC: ; 0x0230B9BC + stmdb sp!, {r3, lr} + ldr r0, _0230BA60 ; =SWAP_SHOP_INVENTORY_PTRS + ldr r0, [r0, #4] + cmp r0, #0 + ldmeqia sp!, {r3, pc} + bl ov11_0230AED0 + bl ov11_0230CAE4 + bl ov11_0230CA38 + ldr r0, _0230BA60 ; =SWAP_SHOP_INVENTORY_PTRS + ldr r0, [r0, #4] + add r0, r0, #0x4000 + ldrb r0, [r0, #0x6c4] + cmp r0, #0 + beq _0230B9F8 + bl CloseSynthBin +_0230B9F8: + ldr r0, _0230BA60 ; =SWAP_SHOP_INVENTORY_PTRS + mvn r1, #1 + ldr r0, [r0, #4] + add r0, r0, #0x1400 + ldrsb r0, [r0, #0xe4] + cmp r0, r1 + beq _0230BA44 + bl sub_0202D0EC + ldr r1, _0230BA60 ; =SWAP_SHOP_INVENTORY_PTRS + strh r0, [r1] + ldr r0, [r1, #4] + add r0, r0, #0x1400 + ldrsb r0, [r0, #0xe4] + bl sub_0202836C + ldr r0, _0230BA60 ; =SWAP_SHOP_INVENTORY_PTRS + ldr r0, [r0, #4] + add r0, r0, #0x1400 + ldrsb r0, [r0, #0xe4] + bl CloseCollectionMenu +_0230BA44: + ldr r0, _0230BA60 ; =SWAP_SHOP_INVENTORY_PTRS + ldr r0, [r0, #4] + bl MemFree + ldr r0, _0230BA60 ; =SWAP_SHOP_INVENTORY_PTRS + mov r1, #0 + str r1, [r0, #4] + ldmia sp!, {r3, pc} + .align 2, 0 +_0230BA60: .word SWAP_SHOP_INVENTORY_PTRS + arm_func_end ov11_0230B9BC + + arm_func_start ov11_0230BA64 +ov11_0230BA64: ; 0x0230BA64 + stmdb sp!, {r3, r4, r5, lr} + sub sp, sp, #8 + ldr r0, _0230BB18 ; =SWAP_SHOP_INVENTORY_PTRS + ldr r4, [r0, #4] + cmp r4, #0 + moveq r0, #0 + beq _0230BB10 + add r0, r4, #0x1400 + ldrsb r0, [r0, #0xe4] + bl sub_0202D0EC + mov r5, r0 + bl ov11_0230AE84 + cmp r0, #0 + addne r0, r4, #0x4600 + ldrneh r0, [r0, #0xd0] + cmpne r0, r5 + beq _0230BAD8 + bl ov11_0230B914 + mov r1, r5, lsl #0x10 + str r0, [sp] + mov r0, r1, lsr #0x10 + bl ov11_0230C970 + strh r0, [sp, #4] + bl ov11_0230B958 + strh r0, [sp, #6] + add r0, sp, #0 + bl ov11_0230AF0C + add r0, r4, #0x4600 + strh r5, [r0, #0xd0] +_0230BAD8: + add r0, r4, #0x1400 + ldrsb r0, [r0, #0xe4] + bl IsCollectionMenuActive + cmp r0, #0 + bne _0230BB0C + add r0, r4, #0x1400 + ldrsb r0, [r0, #0xe4] + bl sub_0202C75C + mvn r1, #0 + cmp r0, r1 + moveq r0, #2 + movne r0, #3 + b _0230BB10 +_0230BB0C: + mov r0, #0 +_0230BB10: + add sp, sp, #8 + ldmia sp!, {r3, r4, r5, pc} + .align 2, 0 +_0230BB18: .word SWAP_SHOP_INVENTORY_PTRS + arm_func_end ov11_0230BA64 + + arm_func_start ov11_0230BB1C +ov11_0230BB1C: ; 0x0230BB1C + stmdb sp!, {r3, lr} + ldr r0, _0230BB94 ; =SWAP_SHOP_INVENTORY_PTRS + ldr r0, [r0, #4] + cmp r0, #0 + addne r0, r0, #0x1400 + ldrnesb r0, [r0, #0xe4] + mvnne r1, #1 + cmpne r0, r1 + ldmeqia sp!, {r3, pc} + bl sub_0202D0EC + ldr r1, _0230BB94 ; =SWAP_SHOP_INVENTORY_PTRS + strh r0, [r1] + bl ov11_0230CA38 + bl ov11_0230CAE4 + ldr r0, _0230BB94 ; =SWAP_SHOP_INVENTORY_PTRS + ldr r0, [r0, #4] + add r0, r0, #0x1400 + ldrsb r0, [r0, #0xe4] + bl sub_0202836C + ldr r0, _0230BB94 ; =SWAP_SHOP_INVENTORY_PTRS + ldr r0, [r0, #4] + add r0, r0, #0x1400 + ldrsb r0, [r0, #0xe4] + bl CloseCollectionMenu + ldr r0, _0230BB94 ; =SWAP_SHOP_INVENTORY_PTRS + mvn r1, #1 + ldr r0, [r0, #4] + add r0, r0, #0x1000 + strb r1, [r0, #0x4e4] + ldmia sp!, {r3, pc} + .align 2, 0 +_0230BB94: .word SWAP_SHOP_INVENTORY_PTRS + arm_func_end ov11_0230BB1C + + arm_func_start ov11_0230BB98 +ov11_0230BB98: ; 0x0230BB98 + stmdb sp!, {r4, r5, lr} + sub sp, sp, #0xc + ldr r0, _0230BCD8 ; =SWAP_SHOP_INVENTORY_PTRS + ldr r2, [r0, #4] + cmp r2, #0 + beq _0230BCD0 + add r0, r2, #0x1400 + ldrsb r1, [r0, #0xe4] + mvn r0, #1 + cmp r1, r0 + bne _0230BCD0 + ldr r0, [r2] + ldr r1, _0230BCDC ; =0x00401833 + ldr r3, _0230BCE0 ; =ov11_0230BD5C + cmp r0, #3 + mov r5, #0 + addls pc, pc, r0, lsl #2 + b _0230BC00 +_0230BBE0: ; jump table + b _0230BC00 ; case 0 + b _0230BC00 ; case 1 + b _0230BC00 ; case 2 + b _0230BBF0 ; case 3 +_0230BBF0: + ldr r0, _0230BCE4 ; =0x80040004 + ldr r5, _0230BCE8 ; =ov11_0230B78C + ldr r3, _0230BCEC ; =ov11_0230BE34 + orr r1, r1, r0 +_0230BC00: + ldr ip, _0230BCD8 ; =SWAP_SHOP_INVENTORY_PTRS + add r2, r2, #0x4000 + ldrsh r4, [ip] + ldr r0, _0230BCF0 ; =ov11_02322FE4 + mov lr, #8 + str r4, [r2, #0x62c] + ldr r2, [ip, #4] + str r5, [sp] + ldr ip, [r2, #4] + add r2, r2, #0x22c + add r2, r2, #0x4400 + stmib sp, {ip, lr} + bl CreateCollectionMenu + ldr r2, _0230BCD8 ; =SWAP_SHOP_INVENTORY_PTRS + ldr r1, [r2, #4] + add r1, r1, #0x1000 + strb r0, [r1, #0x4e4] + ldr r1, [r2, #4] + ldr r0, [r1] + cmp r0, #3 + bne _0230BCD0 + add r0, r1, #0x1400 + ldrsb r0, [r0, #0xe4] + mov r1, #1 + bl SetCollectionMenuField0x1C8 + ldr r0, _0230BCD8 ; =SWAP_SHOP_INVENTORY_PTRS + ldr r1, _0230BCF4 ; =ov11_0230BF38 + ldr r0, [r0, #4] + add r0, r0, #0x1400 + ldrsb r0, [r0, #0xe4] + bl SetCollectionMenuField0x1A4 + bl ov11_0230CAA4 + bl ov11_0230C9F8 + ldr r0, _0230BCD8 ; =SWAP_SHOP_INVENTORY_PTRS + ldr r4, [r0, #4] + ldr r0, [r4] + cmp r0, #3 + addls pc, pc, r0, lsl #2 + b _0230BCD0 +_0230BC9C: ; jump table + b _0230BCD0 ; case 0 + b _0230BCD0 ; case 1 + b _0230BCD0 ; case 2 + b _0230BCAC ; case 3 +_0230BCAC: + bl ov11_0230B874 + add r1, r4, #0x4600 + ldrh r1, [r1, #0x28] + cmp r1, r0 + bne _0230BCD0 + add r0, r4, #0x1400 + ldrsb r0, [r0, #0xe4] + mov r1, #1 + bl sub_0202D07C +_0230BCD0: + add sp, sp, #0xc + ldmia sp!, {r4, r5, pc} + .align 2, 0 +_0230BCD8: .word SWAP_SHOP_INVENTORY_PTRS +_0230BCDC: .word 0x00401833 +_0230BCE0: .word ov11_0230BD5C +_0230BCE4: .word 0x80040004 +_0230BCE8: .word ov11_0230B78C +_0230BCEC: .word ov11_0230BE34 +_0230BCF0: .word ov11_02322FE4 +_0230BCF4: .word ov11_0230BF38 + arm_func_end ov11_0230BB98 + + arm_func_start ov11_0230BCF8 +ov11_0230BCF8: ; 0x0230BCF8 + stmdb sp!, {r3, lr} + ldr r0, _0230BD24 ; =SWAP_SHOP_INVENTORY_PTRS + ldr r0, [r0, #4] + cmp r0, #0 + addne r0, r0, #0x1400 + ldrnesb r0, [r0, #0xe4] + mvnne r1, #1 + cmpne r0, r1 + ldmeqia sp!, {r3, pc} + bl sub_0202C620 + ldmia sp!, {r3, pc} + .align 2, 0 +_0230BD24: .word SWAP_SHOP_INVENTORY_PTRS + arm_func_end ov11_0230BCF8 + + arm_func_start ov11_0230BD28 +ov11_0230BD28: ; 0x0230BD28 + stmdb sp!, {r3, lr} + ldr r0, _0230BD58 ; =SWAP_SHOP_INVENTORY_PTRS + ldr r0, [r0, #4] + cmp r0, #0 + addne r0, r0, #0x1400 + ldrnesb r0, [r0, #0xe4] + mvnne r1, #1 + cmpne r0, r1 + moveq r0, #0 + ldmeqia sp!, {r3, pc} + bl IsCollectionMenuState3 + ldmia sp!, {r3, pc} + .align 2, 0 +_0230BD58: .word SWAP_SHOP_INVENTORY_PTRS + arm_func_end ov11_0230BD28 + + arm_func_start ov11_0230BD5C +ov11_0230BD5C: ; 0x0230BD5C + stmdb sp!, {r4, r5, r6, lr} + sub sp, sp, #0x58 + mov r5, r1 + mov r1, r5, lsl #0x10 + mov r6, r0 + mov r0, r1, lsr #0x10 + mov r4, r2 + bl ov11_0230C970 + ldr r1, _0230BE28 ; =SWAP_SHOP_INVENTORY_PTRS + strh r0, [sp, #4] + ldr r3, [r1, #4] + mov r1, #1 + add r0, r3, r5, lsl #1 + add r0, r0, #0x2d00 + ldrh r2, [r0, #0xee] + add r0, r3, r5 + add r0, r0, #0x1000 + strh r2, [sp, #2] + strb r1, [sp] + ldrb r0, [r0, #0xb8] + add r1, sp, #0 + mov r2, #0 + tst r0, #2 + beq _0230BDEC + add r0, sp, #6 + bl MaybeGetUncoloredFormattedItemName + ldr r1, _0230BE2C ; =SWAP_SHOP_RED_TEXT_TAG_STR + mov r0, r6 + bl strcpy + add r1, sp, #6 + mov r0, r6 + bl strcat + ldr r1, _0230BE30 ; =SWAP_SHOP_UNCENTER_TEXT_TAG_STR + mov r0, r6 + bl strcat + b _0230BDF4 +_0230BDEC: + mov r0, r6 + bl MaybeGetColoredFormattedItemName +_0230BDF4: + ldr r1, _0230BE28 ; =SWAP_SHOP_INVENTORY_PTRS + mov r0, #6 + ldr r1, [r1, #4] + mla r0, r5, r0, r1 + add r0, r0, #0x1000 + ldrb r0, [r0, #0x4ea] + cmp r0, #0 + movne r1, #1 + moveq r1, #0 + mov r0, r6 + str r1, [r4] + add sp, sp, #0x58 + ldmia sp!, {r4, r5, r6, pc} + .align 2, 0 +_0230BE28: .word SWAP_SHOP_INVENTORY_PTRS +_0230BE2C: .word SWAP_SHOP_RED_TEXT_TAG_STR +_0230BE30: .word SWAP_SHOP_UNCENTER_TEXT_TAG_STR + arm_func_end ov11_0230BD5C + + arm_func_start ov11_0230BE34 +ov11_0230BE34: ; 0x0230BE34 + stmdb sp!, {r4, r5, r6, lr} + sub sp, sp, #8 + ldr r3, _0230BF28 ; =SWAP_SHOP_INVENTORY_PTRS + mov r5, r1 + mov r1, r5, lsl #0x10 + mov r6, r0 + mov r0, r1, lsr #0x10 + ldr r3, [r3, #4] + mov r1, #6 + mla r1, r0, r1, r3 + add r1, r1, #0x1400 + ldrh r1, [r1, #0xe6] + mov r4, r2 + cmp r1, #4 + moveq r0, #0 + beq _0230BF20 + bl ov11_0230C970 + ldr r1, _0230BF28 ; =SWAP_SHOP_INVENTORY_PTRS + strh r0, [sp, #4] + ldr r0, [r1, #4] + add r1, sp, #0 + add r0, r0, r5, lsl #1 + add r0, r0, #0x2d00 + ldrh ip, [r0, #0xee] + mov r3, #1 + mov r0, r6 + mov r2, #0 + strh ip, [sp, #2] + strb r3, [sp] + bl MaybeGetColoredFormattedItemName + ldrsh r0, [sp, #4] + bl ov11_0230C068 + cmp r0, #3 + addls pc, pc, r0, lsl #2 + b _0230BEE8 +_0230BEC0: ; jump table + b _0230BED0 ; case 0 + b _0230BED0 ; case 1 + b _0230BED8 ; case 2 + b _0230BEE0 ; case 3 +_0230BED0: + ldr r1, _0230BF2C ; =SWAP_SHOP_CLUMSET_ONE_STAR_STR + b _0230BEEC +_0230BED8: + ldr r1, _0230BF30 ; =SWAP_SHOP_CLUMSET_TWO_STAR_STR + b _0230BEEC +_0230BEE0: + ldr r1, _0230BF34 ; =SWAP_SHOP_CLUMSET_THREE_STAR_STR + b _0230BEEC +_0230BEE8: + mov r1, #0 +_0230BEEC: + mov r0, r6 + bl strcat + ldr r1, _0230BF28 ; =SWAP_SHOP_INVENTORY_PTRS + mov r0, #6 + ldr r1, [r1, #4] + mla r0, r5, r0, r1 + add r0, r0, #0x1000 + ldrb r0, [r0, #0x4ea] + cmp r0, #0 + movne r1, #1 + moveq r1, #0 + mov r0, r6 + str r1, [r4] +_0230BF20: + add sp, sp, #8 + ldmia sp!, {r4, r5, r6, pc} + .align 2, 0 +_0230BF28: .word SWAP_SHOP_INVENTORY_PTRS +_0230BF2C: .word SWAP_SHOP_CLUMSET_ONE_STAR_STR +_0230BF30: .word SWAP_SHOP_CLUMSET_TWO_STAR_STR +_0230BF34: .word SWAP_SHOP_CLUMSET_THREE_STAR_STR + arm_func_end ov11_0230BE34 + + arm_func_start ov11_0230BF38 +ov11_0230BF38: ; 0x0230BF38 + stmdb sp!, {r3, lr} + ldr r3, _0230BF8C ; =SWAP_SHOP_INVENTORY_PTRS + mov r2, r2, lsl #0x10 + ldr ip, [r3, #4] + mov r3, r2, lsr #0x10 + mov r2, #6 + mla r2, r3, r2, ip + add r2, r2, #0x1400 + ldrh r2, [r2, #0xe6] + mov r3, r0 + cmp r2, #2 + ldreq r0, _0230BF90 ; =0x0000032F + streqh r0, [r1, #0x1c] + beq _0230BF7C + cmp r2, #3 + ldreq r0, _0230BF94 ; =0x00004623 + streqh r0, [r1, #0x1c] +_0230BF7C: + mov r0, r1 + mov r1, r3 + bl sub_0202A03C + ldmia sp!, {r3, pc} + .align 2, 0 +_0230BF8C: .word SWAP_SHOP_INVENTORY_PTRS +#if defined(EUROPE) +_0230BF90: .word 0x0000032F +_0230BF94: .word 0x00004642 +#elif defined(JAPAN) +_0230BF90: .word 0x000031F4 +_0230BF94: .word 0x00001CDF +#else +_0230BF90: .word 0x0000032F +_0230BF94: .word 0x00004623 +#endif + arm_func_end ov11_0230BF38 + + arm_func_start ov11_0230BF98 +ov11_0230BF98: ; 0x0230BF98 + stmdb sp!, {r3, r4, r5, r6, r7, lr} + mov r4, #0 + ldr r3, _0230C048 ; =SWAP_SHOP_INVENTORY_PTRS + ldr r2, _0230C04C ; =0x0000042C + mov r0, r4 +_0230BFAC: + ldr r1, [r3, #4] + add r1, r1, r4, lsl #2 + str r0, [r1, #8] + ldr r1, [r3, #4] + add r1, r1, r4 + add r1, r1, #0x1000 + add r4, r4, #1 + strb r0, [r1, #0xb8] + cmp r4, r2 + blt _0230BFAC + ldr r2, _0230C048 ; =SWAP_SHOP_INVENTORY_PTRS + mov r5, #0 +_0230BFDC: + ldr r1, [r2, #4] + add r1, r1, r0, lsl #1 + add r1, r1, #0x3e00 + strh r5, [r1, #0x16] + ldr r1, [r2, #4] + add r1, r1, r0, lsl #1 + add r1, r1, #0x3600 + add r0, r0, #1 + strh r5, [r1, #0x46] + cmp r0, #0x3e8 + blt _0230BFDC + ldr r7, _0230C048 ; =SWAP_SHOP_INVENTORY_PTRS + ldr r6, _0230C04C ; =0x0000042C + mov r4, #0 +_0230C014: + ldr r1, [r7, #4] + mov r0, r5, lsl #0x10 + add r1, r1, r5, lsl #1 + add r3, r1, #0x2d00 + mov r1, r4 + mov r2, r4 + mov r0, r0, lsr #0x10 + strh r4, [r3, #0xee] + bl ov11_0230C924 + add r5, r5, #1 + cmp r5, r6 + blt _0230C014 + ldmia sp!, {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_0230C048: .word SWAP_SHOP_INVENTORY_PTRS +_0230C04C: .word 0x0000042C + arm_func_end ov11_0230BF98 + + arm_func_start ov11_0230C050 +ov11_0230C050: ; 0x0230C050 + ldr ip, _0230C064 ; =ov11_0230C1D0 + mov r2, r1 + mov r1, r0 + mov r0, #0 + bx ip + .align 2, 0 +_0230C064: .word ov11_0230C1D0 + arm_func_end ov11_0230C050 + + arm_func_start ov11_0230C068 +ov11_0230C068: ; 0x0230C068 + cmp r0, #0x1bc + blt _0230C080 + ldr r1, _0230C0FC ; =0x000001C3 + cmp r0, r1 + movle r0, #3 + bxle lr +_0230C080: + cmp r0, #0x1c4 + blt _0230C098 + ldr r1, _0230C100 ; =0x000001C7 + cmp r0, r1 + movle r0, #3 + bxle lr +_0230C098: + cmp r0, #0x1c8 + blt _0230C0B0 + ldr r1, _0230C104 ; =0x000001D7 + cmp r0, r1 + movle r0, #3 + bxle lr +_0230C0B0: + cmp r0, #0x1d8 + blt _0230C0C8 + ldr r1, _0230C108 ; =0x000001F9 + cmp r0, r1 + movle r0, #3 + bxle lr +_0230C0C8: + ldr r1, _0230C10C ; =0x000003F6 + cmp r0, r1 + blt _0230C0E4 + ldr r1, _0230C110 ; =0x00000547 + cmp r0, r1 + movle r0, #3 + bxle lr +_0230C0E4: + ldr r1, _0230C114 ; =0xFFFFFE06 + add r0, r0, r1 + mov r1, r0, lsr #0x1f + rsb r0, r1, r0, lsl #30 + add r0, r1, r0, ror #30 + bx lr + .align 2, 0 +_0230C0FC: .word 0x000001C3 +_0230C100: .word 0x000001C7 +_0230C104: .word 0x000001D7 +_0230C108: .word 0x000001F9 +_0230C10C: .word 0x000003F6 +_0230C110: .word 0x00000547 +_0230C114: .word 0xFFFFFE06 + arm_func_end ov11_0230C068 + + arm_func_start ov11_0230C118 +ov11_0230C118: ; 0x0230C118 + stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, lr} + ldr r6, _0230C1CC ; =SWAP_SHOP_INVENTORY_PTRS + mov lr, #0 + ldr r7, [r6, #4] + mov r4, lr + add r6, r7, #0xe6 + add ip, r6, #0x1400 + add r6, r7, #0x4600 + mov r5, lr + mov r7, #6 + b _0230C1AC +_0230C144: + mla sb, r5, r7, ip + ldrb r8, [sb, #4] + cmp r8, #0 + beq _0230C1A8 + ldrh r8, [sb] + cmp r8, #2 + beq _0230C16C + cmp r8, #3 + beq _0230C18C + b _0230C1A8 +_0230C16C: + cmp r1, #0 + ldrneh sb, [sb, #2] + movne r8, lr, lsl #1 + strneh sb, [r1, r8] + add r8, lr, #1 + mov lr, r8, lsl #0x10 + mov lr, lr, lsr #0x10 + b _0230C1A8 +_0230C18C: + cmp r3, #0 + movne r8, r4, lsl #1 + ldrneh sb, [sb, #2] + add r4, r4, #1 + mov r4, r4, lsl #0x10 + strneh sb, [r3, r8] + mov r4, r4, lsr #0x10 +_0230C1A8: + add r5, r5, #1 +_0230C1AC: + ldrh r8, [r6, #0x26] + cmp r5, r8 + blt _0230C144 + cmp r0, #0 + strneh lr, [r0] + cmp r2, #0 + strneh r4, [r2] + ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc} + .align 2, 0 +_0230C1CC: .word SWAP_SHOP_INVENTORY_PTRS + arm_func_end ov11_0230C118 + + arm_func_start ov11_0230C1D0 +ov11_0230C1D0: ; 0x0230C1D0 + stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + mov r6, r0 + mov r5, r1 + mov r4, r2 + bl GetCurrentBagCapacity + mov fp, r0 + bl sub_0200FD48 + mov r8, #0 + mov r7, r0 + mov sb, r8 + mov sl, r8 + cmp r5, #0 + beq _0230C288 + b _0230C278 +_0230C208: + ldr r0, _0230C3C4 ; =BAG_ITEMS_PTR_MIRROR + ldr r1, [r0] + mov r0, #6 + mul r0, sl, r0 + ldr r1, [r1, #0x384] + add r2, r1, r0 + ldrb r0, [r1, r0] + tst r0, #1 + movne r0, #1 + moveq r0, #0 + tst r0, #0xff + beq _0230C274 + ldrsh r1, [r2, #4] + cmp r1, #0x1bc + blt _0230C274 + ldr r0, _0230C3C8 ; =0x00000547 + cmp r1, r0 + bgt _0230C274 + cmp r6, #0 + beq _0230C270 + mov r0, r8, lsl #0x10 + mov r2, sl, lsl #0x10 + mov r0, r0, lsr #0x10 + mov r1, #2 + mov r2, r2, lsr #0x10 + bl ov11_0230C924 +_0230C270: + add r8, r8, #1 +_0230C274: + add sl, sl, #1 +_0230C278: + cmp sl, fp + blt _0230C208 + mov sl, r8 + strh r8, [r5] +_0230C288: + cmp r4, #0 + beq _0230C3BC + ldr r0, _0230C3C4 ; =BAG_ITEMS_PTR_MIRROR + mov r5, #0 + ldr r2, [r0] + ldr r0, _0230C3C8 ; =0x00000547 + b _0230C2CC +_0230C2A4: + add r1, r2, r5, lsl #1 + add r1, r1, #0x300 + ldrsh r1, [r1, #0x8a] + cmp r1, #0 + beq _0230C2D4 + cmp r1, #0x1bc + blt _0230C2C8 + cmp r1, r0 + ble _0230C2D4 +_0230C2C8: + add r5, r5, #1 +_0230C2CC: + cmp r5, r7 + blt _0230C2A4 +_0230C2D4: + cmp r5, r7 + bge _0230C31C + add r0, r2, r5, lsl #1 + add r0, r0, #0x300 + ldrsh r0, [r0, #0x8a] + cmp r0, #0 + beq _0230C31C + tst r8, #7 + cmpne r6, #0 + beq _0230C31C + mov r0, r8, lsl #0x10 + mov r0, r0, lsr #0x10 + mov r1, #4 + mov r2, #0 + bl ov11_0230C924 + add r8, r8, #1 + add r0, r8, #7 + bic sl, r0, #7 +_0230C31C: + ldr fp, _0230C3C4 ; =BAG_ITEMS_PTR_MIRROR + b _0230C37C +_0230C324: + ldr r0, [fp] + add r0, r0, r5, lsl #1 + add r0, r0, #0x300 + ldrsh r1, [r0, #0x8a] + cmp r1, #0 + beq _0230C384 + cmp r1, #0x1bc + blt _0230C378 + ldr r0, _0230C3C8 ; =0x00000547 + cmp r1, r0 + bgt _0230C378 + cmp r6, #0 + beq _0230C374 + add r0, sl, sb + mov r0, r0, lsl #0x10 + mov r2, r5, lsl #0x10 + mov r1, #3 + mov r0, r0, lsr #0x10 + mov r2, r2, lsr #0x10 + bl ov11_0230C924 +_0230C374: + add sb, sb, #1 +_0230C378: + add r5, r5, #1 +_0230C37C: + cmp r5, r7 + blt _0230C324 +_0230C384: + strh sb, [r4] + cmp r8, #0 + ble _0230C3B8 + tst sb, #7 + cmpne r6, #0 + beq _0230C3B8 + add r0, sl, sb + mov r0, r0, lsl #0x10 + mov r0, r0, lsr #0x10 + mov r1, #4 + mov r2, #0 + bl ov11_0230C924 + add sb, sb, #1 +_0230C3B8: + add sl, sl, sb +_0230C3BC: + mov r0, sl + ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_0230C3C4: .word BAG_ITEMS_PTR_MIRROR +_0230C3C8: .word 0x00000547 + arm_func_end ov11_0230C1D0 + + arm_func_start ov11_0230C3CC +ov11_0230C3CC: ; 0x0230C3CC + stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + bl GetCurrentBagCapacity + mov r7, r0 + bl sub_0200FD48 + mov sb, #0 + mov r8, r0 + mov sl, sb + mov fp, #1 + ldr r6, _0230C4C8 ; =BAG_ITEMS_PTR_MIRROR + mov r5, #6 + ldr r4, _0230C4CC ; =0x000003F5 + b _0230C450 +_0230C3FC: + mul r1, sl, r5 + ldr r0, [r6] + ldr r2, [r0, #0x384] + ldrb r0, [r2, r1] + add r1, r2, r1 + tst r0, #1 + movne r0, fp + moveq r0, #0 + tst r0, #0xff + beq _0230C44C + ldrsh r0, [r1, #4] + cmp r0, r4, lsr #1 + blt _0230C44C + cmp r0, r4 + bgt _0230C44C + ldrh r1, [r1, #2] + mov r2, sb + bl ov11_0230C5A0 + cmp r0, #0 + addne sb, sb, #1 +_0230C44C: + add sl, sl, #1 +_0230C450: + cmp sl, r7 + blt _0230C3FC + mov r4, #0 + ldr r6, _0230C4C8 ; =BAG_ITEMS_PTR_MIRROR + ldr r5, _0230C4CC ; =0x000003F5 + b _0230C4AC +_0230C468: + ldr r0, [r6] + add r1, r0, r4, lsl #1 + add r0, r1, #0x300 + ldrsh r0, [r0, #0x8a] + cmp r0, #0 + beq _0230C4B4 + cmp r0, r5, lsr #1 + blt _0230C4A8 + cmp r0, r5 + bgt _0230C4A8 + add r1, r1, #0xb00 + ldrh r1, [r1, #0x5a] + mov r2, sb + bl ov11_0230C5A0 + cmp r0, #0 + addne sb, sb, #1 +_0230C4A8: + add r4, r4, #1 +_0230C4AC: + cmp r4, r8 + blt _0230C468 +_0230C4B4: + ldr r0, _0230C4D0 ; =SWAP_SHOP_INVENTORY_PTRS + ldr r0, [r0, #4] + add r0, r0, #0x4600 + strh sb, [r0, #0x28] + ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_0230C4C8: .word BAG_ITEMS_PTR_MIRROR +_0230C4CC: .word 0x000003F5 +_0230C4D0: .word SWAP_SHOP_INVENTORY_PTRS + arm_func_end ov11_0230C3CC + + arm_func_start ov11_0230C4D4 +ov11_0230C4D4: ; 0x0230C4D4 + stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + bl GetCurrentBagCapacity + mov r8, #0 + mov r7, r0 + mov sb, r8 + mov r4, #6 + ldr r6, _0230C594 ; =BAG_ITEMS_PTR_MIRROR + ldr r5, _0230C598 ; =SWAP_SHOP_INVENTORY_PTRS + ldr fp, _0230C59C ; =0x0000018F + b _0230C578 +_0230C4FC: + mul sl, sb, r4 + ldr r0, [r6] + ldr r1, [r0, #0x384] + ldrb r0, [r1, sl] + add r1, r1, sl + tst r0, #1 + movne r0, #1 + moveq r0, #0 + tst r0, #0xff + beq _0230C574 + ldrsh r0, [r1, #4] + cmp r0, #0x16c + blt _0230C574 + cmp r0, fp + bgt _0230C574 + mov r0, r8, lsl #0x10 + mov r2, sb, lsl #0x10 + mov r1, #2 + mov r0, r0, lsr #0x10 + mov r2, r2, lsr #0x10 + bl ov11_0230C924 + ldr r1, [r6] + ldr r0, [r5, #4] + ldr r1, [r1, #0x384] + add r0, r0, r8, lsl #1 + add r1, r1, sl + ldrh r1, [r1, #2] + add r0, r0, #0x2d00 + add r8, r8, #1 + strh r1, [r0, #0xee] +_0230C574: + add sb, sb, #1 +_0230C578: + cmp sb, r7 + blt _0230C4FC + ldr r0, _0230C598 ; =SWAP_SHOP_INVENTORY_PTRS + ldr r0, [r0, #4] + add r0, r0, #0x4600 + strh r8, [r0, #0x26] + ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_0230C594: .word BAG_ITEMS_PTR_MIRROR +_0230C598: .word SWAP_SHOP_INVENTORY_PTRS +_0230C59C: .word 0x0000018F + arm_func_end ov11_0230C4D4 + + arm_func_start ov11_0230C5A0 +ov11_0230C5A0: ; 0x0230C5A0 + stmdb sp!, {r4, lr} + cmp r2, #0 + beq _0230C5EC + ldr r3, _0230C618 ; =SWAP_SHOP_INVENTORY_PTRS + mov lr, #0 + ldr r4, [r3, #4] + b _0230C5E4 +_0230C5BC: + add ip, r4, lr, lsl #1 + add r3, ip, #0x3600 + ldrh r3, [r3, #0x46] + cmp r0, r3 + addeq r3, ip, #0x3e00 + ldreqh r3, [r3, #0x16] + cmpeq r1, r3 + moveq r0, #0 + ldmeqia sp!, {r4, pc} + add lr, lr, #1 +_0230C5E4: + cmp lr, r2 + blt _0230C5BC +_0230C5EC: + ldr ip, _0230C618 ; =SWAP_SHOP_INVENTORY_PTRS + ldr r3, [ip, #4] + add r3, r3, r2, lsl #1 + add r3, r3, #0x3600 + strh r0, [r3, #0x46] + ldr r3, [ip, #4] + mov r0, #1 + add r2, r3, r2, lsl #1 + add r2, r2, #0x3e00 + strh r1, [r2, #0x16] + ldmia sp!, {r4, pc} + .align 2, 0 +_0230C618: .word SWAP_SHOP_INVENTORY_PTRS + arm_func_end ov11_0230C5A0 + + arm_func_start ov11_0230C61C +ov11_0230C61C: ; 0x0230C61C + stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, lr} + ldr r4, _0230C8DC ; =0x000001FA + mov r5, #0 +_0230C628: + ldr r0, _0230C8E0 ; =SWAP_SHOP_INVENTORY_PTRS + ldr lr, [r0, #4] + add r0, lr, #0x4600 + ldrh ip, [r0, #0x28] + cmp ip, #0 + moveq r0, #0 + beq _0230C6C0 + mov r0, r4, lsl #0x10 + mov r3, #0 + mov r2, r0, asr #0x10 + add r1, r2, #1 + add r0, r2, #2 + mov r7, r3 + mov r8, r3 + mov sb, r3 + b _0230C698 +_0230C668: + add r6, lr, r3, lsl #1 + add r6, r6, #0x3600 + ldrh r6, [r6, #0x46] + cmp r2, r6 + moveq r2, sb + beq _0230C694 + cmp r1, r6 + moveq r1, r8 + beq _0230C694 + cmp r0, r6 + moveq r0, r7 +_0230C694: + add r3, r3, #1 +_0230C698: + cmp r3, ip + blt _0230C668 + cmp r2, #0 + cmpeq r1, #0 + bne _0230C6BC + cmp r0, #0 + moveq r0, #2 + movne r0, #1 + b _0230C6C0 +_0230C6BC: + mov r0, #0 +_0230C6C0: + cmp r0, #1 + beq _0230C834 + cmp r0, #2 + bne _0230C86C + add r0, lr, r5, lsl #1 + ldr r2, _0230C8E4 ; =0x000002FE + add r0, r0, #0x2d00 + mov r1, #0 + strh r1, [r0, #0xee] + cmp r4, r2 + bne _0230C7AC + mov r0, r5, lsl #0x10 + ldr r2, _0230C8E8 ; =0x000001BD + mov r0, r0, lsr #0x10 + bl ov11_0230C924 + add r0, r5, #1 + mov r0, r0, lsl #0x10 + ldr r2, _0230C8EC ; =0x000001BE + mov r0, r0, lsr #0x10 + mov r1, #0 + bl ov11_0230C924 + add r0, r5, #2 + mov r0, r0, lsl #0x10 + ldr r2, _0230C8F0 ; =0x000001BF + mov r0, r0, lsr #0x10 + mov r1, #0 + bl ov11_0230C924 + add r0, r5, #3 + mov r0, r0, lsl #0x10 + mov r0, r0, lsr #0x10 + mov r1, #0 + mov r2, #0x1c0 + bl ov11_0230C924 + add r0, r5, #4 + mov r0, r0, lsl #0x10 + mov r0, r0, lsr #0x10 + mov r1, #0 + ldr r2, _0230C8F4 ; =0x000001C1 + bl ov11_0230C924 + add r0, r5, #5 + mov r0, r0, lsl #0x10 + mov r0, r0, lsr #0x10 + mov r1, #0 + ldr r2, _0230C8F8 ; =0x000001C2 + bl ov11_0230C924 + add r0, r5, #6 + mov r0, r0, lsl #0x10 + mov r0, r0, lsr #0x10 + mov r1, #0 + ldr r2, _0230C8FC ; =0x000001C3 + bl ov11_0230C924 + add r0, r5, #7 + mov r0, r0, lsl #0x10 + mov r0, r0, lsr #0x10 + add r5, r5, #8 + mov r1, #0 + mov r2, #0x1bc + bl ov11_0230C924 + b _0230C834 +_0230C7AC: + add r0, r2, #0x38 + cmp r4, r0 + bne _0230C818 + mov r0, r5, lsl #0x10 + ldr r2, _0230C900 ; =0x000001C5 + mov r0, r0, lsr #0x10 + bl ov11_0230C924 + add r0, r5, #1 + mov r0, r0, lsl #0x10 + ldr r2, _0230C904 ; =0x000001C6 + mov r0, r0, lsr #0x10 + mov r1, #0 + bl ov11_0230C924 + add r0, r5, #2 + mov r0, r0, lsl #0x10 + ldr r2, _0230C908 ; =0x000001C7 + mov r0, r0, lsr #0x10 + mov r1, #0 + bl ov11_0230C924 + add r0, r5, #3 + mov r0, r0, lsl #0x10 + mov r0, r0, lsr #0x10 + mov r1, #0 + mov r2, #0x1c4 + add r5, r5, #4 + bl ov11_0230C924 + b _0230C834 +_0230C818: + add r2, r4, #3 + mov r0, r5, lsl #0x10 + mov r2, r2, lsl #0x10 + mov r0, r0, lsr #0x10 + mov r2, r2, lsr #0x10 + add r5, r5, #1 + bl ov11_0230C924 +_0230C834: + add r1, r4, #2 + mov r0, r5, lsl #0x10 + mov r1, r1, lsl #0x10 + mov r0, r0, lsr #0x10 + mov r2, r1, lsr #0x10 + mov r1, #0 + bl ov11_0230C924 + ldr r0, _0230C8E0 ; =SWAP_SHOP_INVENTORY_PTRS + mov r1, #0 + ldr r0, [r0, #4] + add r0, r0, r5, lsl #1 + add r0, r0, #0x2d00 + strh r1, [r0, #0xee] + add r5, r5, #1 +_0230C86C: + ldr r0, _0230C90C ; =0x000003F6 + add r4, r4, #4 + cmp r4, r0 + blt _0230C628 + ldr r0, _0230C8E0 ; =SWAP_SHOP_INVENTORY_PTRS + ldr r0, [r0, #4] + add r0, r0, #0xe6 + add r0, r0, #0x4500 + bl GetCroagunkItemTemplates + mov r6, r0 + mov r7, #0 + mov r4, #1 + b _0230C8C0 +_0230C8A0: + mov r0, r5, lsl #0x10 + mov r2, r7, lsl #0x10 + mov r1, r4 + mov r0, r0, lsr #0x10 + mov r2, r2, lsr #0x10 + add r5, r5, #1 + bl ov11_0230C924 + add r7, r7, #1 +_0230C8C0: + cmp r7, r6 + blt _0230C8A0 + ldr r0, _0230C8E0 ; =SWAP_SHOP_INVENTORY_PTRS + ldr r0, [r0, #4] + add r0, r0, #0x4600 + strh r5, [r0, #0x26] + ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc} + .align 2, 0 +_0230C8DC: .word 0x000001FA +_0230C8E0: .word SWAP_SHOP_INVENTORY_PTRS +_0230C8E4: .word 0x000002FE +_0230C8E8: .word 0x000001BD +_0230C8EC: .word 0x000001BE +_0230C8F0: .word 0x000001BF +_0230C8F4: .word 0x000001C1 +_0230C8F8: .word 0x000001C2 +_0230C8FC: .word 0x000001C3 +_0230C900: .word 0x000001C5 +_0230C904: .word 0x000001C6 +_0230C908: .word 0x000001C7 +_0230C90C: .word 0x000003F6 + arm_func_end ov11_0230C61C + + arm_func_start ov11_0230C910 +ov11_0230C910: ; 0x0230C910 + ldr r0, _0230C920 ; =SWAP_SHOP_INVENTORY_PTRS + mov r1, #0 + strh r1, [r0] + bx lr + .align 2, 0 +_0230C920: .word SWAP_SHOP_INVENTORY_PTRS + arm_func_end ov11_0230C910 + + arm_func_start ov11_0230C924 +ov11_0230C924: ; 0x0230C924 + stmdb sp!, {r3, lr} + mov r3, #6 + mul lr, r0, r3 + ldr r3, _0230C96C ; =SWAP_SHOP_INVENTORY_PTRS + mov ip, #0 + ldr r0, [r3, #4] + add r0, r0, lr + add r0, r0, #0x1400 + strh r1, [r0, #0xe6] + ldr r0, [r3, #4] + add r0, r0, lr + add r0, r0, #0x1400 + strh r2, [r0, #0xe8] + ldr r0, [r3, #4] + add r0, r0, lr + add r0, r0, #0x1000 + strb ip, [r0, #0x4ea] + ldmia sp!, {r3, pc} + .align 2, 0 +_0230C96C: .word SWAP_SHOP_INVENTORY_PTRS + arm_func_end ov11_0230C924 + + arm_func_start ov11_0230C970 +ov11_0230C970: ; 0x0230C970 + stmdb sp!, {r3, lr} + mov r1, #6 + ldr r2, _0230C9E8 ; =SWAP_SHOP_INVENTORY_PTRS + mul r1, r0, r1 + ldr r3, [r2, #4] + add r0, r3, #0xe6 + add r2, r0, #0x1400 + ldrh r0, [r2, r1] + add r1, r2, r1 + cmp r0, #1 + beq _0230C9B0 + cmp r0, #2 + beq _0230C9C4 + cmp r0, #3 + beq _0230C9D4 + b _0230C9E0 +_0230C9B0: + ldrh r0, [r1, #2] + add r0, r3, r0, lsl #3 + add r0, r0, #0x4500 + ldrsh r0, [r0, #0xe6] + ldmia sp!, {r3, pc} +_0230C9C4: + ldrsh r0, [r1, #2] + bl GetItemAtIdx + ldrsh r0, [r0, #4] + ldmia sp!, {r3, pc} +_0230C9D4: + ldrsh r0, [r1, #2] + bl sub_02010044 + ldmia sp!, {r3, pc} +_0230C9E0: + ldrsh r0, [r1, #2] + ldmia sp!, {r3, pc} + .align 2, 0 +_0230C9E8: .word SWAP_SHOP_INVENTORY_PTRS + arm_func_end ov11_0230C970 + + arm_func_start ov11_0230C9EC +ov11_0230C9EC: ; 0x0230C9EC + cmp r0, #4 + moveq r0, #4 + bx lr + arm_func_end ov11_0230C9EC + + arm_func_start ov11_0230C9F8 +ov11_0230C9F8: ; 0x0230C9F8 + stmdb sp!, {r3, lr} + ldr r0, _0230CA2C ; =SWAP_SHOP_INVENTORY_PTRS + ldr r1, [r0, #4] + add r0, r1, #0x4000 + ldr r0, [r0, #0x6cc] + cmp r0, #0 + ldmneia sp!, {r3, pc} + add r0, r1, #0x2cc + ldr r1, _0230CA30 ; =ov11_02322FF4 + ldr r2, _0230CA34 ; =ov11_0230CA7C + add r0, r0, #0x4400 + bl sub_0204707C + ldmia sp!, {r3, pc} + .align 2, 0 +_0230CA2C: .word SWAP_SHOP_INVENTORY_PTRS +_0230CA30: .word ov11_02322FF4 +_0230CA34: .word ov11_0230CA7C + arm_func_end ov11_0230C9F8 + + arm_func_start ov11_0230CA38 +ov11_0230CA38: ; 0x0230CA38 + stmdb sp!, {r3, lr} + ldr r0, _0230CA78 ; =SWAP_SHOP_INVENTORY_PTRS + ldr r1, [r0, #4] + add r0, r1, #0x4000 + ldr r0, [r0, #0x6cc] + cmp r0, #0 + ldmeqia sp!, {r3, pc} + add r0, r1, #0x2cc + add r0, r0, #0x4400 + bl sub_02047150 + ldr r0, _0230CA78 ; =SWAP_SHOP_INVENTORY_PTRS + mov r1, #0 + ldr r0, [r0, #4] + add r0, r0, #0x4000 + str r1, [r0, #0x6cc] + ldmia sp!, {r3, pc} + .align 2, 0 +_0230CA78: .word SWAP_SHOP_INVENTORY_PTRS + arm_func_end ov11_0230CA38 + + arm_func_start ov11_0230CA7C +ov11_0230CA7C: ; 0x0230CA7C + stmdb sp!, {r4, lr} + ldr r3, _0230CAA0 ; =0x000003A9 + mov r4, r0 + mov r1, #6 + mov r2, #2 + bl AppendStandardStringToMission + mov r0, r4 + bl UpdateWindow + ldmia sp!, {r4, pc} + .align 2, 0 +#ifdef JAPAN +_0230CAA0: .word 0x000032B3 +#else +_0230CAA0: .word 0x000003A9 +#endif + arm_func_end ov11_0230CA7C + + arm_func_start ov11_0230CAA4 +ov11_0230CAA4: ; 0x0230CAA4 + stmdb sp!, {r3, lr} + ldr r0, _0230CAD8 ; =SWAP_SHOP_INVENTORY_PTRS + ldr r1, [r0, #4] + add r0, r1, #0x4000 + ldr r0, [r0, #0x6c8] + cmp r0, #0 + ldmneia sp!, {r3, pc} + add r0, r1, #0x2c8 + ldr r1, _0230CADC ; =ov11_02322FD4 + ldr r2, _0230CAE0 ; =ov11_0230CB28 + add r0, r0, #0x4400 + bl sub_0204707C + ldmia sp!, {r3, pc} + .align 2, 0 +_0230CAD8: .word SWAP_SHOP_INVENTORY_PTRS +_0230CADC: .word ov11_02322FD4 +_0230CAE0: .word ov11_0230CB28 + arm_func_end ov11_0230CAA4 + + arm_func_start ov11_0230CAE4 +ov11_0230CAE4: ; 0x0230CAE4 + stmdb sp!, {r3, lr} + ldr r0, _0230CB24 ; =SWAP_SHOP_INVENTORY_PTRS + ldr r1, [r0, #4] + add r0, r1, #0x4000 + ldr r0, [r0, #0x6c8] + cmp r0, #0 + ldmeqia sp!, {r3, pc} + add r0, r1, #0x2c8 + add r0, r0, #0x4400 + bl sub_02047150 + ldr r0, _0230CB24 ; =SWAP_SHOP_INVENTORY_PTRS + mov r1, #0 + ldr r0, [r0, #4] + add r0, r0, #0x4000 + str r1, [r0, #0x6c8] + ldmia sp!, {r3, pc} + .align 2, 0 +_0230CB24: .word SWAP_SHOP_INVENTORY_PTRS + arm_func_end ov11_0230CAE4 + + arm_func_start ov11_0230CB28 +ov11_0230CB28: ; 0x0230CB28 + stmdb sp!, {r3, r4, lr} + sub sp, sp, #0x54 + mov r4, r0 + add r0, sp, #4 + bl InitPreprocessorArgs + bl ov11_0230B874 + ldr r1, _0230CB84 ; =SWAP_SHOP_INVENTORY_PTRS + str r0, [sp, #0x28] + ldr r0, [r1, #4] +#ifdef JAPAN + add r2, sp, #4 + add r0, r0, #0x4600 + ldrh r1, [r0, #0x28] + ldr r3, _0230E130 ; =0x000032B4 + mov r0, r4 + str r1, [sp, #0x2c] + str r2, [sp] + mov r1, #6 + mov r2, #2 +#else + mov r2, #2 + add r0, r0, #0x4600 + ldrh r3, [r0, #0x28] + add r1, sp, #4 + mov r0, r4 + str r3, [sp, #0x2c] + str r1, [sp] + add r3, r2, #0x3a8 + mov r1, #6 +#endif + bl sub_020262E0 + mov r0, r4 + bl UpdateWindow + add sp, sp, #0x54 + ldmia sp!, {r3, r4, pc} + .align 2, 0 +_0230CB84: .word SWAP_SHOP_INVENTORY_PTRS +#ifdef JAPAN +_0230E130: .word 0x000032B4 +#endif + arm_func_end ov11_0230CB28 diff --git a/include/main_0200F798.h b/include/main_0200F798.h index 4e000349..3601f6fe 100644 --- a/include/main_0200F798.h +++ b/include/main_0200F798.h @@ -3,8 +3,8 @@ #include "item.h" -struct item *GetFirstUnequippedItemOfType(s16 type); -u32 RemoveItemNoHoleCheck(struct item *item); +s16 GetFirstUnequippedItemOfType(s16 type); +u32 RemoveItemNoHoleCheck(s16 index); u32 RemoveFirstUnequippedItemOfType(s16 type); diff --git a/include/overlay_10_022BCC60.h b/include/overlay_10_022BCC60.h index 0d260416..b7109afd 100644 --- a/include/overlay_10_022BCC60.h +++ b/include/overlay_10_022BCC60.h @@ -12,7 +12,7 @@ void CloseInventoryMenu(s32 window_id); bool8 ov10_022BCD10(s32 window_id); s32 IsInventoryMenuActive(s32 window_id); bool8 CheckInventoryMenuField0x1A0(s32 window_id); -void ov10_022BCDA8(s32 window_id); +s32 ov10_022BCDA8(s32 window_id); s32 ov10_022BCDBC(s32 window_id); #endif //PMDSKY_OVERLAY_10_022BCC60_H diff --git a/include/overlay_11_02307334.h b/include/overlay_11_02307334.h new file mode 100644 index 00000000..f8280731 --- /dev/null +++ b/include/overlay_11_02307334.h @@ -0,0 +1,6 @@ +#ifndef PMDSKY_OVERLAY_11_02307334_H +#define PMDSKY_OVERLAY_11_02307334_H + +s32 ov11_02307334(void); + +#endif diff --git a/main.lsf b/main.lsf index 527a9d95..d2b2016e 100644 --- a/main.lsf +++ b/main.lsf @@ -661,6 +661,8 @@ Overlay OVY_11 Object asm/overlay_11_022FE4AC.o Object src/overlay_11_022FE58C.o Object asm/overlay_11_022FE5F8.o + Object src/overlay_11_02307334.o + Object asm/overlay_11_02308D1C.o Object src/overlay_11_0230CB88.o Object src/overlay_11_0230CD48.o Object asm/overlay_11_0230CE30.o diff --git a/src/overlay_10_022BCC60.c b/src/overlay_10_022BCC60.c index cbb013e6..0cf69f47 100644 --- a/src/overlay_10_022BCC60.c +++ b/src/overlay_10_022BCC60.c @@ -95,11 +95,11 @@ bool8 CheckInventoryMenuField0x1A0(s32 window_id) return w->field_0x1A0 == 0; } -void ov10_022BCDA8(s32 window_id) +s32 ov10_022BCDA8(s32 window_id) { struct unk_0202AAA8 *w = GetWindowContents(window_id); - sub_02033064((void *) w + 4); + return sub_02033064((void *) w + 4); } s32 ov10_022BCDBC(s32 window_id) diff --git a/src/overlay_11_02307334.c b/src/overlay_11_02307334.c new file mode 100644 index 00000000..b5cba470 --- /dev/null +++ b/src/overlay_11_02307334.c @@ -0,0 +1,896 @@ +#include "overlay_11_02307334.h" +#include "item.h" +#include "item_util.h" +#include "game_mode.h" +#include "main_0200C4FC.h" +#include "main_0200EDC0.h" +#include "main_0200F370.h" +#include "main_0200F798.h" +#include "main_02017B58.h" +#include "main_02017C80.h" +#include "main_0202593C.h" +#include "main_02027AF0.h" +#include "main_0202AAA8.h" +#include "main_0202AB40.h" +#include "main_0202B4C4.h" +#include "main_0202F180.h" +#include "main_02058CD8.h" +#include "main_02058E68.h" +#include "overlay_10_022BCC60.h" +#include "overlay_31_02382820.h" + +struct unk_02309DAC { + s32 field_0x0; + s16 field_0x4; +}; + +struct unk_02308F4C { + s32 field_0x0; + s16 field_0x4; + u8 field_0x6[2]; + s16 field_0x8; + u8 field_0xa; + u8 field_0xb; + u32 *field_0xc; + s16 *field_0x10; +}; + +struct unk_02324D8C { + s32 field_0x0; s8 field_0x4; + s8 field_0x5; + s8 field_0x6; + s8 field_0x7; + s8 field_0x8; + s8 field_0x9; + s8 field_0xa; + s8 field_0xb; + s8 field_0xc; + u8 field_0xd[3]; + s32 field_0x10; + s32 field_0x14; + s32 field_0x18; + struct struct_2 field_0x1c; struct preprocessor_args field_0xb4; u8 field_0x104[0x134]; + struct unk_02308F4C field_0x238; s16 field_0x24c; + s16 field_0x24e; + s16 field_0x250; + u16 field_0x252; + s16 field_0x254; + u8 field_0x256[0x20]; + u8 field_0x276[0xa]; + u8 field_0x280[0x45]; + u8 field_0x2c5[0x45]; + u8 field_0x30a[2]; + s32 field_0x30c; + s32 field_0x310; + s32 field_0x314; + s32 field_0x318; + u8 field_0x31c[8]; + void *field_0x324; + u16 field_0x328[2]; + s32 field_0x32c; +}; + +extern struct unk_02324D8C *ov11_02324D8C; + +struct unk_02322D38 { + u16 field_0x0; + u16 field_0x2; + u32 field_0x4; +}; + +extern struct unk_02322D38 ov11_02322D38[]; +extern s32 ov11_02322C78; +extern s32 ov11_02322C88; +extern s32 ov11_02322C98; +extern s32 ov11_02322CA8; +extern s32 ov11_02322CB8; +extern s32 ov11_02322CC8; +extern s32 ov11_02322CD8; +extern s32 ov11_02322CF0; +extern s32 ov11_02322D10; +extern s32 ov11_02322D60; +extern s32 ov11_02322D88; +extern u8 ov11_02322DB0[]; + +extern void CloseScrollBox(s8); extern void CloseTextBox2(s8); extern u8 CreateParentMenuFromStringIds(void *, u32, void *, void *); extern s8 CreateScrollBoxSingle(void *, s32, s32, s32, void *, s32, void *); extern s8 CreateSimpleMenuFromStringIds(void *, s32, s32, void *, s32); extern s8 CreateTextBox(void *, void *); extern void DrawTextInWindow(s32 window_id, s32 x, s32 y, char *string); +extern struct team_member *GetActiveTeamMember(s32 roster_idx); +extern void GetPressedButtons(u32, u16 *); +extern s32 GetSimpleMenuResult__0202AEA4(s8); extern s32 GetSimpleMenuResult__0202B870(s8); extern struct ground_monster *GetTeamMember(s32 member_idx); +extern void InitPreprocessorArgs(struct preprocessor_args *); +extern s32 IsScrollBoxActive(s8); extern void ShowDialogueBox(s8); extern void ShowStringIdInDialogueBox(s8, s32, s32, void *); extern void ov11_022DC504(void); +extern u8 *strcpy(u8 *dest, const u8 *src); + +extern void ApplyGummiBoostsToGroundMonster(struct ground_monster *, s16, int, void *); +extern void ApplyGummiBoostsToTeamMember(struct team_member *, s16, int, void *); +extern void CloseAdvancedTextBox(s32 window_id); +extern s8 CreateInventoryMenuOuter(s32, s32, s32, void *, void *, void *, u8); +extern bool8 IsBagNotEmpty(void); +extern u8 PopInventoryMenuField0x1A3(s32 window_id); +extern void SetItemAcquired(struct item *); +extern void SortItemsInBag(void); +extern void *memcpy(void *, const void *, u32); +extern void ov10_022BCDF4(s32 window_id); +extern void ov11_02308D48(void); +extern void *ov11_02308DD8(void *); +extern void ov11_02308EDC(void); +extern void ov11_02308F14(void); +extern void ov11_02308F4C(void *dst, const void *src); +extern void ov11_02308FD0(void *); +extern void ov11_02308FEC(void *); +extern s32 ov11_0230901C(void *); +extern int ov11_02309040(s32); +extern int ov11_02309084(s16); +extern int ov11_023090DC(void); +extern void ov11_02309DAC(void *out); +extern void ov11_02309DF8(void); +extern s16 ov11_02309E24(void); +extern int ov11_02309E48(s16); +extern s32 ov11_02307300(s32, s32, s32); +extern s32 sub_020037A4(void); +extern void sub_0203FD14(u16 move_id); +extern struct move *sub_0203FD2C(void); +extern void *sub_0203FD38(void); +extern s16 sub_0203FD80(s32); +extern s16 sub_0203FDEC(s16); +extern s8 sub_0204019C(s32, s32, s32, void *); +extern void sub_020407C0(void); +extern int sub_020407EC(void); +extern s16 sub_02041094(void); +extern u16 sub_02041154(s32); +extern bool8 sub_02041364(s32); +extern void sub_02041484(void); +extern bool8 sub_020415BC(void); +extern s16 sub_02041614(u16 move_id); +extern void sub_020416FC(void); +extern s8 sub_020417A8(void *, s32, s32, s32); +extern void sub_02041A00(void); +extern void *sub_02044688(s16, s32, s32, s32, u8, s32); +extern int sub_02044800(void *); +extern void sub_020448EC(void **); +extern s32 sub_02053CA0(u16 *out, s32 limit, s16, u8); +extern void sub_020582E0(u8 held_by); +extern void sub_02058794(s16); + +#ifdef JAPAN +#define OV11_02307334_OFFSET 0x2D20 +#define OV11_02307334_OFFSET_2 0x1458 +#define OV11_02307334_OFFSET_3 0x1567 +#else +#define OV11_02307334_OFFSET 0 +#define OV11_02307334_OFFSET_2 0 +#define OV11_02307334_OFFSET_3 0 +#endif + +s32 ov11_02307334(void) +{ + struct struct_2 menu_b; + struct struct_2 menu_a; + struct preprocessor_args args; + char buf[0x400]; + struct unk_02309DAC sel_18; + struct unk_02309DAC sel_10; + u16 btn_e; + u16 btn_c; + + switch (ov11_02324D8C->field_0x0) { + case 0: { + ov11_02324D8C->field_0x4 = CreateInventoryMenuOuter(GetNbItemsInBag(), 0, ov11_02324D8C->field_0x10, ov11_02324D8C->field_0x104, (void *)ov11_02307300, ov11_02324D8C->field_0x31c, 0); + ov11_02324D8C->field_0x5 = CreateTextBox(&ov11_02322C88, 0); + ov11_02324D8C->field_0x18 = -1; + ov11_02324D8C->field_0x0 = 1; + break; + } + case 2: { + if (!IsBagNotEmpty()) { + SetInventoryMenuState6(ov11_02324D8C->field_0x4); + ov11_02324D8C->field_0x0 = 0xc; + break; + } + ov10_022BCC7C(ov11_02324D8C->field_0x4); + ov11_02324D8C->field_0x0 = 1; + break; + } + case 1: { + u8 v1; + + GetPressedButtons(0, &btn_e); + v1 = PopInventoryMenuField0x1A3(ov11_02324D8C->field_0x4); + if ((btn_e & 4) || (btn_e & 0x800) || v1) { + if (!v1) { + PlaySeVolumeWrapper(5); + } + SortItemsInBag(); + ov11_02324D8C->field_0x10 = 0; + ov10_022BCC60(ov11_02324D8C->field_0x4, GetNbItemsInBag()); + ov11_02324D8C->field_0x18 = -1; + ov10_022BCCB0(ov11_02324D8C->field_0x4); + } else { + s8 v2 = ov11_02324D8C->field_0x5; + + if (v2 != -2) { + s32 v3 = ov10_022BCDA8(ov11_02324D8C->field_0x4); + + if (ov11_02324D8C->field_0x18 != v3) { + struct item *v4 = GetItemAtIdx(v3); + + ov11_02324D8C->field_0x18 = v3; + sub_02027B1C(v2); + if ((bool8)((v4->flags & 1) != 0)) { +#ifdef EUROPE + strcpy((u8 *)buf, StringFromId((u16)(v4->id + 0x2f4b))); +#elif defined(JAPAN) + strcpy((u8 *)buf, StringFromId((u16)(v4->id + 0x1d41))); +#else + strcpy((u8 *)buf, StringFromId((u16)(v4->id + 0x2f49))); +#endif + } else { + strcpy((u8 *)buf, ov11_02322DB0); + } + DrawTextInWindow(v2, 2, 2, buf); + UpdateWindow(v2); + } + } + if (!IsInventoryMenuActive(ov11_02324D8C->field_0x4)) { + s32 v5 = ov10_022BCDBC(ov11_02324D8C->field_0x4); + + if (v5 >= 0) { + struct item *v6; + s32 v7; + s32 v8; + + ov11_02324D8C->field_0x10 = v5; + v6 = GetItemAtIdx(ov11_02324D8C->field_0x10); + ov11_02324D8C->field_0x24e = v6->id; + if ((bool8)((v6->flags & 1) != 0)) { + ov11_02324D8C->field_0x24e = v6->id; + } else { + ov11_02324D8C->field_0x24e = 0; + } + v7 = GetItemCategoryVeneer(ov11_02324D8C->field_0x24e); + v8 = GetGameMode(); + if (v7 == 5 && v8 != 4 && v8 != 5) { + s16 i; + + for (i = 0; ov11_02322D38[i].field_0x0 != 0; i++) { + ov11_02324D8C->field_0x276[i] = 0; + switch (ov11_02322D38[i].field_0x0) { + case 0x2b6 + OV11_02307334_OFFSET: + if (!ov11_02309E48(ov11_02324D8C->field_0x24e)) { + ov11_02324D8C->field_0x276[i] = 3; + } + break; + } + } + menu_a.c = ov11_02324D8C->field_0x276; + ov11_02324D8C->field_0x6 = CreateParentMenuFromStringIds(&ov11_02322CB8, 0x400213, &menu_a, ov11_02322D38); + } else if (IsGummi(ov11_02324D8C->field_0x24e) && v8 != 4 && v8 != 5) { + ov11_02324D8C->field_0x6 = CreateParentMenuFromStringIds(&ov11_02322CB8, 0x400013, 0, &ov11_02322D88); + } else if (v6->held_by) { + ov11_02324D8C->field_0x6 = CreateParentMenuFromStringIds(&ov11_02322CA8, 0x400013, 0, &ov11_02322D10); + } else { + ov11_02324D8C->field_0x6 = CreateParentMenuFromStringIds(&ov11_02322CA8, 0x400013, 0, &ov11_02322D60); + } + ov11_02324D8C->field_0x0 = 3; + } else { + ov10_022BCD10(ov11_02324D8C->field_0x4); + ov11_02324D8C->field_0x0 = 0xe; + } + } else { + GetPressedButtons(0, &btn_c); + if (btn_c & 8) { + PlaySeVolumeWrapper(0); + ov10_022BCDF4(ov11_02324D8C->field_0x4); + ov11_02324D8C->field_0x10 = ov10_022BCDA8(ov11_02324D8C->field_0x4); + CloseTextBox2(ov11_02324D8C->field_0x5); + ov11_02324D8C->field_0x5 = -2; + CloseInventoryMenu(ov11_02324D8C->field_0x4); + ov11_02324D8C->field_0x4 = -2; + ov11_02324D8C->field_0x0 = 0xa; + } + } + } + break; + } + case 3: { + if (IsParentMenuActive(ov11_02324D8C->field_0x6)) { + break; + } + { + s32 v1 = GetSimpleMenuResult__0202AEA4(ov11_02324D8C->field_0x6); + + if (v1 != 8) { + ov11_02324D8C->field_0x14 = v1; + if (v1 == 0) { + ov11_02308D48(); + ov11_02324D8C->field_0x0 = 7; + } else if (v1 == 1) { + ov11_02308D48(); + ov11_02324D8C->field_0x0 = 9; + } else if (v1 == 2) { + menu_b.b = 5; + ov11_02324D8C->field_0x7 = CreateParentMenuFromStringIds(&ov11_02322C98, 0x33, &menu_b, &ov11_02322CD8); + ov11_02324D8C->field_0x0 = 4; + } else if (v1 == 6) { + ov11_02308D48(); + ov11_02324D8C->field_0x0 = 0x11; + } else if (v1 == 7) { + ov11_02308D48(); + ov11_02324D8C->field_0x0 = 0x18; + } else { + ov11_02308D48(); + ov11_02324D8C->field_0x0 = 0xa; + } + } else { + CloseParentMenu(ov11_02324D8C->field_0x6); + ov11_02324D8C->field_0x6 = -2; + ov11_02324D8C->field_0x0 = 2; + } + } + break; + } + case 17: { + ov11_02309040(1); + ov11_02324D8C->field_0x0 = 0x12; + break; + } + case 18: { + struct unk_02308F4C *v2; + s16 v3; + s32 v4; + + if (!ov11_023090DC()) { + break; + } + if (ov11_02309E24() != -1) { + v2 = &ov11_02324D8C->field_0x238; + ov11_02309DAC(&sel_18); + ov11_02308F4C(v2, &sel_18); + ov11_02324D8C->field_0x30c = GetLearnableIqSkills(ov11_02324D8C->field_0x280, v2->field_0x8, *v2->field_0x10); + ov11_02324D8C->field_0x250 = -1; + ov11_02324D8C->field_0x318 = *v2->field_0x10; + v3 = ov11_02324D8C->field_0x24e; + if (v2->field_0x0 == 0) { + ApplyGummiBoostsToGroundMonster(GetTeamMember(v2->field_0x4), v3, 1, &ov11_02324D8C->field_0x250); + } else if (v2->field_0x0 == 1) { + ApplyGummiBoostsToTeamMember(GetActiveTeamMember(v2->field_0x4), v3, 1, &ov11_02324D8C->field_0x250); + } + ov11_02324D8C->field_0x318 -= *v2->field_0x10; + ov11_022DC504(); + if (v2->field_0x0 == 1) { + sub_02058794(v2->field_0x4); + } + ov11_02324D8C->field_0x310 = GetLearnableIqSkills(ov11_02324D8C->field_0x2c5, v2->field_0x8, *v2->field_0x10); + ov11_02324D8C->field_0x314 = 1; + v4 = ov11_02324D8C->field_0x250; + ov11_02308EDC(); + if (v4 >= 0 && v4 <= 3) { + RemoveItemNoHoleCheck(ov11_02324D8C->field_0x10); + ov11_02324D8C->field_0x18 = -1; + ov11_02324D8C->field_0x0 = 0x13; + } else { + ShowStringIdInDialogueBox(ov11_02324D8C->field_0x8, 0x18, 0x2be + OV11_02307334_OFFSET, &ov11_02324D8C->field_0xb4); + ov11_02324D8C->field_0x0 = 0xd; + } + } else { + ov11_02324D8C->field_0x0 = 0; + } + ov11_02309DF8(); + break; + } + case 19: { + s32 v1; + s16 v2; + + v2 = ov11_02324D8C->field_0x250; + switch (v2) { + case 0: + v1 = 0x2b9 + OV11_02307334_OFFSET; + break; + case 1: + v1 = 0x2ba + OV11_02307334_OFFSET; + break; + case 2: + v1 = 0x2bb + OV11_02307334_OFFSET; + break; + case 3: + v1 = 0x2bc + OV11_02307334_OFFSET; + break; + default: + v1 = 0; + break; + } + if (ov11_02324D8C->field_0x318 == 0 && v2 >= 0 && v2 <= 3) { + v1 = 0x2bd + OV11_02307334_OFFSET; + } + if (v1 == 0) { + ov11_02324D8C->field_0x0 = 0x10; + break; + } + ov11_02324D8C->field_0xb4.flag_vals[0] = ov11_0230901C(&ov11_02324D8C->field_0x238); + ov11_02308EDC(); + ShowStringIdInDialogueBox(ov11_02324D8C->field_0x8, 0x18, v1, &ov11_02324D8C->field_0xb4); + ov11_02324D8C->field_0x0 = 0x14; + break; + } + case 20: { + if (IsDialogueBoxActive(ov11_02324D8C->field_0x8)) { + break; + } + ShowDialogueBox(ov11_02324D8C->field_0x8); + ov11_02308F14(); + ov11_02324D8C->field_0x0 = 0x15; + break; + } + case 21: { + do { + int v1 = 0; + int v2 = 0; + int i; + struct unk_02324D8C *st = ov11_02324D8C; + int n = st->field_0x30c; + + for (i = 0; i < n; i++) { + if (st->field_0x314 == st->field_0x280[i]) { + v1 = 1; + break; + } + } + for (i = 0; i < ov11_02324D8C->field_0x310; i++) { + if (ov11_02324D8C->field_0x314 == ov11_02324D8C->field_0x2c5[i]) { + v2 = 1; + break; + } + } + if (v1 != v2) { + ov11_02324D8C->field_0xb4.flag_vals[0] = ov11_0230901C(&ov11_02324D8C->field_0x238); + ov11_02324D8C->field_0xb4.id_vals[0] = ov11_02324D8C->field_0x314; + sub_02017C50(4); + ov11_02308EDC(); + ShowStringIdInDialogueBox(ov11_02324D8C->field_0x8, 0x18, 0x2BF + OV11_02307334_OFFSET, &ov11_02324D8C->field_0xb4); + EnableIqSkill(ov11_02324D8C->field_0x238.field_0xc, (u8)ov11_02324D8C->field_0x314); + ov11_02308FD0(&ov11_02324D8C->field_0x238); + ov11_02324D8C->field_0x314++; + ov11_02324D8C->field_0x0 = 0x14; + break; + } + ov11_02324D8C->field_0x314++; + } while (ov11_02324D8C->field_0x314 < 0x45); + if (ov11_02324D8C->field_0x314 >= 0x45) { + ov11_02324D8C->field_0x0 = 0x16; + } + break; + } + case 22: { + s32 v1; + + switch (ov11_02324D8C->field_0x252) { + case 0: + v1 = 0; + break; + case 1: + v1 = 0x2C1 + OV11_02307334_OFFSET; + break; + case 2: + v1 = 0x2C2 + OV11_02307334_OFFSET; + break; + case 4: + v1 = 0x2C3 + OV11_02307334_OFFSET; + break; + case 8: + v1 = 0x2C4 + OV11_02307334_OFFSET; + break; + default: + v1 = 0x2C0 + OV11_02307334_OFFSET; + break; + } + if (v1 == 0) { + ov11_02324D8C->field_0x0 = 0x10; + break; + } + ov11_02308EDC(); + ShowStringIdInDialogueBox(ov11_02324D8C->field_0x8, 0x18, 0x2BF + OV11_02307334_OFFSET, &ov11_02324D8C->field_0xb4); + ov11_02324D8C->field_0x314++; + ov11_02324D8C->field_0x0 = 0x17; + break; + } + case 23: { + if (IsDialogueBoxActive(ov11_02324D8C->field_0x8)) { + break; + } + ShowDialogueBox(ov11_02324D8C->field_0x8); + ov11_02308F14(); + ov11_02324D8C->field_0x0 = 0x10; + break; + } + case 24: { + ov11_02309084(GetItemAtIdx(ov11_02324D8C->field_0x10)->id); + ov11_02324D8C->field_0x0 = 0x19; + break; + } + case 25: { + if (!ov11_023090DC()) { + break; + } + if (ov11_02309E24() != -1) { + struct unk_02324D8C *v1 = ov11_02324D8C; + + ov11_02309DAC(&sel_10); + ov11_02308F4C(&v1->field_0x238, &sel_10); + ov11_02308FEC(&v1->field_0x238); + if (sub_020415BC()) { + ov11_02324D8C->field_0x0 = 0x1d; + } else { + struct item *v2 = GetItemAtIdx(ov11_02324D8C->field_0x10); + if (!IsHM(v2->id)) { + v2->quantity = v2->id - 0xbc; + v2->id = 0xbb; + SetItemAcquired(v2); + } + ov11_02324D8C->field_0x0 = 0x1a; + } + } else { + ov11_02324D8C->field_0x0 = 0; + } + ov11_02309DF8(); + break; + } + case 33: { + sub_02053CA0(ov11_02324D8C->field_0x328, 2, ov11_02324D8C->field_0x238.field_0x8, ov11_02324D8C->field_0x238.field_0xa); + sub_0203FD14(GetItemMoveId16(ov11_02324D8C->field_0x24e)); + ov11_02324D8C->field_0xa = sub_0204019C(6, 0, 0, ov11_02324D8C->field_0x328); + ov11_02324D8C->field_0x0 = 0x22; + break; + } + case 34: { + switch (sub_020407EC()) { + case 2: + ov11_02324D8C->field_0x0 = 0x1f; + break; + case 1: + sub_020407C0(); + CloseAdvancedTextBox(ov11_02324D8C->field_0xa); + ov11_02324D8C->field_0xa = -2; + ov11_02324D8C->field_0x0 = 0x18; + break; + case 7: + if (sub_02041094() < 4) { + memcpy(ov11_02324D8C->field_0x256, sub_0203FD38(), 0x20); + ov11_02324D8C->field_0x254 = sub_02041094(); + } else { + memcpy(ov11_02324D8C->field_0x256, sub_0203FD2C(), 8); + ov11_02324D8C->field_0x254 = -1; + } + sub_020407C0(); + CloseAdvancedTextBox(ov11_02324D8C->field_0xa); + ov11_02324D8C->field_0xa = -2; + ov11_02324D8C->field_0x0 = 0x27; + break; + } + break; + } + case 31: { + ov11_02324D8C->field_0x1c.b = 1; + ov11_02324D8C->field_0xc = CreateSimpleMenuFromStringIds(&ov11_02322CC8, 0x33, (s32)&ov11_02324D8C->field_0x1c, &ov11_02322CF0, 3); + ov11_02324D8C->field_0x0 = 0x20; + break; + } + case 32: { + if (!IsSimpleMenuActive(ov11_02324D8C->field_0xc)) { + s32 v1; + + v1 = GetSimpleMenuResult__0202B870(ov11_02324D8C->field_0xc); + CloseSimpleMenu(ov11_02324D8C->field_0xc); + ov11_02324D8C->field_0xc = -2; + switch (v1) { + case 0: + ov11_02324D8C->field_0x24c = sub_02041094(); + CloseAdvancedTextBox(ov11_02324D8C->field_0xa); + ov11_02324D8C->field_0xa = -2; + ov11_02324D8C->field_0x0 = 0x23; + break; + case 1: + if (sub_02041094() < 4) { + memcpy(ov11_02324D8C->field_0x256, sub_0203FD38(), 0x20); + ov11_02324D8C->field_0x254 = sub_02041094(); + } else { + memcpy(ov11_02324D8C->field_0x256, sub_0203FD2C(), 8); + ov11_02324D8C->field_0x254 = -1; + } + sub_020407C0(); + CloseAdvancedTextBox(ov11_02324D8C->field_0xa); + ov11_02324D8C->field_0xa = -2; + ov11_02324D8C->field_0x0 = 0x27; + break; + case 2: + sub_020416FC(); + ov11_02324D8C->field_0x0 = 0x22; + break; + } + } + break; + } + case 35: { + ov11_02324D8C->field_0xb4.id_vals[0] = sub_02041154(ov11_02324D8C->field_0x24c); + { + s32 v1 = 0x8d7 + OV11_02307334_OFFSET_2; + + if (ov11_02324D8C->field_0x24c < 3) { + if (sub_02041364(ov11_02324D8C->field_0x24c)) { + v1--; + } + } + ov11_02308EDC(); + ShowStringIdInDialogueBox(ov11_02324D8C->field_0x8, 0x18, v1, &ov11_02324D8C->field_0xb4); + } + ov11_02324D8C->field_0x0 = 0x24; + break; + } + case 36: { + if (!IsDialogueBoxActive(ov11_02324D8C->field_0x8)) { + ov11_02324D8C->field_0x0 = 0x25; + } + break; + } + case 37: { + menu_b.b = 5; + ov11_02324D8C->field_0x7 = CreateParentMenuFromStringIds(0, 0x33, &menu_b, &ov11_02322CD8); + ov11_02324D8C->field_0x0 = 0x26; + break; + } + case 38: { + if (IsParentMenuActive(ov11_02324D8C->field_0x7)) { + break; + } + if (GetSimpleMenuResult__0202AEA4(ov11_02324D8C->field_0x7) == 4) { + struct item *v1 = GetItemAtIdx(ov11_02324D8C->field_0x10); + if (!IsHM(v1->id)) { + if (v1->held_by != 0) { + sub_020582E0(v1->held_by); + } + v1->quantity = v1->id - 0xbc; + v1->id = 0xbb; + SetItemAcquired(v1); + } + ov11_02324D8C->field_0x0 = 0x1a; + if (ov11_02324D8C->field_0x24c >= 4) { + ov11_02324D8C->field_0x0 = 0x1b; + } else { + sub_02041484(); + ov11_02324D8C->field_0x0 = 0x1a; + } + } else { + sub_020407C0(); + ov11_02308FEC(&ov11_02324D8C->field_0x238); + ov11_02324D8C->field_0x0 = 0x21; + } + CloseParentMenu(ov11_02324D8C->field_0x7); + ov11_02324D8C->field_0x7 = -2; + ShowDialogueBox(ov11_02324D8C->field_0x8); + ov11_02308F14(); + break; + } + case 39: { + { + s16 v1 = ov11_02324D8C->field_0x254; + ov11_02324D8C->field_0xb = sub_020417A8(ov11_02324D8C->field_0x256, + v1 < 0 ? 1 : 4, + v1 < 0 ? 0 : v1, 1); + } + ov11_02324D8C->field_0x0 = 0x28; + break; + } + case 40: { + if (IsScrollBoxActive(ov11_02324D8C->field_0xb)) { + break; + } + CloseScrollBox(ov11_02324D8C->field_0xb); + sub_02041A00(); + ov11_02324D8C->field_0xb = -2; + ov11_02324D8C->field_0x0 = 0x21; + break; + } + case 26: { + { + u16 v1 = GetItemMoveId16(ov11_02324D8C->field_0x24e); + sub_02017C74(0x131b, 0x100); + sub_02041614(v1); + { + struct unk_02308F4C *v2 = &ov11_02324D8C->field_0x238; + if (v2->field_0x0 == 0) { + sub_0203FD80(v2->field_0x4); + } else if (v2->field_0x0 == 1) { + sub_0203FDEC(v2->field_0x4); + } + } + sub_020407C0(); + ov11_02324D8C->field_0xb4.id_vals[0] = v1; + } + ov11_02324D8C->field_0xb4.strings[0] = ov11_02308DD8(&ov11_02324D8C->field_0x238); + ov11_02308EDC(); + ShowStringIdInDialogueBox(ov11_02324D8C->field_0x8, 0x18, 0xf23 + OV11_02307334_OFFSET_3, &ov11_02324D8C->field_0xb4); + ov11_02308FD0(&ov11_02324D8C->field_0x238); + ov11_02324D8C->field_0x0 = 0x29; + break; + } + case 27: { + sub_020407C0(); + ov11_02324D8C->field_0x0 = 0x1c; + ov11_02324D8C->field_0x32c = sub_020037A4() + 10; + break; + } + case 28: { + if (sub_020037A4() > ov11_02324D8C->field_0x32c) { + ov11_02324D8C->field_0xb4.strings[0] = ov11_02308DD8(&ov11_02324D8C->field_0x238); + ov11_02308EDC(); + ShowStringIdInDialogueBox(ov11_02324D8C->field_0x8, 0x18, 0xf24 + OV11_02307334_OFFSET_3, &ov11_02324D8C->field_0xb4); + ov11_02324D8C->field_0x0 = 0x29; + } + break; + } + case 29: { + ov11_02308EDC(); + ShowStringIdInDialogueBox(ov11_02324D8C->field_0x8, 0x18, 0xf28 + OV11_02307334_OFFSET_3, 0); + ov11_02324D8C->field_0x0 = 0x1e; + break; + } + case 30: { + if (IsDialogueBoxActive(ov11_02324D8C->field_0x8)) { + break; + } + ShowDialogueBox(ov11_02324D8C->field_0x8); + ov11_02308F14(); + ov11_02324D8C->field_0x0 = 0x21; + break; + } + case 41: { + if (IsDialogueBoxActive(ov11_02324D8C->field_0x8)) { + break; + } + ShowDialogueBox(ov11_02324D8C->field_0x8); + ov11_02308F14(); + ov11_02324D8C->field_0x0 = 0; + break; + } + case 4: { + if (IsParentMenuActive(ov11_02324D8C->field_0x7)) { + break; + } + { + s32 v1 = GetSimpleMenuResult__0202AEA4(ov11_02324D8C->field_0x7); + ov11_02324D8C->field_0x0 = 2; + if (v1 != 8 && v1 == 4) { + ov11_02324D8C->field_0xb4.id_vals[0] = ov11_02324D8C->field_0x24e; + ov11_02324D8C->field_0xb4.number_vals[0] = 0; + RemoveItemNoHoleCheck(ov11_02324D8C->field_0x10); + ov11_022DC504(); + ov11_02324D8C->field_0x18 = -1; + ov10_022BCC60(ov11_02324D8C->field_0x4, GetNbItemsInBag()); + SetInventoryMenuState6(ov11_02324D8C->field_0x4); + ov11_02324D8C->field_0x0 = 5; + } + } + CloseParentMenu(ov11_02324D8C->field_0x7); + ov11_02324D8C->field_0x7 = -2; + CloseParentMenu(ov11_02324D8C->field_0x6); + ov11_02324D8C->field_0x6 = -2; + break; + } + case 5: { + if (IsInventoryMenuActive(ov11_02324D8C->field_0x4)) { + break; + } + CloseTextBox2(ov11_02324D8C->field_0x5); + ov11_02324D8C->field_0x5 = -2; + CloseInventoryMenu(ov11_02324D8C->field_0x4); + ov11_02324D8C->field_0x4 = -2; + ov11_02308EDC(); + ShowStringIdInDialogueBox(ov11_02324D8C->field_0x8, 0x18, 0x2cb + OV11_02307334_OFFSET, &ov11_02324D8C->field_0xb4); + ov11_02324D8C->field_0x0 = 6; + break; + } + case 6: { + if (IsDialogueBoxActive(ov11_02324D8C->field_0x8)) { + break; + } + ShowDialogueBox(ov11_02324D8C->field_0x8); + if (!IsBagNotEmpty()) { + ov11_02324D8C->field_0x0 = 0xc; + break; + } + ov11_02308F14(); + ov11_02324D8C->field_0x0 = 0; + break; + } + case 7: { + ov11_02324D8C->field_0x324 = sub_02044688(ov11_02324D8C->field_0x10, 2, 0, 0, 0, 0); + ov11_02324D8C->field_0x0 = 8; + break; + } + case 8: { + if (sub_02044800(ov11_02324D8C->field_0x324) != 1) { + break; + } + sub_020448EC(&ov11_02324D8C->field_0x324); + ov11_02324D8C->field_0x0 = 0; + break; + } + case 9: { + sub_020582E0(GetItemAtIdx(ov11_02324D8C->field_0x10)->held_by); + ov11_02324D8C->field_0x0 = 0; + break; + } + case 10: { + struct item *v1 = GetItemAtIdx(ov11_02324D8C->field_0x10); + bool8 v2 = (v1->flags & 1) != 0; + + if (v2) { + ov11_02324D8C->field_0x24e = v1->id; + } else { + ov11_02324D8C->field_0x24e = 0; + } + InitPreprocessorArgs(&args); + args.id_vals[0] = ov11_02324D8C->field_0x24e; + args.id_vals[2] = v1->quantity + 0xbc; +#ifdef EUROPE + ov11_02324D8C->field_0x9 = CreateScrollBoxSingle(&ov11_02322C78, 0x1013, 0, 0x8e4, &args, (u16)(ov11_02324D8C->field_0x24e + 0x29d3), &args); +#elif defined(JAPAN) + ov11_02324D8C->field_0x9 = CreateScrollBoxSingle(&ov11_02322C78, 0x1013, 0, 0x1d3c, &args, (u16)(ov11_02324D8C->field_0x24e + 0x41ce), &args); +#else + ov11_02324D8C->field_0x9 = CreateScrollBoxSingle(&ov11_02322C78, 0x1013, 0, 0x8e4, &args, (u16)(ov11_02324D8C->field_0x24e + 0x29d1), &args); +#endif + ov11_02324D8C->field_0x0 = 0xb; + break; + } + case 11: { + if (IsScrollBoxActive(ov11_02324D8C->field_0x9)) { + break; + } + CloseScrollBox(ov11_02324D8C->field_0x9); + ov11_02324D8C->field_0x9 = -2; + ov11_02324D8C->field_0x0 = 0; + break; + } + case 12: { + if (ov11_02324D8C->field_0x5 != -2) { + CloseTextBox2(ov11_02324D8C->field_0x5); + ov11_02324D8C->field_0x5 = -2; + } + if (ov11_02324D8C->field_0x4 != -2) { + CloseInventoryMenu(ov11_02324D8C->field_0x4); + ov11_02324D8C->field_0x4 = -2; + } + if (ov11_02324D8C->field_0x8 == -2) { + ov11_02308EDC(); + } + ShowStringIdInDialogueBox(ov11_02324D8C->field_0x8, 0x18, 0x2b4 + OV11_02307334_OFFSET, 0); + ov11_02324D8C->field_0x0 = 0xd; + break; + } + case 13: { + if (IsDialogueBoxActive(ov11_02324D8C->field_0x8)) { + break; + } + ShowDialogueBox(ov11_02324D8C->field_0x8); + ov11_02308F14(); + ov11_02324D8C->field_0x0 = 0x10; + break; + } + case 14: { + ov11_02324D8C->field_0x0 = 0xf; + break; + } + case 15: { + if (!IsInventoryMenuActive(ov11_02324D8C->field_0x4)) { + CloseTextBox2(ov11_02324D8C->field_0x5); + ov11_02324D8C->field_0x5 = -2; + CloseInventoryMenu(ov11_02324D8C->field_0x4); + ov11_02324D8C->field_0x4 = -2; + ov11_02324D8C->field_0x0 = 0x10; + } + } + case 16: + return 1; + } + + return 0; +}