mirror of
https://github.com/pret/pmd-sky.git
synced 2026-08-28 05:38:04 -05:00
Decomp four allocation, keyboard and area-name accessors
Decompile from asm: AllocUnkBagStruct 0x02042B98 FreeUnkBagStruct 0x02042BBC SetAreaNameBoxState3 0x0202FD3C GetKeyboardStringResult 0x0203755C AllocUnkBagStruct and FreeUnkBagStruct manage the pointer at offset 8 of UNK_STORAGE_STRUCT_0XC, the field the selection accessors in the previous commit read. The allocation is 0xC8 bytes, which is 0x32 words -- the same count ClearBagSelectedItemTable zeroes and the same inventory size the bag walkers use. MemAlloc is still asm and has no owning header, so its prototype is provisional and declared beside the caller, matching the signature overlay_31_02382820.c already uses. That is now a second declaration of it; both should collapse into one header when MemAlloc lands. SetAreaNameBoxState3 writes a word at 0xA0 of the window contents, so the filler before 0x198 in struct unk_0202AAA8 is split to expose it. Nothing after it moves. GetKeyboardStringResult reads through the unnamed pointer _020AFDF0, which keeps its placeholder name, into a word at 0xF8 of whatever it points at. GetWindow was looked at and deliberately left in asm. It indexes WINDOW_LIST with a stride of 0xE0, so its argument is an index, but overlay_31_02382820.c declares it as taking a struct Window * and passes one. Landing it correctly means retyping that caller, and struct Window there describes only its first 7 bytes, so the two disagree about more than this function. No comments are added to any pmd-sky file. Authored by Claude (Opus 5) under human direction. Confirmed by a matching build: build/pmdsky.us/pmdsky.us.nds: OK. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -1,38 +1,21 @@
|
||||
#pragma once
|
||||
.public ADVANCED_TEXT_BOX_DEFAULT_WINDOW_PARAMS
|
||||
.public ALERT_BOX_DEFAULT_WINDOW_PARAMS
|
||||
.public AREA_NAME_BOX_DEFAULT_WINDOW_PARAMS
|
||||
.public AnalyzeText
|
||||
.public AppendStandardStringToMission
|
||||
.public CONTROLS_CHART_DEFAULT_WINDOW_PARAMS
|
||||
.public DeleteWindow
|
||||
.public DrawTextInWindow
|
||||
.public GetPressedButtons
|
||||
.public GetWindowContents
|
||||
.public GetWindowRectangle
|
||||
.public InitPortraitParams
|
||||
.public InitWindowInput
|
||||
.public IsValidPortrait
|
||||
.public LoadPortrait
|
||||
.public MemAlloc
|
||||
.public MemFree
|
||||
.public MemZero
|
||||
.public MemcpySimple
|
||||
.public NewWindowScreenCheck
|
||||
.public PORTRAIT_BOX_DEFAULT_WINDOW_PARAMS
|
||||
.public PreprocessString
|
||||
.public PreprocessStringFromId
|
||||
.public TEXT_BOX_DEFAULT_WINDOW_PARAMS
|
||||
.public UpdateAdvancedTextBox
|
||||
.public UpdateWindow
|
||||
.public UpdateAreaNameBox
|
||||
.public _0209AF6C
|
||||
.public _s32_div_f
|
||||
.public sub_01FF9128
|
||||
.public sub_01FF929C
|
||||
.public sub_02020B60
|
||||
.public sub_02020BC4
|
||||
.public sub_02025D50
|
||||
.public sub_02025E84
|
||||
.public sub_0202613C
|
||||
.public sub_02026184
|
||||
.public sub_02026194
|
||||
|
||||
32
asm/include/main_0202FD50.inc
Normal file
32
asm/include/main_0202FD50.inc
Normal file
@@ -0,0 +1,32 @@
|
||||
#pragma once
|
||||
.public ADVANCED_TEXT_BOX_DEFAULT_WINDOW_PARAMS
|
||||
.public ALERT_BOX_DEFAULT_WINDOW_PARAMS
|
||||
.public AnalyzeText
|
||||
.public AppendStandardStringToMission
|
||||
.public CONTROLS_CHART_DEFAULT_WINDOW_PARAMS
|
||||
.public DeleteWindow
|
||||
.public DrawTextInWindow
|
||||
.public GetWindowContents
|
||||
.public GetWindowRectangle
|
||||
.public InitWindowInput
|
||||
.public MemAlloc
|
||||
.public MemFree
|
||||
.public MemZero
|
||||
.public NewWindowScreenCheck
|
||||
.public PreprocessString
|
||||
.public UpdateAdvancedTextBox
|
||||
.public UpdateWindow
|
||||
.public _s32_div_f
|
||||
.public sub_01FF9128
|
||||
.public sub_01FF929C
|
||||
.public sub_02020B60
|
||||
.public sub_02020BC4
|
||||
.public sub_02025D50
|
||||
.public sub_02025E84
|
||||
.public sub_0202613C
|
||||
.public sub_02026194
|
||||
.public sub_020261D4
|
||||
.public sub_02027B1C
|
||||
.public sub_0202810C
|
||||
.public sub_0202812C
|
||||
.public sub_0202836C
|
||||
@@ -1,4 +1,65 @@
|
||||
#pragma once
|
||||
.public CheckDebugMenuField0x1A4
|
||||
.public CheckOptionsMenuField0x1A4
|
||||
.public CheckParentMenuField0x1A0
|
||||
.public CloseDebugMenu
|
||||
.public CloseDialogueBox
|
||||
.public CloseOptionsMenu
|
||||
.public CloseParentMenu
|
||||
.public ClosePortraitBox
|
||||
.public CloseSimpleMenu
|
||||
.public CloseTextBox
|
||||
.public CopyFrameTypeOption
|
||||
.public CopyOrInitPreprocessorArgs
|
||||
.public CreateDebugMenu
|
||||
.public CreateDialogueBox
|
||||
.public CreateOptionsMenu
|
||||
.public CreateParentMenuFromStringIds
|
||||
.public CreatePortraitBox
|
||||
.public CreateSimpleMenu
|
||||
.public CreateSimpleMenuFromStringIds
|
||||
.public CreateTextBox
|
||||
.public Debug_GetDebugFlag
|
||||
.public Debug_GetLogFlag
|
||||
.public Debug_SetDebugFlag
|
||||
.public Debug_SetLogFlag
|
||||
.public FreeActiveMenu
|
||||
.public GetHeldButtons
|
||||
.public GetOptions
|
||||
.public GetOptionsMenuResult
|
||||
.public GetOptionsMenuStates
|
||||
.public GetPressedButtons
|
||||
.public GetSimpleMenuResult__0202AEA4
|
||||
.public GetSimpleMenuResult__0202B870
|
||||
.public GetWindow
|
||||
.public HidePortraitBox
|
||||
.public InitMenu
|
||||
.public InitPortraitParams
|
||||
.public IsDebugMenuActive
|
||||
.public IsDialogueBoxActive
|
||||
.public IsOptionsMenuActive
|
||||
.public IsParentMenuActive
|
||||
.public IsSimpleMenuActive
|
||||
.public IsValidPortrait
|
||||
.public LoadOverlay
|
||||
.public MENU_CONTROL_PTR
|
||||
.public MemAlloc
|
||||
.public MemFree
|
||||
.public MemZero
|
||||
.public MemcpySimple
|
||||
.public NULL_OVERLAY_LOAD_ENTRY
|
||||
.public OverlayIsLoaded
|
||||
.public OverlayLoadEntriesEqual
|
||||
.public PlaySeVolumeWrapper
|
||||
.public SetFrameTypeOption
|
||||
.public SetNotifyNote
|
||||
.public SetOptions
|
||||
.public SetSimpleMenuField0x1AC
|
||||
.public ShowDialogueBox
|
||||
.public ShowPortraitInPortraitBox
|
||||
.public ShowStringIdInDialogueBox
|
||||
.public ShowStringInDialogueBox
|
||||
.public StrcpySimple
|
||||
.public _0209B09C
|
||||
.public _0209B0EC
|
||||
.public _0209B0FC
|
||||
@@ -15,195 +76,30 @@
|
||||
.public _0209B244
|
||||
.public _0209B254
|
||||
.public _0209B264
|
||||
.public _0209B288
|
||||
.public _0209B28C
|
||||
.public _0209B298
|
||||
.public _0209B2B8
|
||||
.public _0209B2C4
|
||||
.public _0209B2D0
|
||||
.public _0209B2DC
|
||||
.public _0209B2E0
|
||||
.public _0209B2E1
|
||||
.public _0209B2E2
|
||||
.public _0209B2E3
|
||||
.public _0209B2EC
|
||||
.public _0209B2FC
|
||||
.public _0209B30C
|
||||
.public _0209B31C
|
||||
.public _0209B32C
|
||||
.public _0209B32E
|
||||
.public _0209B3B4
|
||||
.public _0209B3B6
|
||||
.public _0209B48C
|
||||
.public _0209B4A4
|
||||
.public _0209B4AC
|
||||
.public _0209B4B8
|
||||
.public _0209B4C0
|
||||
.public _0209B4C4
|
||||
.public _0209B4D4
|
||||
.public _0209B4E4
|
||||
.public _0209B4FC
|
||||
.public _0209B50C
|
||||
.public _0209C29C_JP
|
||||
.public _0209C29D_JP
|
||||
.public _0209C29E_JP
|
||||
.public _0209C5C0
|
||||
.public _0209C5D0
|
||||
.public _0209C5E0
|
||||
.public _0209C604
|
||||
.public _0209C618
|
||||
.public _0209C628
|
||||
.public _0209C638
|
||||
.public _0209C648
|
||||
.public _0209C658
|
||||
.public _0209C668
|
||||
.public _0209C678
|
||||
.public _0209C688
|
||||
.public _0209C6B8
|
||||
.public _0209C70C
|
||||
.public _0209C764
|
||||
.public _0209C798
|
||||
.public _0209C7B8
|
||||
.public _020AFDBC
|
||||
.public _020AFDD0
|
||||
.public _020AFDD8
|
||||
.public _020AFDE0
|
||||
.public _020AFDE8
|
||||
.public _020AFDF0
|
||||
.public _020AFE40
|
||||
.public _020AFE58
|
||||
.public _020AFE5C
|
||||
.public _020B12A0_JP
|
||||
.public _022AADF8
|
||||
.public _s32_div_f
|
||||
.public AppendStandardStringToMission
|
||||
.public CheckDebugMenuField0x1A4
|
||||
.public CheckOptionsMenuField0x1A4
|
||||
.public CheckParentMenuField0x1A0
|
||||
.public CloseAdvancedMenu
|
||||
.public CloseAdvancedTextBox
|
||||
.public CloseDebugMenu
|
||||
.public CloseDialogueBox
|
||||
.public CloseOptionsMenu
|
||||
.public CloseParentMenu
|
||||
.public ClosePortraitBox
|
||||
.public CloseSimpleMenu
|
||||
.public CloseTeamSelectionMenu
|
||||
.public CloseTextBox
|
||||
.public CopyFrameTypeOption
|
||||
.public CopyOrInitPreprocessorArgs
|
||||
.public CreateAdvancedMenu
|
||||
.public CreateAdvancedTextBox
|
||||
.public CreateDebugMenu
|
||||
.public CreateDialogueBox
|
||||
.public CreateOptionsMenu
|
||||
.public CreateParentMenuFromStringIds
|
||||
.public CreatePortraitBox
|
||||
.public CreateSimpleMenu
|
||||
.public CreateSimpleMenuFromStringIds
|
||||
.public CreateTeamSelectionMenu
|
||||
.public CreateTextBox
|
||||
.public Debug_GetDebugFlag
|
||||
.public Debug_GetLogFlag
|
||||
.public Debug_Print0
|
||||
.public Debug_SetDebugFlag
|
||||
.public Debug_SetLogFlag
|
||||
.public DrawTextInWindow
|
||||
.public FemaleToMaleForm
|
||||
.public FreeActiveMenu
|
||||
.public GetActiveRosterIndex
|
||||
.public GetActiveTeamMember
|
||||
.public GetAdvancedMenuResult
|
||||
.public GetAppointedLeaderMemberIdx
|
||||
.public GetDexNumber
|
||||
.public GetDigitInputResult
|
||||
.public GetEvolutionPossibilities
|
||||
.public GetHeldButtons
|
||||
.public GetHero
|
||||
.public GetHeroMemberIdx
|
||||
.public GetItemMoveId16
|
||||
.public GetKeyM2NSwitch
|
||||
.public GetMainCharacter1MemberIdx
|
||||
.public GetMainCharacter2MemberIdx
|
||||
.public GetMainCharacter3MemberIdx
|
||||
.public GetNameString
|
||||
.public GetOptions
|
||||
.public GetOptionsMenuResult
|
||||
.public GetOptionsMenuStates
|
||||
.public GetPartner
|
||||
.public GetPartnerMemberIdx
|
||||
.public GetPressedButtons
|
||||
.public GetSimpleMenuResult__0202AEA4
|
||||
.public GetSimpleMenuResult__0202B870
|
||||
.public GetStringFromFileVeneer
|
||||
.public GetTeamMember
|
||||
.public GetType
|
||||
.public GetWindow
|
||||
.public HidePortraitBox
|
||||
.public InitMenu
|
||||
.public InitPortraitParams
|
||||
.public IsAdvancedMenuActive2
|
||||
.public IsAdvancedTextBoxActive
|
||||
.public IsDebugMenuActive
|
||||
.public IsDialogueBoxActive
|
||||
.public IsMainCharacter
|
||||
.public IsMovesetValidInTimeDarkness
|
||||
.public IsOptionsMenuActive
|
||||
.public IsParentMenuActive
|
||||
.public IsShaymin
|
||||
.public IsSimpleMenuActive
|
||||
.public IsTeamSelectionMenuActive
|
||||
.public IsTeamSelectionMenuState3
|
||||
.public IsTextboxState3
|
||||
.public IsValidPortrait
|
||||
.public IsValidTeamMember
|
||||
.public KEYBOARD_STRING_IDS
|
||||
.public LoadOverlay
|
||||
.public MemAlloc
|
||||
.public MemcpySimple
|
||||
.public MemFree
|
||||
.public MemZero
|
||||
.public MENU_CONTROL_PTR
|
||||
.public NULL_OVERLAY_LOAD_ENTRY
|
||||
.public ov11_0230D71C
|
||||
.public OverlayIsLoaded
|
||||
.public OverlayLoadEntriesEqual
|
||||
.public PlaySeVolumeWrapper
|
||||
.public PreprocessStringFromId
|
||||
.public ReturnScriptMenuResultZero
|
||||
.public SaveScriptVariableValueBytes
|
||||
.public SetAdvancedTextBoxField0x1C2
|
||||
.public SetAdvancedTextBoxState5
|
||||
.public SetFrameTypeOption
|
||||
.public SetMainTeamName
|
||||
.public SetNotifyNote
|
||||
.public SetOptions
|
||||
.public SetSimpleMenuField0x1AC
|
||||
.public ShowDialogueBox
|
||||
.public ShowPortraitInPortraitBox
|
||||
.public ShowStringIdInDialogueBox
|
||||
.public ShowStringInDialogueBox
|
||||
.public sprintf
|
||||
.public strcpy
|
||||
.public StrcpySimple
|
||||
.public StrncpySimple
|
||||
.public StrncpySimpleNoPadSafe
|
||||
.public sub_020063F4
|
||||
.public sub_0202065C
|
||||
.public sub_0202372C
|
||||
.public sub_02024B94
|
||||
.public sub_020251F0
|
||||
.public sub_02025C7C
|
||||
.public sub_02025D50
|
||||
.public sub_020264F8
|
||||
.public sub_020265A8
|
||||
.public sub_02027180
|
||||
.public sub_02027B1C
|
||||
.public sub_0202810C
|
||||
.public sub_0202812C
|
||||
.public sub_020282F4
|
||||
.public sub_02028354
|
||||
.public sub_0202836C
|
||||
.public sub_020288FC
|
||||
.public sub_0202A2A4
|
||||
.public sub_0202D59C
|
||||
@@ -214,34 +110,18 @@
|
||||
.public sub_0202F334
|
||||
.public sub_0202F3F8
|
||||
.public sub_0202F954
|
||||
.public sub_020309B8
|
||||
.public sub_0203111C
|
||||
.public sub_0203115C
|
||||
.public sub_0203117C
|
||||
.public sub_020311D4
|
||||
.public sub_020311E8
|
||||
.public sub_02031220
|
||||
.public sub_02031888
|
||||
.public sub_0203189C
|
||||
.public sub_020318D0
|
||||
.public sub_02031914
|
||||
.public sub_02034840
|
||||
.public sub_0203C784
|
||||
.public sub_0203C9A0
|
||||
.public sub_02037C78
|
||||
.public sub_02037CA8
|
||||
.public sub_02037CD8
|
||||
.public sub_02037F58
|
||||
.public sub_020383FC
|
||||
.public sub_020384B0
|
||||
.public sub_02038904
|
||||
.public sub_02038A54
|
||||
.public sub_02038ADC
|
||||
.public sub_02038B80
|
||||
.public sub_0203935C
|
||||
.public sub_02048078
|
||||
.public sub_0204964C
|
||||
.public sub_0204DA1C
|
||||
.public sub_0204E210
|
||||
.public sub_0204E3C8
|
||||
.public sub_02052FF8
|
||||
.public sub_02053D1C
|
||||
.public sub_02054F18
|
||||
.public sub_02056410
|
||||
.public sub_02056460
|
||||
.public sub_020564B0
|
||||
.public sub_02056F60
|
||||
.public sub_020584F8
|
||||
.public sub_02059B08
|
||||
.public TEAM_MEMBER_TABLE_PTR
|
||||
.public UpdateWindow
|
||||
.public vsprintf
|
||||
|
||||
173
asm/include/main_02037570.inc
Normal file
173
asm/include/main_02037570.inc
Normal file
@@ -0,0 +1,173 @@
|
||||
#pragma once
|
||||
.public AppendStandardStringToMission
|
||||
.public CloseAdvancedMenu
|
||||
.public CloseAdvancedTextBox
|
||||
.public CloseDialogueBox
|
||||
.public CloseSimpleMenu
|
||||
.public CloseTeamSelectionMenu
|
||||
.public CloseTextBox
|
||||
.public CreateAdvancedMenu
|
||||
.public CreateAdvancedTextBox
|
||||
.public CreateDialogueBox
|
||||
.public CreateSimpleMenuFromStringIds
|
||||
.public CreateTeamSelectionMenu
|
||||
.public CreateTextBox
|
||||
.public Debug_Print0
|
||||
.public DrawTextInWindow
|
||||
.public FemaleToMaleForm
|
||||
.public GetActiveRosterIndex
|
||||
.public GetActiveTeamMember
|
||||
.public GetAdvancedMenuResult
|
||||
.public GetAppointedLeaderMemberIdx
|
||||
.public GetDexNumber
|
||||
.public GetDigitInputResult
|
||||
.public GetEvolutionPossibilities
|
||||
.public GetHero
|
||||
.public GetHeroMemberIdx
|
||||
.public GetItemMoveId16
|
||||
.public GetKeyM2NSwitch
|
||||
.public GetKeyboardStatus
|
||||
.public GetKeyboardStringResult
|
||||
.public GetMainCharacter1MemberIdx
|
||||
.public GetMainCharacter2MemberIdx
|
||||
.public GetMainCharacter3MemberIdx
|
||||
.public GetNameString
|
||||
.public GetPartner
|
||||
.public GetPartnerMemberIdx
|
||||
.public GetPressedButtons
|
||||
.public GetSimpleMenuResult__0202B870
|
||||
.public GetStringFromFileVeneer
|
||||
.public GetTeamMember
|
||||
.public GetType
|
||||
.public GetWindow
|
||||
.public IsAdvancedMenuActive2
|
||||
.public IsAdvancedTextBoxActive
|
||||
.public IsDialogueBoxActive
|
||||
.public IsMainCharacter
|
||||
.public IsMovesetValidInTimeDarkness
|
||||
.public IsShaymin
|
||||
.public IsSimpleMenuActive
|
||||
.public IsTeamSelectionMenuActive
|
||||
.public IsTeamSelectionMenuState3
|
||||
.public IsTextboxState3
|
||||
.public IsValidTeamMember
|
||||
.public KEYBOARD_STRING_IDS
|
||||
.public MemAlloc
|
||||
.public MemFree
|
||||
.public MemZero
|
||||
.public MemcpySimple
|
||||
.public PlaySeVolumeWrapper
|
||||
.public PreprocessStringFromId
|
||||
.public ReturnScriptMenuResultZero
|
||||
.public SaveScriptVariableValueBytes
|
||||
.public SetAdvancedTextBoxField0x1C2
|
||||
.public SetAdvancedTextBoxState5
|
||||
.public SetMainTeamName
|
||||
.public ShowKeyboard
|
||||
.public ShowStringIdInDialogueBox
|
||||
.public StrcpySimple
|
||||
.public StrncpySimple
|
||||
.public StrncpySimpleNoPadSafe
|
||||
.public TEAM_MEMBER_TABLE_PTR
|
||||
.public UpdateWindow
|
||||
.public _0209B288
|
||||
.public _0209B28C
|
||||
.public _0209B2C4
|
||||
.public _0209B2D0
|
||||
.public _0209B2DC
|
||||
.public _0209B2E0
|
||||
.public _0209B2E1
|
||||
.public _0209B2E2
|
||||
.public _0209B2E3
|
||||
.public _0209B2EC
|
||||
.public _0209B2FC
|
||||
.public _0209B30C
|
||||
.public _0209B31C
|
||||
.public _0209B32C
|
||||
.public _0209B32E
|
||||
.public _0209B3B4
|
||||
.public _0209B3B6
|
||||
.public _0209B48C
|
||||
.public _0209B4A4
|
||||
.public _0209B4AC
|
||||
.public _0209B4B8
|
||||
.public _0209B4C0
|
||||
.public _0209B4C4
|
||||
.public _0209B4D4
|
||||
.public _0209B4E4
|
||||
.public _0209B4FC
|
||||
.public _0209B50C
|
||||
.public _0209C29C_JP
|
||||
.public _0209C29D_JP
|
||||
.public _0209C29E_JP
|
||||
.public _0209C5C0
|
||||
.public _0209C5D0
|
||||
.public _0209C5E0
|
||||
.public _0209C604
|
||||
.public _0209C618
|
||||
.public _0209C628
|
||||
.public _0209C638
|
||||
.public _0209C648
|
||||
.public _0209C658
|
||||
.public _0209C668
|
||||
.public _0209C678
|
||||
.public _0209C688
|
||||
.public _0209C6B8
|
||||
.public _0209C70C
|
||||
.public _0209C764
|
||||
.public _0209C798
|
||||
.public _0209C7B8
|
||||
.public _020AFDF0
|
||||
.public _020AFE40
|
||||
.public _020AFE58
|
||||
.public _020AFE5C
|
||||
.public _020B12A0_JP
|
||||
.public _022AADF8
|
||||
.public _s32_div_f
|
||||
.public ov11_0230D71C
|
||||
.public sprintf
|
||||
.public strcpy
|
||||
.public sub_020063F4
|
||||
.public sub_0202065C
|
||||
.public sub_0202372C
|
||||
.public sub_02024B94
|
||||
.public sub_020251F0
|
||||
.public sub_02025C7C
|
||||
.public sub_02025D50
|
||||
.public sub_020264F8
|
||||
.public sub_020265A8
|
||||
.public sub_02027B1C
|
||||
.public sub_0202810C
|
||||
.public sub_0202812C
|
||||
.public sub_02028354
|
||||
.public sub_0202836C
|
||||
.public sub_0202A2A4
|
||||
.public sub_0202F2C4
|
||||
.public sub_0202F954
|
||||
.public sub_020309B8
|
||||
.public sub_0203111C
|
||||
.public sub_0203115C
|
||||
.public sub_0203117C
|
||||
.public sub_020311D4
|
||||
.public sub_020311E8
|
||||
.public sub_02031220
|
||||
.public sub_02031888
|
||||
.public sub_0203189C
|
||||
.public sub_020318D0
|
||||
.public sub_02031914
|
||||
.public sub_02037468
|
||||
.public sub_0203C784
|
||||
.public sub_0203C9A0
|
||||
.public sub_0204DA1C
|
||||
.public sub_0204E210
|
||||
.public sub_0204E3C8
|
||||
.public sub_02052FF8
|
||||
.public sub_02053D1C
|
||||
.public sub_02054F18
|
||||
.public sub_02056410
|
||||
.public sub_02056460
|
||||
.public sub_020564B0
|
||||
.public sub_02056F60
|
||||
.public sub_020584F8
|
||||
.public sub_02059B08
|
||||
.public vsprintf
|
||||
@@ -1,6 +1,5 @@
|
||||
#pragma once
|
||||
.public BAG_ITEMS_PTR_MIRROR
|
||||
.public ClearBagSelectedItemTable
|
||||
.public CloseCollectionMenu
|
||||
.public CloseTextBox
|
||||
.public ConvertStorageItemAtIdxToItem
|
||||
@@ -910,788 +910,3 @@ _0202FD30: .word 0x0000C402
|
||||
_0202FD34: .word UpdateAreaNameBox
|
||||
_0202FD38: .word AREA_NAME_BOX_DEFAULT_WINDOW_PARAMS
|
||||
arm_func_end CreateAreaNameBox
|
||||
|
||||
arm_func_start SetAreaNameBoxState3
|
||||
SetAreaNameBoxState3: ; 0x0202FD3C
|
||||
stmdb sp!, {r3, lr}
|
||||
bl GetWindowContents
|
||||
mov r1, #3
|
||||
str r1, [r0, #0xa0]
|
||||
ldmia sp!, {r3, pc}
|
||||
arm_func_end SetAreaNameBoxState3
|
||||
|
||||
arm_func_start CloseAreaNameBox
|
||||
CloseAreaNameBox: ; 0x0202FD50
|
||||
stmdb sp!, {r4, lr}
|
||||
mov r4, r0
|
||||
bl GetWindowContents
|
||||
bl MemFree
|
||||
mov r0, r4
|
||||
bl DeleteWindow
|
||||
ldmia sp!, {r4, pc}
|
||||
arm_func_end CloseAreaNameBox
|
||||
|
||||
arm_func_start IsAreaNameBoxActive
|
||||
IsAreaNameBoxActive: ; 0x0202FD6C
|
||||
stmdb sp!, {r3, lr}
|
||||
bl GetWindowContents
|
||||
ldr r0, [r0, #0xa0]
|
||||
cmp r0, #2
|
||||
cmpne r0, #4
|
||||
movne r0, #1
|
||||
moveq r0, #0
|
||||
ldmia sp!, {r3, pc}
|
||||
arm_func_end IsAreaNameBoxActive
|
||||
|
||||
arm_func_start UpdateAreaNameBox
|
||||
UpdateAreaNameBox: ; 0x0202FD8C
|
||||
stmdb sp!, {r4, r5, r6, lr}
|
||||
mov r5, r0
|
||||
ldr r4, [r5, #0xc]
|
||||
ldr r0, [r4, #0xa0]
|
||||
cmp r0, #3
|
||||
addls pc, pc, r0, lsl #2
|
||||
ldmia sp!, {r4, r5, r6, pc}
|
||||
_0202FDA8: ; jump table
|
||||
b _0202FDB8 ; case 0
|
||||
b _0202FDD0 ; case 1
|
||||
ldmia sp!, {r4, r5, r6, pc} ; case 2
|
||||
b _0202FE0C ; case 3
|
||||
_0202FDB8:
|
||||
ldrsb r0, [r5, #0x10]
|
||||
bl sub_0202810C
|
||||
cmp r0, #0
|
||||
ldmeqia sp!, {r4, r5, r6, pc}
|
||||
mov r0, #1
|
||||
str r0, [r4, #0xa0]
|
||||
_0202FDD0:
|
||||
ldrsb r0, [r5, #0x10]
|
||||
ldr r6, [r5, #0xc]
|
||||
bl sub_02027B1C
|
||||
ldrsb r0, [r5, #0x10]
|
||||
ldr r1, [r6, #0x1b0]
|
||||
ldr r2, [r6, #0x1ac]
|
||||
add r3, r6, #0xac
|
||||
bl DrawTextInWindow
|
||||
ldrsb r0, [r5, #0x10]
|
||||
bl UpdateWindow
|
||||
mov r0, #2
|
||||
str r0, [r4, #0xa0]
|
||||
sub r0, r0, #3
|
||||
str r0, [r5, #0xb8]
|
||||
ldmia sp!, {r4, r5, r6, pc}
|
||||
_0202FE0C:
|
||||
ldrsb r0, [r5, #0x10]
|
||||
bl sub_0202812C
|
||||
cmp r0, #0
|
||||
mvnne r0, #4
|
||||
strne r0, [r5, #0xb8]
|
||||
movne r0, #4
|
||||
strne r0, [r4, #0xa0]
|
||||
ldmia sp!, {r4, r5, r6, pc}
|
||||
arm_func_end UpdateAreaNameBox
|
||||
|
||||
arm_func_start CreateControlsChart
|
||||
CreateControlsChart: ; 0x0202FE2C
|
||||
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
||||
sub sp, sp, #0x10
|
||||
mov r7, r0
|
||||
mov r5, r1
|
||||
mov r0, #0xa8
|
||||
mov r1, #8
|
||||
mov r4, r2
|
||||
mov r6, r3
|
||||
bl MemAlloc
|
||||
mov ip, r0
|
||||
cmp r7, #0
|
||||
ldreq r0, _0202FECC ; =CONTROLS_CHART_DEFAULT_WINDOW_PARAMS
|
||||
strh r6, [ip, #0xa4]
|
||||
add lr, sp, #0
|
||||
ldmeqia r0, {r0, r1, r2, r3}
|
||||
stmeqia lr, {r0, r1, r2, r3}
|
||||
ldmneia r7, {r0, r1, r2, r3}
|
||||
stmneia lr, {r0, r1, r2, r3}
|
||||
ldrne r0, _0202FED0 ; =UpdateControlsChart
|
||||
str ip, [sp, #0xc]
|
||||
strne r0, [sp]
|
||||
ldr r0, _0202FED0 ; =UpdateControlsChart
|
||||
cmp r4, #0
|
||||
stmia ip, {r0, r5}
|
||||
beq _0202FEB0
|
||||
add lr, ip, #8
|
||||
mov r5, #9
|
||||
_0202FE98:
|
||||
ldmia r4!, {r0, r1, r2, r3}
|
||||
stmia lr!, {r0, r1, r2, r3}
|
||||
subs r5, r5, #1
|
||||
bne _0202FE98
|
||||
ldmia r4, {r0, r1}
|
||||
stmia lr, {r0, r1}
|
||||
_0202FEB0:
|
||||
mov r2, #0
|
||||
add r0, sp, #0
|
||||
mov r1, #3
|
||||
str r2, [ip, #0xa0]
|
||||
bl NewWindowScreenCheck
|
||||
add sp, sp, #0x10
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_0202FECC: .word CONTROLS_CHART_DEFAULT_WINDOW_PARAMS
|
||||
_0202FED0: .word UpdateControlsChart
|
||||
arm_func_end CreateControlsChart
|
||||
|
||||
arm_func_start CloseControlsChart
|
||||
CloseControlsChart: ; 0x0202FED4
|
||||
stmdb sp!, {r4, lr}
|
||||
mov r4, r0
|
||||
bl GetWindowContents
|
||||
bl MemFree
|
||||
mov r0, r4
|
||||
bl DeleteWindow
|
||||
ldmia sp!, {r4, pc}
|
||||
arm_func_end CloseControlsChart
|
||||
|
||||
arm_func_start IsControlsChartActive
|
||||
IsControlsChartActive: ; 0x0202FEF0
|
||||
stmdb sp!, {r3, lr}
|
||||
bl GetWindowContents
|
||||
ldr r0, [r0, #0xa0]
|
||||
cmp r0, #2
|
||||
cmpne r0, #4
|
||||
movne r0, #1
|
||||
moveq r0, #0
|
||||
ldmia sp!, {r3, pc}
|
||||
arm_func_end IsControlsChartActive
|
||||
|
||||
arm_func_start UpdateControlsChart
|
||||
UpdateControlsChart: ; 0x0202FF10
|
||||
stmdb sp!, {r4, r5, r6, lr}
|
||||
mov r5, r0
|
||||
ldr r4, [r5, #0xc]
|
||||
ldr r0, [r4, #0xa0]
|
||||
cmp r0, #3
|
||||
addls pc, pc, r0, lsl #2
|
||||
ldmia sp!, {r4, r5, r6, pc}
|
||||
_0202FF2C: ; jump table
|
||||
b _0202FF3C ; case 0
|
||||
b _0202FF54 ; case 1
|
||||
ldmia sp!, {r4, r5, r6, pc} ; case 2
|
||||
b _0202FF90 ; case 3
|
||||
_0202FF3C:
|
||||
ldrsb r0, [r5, #0x10]
|
||||
bl sub_0202810C
|
||||
cmp r0, #0
|
||||
ldmeqia sp!, {r4, r5, r6, pc}
|
||||
mov r0, #1
|
||||
str r0, [r4, #0xa0]
|
||||
_0202FF54:
|
||||
ldrsb r0, [r5, #0x10]
|
||||
ldr r6, [r5, #0xc]
|
||||
bl sub_02027B1C
|
||||
ldrsb r0, [r5, #0x10]
|
||||
ldrh r3, [r6, #0xa4]
|
||||
mov r1, #4
|
||||
mov r2, #2
|
||||
bl AppendStandardStringToMission
|
||||
ldrsb r0, [r5, #0x10]
|
||||
bl UpdateWindow
|
||||
mov r0, #2
|
||||
str r0, [r4, #0xa0]
|
||||
sub r0, r0, #3
|
||||
str r0, [r5, #0xb8]
|
||||
ldmia sp!, {r4, r5, r6, pc}
|
||||
_0202FF90:
|
||||
ldrsb r0, [r5, #0x10]
|
||||
bl sub_0202812C
|
||||
cmp r0, #0
|
||||
mvnne r0, #4
|
||||
strne r0, [r5, #0xb8]
|
||||
movne r0, #4
|
||||
strne r0, [r4, #0xa0]
|
||||
ldmia sp!, {r4, r5, r6, pc}
|
||||
arm_func_end UpdateControlsChart
|
||||
|
||||
arm_func_start CreateAlertBox
|
||||
CreateAlertBox: ; 0x0202FFB0
|
||||
stmdb sp!, {r3, r4, r5, lr}
|
||||
sub sp, sp, #0x10
|
||||
mov r5, r0
|
||||
mov r0, #0x650
|
||||
mov r1, #8
|
||||
bl MemAlloc
|
||||
mov r1, #0x650
|
||||
mov r4, r0
|
||||
bl MemZero
|
||||
cmp r5, #0
|
||||
ldreq r0, _0203003C ; =ALERT_BOX_DEFAULT_WINDOW_PARAMS
|
||||
add ip, sp, #0
|
||||
ldmeqia r0, {r0, r1, r2, r3}
|
||||
stmeqia ip, {r0, r1, r2, r3}
|
||||
ldmneia r5, {r0, r1, r2, r3}
|
||||
stmneia ip, {r0, r1, r2, r3}
|
||||
ldrne r0, _02030040 ; =UpdateAlertBox
|
||||
str r4, [sp, #0xc]
|
||||
strne r0, [sp]
|
||||
add r0, sp, #0
|
||||
mov r1, #3
|
||||
bl NewWindowScreenCheck
|
||||
strb r0, [r4]
|
||||
ldrsb r1, [r4]
|
||||
add r0, r4, #8
|
||||
bl sub_02025E84
|
||||
mov r1, #0
|
||||
str r1, [r4, #4]
|
||||
add r0, r4, #0x600
|
||||
strh r1, [r0, #0x44]
|
||||
strh r1, [r0, #0x46]
|
||||
strh r1, [r0, #0x48]
|
||||
ldrsb r0, [r4]
|
||||
add sp, sp, #0x10
|
||||
ldmia sp!, {r3, r4, r5, pc}
|
||||
.align 2, 0
|
||||
_0203003C: .word ALERT_BOX_DEFAULT_WINDOW_PARAMS
|
||||
_02030040: .word UpdateAlertBox
|
||||
arm_func_end CreateAlertBox
|
||||
|
||||
arm_func_start CloseAlertBox
|
||||
CloseAlertBox: ; 0x02030044
|
||||
stmdb sp!, {r3, r4, r5, lr}
|
||||
mov r5, r0
|
||||
bl GetWindowContents
|
||||
mov r4, r0
|
||||
ldrsb r0, [r4]
|
||||
bl sub_0202836C
|
||||
add r0, r4, #8
|
||||
bl sub_0202613C
|
||||
mov r0, r5
|
||||
bl GetWindowContents
|
||||
bl MemFree
|
||||
mov r0, r5
|
||||
bl DeleteWindow
|
||||
ldmia sp!, {r3, r4, r5, pc}
|
||||
arm_func_end CloseAlertBox
|
||||
|
||||
arm_func_start sub_0203007C
|
||||
sub_0203007C: ; 0x0203007C
|
||||
add r0, r0, #0x600
|
||||
ldrsh r1, [r0, #0x44]
|
||||
add r1, r1, #1
|
||||
strh r1, [r0, #0x44]
|
||||
ldrsh r1, [r0, #0x44]
|
||||
cmp r1, #4
|
||||
movge r1, #0
|
||||
strgeh r1, [r0, #0x44]
|
||||
bx lr
|
||||
arm_func_end sub_0203007C
|
||||
|
||||
arm_func_start sub_020300A0
|
||||
sub_020300A0: ; 0x020300A0
|
||||
add r0, r0, #0x600
|
||||
ldrsh r0, [r0, #0x44]
|
||||
add r0, r0, #1
|
||||
mov r0, r0, lsl #0x10
|
||||
mov r0, r0, asr #0x10
|
||||
cmp r0, #4
|
||||
movge r0, #0
|
||||
bx lr
|
||||
arm_func_end sub_020300A0
|
||||
|
||||
arm_func_start sub_020300C0
|
||||
sub_020300C0: ; 0x020300C0
|
||||
stmdb sp!, {r3, r4, r5, lr}
|
||||
sub sp, sp, #8
|
||||
mov r5, r0
|
||||
add ip, sp, #0
|
||||
str r1, [sp]
|
||||
mov r1, ip
|
||||
add r0, r5, #0xc
|
||||
mov r4, r3
|
||||
str r2, [sp, #4]
|
||||
bl sub_02020B60
|
||||
ldr r1, _02030108 ; =0x0000C402
|
||||
mov r2, r4
|
||||
add r0, r5, #0xc
|
||||
bl sub_02020BC4
|
||||
add r0, r5, #0xc
|
||||
bl AnalyzeText
|
||||
add sp, sp, #8
|
||||
ldmia sp!, {r3, r4, r5, pc}
|
||||
.align 2, 0
|
||||
_02030108: .word 0x0000C402
|
||||
arm_func_end sub_020300C0
|
||||
|
||||
arm_func_start AddMessageToAlertBox
|
||||
AddMessageToAlertBox: ; 0x0203010C
|
||||
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
||||
mov r7, r1
|
||||
mov r6, r2
|
||||
mov r5, r3
|
||||
bl GetWindowContents
|
||||
mov r4, r0
|
||||
ldr r0, [r4, #4]
|
||||
cmp r0, #2
|
||||
cmpne r0, #3
|
||||
beq _02030144
|
||||
add r0, r4, #8
|
||||
bl sub_0202613C
|
||||
mov r0, #1
|
||||
str r0, [r4, #4]
|
||||
_02030144:
|
||||
mov r0, r4
|
||||
bl sub_020300A0
|
||||
add r1, r4, #0x600
|
||||
ldrsh r2, [r1, #0x46]
|
||||
cmp r2, r0
|
||||
moveq r0, #0
|
||||
ldmeqia sp!, {r3, r4, r5, r6, r7, pc}
|
||||
str r5, [sp]
|
||||
ldrsh r1, [r1, #0x44]
|
||||
add r0, r4, #0x29
|
||||
add r2, r0, #0x100
|
||||
mov r0, #0x148
|
||||
smlabb r0, r1, r0, r2
|
||||
mov r2, r6
|
||||
mov r3, r7
|
||||
mov r1, #0x140
|
||||
bl PreprocessString
|
||||
add r1, r4, #0x600
|
||||
add r0, r4, #0x29
|
||||
ldrsh r1, [r1, #0x44]
|
||||
add r2, r0, #0x100
|
||||
mov r0, #0x148
|
||||
smlabb r2, r1, r0, r2
|
||||
mov r1, r7
|
||||
add r0, r4, #8
|
||||
bl sub_02026194
|
||||
add r1, r4, #0x600
|
||||
ldrsh r0, [r1, #0x44]
|
||||
mov r2, #0x148
|
||||
mov r6, #0
|
||||
smlabb r0, r0, r2, r4
|
||||
add r0, r0, #0x200
|
||||
strh r7, [r0, #0x6a]
|
||||
ldrsh r5, [r1, #0x44]
|
||||
ldrb r3, [sp, #0x18]
|
||||
mov r0, r4
|
||||
smlabb r5, r5, r2, r4
|
||||
str r6, [r5, #0x124]
|
||||
ldrsh r1, [r1, #0x44]
|
||||
smlabb r1, r1, r2, r4
|
||||
strb r3, [r1, #0x128]
|
||||
bl sub_0203007C
|
||||
mov r0, #1
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
||||
arm_func_end AddMessageToAlertBox
|
||||
|
||||
arm_func_start IsAlertBoxActive
|
||||
IsAlertBoxActive: ; 0x020301F4
|
||||
stmdb sp!, {r3, lr}
|
||||
bl GetWindowContents
|
||||
ldr r0, [r0, #4]
|
||||
cmp r0, #3
|
||||
moveq r0, #1
|
||||
movne r0, #0
|
||||
and r0, r0, #0xff
|
||||
ldmia sp!, {r3, pc}
|
||||
arm_func_end IsAlertBoxActive
|
||||
|
||||
arm_func_start sub_02030214
|
||||
sub_02030214: ; 0x02030214
|
||||
stmdb sp!, {r4, lr}
|
||||
bl GetWindowContents
|
||||
mov r4, r0
|
||||
ldr r0, [r4, #4]
|
||||
cmp r0, #5
|
||||
addls pc, pc, r0, lsl #2
|
||||
b _02030260
|
||||
_02030230: ; jump table
|
||||
b _02030260 ; case 0
|
||||
b _02030248 ; case 1
|
||||
b _02030254 ; case 2
|
||||
b _02030254 ; case 3
|
||||
ldmia sp!, {r4, pc} ; case 4
|
||||
ldmia sp!, {r4, pc} ; case 5
|
||||
_02030248:
|
||||
mov r0, #5
|
||||
str r0, [r4, #4]
|
||||
ldmia sp!, {r4, pc}
|
||||
_02030254:
|
||||
mov r0, #4
|
||||
str r0, [r4, #4]
|
||||
ldmia sp!, {r4, pc}
|
||||
_02030260:
|
||||
add r0, r4, #8
|
||||
bl sub_0202613C
|
||||
mov r0, #0
|
||||
str r0, [r4, #4]
|
||||
ldmia sp!, {r4, pc}
|
||||
arm_func_end sub_02030214
|
||||
|
||||
arm_func_start UpdateAlertBox
|
||||
UpdateAlertBox: ; 0x02030274
|
||||
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, lr}
|
||||
mov r5, r0
|
||||
ldr r4, [r5, #0xc]
|
||||
ldr r0, [r4, #4]
|
||||
cmp r0, #5
|
||||
addls pc, pc, r0, lsl #2
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
|
||||
_02030290: ; jump table
|
||||
b _020302A8 ; case 0
|
||||
b _020302C8 ; case 1
|
||||
b _020302E0 ; case 2
|
||||
b _02030438 ; case 3
|
||||
b _0203056C ; case 4
|
||||
b _02030588 ; case 5
|
||||
_020302A8:
|
||||
add r0, r4, #8
|
||||
bl sub_020261D4
|
||||
cmp r0, #0
|
||||
ldmeqia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
|
||||
mov r0, #1
|
||||
str r0, [r4, #4]
|
||||
sub r0, r0, #2
|
||||
str r0, [r5, #0xb8]
|
||||
_020302C8:
|
||||
ldrsb r0, [r5, #0x10]
|
||||
bl sub_0202810C
|
||||
cmp r0, #0
|
||||
movne r0, #2
|
||||
strne r0, [r4, #4]
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
|
||||
_020302E0:
|
||||
ldrsb r0, [r5, #0x10]
|
||||
bl GetWindowContents
|
||||
add r0, r0, #0x600
|
||||
ldrsh r1, [r0, #0x46]
|
||||
ldrsh r0, [r0, #0x44]
|
||||
cmp r1, r0
|
||||
movne r0, #1
|
||||
moveq r0, #0
|
||||
tst r0, #0xff
|
||||
ldmeqia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
|
||||
ldrsb r4, [r5, #0x10]
|
||||
mov r0, r4
|
||||
bl GetWindowContents
|
||||
mov r6, r0
|
||||
add r3, r6, #0x600
|
||||
ldr r1, [r6, #0x20]
|
||||
ldrsh r2, [r3, #0x4a]
|
||||
mov r1, r1, lsl #0x10
|
||||
ldr r5, [r6, #0x10]
|
||||
mov r8, r1, asr #0x10
|
||||
mla r1, r2, r8, r5
|
||||
ldr r2, [r6, #0xc]
|
||||
mov r7, r1, lsl #0x10
|
||||
mov r2, r2, lsl #0x10
|
||||
ldrsh r3, [r3, #0x46]
|
||||
mov r1, #0x148
|
||||
add r5, r6, #0x124
|
||||
smulbb r3, r3, r1
|
||||
ldr r1, [r5, r3]
|
||||
add r5, r5, r3
|
||||
cmp r1, #1
|
||||
mov r1, r2, asr #0x10
|
||||
mov r7, r7, asr #0x10
|
||||
bne _02030388
|
||||
mov r5, #0x17
|
||||
mov r0, r4
|
||||
add r2, r7, r8
|
||||
mov r1, #0
|
||||
mov r3, #0xe0
|
||||
str r5, [sp]
|
||||
bl sub_02025D50
|
||||
b _020303C4
|
||||
_02030388:
|
||||
mov r2, r7
|
||||
add r3, r5, #5
|
||||
bl sub_020300C0
|
||||
ldrb r0, [r5, #4]
|
||||
cmp r0, #0
|
||||
beq _020303C4
|
||||
cmp r7, r8
|
||||
blt _020303C4
|
||||
mov r5, #0x17
|
||||
mov r0, r4
|
||||
sub r2, r7, #2
|
||||
mov r1, #0
|
||||
mov r3, #0xe0
|
||||
str r5, [sp]
|
||||
bl sub_02025D50
|
||||
_020303C4:
|
||||
mov r0, r4
|
||||
bl UpdateWindow
|
||||
add r0, r6, #0x600
|
||||
ldrsh r1, [r0, #0x46]
|
||||
strh r1, [r0, #0x48]
|
||||
ldrsh r1, [r0, #0x46]
|
||||
add r1, r1, #1
|
||||
strh r1, [r0, #0x46]
|
||||
ldrsh r1, [r0, #0x46]
|
||||
cmp r1, #4
|
||||
movge r1, #0
|
||||
strgeh r1, [r0, #0x46]
|
||||
add r0, r6, #0x600
|
||||
ldrsh r1, [r0, #0x4a]
|
||||
cmp r1, #3
|
||||
movge r1, #3
|
||||
strge r1, [r6, #4]
|
||||
movge r1, #0
|
||||
strgeh r1, [r0, #0x4c]
|
||||
ldmgeia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
|
||||
ldr r1, [r6, #0xa0]
|
||||
ldr r0, [r6, #0x10]
|
||||
add r2, r1, r8
|
||||
mov r1, r8
|
||||
sub r0, r2, r0
|
||||
bl _s32_div_f
|
||||
add r1, r6, #0x600
|
||||
strh r0, [r1, #0x4a]
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
|
||||
_02030438:
|
||||
ldrsb r5, [r5, #0x10]
|
||||
mov r0, r5
|
||||
bl GetWindowContents
|
||||
mov r7, r0
|
||||
add r3, r7, #0x600
|
||||
ldr r1, [r7, #0x20]
|
||||
ldrsh r2, [r3, #0x4a]
|
||||
mov r1, r1, lsl #0x10
|
||||
ldr r6, [r7, #0x10]
|
||||
mov r8, r1, asr #0x10
|
||||
ldr r1, [r7, #0xc]
|
||||
mla r6, r2, r8, r6
|
||||
ldrsh sb, [r3, #0x4c]
|
||||
mov r2, r1, lsl #0x10
|
||||
ldrsh ip, [r3, #0x48]
|
||||
mov r1, #0x148
|
||||
add r3, sb, r6
|
||||
mov r3, r3, lsl #0x10
|
||||
smulbb r6, ip, r1
|
||||
add sb, r7, #0x124
|
||||
ldr r1, [sb, r6]
|
||||
add r6, sb, r6
|
||||
cmp r1, #1
|
||||
mov r1, r2, asr #0x10
|
||||
mov sb, r3, asr #0x10
|
||||
bne _020304C0
|
||||
mov r6, #0x17
|
||||
mov r0, r5
|
||||
add r2, sb, r8
|
||||
mov r1, #0
|
||||
mov r3, #0xe0
|
||||
str r6, [sp]
|
||||
bl sub_02025D50
|
||||
b _020304FC
|
||||
_020304C0:
|
||||
mov r2, sb
|
||||
add r3, r6, #5
|
||||
bl sub_020300C0
|
||||
ldrb r0, [r6, #4]
|
||||
cmp r0, #0
|
||||
beq _020304FC
|
||||
cmp sb, r8
|
||||
blt _020304FC
|
||||
mov r6, #0x17
|
||||
mov r0, r5
|
||||
sub r2, sb, #2
|
||||
mov r1, #0
|
||||
mov r3, #0xe0
|
||||
str r6, [sp]
|
||||
bl sub_02025D50
|
||||
_020304FC:
|
||||
add r0, r7, #0x600
|
||||
ldrsh r0, [r0, #0x4c]
|
||||
add r0, r0, r8
|
||||
cmp r0, #1
|
||||
mov r0, r5
|
||||
bne _02030528
|
||||
bl sub_01FF9128
|
||||
add r0, r7, #0x600
|
||||
ldrsh r1, [r0, #0x4c]
|
||||
sub r1, r1, #1
|
||||
b _02030538
|
||||
_02030528:
|
||||
bl sub_01FF929C
|
||||
add r0, r7, #0x600
|
||||
ldrsh r1, [r0, #0x4c]
|
||||
sub r1, r1, #2
|
||||
_02030538:
|
||||
strh r1, [r0, #0x4c]
|
||||
add r0, r7, #0x600
|
||||
ldrsh r2, [r0, #0x4c]
|
||||
rsb r1, r8, #0
|
||||
cmp r2, r1
|
||||
movle r1, #3
|
||||
strleh r1, [r0, #0x4a]
|
||||
movle r0, #1
|
||||
movgt r0, #0
|
||||
cmp r0, #0
|
||||
movne r0, #2
|
||||
strne r0, [r4, #4]
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
|
||||
_0203056C:
|
||||
ldrsb r0, [r5, #0x10]
|
||||
bl sub_0202836C
|
||||
ldrsb r0, [r5, #0x10]
|
||||
bl sub_02027B1C
|
||||
mov r0, #5
|
||||
str r0, [r4, #4]
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
|
||||
_02030588:
|
||||
ldrsb r0, [r5, #0x10]
|
||||
bl sub_0202812C
|
||||
cmp r0, #0
|
||||
ldmeqia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
|
||||
mov r1, #0
|
||||
add r0, r4, #8
|
||||
str r1, [r4, #4]
|
||||
bl sub_0202613C
|
||||
mvn r0, #5
|
||||
str r0, [r5, #0xb8]
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
|
||||
arm_func_end UpdateAlertBox
|
||||
|
||||
arm_func_start CreateAdvancedTextBox
|
||||
CreateAdvancedTextBox: ; 0x020305B4
|
||||
stmdb sp!, {r3, r4, lr}
|
||||
sub sp, sp, #4
|
||||
mov r4, r3
|
||||
ldr ip, [sp, #0x14]
|
||||
ldr r3, [sp, #0x10]
|
||||
str ip, [sp]
|
||||
bl CreateAdvancedTextBoxInternal
|
||||
add r1, r0, #0x100
|
||||
str r4, [r0, #0x1a4]
|
||||
ldrsb r0, [r1, #0xa0]
|
||||
add sp, sp, #4
|
||||
ldmia sp!, {r3, r4, pc}
|
||||
arm_func_end CreateAdvancedTextBox
|
||||
|
||||
arm_func_start CreateAdvancedTextBoxWithArg
|
||||
CreateAdvancedTextBoxWithArg: ; 0x020305E4
|
||||
stmdb sp!, {r3, r4, lr}
|
||||
sub sp, sp, #4
|
||||
mov r4, r3
|
||||
ldr ip, [sp, #0x18]
|
||||
ldr r3, [sp, #0x14]
|
||||
str ip, [sp]
|
||||
bl CreateAdvancedTextBoxInternal
|
||||
ldr r2, [sp, #0x10]
|
||||
str r4, [r0, #0x1a8]
|
||||
add r1, r0, #0x100
|
||||
str r2, [r0, #0x1ac]
|
||||
ldrsb r0, [r1, #0xa0]
|
||||
add sp, sp, #4
|
||||
ldmia sp!, {r3, r4, pc}
|
||||
arm_func_end CreateAdvancedTextBoxWithArg
|
||||
|
||||
arm_func_start CreateAdvancedTextBoxInternal
|
||||
CreateAdvancedTextBoxInternal: ; 0x0203061C
|
||||
stmdb sp!, {r4, r5, r6, r7, r8, lr}
|
||||
sub sp, sp, #0x28
|
||||
mov r8, r0
|
||||
mov r7, r1
|
||||
mov r0, #0x1c8
|
||||
mov r1, #8
|
||||
mov r6, r2
|
||||
mov r5, r3
|
||||
bl MemAlloc
|
||||
mov r4, r0
|
||||
mov r0, #0
|
||||
str r0, [r4, #0x1a4]
|
||||
str r0, [r4, #0x1a8]
|
||||
str r0, [r4, #0x1ac]
|
||||
str r0, [r4, #0x1b8]
|
||||
mov r0, #1
|
||||
cmp r8, #0
|
||||
strb r0, [r4, #0x1c4]
|
||||
addne ip, sp, #0x18
|
||||
ldmneia r8, {r0, r1, r2, r3}
|
||||
stmneia ip, {r0, r1, r2, r3}
|
||||
ldrne r0, _02030774 ; =UpdateAdvancedTextBox
|
||||
strne r0, [sp, #0x18]
|
||||
bne _02030690
|
||||
ldr r0, _02030778 ; =ADVANCED_TEXT_BOX_DEFAULT_WINDOW_PARAMS
|
||||
add r8, sp, #0x18
|
||||
ldmia r0, {r0, r1, r2, r3}
|
||||
stmia r8, {r0, r1, r2, r3}
|
||||
orr r7, r7, #0x300000
|
||||
_02030690:
|
||||
tst r7, #0x200000
|
||||
ldrneb r1, [sp, #0x1c]
|
||||
ldrneb r0, [sp, #0x1e]
|
||||
str r4, [sp, #0x24]
|
||||
subne r0, r1, r0
|
||||
strneb r0, [sp, #0x1c]
|
||||
tst r7, #0x100000
|
||||
ldrneb r1, [sp, #0x1d]
|
||||
ldrneb r0, [sp, #0x1f]
|
||||
subne r0, r1, r0
|
||||
strneb r0, [sp, #0x1d]
|
||||
ldr r0, _02030774 ; =UpdateAdvancedTextBox
|
||||
cmp r6, #0
|
||||
str r0, [r4]
|
||||
str r7, [r4, #0x104]
|
||||
beq _020306F0
|
||||
add ip, r4, #0x108
|
||||
mov r8, #9
|
||||
_020306D8:
|
||||
ldmia r6!, {r0, r1, r2, r3}
|
||||
stmia ip!, {r0, r1, r2, r3}
|
||||
subs r8, r8, #1
|
||||
bne _020306D8
|
||||
ldmia r6, {r0, r1}
|
||||
stmia ip, {r0, r1}
|
||||
_020306F0:
|
||||
mov r2, #0
|
||||
str r2, [r4, #0x1bc]
|
||||
strb r2, [r4, #0x1c0]
|
||||
strb r2, [r4, #0x1c1]
|
||||
strb r2, [r4, #0x1c2]
|
||||
str r2, [r4, #0x1b0]
|
||||
str r2, [r4, #0x1b4]
|
||||
add r0, sp, #0x18
|
||||
mov r1, #3
|
||||
strb r2, [r4, #0x1c3]
|
||||
bl NewWindowScreenCheck
|
||||
add r1, sp, #8
|
||||
strb r0, [r4, #0x1a0]
|
||||
bl GetWindowRectangle
|
||||
mov r1, #0x100
|
||||
strh r1, [r4, #0xfc]
|
||||
tst r7, #0x8000
|
||||
moveq r5, #0
|
||||
streq r5, [sp, #0x40]
|
||||
strh r1, [r4, #0xfe]
|
||||
add r0, r4, #0x100
|
||||
strh r1, [r0]
|
||||
strh r1, [r0, #2]
|
||||
ldr r6, [sp, #0x40]
|
||||
add r3, sp, #8
|
||||
mov r1, r7
|
||||
add r0, r4, #4
|
||||
add r2, r4, #0x108
|
||||
stmia sp, {r5, r6}
|
||||
bl InitWindowInput
|
||||
mov r0, r4
|
||||
add sp, sp, #0x28
|
||||
ldmia sp!, {r4, r5, r6, r7, r8, pc}
|
||||
.align 2, 0
|
||||
_02030774: .word UpdateAdvancedTextBox
|
||||
_02030778: .word ADVANCED_TEXT_BOX_DEFAULT_WINDOW_PARAMS
|
||||
arm_func_end CreateAdvancedTextBoxInternal
|
||||
|
||||
arm_func_start SetAdvancedTextBoxPartialMenu
|
||||
SetAdvancedTextBoxPartialMenu: ; 0x0203077C
|
||||
stmdb sp!, {r4, lr}
|
||||
mov r4, r1
|
||||
bl GetWindowContents
|
||||
strb r4, [r0, #0x1c3]
|
||||
ldr r1, [r0, #0x104]
|
||||
tst r4, #0xff
|
||||
orrne r1, r1, #0x400000
|
||||
biceq r1, r1, #0x400000
|
||||
str r1, [r0, #0x104]
|
||||
ldmia sp!, {r4, pc}
|
||||
arm_func_end SetAdvancedTextBoxPartialMenu
|
||||
|
||||
780
asm/main_0202FD50.s
Normal file
780
asm/main_0202FD50.s
Normal file
@@ -0,0 +1,780 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "main_0202FD50.inc"
|
||||
|
||||
.text
|
||||
|
||||
arm_func_start CloseAreaNameBox
|
||||
CloseAreaNameBox: ; 0x0202FD50
|
||||
stmdb sp!, {r4, lr}
|
||||
mov r4, r0
|
||||
bl GetWindowContents
|
||||
bl MemFree
|
||||
mov r0, r4
|
||||
bl DeleteWindow
|
||||
ldmia sp!, {r4, pc}
|
||||
arm_func_end CloseAreaNameBox
|
||||
|
||||
arm_func_start IsAreaNameBoxActive
|
||||
IsAreaNameBoxActive: ; 0x0202FD6C
|
||||
stmdb sp!, {r3, lr}
|
||||
bl GetWindowContents
|
||||
ldr r0, [r0, #0xa0]
|
||||
cmp r0, #2
|
||||
cmpne r0, #4
|
||||
movne r0, #1
|
||||
moveq r0, #0
|
||||
ldmia sp!, {r3, pc}
|
||||
arm_func_end IsAreaNameBoxActive
|
||||
|
||||
arm_func_start UpdateAreaNameBox
|
||||
UpdateAreaNameBox: ; 0x0202FD8C
|
||||
stmdb sp!, {r4, r5, r6, lr}
|
||||
mov r5, r0
|
||||
ldr r4, [r5, #0xc]
|
||||
ldr r0, [r4, #0xa0]
|
||||
cmp r0, #3
|
||||
addls pc, pc, r0, lsl #2
|
||||
ldmia sp!, {r4, r5, r6, pc}
|
||||
_0202FDA8: ; jump table
|
||||
b _0202FDB8 ; case 0
|
||||
b _0202FDD0 ; case 1
|
||||
ldmia sp!, {r4, r5, r6, pc} ; case 2
|
||||
b _0202FE0C ; case 3
|
||||
_0202FDB8:
|
||||
ldrsb r0, [r5, #0x10]
|
||||
bl sub_0202810C
|
||||
cmp r0, #0
|
||||
ldmeqia sp!, {r4, r5, r6, pc}
|
||||
mov r0, #1
|
||||
str r0, [r4, #0xa0]
|
||||
_0202FDD0:
|
||||
ldrsb r0, [r5, #0x10]
|
||||
ldr r6, [r5, #0xc]
|
||||
bl sub_02027B1C
|
||||
ldrsb r0, [r5, #0x10]
|
||||
ldr r1, [r6, #0x1b0]
|
||||
ldr r2, [r6, #0x1ac]
|
||||
add r3, r6, #0xac
|
||||
bl DrawTextInWindow
|
||||
ldrsb r0, [r5, #0x10]
|
||||
bl UpdateWindow
|
||||
mov r0, #2
|
||||
str r0, [r4, #0xa0]
|
||||
sub r0, r0, #3
|
||||
str r0, [r5, #0xb8]
|
||||
ldmia sp!, {r4, r5, r6, pc}
|
||||
_0202FE0C:
|
||||
ldrsb r0, [r5, #0x10]
|
||||
bl sub_0202812C
|
||||
cmp r0, #0
|
||||
mvnne r0, #4
|
||||
strne r0, [r5, #0xb8]
|
||||
movne r0, #4
|
||||
strne r0, [r4, #0xa0]
|
||||
ldmia sp!, {r4, r5, r6, pc}
|
||||
arm_func_end UpdateAreaNameBox
|
||||
|
||||
arm_func_start CreateControlsChart
|
||||
CreateControlsChart: ; 0x0202FE2C
|
||||
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
||||
sub sp, sp, #0x10
|
||||
mov r7, r0
|
||||
mov r5, r1
|
||||
mov r0, #0xa8
|
||||
mov r1, #8
|
||||
mov r4, r2
|
||||
mov r6, r3
|
||||
bl MemAlloc
|
||||
mov ip, r0
|
||||
cmp r7, #0
|
||||
ldreq r0, _0202FECC ; =CONTROLS_CHART_DEFAULT_WINDOW_PARAMS
|
||||
strh r6, [ip, #0xa4]
|
||||
add lr, sp, #0
|
||||
ldmeqia r0, {r0, r1, r2, r3}
|
||||
stmeqia lr, {r0, r1, r2, r3}
|
||||
ldmneia r7, {r0, r1, r2, r3}
|
||||
stmneia lr, {r0, r1, r2, r3}
|
||||
ldrne r0, _0202FED0 ; =UpdateControlsChart
|
||||
str ip, [sp, #0xc]
|
||||
strne r0, [sp]
|
||||
ldr r0, _0202FED0 ; =UpdateControlsChart
|
||||
cmp r4, #0
|
||||
stmia ip, {r0, r5}
|
||||
beq _0202FEB0
|
||||
add lr, ip, #8
|
||||
mov r5, #9
|
||||
_0202FE98:
|
||||
ldmia r4!, {r0, r1, r2, r3}
|
||||
stmia lr!, {r0, r1, r2, r3}
|
||||
subs r5, r5, #1
|
||||
bne _0202FE98
|
||||
ldmia r4, {r0, r1}
|
||||
stmia lr, {r0, r1}
|
||||
_0202FEB0:
|
||||
mov r2, #0
|
||||
add r0, sp, #0
|
||||
mov r1, #3
|
||||
str r2, [ip, #0xa0]
|
||||
bl NewWindowScreenCheck
|
||||
add sp, sp, #0x10
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_0202FECC: .word CONTROLS_CHART_DEFAULT_WINDOW_PARAMS
|
||||
_0202FED0: .word UpdateControlsChart
|
||||
arm_func_end CreateControlsChart
|
||||
|
||||
arm_func_start CloseControlsChart
|
||||
CloseControlsChart: ; 0x0202FED4
|
||||
stmdb sp!, {r4, lr}
|
||||
mov r4, r0
|
||||
bl GetWindowContents
|
||||
bl MemFree
|
||||
mov r0, r4
|
||||
bl DeleteWindow
|
||||
ldmia sp!, {r4, pc}
|
||||
arm_func_end CloseControlsChart
|
||||
|
||||
arm_func_start IsControlsChartActive
|
||||
IsControlsChartActive: ; 0x0202FEF0
|
||||
stmdb sp!, {r3, lr}
|
||||
bl GetWindowContents
|
||||
ldr r0, [r0, #0xa0]
|
||||
cmp r0, #2
|
||||
cmpne r0, #4
|
||||
movne r0, #1
|
||||
moveq r0, #0
|
||||
ldmia sp!, {r3, pc}
|
||||
arm_func_end IsControlsChartActive
|
||||
|
||||
arm_func_start UpdateControlsChart
|
||||
UpdateControlsChart: ; 0x0202FF10
|
||||
stmdb sp!, {r4, r5, r6, lr}
|
||||
mov r5, r0
|
||||
ldr r4, [r5, #0xc]
|
||||
ldr r0, [r4, #0xa0]
|
||||
cmp r0, #3
|
||||
addls pc, pc, r0, lsl #2
|
||||
ldmia sp!, {r4, r5, r6, pc}
|
||||
_0202FF2C: ; jump table
|
||||
b _0202FF3C ; case 0
|
||||
b _0202FF54 ; case 1
|
||||
ldmia sp!, {r4, r5, r6, pc} ; case 2
|
||||
b _0202FF90 ; case 3
|
||||
_0202FF3C:
|
||||
ldrsb r0, [r5, #0x10]
|
||||
bl sub_0202810C
|
||||
cmp r0, #0
|
||||
ldmeqia sp!, {r4, r5, r6, pc}
|
||||
mov r0, #1
|
||||
str r0, [r4, #0xa0]
|
||||
_0202FF54:
|
||||
ldrsb r0, [r5, #0x10]
|
||||
ldr r6, [r5, #0xc]
|
||||
bl sub_02027B1C
|
||||
ldrsb r0, [r5, #0x10]
|
||||
ldrh r3, [r6, #0xa4]
|
||||
mov r1, #4
|
||||
mov r2, #2
|
||||
bl AppendStandardStringToMission
|
||||
ldrsb r0, [r5, #0x10]
|
||||
bl UpdateWindow
|
||||
mov r0, #2
|
||||
str r0, [r4, #0xa0]
|
||||
sub r0, r0, #3
|
||||
str r0, [r5, #0xb8]
|
||||
ldmia sp!, {r4, r5, r6, pc}
|
||||
_0202FF90:
|
||||
ldrsb r0, [r5, #0x10]
|
||||
bl sub_0202812C
|
||||
cmp r0, #0
|
||||
mvnne r0, #4
|
||||
strne r0, [r5, #0xb8]
|
||||
movne r0, #4
|
||||
strne r0, [r4, #0xa0]
|
||||
ldmia sp!, {r4, r5, r6, pc}
|
||||
arm_func_end UpdateControlsChart
|
||||
|
||||
arm_func_start CreateAlertBox
|
||||
CreateAlertBox: ; 0x0202FFB0
|
||||
stmdb sp!, {r3, r4, r5, lr}
|
||||
sub sp, sp, #0x10
|
||||
mov r5, r0
|
||||
mov r0, #0x650
|
||||
mov r1, #8
|
||||
bl MemAlloc
|
||||
mov r1, #0x650
|
||||
mov r4, r0
|
||||
bl MemZero
|
||||
cmp r5, #0
|
||||
ldreq r0, _0203003C ; =ALERT_BOX_DEFAULT_WINDOW_PARAMS
|
||||
add ip, sp, #0
|
||||
ldmeqia r0, {r0, r1, r2, r3}
|
||||
stmeqia ip, {r0, r1, r2, r3}
|
||||
ldmneia r5, {r0, r1, r2, r3}
|
||||
stmneia ip, {r0, r1, r2, r3}
|
||||
ldrne r0, _02030040 ; =UpdateAlertBox
|
||||
str r4, [sp, #0xc]
|
||||
strne r0, [sp]
|
||||
add r0, sp, #0
|
||||
mov r1, #3
|
||||
bl NewWindowScreenCheck
|
||||
strb r0, [r4]
|
||||
ldrsb r1, [r4]
|
||||
add r0, r4, #8
|
||||
bl sub_02025E84
|
||||
mov r1, #0
|
||||
str r1, [r4, #4]
|
||||
add r0, r4, #0x600
|
||||
strh r1, [r0, #0x44]
|
||||
strh r1, [r0, #0x46]
|
||||
strh r1, [r0, #0x48]
|
||||
ldrsb r0, [r4]
|
||||
add sp, sp, #0x10
|
||||
ldmia sp!, {r3, r4, r5, pc}
|
||||
.align 2, 0
|
||||
_0203003C: .word ALERT_BOX_DEFAULT_WINDOW_PARAMS
|
||||
_02030040: .word UpdateAlertBox
|
||||
arm_func_end CreateAlertBox
|
||||
|
||||
arm_func_start CloseAlertBox
|
||||
CloseAlertBox: ; 0x02030044
|
||||
stmdb sp!, {r3, r4, r5, lr}
|
||||
mov r5, r0
|
||||
bl GetWindowContents
|
||||
mov r4, r0
|
||||
ldrsb r0, [r4]
|
||||
bl sub_0202836C
|
||||
add r0, r4, #8
|
||||
bl sub_0202613C
|
||||
mov r0, r5
|
||||
bl GetWindowContents
|
||||
bl MemFree
|
||||
mov r0, r5
|
||||
bl DeleteWindow
|
||||
ldmia sp!, {r3, r4, r5, pc}
|
||||
arm_func_end CloseAlertBox
|
||||
|
||||
arm_func_start sub_0203007C
|
||||
sub_0203007C: ; 0x0203007C
|
||||
add r0, r0, #0x600
|
||||
ldrsh r1, [r0, #0x44]
|
||||
add r1, r1, #1
|
||||
strh r1, [r0, #0x44]
|
||||
ldrsh r1, [r0, #0x44]
|
||||
cmp r1, #4
|
||||
movge r1, #0
|
||||
strgeh r1, [r0, #0x44]
|
||||
bx lr
|
||||
arm_func_end sub_0203007C
|
||||
|
||||
arm_func_start sub_020300A0
|
||||
sub_020300A0: ; 0x020300A0
|
||||
add r0, r0, #0x600
|
||||
ldrsh r0, [r0, #0x44]
|
||||
add r0, r0, #1
|
||||
mov r0, r0, lsl #0x10
|
||||
mov r0, r0, asr #0x10
|
||||
cmp r0, #4
|
||||
movge r0, #0
|
||||
bx lr
|
||||
arm_func_end sub_020300A0
|
||||
|
||||
arm_func_start sub_020300C0
|
||||
sub_020300C0: ; 0x020300C0
|
||||
stmdb sp!, {r3, r4, r5, lr}
|
||||
sub sp, sp, #8
|
||||
mov r5, r0
|
||||
add ip, sp, #0
|
||||
str r1, [sp]
|
||||
mov r1, ip
|
||||
add r0, r5, #0xc
|
||||
mov r4, r3
|
||||
str r2, [sp, #4]
|
||||
bl sub_02020B60
|
||||
ldr r1, _02030108 ; =0x0000C402
|
||||
mov r2, r4
|
||||
add r0, r5, #0xc
|
||||
bl sub_02020BC4
|
||||
add r0, r5, #0xc
|
||||
bl AnalyzeText
|
||||
add sp, sp, #8
|
||||
ldmia sp!, {r3, r4, r5, pc}
|
||||
.align 2, 0
|
||||
_02030108: .word 0x0000C402
|
||||
arm_func_end sub_020300C0
|
||||
|
||||
arm_func_start AddMessageToAlertBox
|
||||
AddMessageToAlertBox: ; 0x0203010C
|
||||
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
||||
mov r7, r1
|
||||
mov r6, r2
|
||||
mov r5, r3
|
||||
bl GetWindowContents
|
||||
mov r4, r0
|
||||
ldr r0, [r4, #4]
|
||||
cmp r0, #2
|
||||
cmpne r0, #3
|
||||
beq _02030144
|
||||
add r0, r4, #8
|
||||
bl sub_0202613C
|
||||
mov r0, #1
|
||||
str r0, [r4, #4]
|
||||
_02030144:
|
||||
mov r0, r4
|
||||
bl sub_020300A0
|
||||
add r1, r4, #0x600
|
||||
ldrsh r2, [r1, #0x46]
|
||||
cmp r2, r0
|
||||
moveq r0, #0
|
||||
ldmeqia sp!, {r3, r4, r5, r6, r7, pc}
|
||||
str r5, [sp]
|
||||
ldrsh r1, [r1, #0x44]
|
||||
add r0, r4, #0x29
|
||||
add r2, r0, #0x100
|
||||
mov r0, #0x148
|
||||
smlabb r0, r1, r0, r2
|
||||
mov r2, r6
|
||||
mov r3, r7
|
||||
mov r1, #0x140
|
||||
bl PreprocessString
|
||||
add r1, r4, #0x600
|
||||
add r0, r4, #0x29
|
||||
ldrsh r1, [r1, #0x44]
|
||||
add r2, r0, #0x100
|
||||
mov r0, #0x148
|
||||
smlabb r2, r1, r0, r2
|
||||
mov r1, r7
|
||||
add r0, r4, #8
|
||||
bl sub_02026194
|
||||
add r1, r4, #0x600
|
||||
ldrsh r0, [r1, #0x44]
|
||||
mov r2, #0x148
|
||||
mov r6, #0
|
||||
smlabb r0, r0, r2, r4
|
||||
add r0, r0, #0x200
|
||||
strh r7, [r0, #0x6a]
|
||||
ldrsh r5, [r1, #0x44]
|
||||
ldrb r3, [sp, #0x18]
|
||||
mov r0, r4
|
||||
smlabb r5, r5, r2, r4
|
||||
str r6, [r5, #0x124]
|
||||
ldrsh r1, [r1, #0x44]
|
||||
smlabb r1, r1, r2, r4
|
||||
strb r3, [r1, #0x128]
|
||||
bl sub_0203007C
|
||||
mov r0, #1
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
||||
arm_func_end AddMessageToAlertBox
|
||||
|
||||
arm_func_start IsAlertBoxActive
|
||||
IsAlertBoxActive: ; 0x020301F4
|
||||
stmdb sp!, {r3, lr}
|
||||
bl GetWindowContents
|
||||
ldr r0, [r0, #4]
|
||||
cmp r0, #3
|
||||
moveq r0, #1
|
||||
movne r0, #0
|
||||
and r0, r0, #0xff
|
||||
ldmia sp!, {r3, pc}
|
||||
arm_func_end IsAlertBoxActive
|
||||
|
||||
arm_func_start sub_02030214
|
||||
sub_02030214: ; 0x02030214
|
||||
stmdb sp!, {r4, lr}
|
||||
bl GetWindowContents
|
||||
mov r4, r0
|
||||
ldr r0, [r4, #4]
|
||||
cmp r0, #5
|
||||
addls pc, pc, r0, lsl #2
|
||||
b _02030260
|
||||
_02030230: ; jump table
|
||||
b _02030260 ; case 0
|
||||
b _02030248 ; case 1
|
||||
b _02030254 ; case 2
|
||||
b _02030254 ; case 3
|
||||
ldmia sp!, {r4, pc} ; case 4
|
||||
ldmia sp!, {r4, pc} ; case 5
|
||||
_02030248:
|
||||
mov r0, #5
|
||||
str r0, [r4, #4]
|
||||
ldmia sp!, {r4, pc}
|
||||
_02030254:
|
||||
mov r0, #4
|
||||
str r0, [r4, #4]
|
||||
ldmia sp!, {r4, pc}
|
||||
_02030260:
|
||||
add r0, r4, #8
|
||||
bl sub_0202613C
|
||||
mov r0, #0
|
||||
str r0, [r4, #4]
|
||||
ldmia sp!, {r4, pc}
|
||||
arm_func_end sub_02030214
|
||||
|
||||
arm_func_start UpdateAlertBox
|
||||
UpdateAlertBox: ; 0x02030274
|
||||
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, lr}
|
||||
mov r5, r0
|
||||
ldr r4, [r5, #0xc]
|
||||
ldr r0, [r4, #4]
|
||||
cmp r0, #5
|
||||
addls pc, pc, r0, lsl #2
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
|
||||
_02030290: ; jump table
|
||||
b _020302A8 ; case 0
|
||||
b _020302C8 ; case 1
|
||||
b _020302E0 ; case 2
|
||||
b _02030438 ; case 3
|
||||
b _0203056C ; case 4
|
||||
b _02030588 ; case 5
|
||||
_020302A8:
|
||||
add r0, r4, #8
|
||||
bl sub_020261D4
|
||||
cmp r0, #0
|
||||
ldmeqia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
|
||||
mov r0, #1
|
||||
str r0, [r4, #4]
|
||||
sub r0, r0, #2
|
||||
str r0, [r5, #0xb8]
|
||||
_020302C8:
|
||||
ldrsb r0, [r5, #0x10]
|
||||
bl sub_0202810C
|
||||
cmp r0, #0
|
||||
movne r0, #2
|
||||
strne r0, [r4, #4]
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
|
||||
_020302E0:
|
||||
ldrsb r0, [r5, #0x10]
|
||||
bl GetWindowContents
|
||||
add r0, r0, #0x600
|
||||
ldrsh r1, [r0, #0x46]
|
||||
ldrsh r0, [r0, #0x44]
|
||||
cmp r1, r0
|
||||
movne r0, #1
|
||||
moveq r0, #0
|
||||
tst r0, #0xff
|
||||
ldmeqia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
|
||||
ldrsb r4, [r5, #0x10]
|
||||
mov r0, r4
|
||||
bl GetWindowContents
|
||||
mov r6, r0
|
||||
add r3, r6, #0x600
|
||||
ldr r1, [r6, #0x20]
|
||||
ldrsh r2, [r3, #0x4a]
|
||||
mov r1, r1, lsl #0x10
|
||||
ldr r5, [r6, #0x10]
|
||||
mov r8, r1, asr #0x10
|
||||
mla r1, r2, r8, r5
|
||||
ldr r2, [r6, #0xc]
|
||||
mov r7, r1, lsl #0x10
|
||||
mov r2, r2, lsl #0x10
|
||||
ldrsh r3, [r3, #0x46]
|
||||
mov r1, #0x148
|
||||
add r5, r6, #0x124
|
||||
smulbb r3, r3, r1
|
||||
ldr r1, [r5, r3]
|
||||
add r5, r5, r3
|
||||
cmp r1, #1
|
||||
mov r1, r2, asr #0x10
|
||||
mov r7, r7, asr #0x10
|
||||
bne _02030388
|
||||
mov r5, #0x17
|
||||
mov r0, r4
|
||||
add r2, r7, r8
|
||||
mov r1, #0
|
||||
mov r3, #0xe0
|
||||
str r5, [sp]
|
||||
bl sub_02025D50
|
||||
b _020303C4
|
||||
_02030388:
|
||||
mov r2, r7
|
||||
add r3, r5, #5
|
||||
bl sub_020300C0
|
||||
ldrb r0, [r5, #4]
|
||||
cmp r0, #0
|
||||
beq _020303C4
|
||||
cmp r7, r8
|
||||
blt _020303C4
|
||||
mov r5, #0x17
|
||||
mov r0, r4
|
||||
sub r2, r7, #2
|
||||
mov r1, #0
|
||||
mov r3, #0xe0
|
||||
str r5, [sp]
|
||||
bl sub_02025D50
|
||||
_020303C4:
|
||||
mov r0, r4
|
||||
bl UpdateWindow
|
||||
add r0, r6, #0x600
|
||||
ldrsh r1, [r0, #0x46]
|
||||
strh r1, [r0, #0x48]
|
||||
ldrsh r1, [r0, #0x46]
|
||||
add r1, r1, #1
|
||||
strh r1, [r0, #0x46]
|
||||
ldrsh r1, [r0, #0x46]
|
||||
cmp r1, #4
|
||||
movge r1, #0
|
||||
strgeh r1, [r0, #0x46]
|
||||
add r0, r6, #0x600
|
||||
ldrsh r1, [r0, #0x4a]
|
||||
cmp r1, #3
|
||||
movge r1, #3
|
||||
strge r1, [r6, #4]
|
||||
movge r1, #0
|
||||
strgeh r1, [r0, #0x4c]
|
||||
ldmgeia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
|
||||
ldr r1, [r6, #0xa0]
|
||||
ldr r0, [r6, #0x10]
|
||||
add r2, r1, r8
|
||||
mov r1, r8
|
||||
sub r0, r2, r0
|
||||
bl _s32_div_f
|
||||
add r1, r6, #0x600
|
||||
strh r0, [r1, #0x4a]
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
|
||||
_02030438:
|
||||
ldrsb r5, [r5, #0x10]
|
||||
mov r0, r5
|
||||
bl GetWindowContents
|
||||
mov r7, r0
|
||||
add r3, r7, #0x600
|
||||
ldr r1, [r7, #0x20]
|
||||
ldrsh r2, [r3, #0x4a]
|
||||
mov r1, r1, lsl #0x10
|
||||
ldr r6, [r7, #0x10]
|
||||
mov r8, r1, asr #0x10
|
||||
ldr r1, [r7, #0xc]
|
||||
mla r6, r2, r8, r6
|
||||
ldrsh sb, [r3, #0x4c]
|
||||
mov r2, r1, lsl #0x10
|
||||
ldrsh ip, [r3, #0x48]
|
||||
mov r1, #0x148
|
||||
add r3, sb, r6
|
||||
mov r3, r3, lsl #0x10
|
||||
smulbb r6, ip, r1
|
||||
add sb, r7, #0x124
|
||||
ldr r1, [sb, r6]
|
||||
add r6, sb, r6
|
||||
cmp r1, #1
|
||||
mov r1, r2, asr #0x10
|
||||
mov sb, r3, asr #0x10
|
||||
bne _020304C0
|
||||
mov r6, #0x17
|
||||
mov r0, r5
|
||||
add r2, sb, r8
|
||||
mov r1, #0
|
||||
mov r3, #0xe0
|
||||
str r6, [sp]
|
||||
bl sub_02025D50
|
||||
b _020304FC
|
||||
_020304C0:
|
||||
mov r2, sb
|
||||
add r3, r6, #5
|
||||
bl sub_020300C0
|
||||
ldrb r0, [r6, #4]
|
||||
cmp r0, #0
|
||||
beq _020304FC
|
||||
cmp sb, r8
|
||||
blt _020304FC
|
||||
mov r6, #0x17
|
||||
mov r0, r5
|
||||
sub r2, sb, #2
|
||||
mov r1, #0
|
||||
mov r3, #0xe0
|
||||
str r6, [sp]
|
||||
bl sub_02025D50
|
||||
_020304FC:
|
||||
add r0, r7, #0x600
|
||||
ldrsh r0, [r0, #0x4c]
|
||||
add r0, r0, r8
|
||||
cmp r0, #1
|
||||
mov r0, r5
|
||||
bne _02030528
|
||||
bl sub_01FF9128
|
||||
add r0, r7, #0x600
|
||||
ldrsh r1, [r0, #0x4c]
|
||||
sub r1, r1, #1
|
||||
b _02030538
|
||||
_02030528:
|
||||
bl sub_01FF929C
|
||||
add r0, r7, #0x600
|
||||
ldrsh r1, [r0, #0x4c]
|
||||
sub r1, r1, #2
|
||||
_02030538:
|
||||
strh r1, [r0, #0x4c]
|
||||
add r0, r7, #0x600
|
||||
ldrsh r2, [r0, #0x4c]
|
||||
rsb r1, r8, #0
|
||||
cmp r2, r1
|
||||
movle r1, #3
|
||||
strleh r1, [r0, #0x4a]
|
||||
movle r0, #1
|
||||
movgt r0, #0
|
||||
cmp r0, #0
|
||||
movne r0, #2
|
||||
strne r0, [r4, #4]
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
|
||||
_0203056C:
|
||||
ldrsb r0, [r5, #0x10]
|
||||
bl sub_0202836C
|
||||
ldrsb r0, [r5, #0x10]
|
||||
bl sub_02027B1C
|
||||
mov r0, #5
|
||||
str r0, [r4, #4]
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
|
||||
_02030588:
|
||||
ldrsb r0, [r5, #0x10]
|
||||
bl sub_0202812C
|
||||
cmp r0, #0
|
||||
ldmeqia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
|
||||
mov r1, #0
|
||||
add r0, r4, #8
|
||||
str r1, [r4, #4]
|
||||
bl sub_0202613C
|
||||
mvn r0, #5
|
||||
str r0, [r5, #0xb8]
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
|
||||
arm_func_end UpdateAlertBox
|
||||
|
||||
arm_func_start CreateAdvancedTextBox
|
||||
CreateAdvancedTextBox: ; 0x020305B4
|
||||
stmdb sp!, {r3, r4, lr}
|
||||
sub sp, sp, #4
|
||||
mov r4, r3
|
||||
ldr ip, [sp, #0x14]
|
||||
ldr r3, [sp, #0x10]
|
||||
str ip, [sp]
|
||||
bl CreateAdvancedTextBoxInternal
|
||||
add r1, r0, #0x100
|
||||
str r4, [r0, #0x1a4]
|
||||
ldrsb r0, [r1, #0xa0]
|
||||
add sp, sp, #4
|
||||
ldmia sp!, {r3, r4, pc}
|
||||
arm_func_end CreateAdvancedTextBox
|
||||
|
||||
arm_func_start CreateAdvancedTextBoxWithArg
|
||||
CreateAdvancedTextBoxWithArg: ; 0x020305E4
|
||||
stmdb sp!, {r3, r4, lr}
|
||||
sub sp, sp, #4
|
||||
mov r4, r3
|
||||
ldr ip, [sp, #0x18]
|
||||
ldr r3, [sp, #0x14]
|
||||
str ip, [sp]
|
||||
bl CreateAdvancedTextBoxInternal
|
||||
ldr r2, [sp, #0x10]
|
||||
str r4, [r0, #0x1a8]
|
||||
add r1, r0, #0x100
|
||||
str r2, [r0, #0x1ac]
|
||||
ldrsb r0, [r1, #0xa0]
|
||||
add sp, sp, #4
|
||||
ldmia sp!, {r3, r4, pc}
|
||||
arm_func_end CreateAdvancedTextBoxWithArg
|
||||
|
||||
arm_func_start CreateAdvancedTextBoxInternal
|
||||
CreateAdvancedTextBoxInternal: ; 0x0203061C
|
||||
stmdb sp!, {r4, r5, r6, r7, r8, lr}
|
||||
sub sp, sp, #0x28
|
||||
mov r8, r0
|
||||
mov r7, r1
|
||||
mov r0, #0x1c8
|
||||
mov r1, #8
|
||||
mov r6, r2
|
||||
mov r5, r3
|
||||
bl MemAlloc
|
||||
mov r4, r0
|
||||
mov r0, #0
|
||||
str r0, [r4, #0x1a4]
|
||||
str r0, [r4, #0x1a8]
|
||||
str r0, [r4, #0x1ac]
|
||||
str r0, [r4, #0x1b8]
|
||||
mov r0, #1
|
||||
cmp r8, #0
|
||||
strb r0, [r4, #0x1c4]
|
||||
addne ip, sp, #0x18
|
||||
ldmneia r8, {r0, r1, r2, r3}
|
||||
stmneia ip, {r0, r1, r2, r3}
|
||||
ldrne r0, _02030774 ; =UpdateAdvancedTextBox
|
||||
strne r0, [sp, #0x18]
|
||||
bne _02030690
|
||||
ldr r0, _02030778 ; =ADVANCED_TEXT_BOX_DEFAULT_WINDOW_PARAMS
|
||||
add r8, sp, #0x18
|
||||
ldmia r0, {r0, r1, r2, r3}
|
||||
stmia r8, {r0, r1, r2, r3}
|
||||
orr r7, r7, #0x300000
|
||||
_02030690:
|
||||
tst r7, #0x200000
|
||||
ldrneb r1, [sp, #0x1c]
|
||||
ldrneb r0, [sp, #0x1e]
|
||||
str r4, [sp, #0x24]
|
||||
subne r0, r1, r0
|
||||
strneb r0, [sp, #0x1c]
|
||||
tst r7, #0x100000
|
||||
ldrneb r1, [sp, #0x1d]
|
||||
ldrneb r0, [sp, #0x1f]
|
||||
subne r0, r1, r0
|
||||
strneb r0, [sp, #0x1d]
|
||||
ldr r0, _02030774 ; =UpdateAdvancedTextBox
|
||||
cmp r6, #0
|
||||
str r0, [r4]
|
||||
str r7, [r4, #0x104]
|
||||
beq _020306F0
|
||||
add ip, r4, #0x108
|
||||
mov r8, #9
|
||||
_020306D8:
|
||||
ldmia r6!, {r0, r1, r2, r3}
|
||||
stmia ip!, {r0, r1, r2, r3}
|
||||
subs r8, r8, #1
|
||||
bne _020306D8
|
||||
ldmia r6, {r0, r1}
|
||||
stmia ip, {r0, r1}
|
||||
_020306F0:
|
||||
mov r2, #0
|
||||
str r2, [r4, #0x1bc]
|
||||
strb r2, [r4, #0x1c0]
|
||||
strb r2, [r4, #0x1c1]
|
||||
strb r2, [r4, #0x1c2]
|
||||
str r2, [r4, #0x1b0]
|
||||
str r2, [r4, #0x1b4]
|
||||
add r0, sp, #0x18
|
||||
mov r1, #3
|
||||
strb r2, [r4, #0x1c3]
|
||||
bl NewWindowScreenCheck
|
||||
add r1, sp, #8
|
||||
strb r0, [r4, #0x1a0]
|
||||
bl GetWindowRectangle
|
||||
mov r1, #0x100
|
||||
strh r1, [r4, #0xfc]
|
||||
tst r7, #0x8000
|
||||
moveq r5, #0
|
||||
streq r5, [sp, #0x40]
|
||||
strh r1, [r4, #0xfe]
|
||||
add r0, r4, #0x100
|
||||
strh r1, [r0]
|
||||
strh r1, [r0, #2]
|
||||
ldr r6, [sp, #0x40]
|
||||
add r3, sp, #8
|
||||
mov r1, r7
|
||||
add r0, r4, #4
|
||||
add r2, r4, #0x108
|
||||
stmia sp, {r5, r6}
|
||||
bl InitWindowInput
|
||||
mov r0, r4
|
||||
add sp, sp, #0x28
|
||||
ldmia sp!, {r4, r5, r6, r7, r8, pc}
|
||||
.align 2, 0
|
||||
_02030774: .word UpdateAdvancedTextBox
|
||||
_02030778: .word ADVANCED_TEXT_BOX_DEFAULT_WINDOW_PARAMS
|
||||
arm_func_end CreateAdvancedTextBoxInternal
|
||||
|
||||
arm_func_start SetAdvancedTextBoxPartialMenu
|
||||
SetAdvancedTextBoxPartialMenu: ; 0x0203077C
|
||||
stmdb sp!, {r4, lr}
|
||||
mov r4, r1
|
||||
bl GetWindowContents
|
||||
strb r4, [r0, #0x1c3]
|
||||
ldr r1, [r0, #0x104]
|
||||
tst r4, #0xff
|
||||
orrne r1, r1, #0x400000
|
||||
biceq r1, r1, #0x400000
|
||||
str r1, [r0, #0x104]
|
||||
ldmia sp!, {r4, pc}
|
||||
arm_func_end SetAdvancedTextBoxPartialMenu
|
||||
6648
asm/main_02034974.s
6648
asm/main_02034974.s
File diff suppressed because it is too large
Load Diff
6642
asm/main_02037570.s
Normal file
6642
asm/main_02037570.s
Normal file
File diff suppressed because it is too large
Load Diff
@@ -1,36 +1,8 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "main_02042B98.inc"
|
||||
.include "main_02042BE0.inc"
|
||||
|
||||
.text
|
||||
|
||||
arm_func_start AllocUnkBagStruct
|
||||
AllocUnkBagStruct: ; 0x02042B98
|
||||
stmdb sp!, {r3, lr}
|
||||
mov r0, #0xc8
|
||||
mov r1, #8
|
||||
bl MemAlloc
|
||||
ldr r1, _02042BB8 ; =UNK_STORAGE_STRUCT_0XC
|
||||
str r0, [r1, #8]
|
||||
bl ClearBagSelectedItemTable
|
||||
ldmia sp!, {r3, pc}
|
||||
.align 2, 0
|
||||
_02042BB8: .word UNK_STORAGE_STRUCT_0XC
|
||||
arm_func_end AllocUnkBagStruct
|
||||
|
||||
arm_func_start FreeUnkBagStruct
|
||||
FreeUnkBagStruct: ; 0x02042BBC
|
||||
stmdb sp!, {r3, lr}
|
||||
ldr r0, _02042BDC ; =UNK_STORAGE_STRUCT_0XC
|
||||
ldr r0, [r0, #8]
|
||||
bl MemFree
|
||||
ldr r0, _02042BDC ; =UNK_STORAGE_STRUCT_0XC
|
||||
mov r1, #0
|
||||
str r1, [r0, #8]
|
||||
ldmia sp!, {r3, pc}
|
||||
.align 2, 0
|
||||
_02042BDC: .word UNK_STORAGE_STRUCT_0XC
|
||||
arm_func_end FreeUnkBagStruct
|
||||
|
||||
arm_func_start sub_02042BE0
|
||||
sub_02042BE0: ; 0x02042BE0
|
||||
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
||||
@@ -6,7 +6,9 @@
|
||||
struct unk_0202AAA8 {
|
||||
u8 field_0x0[8];
|
||||
u8 field_0x8;
|
||||
u8 field_0x9[0x18F];
|
||||
u8 field_0x9[0x97];
|
||||
s32 field_0xA0;
|
||||
u8 field_0xA4[0xF4];
|
||||
void *field_0x198;
|
||||
s32 field_0x19C;
|
||||
u8 field_0x1A0;
|
||||
|
||||
6
include/main_0202FD3C.h
Normal file
6
include/main_0202FD3C.h
Normal file
@@ -0,0 +1,6 @@
|
||||
#ifndef PMDSKY_MAIN_0202FD3C_H
|
||||
#define PMDSKY_MAIN_0202FD3C_H
|
||||
|
||||
void SetAreaNameBoxState3(s32 window_id);
|
||||
|
||||
#endif
|
||||
6
include/main_0203755C.h
Normal file
6
include/main_0203755C.h
Normal file
@@ -0,0 +1,6 @@
|
||||
#ifndef PMDSKY_MAIN_0203755C_H
|
||||
#define PMDSKY_MAIN_0203755C_H
|
||||
|
||||
s32 GetKeyboardStringResult(void);
|
||||
|
||||
#endif
|
||||
@@ -2,5 +2,7 @@
|
||||
#define PMDSKY_MAIN_02042B84_H
|
||||
|
||||
s32 IsBagItemIndexSelected(s32 idx);
|
||||
void AllocUnkBagStruct(void);
|
||||
void FreeUnkBagStruct(void);
|
||||
|
||||
#endif
|
||||
|
||||
6
main.lsf
6
main.lsf
@@ -174,6 +174,8 @@ Static main
|
||||
Object asm/main_0202D0EC.o
|
||||
Object src/main_0202F180.o
|
||||
Object asm/main_0202F190.o
|
||||
Object src/main_0202FD3C.o
|
||||
Object asm/main_0202FD50.o
|
||||
Object src/main_020307A4.o
|
||||
Object asm/main_020307B8.o
|
||||
Object src/main_0203083C.o
|
||||
@@ -189,12 +191,14 @@ Static main
|
||||
Object asm/main_020325AC.o
|
||||
Object src/main_020348E4.o
|
||||
Object asm/main_02034974.o
|
||||
Object src/main_0203755C.o
|
||||
Object asm/main_02037570.o
|
||||
Object src/main_0203C760.o
|
||||
Object asm/main_0203C774.o
|
||||
Object src/main_02042AF8.o
|
||||
Object asm/main_02042B20.o
|
||||
Object src/main_02042B84.o
|
||||
Object asm/main_02042B98.o
|
||||
Object asm/main_02042BE0.o
|
||||
Object src/main_02043568.o
|
||||
Object asm/main_0204357C.o
|
||||
Object src/main_020484A0.o
|
||||
|
||||
9
src/main_0202FD3C.c
Normal file
9
src/main_0202FD3C.c
Normal file
@@ -0,0 +1,9 @@
|
||||
#include "main_0202FD3C.h"
|
||||
#include "main_0202AAA8.h"
|
||||
|
||||
void SetAreaNameBoxState3(s32 window_id)
|
||||
{
|
||||
struct unk_0202AAA8 *w = GetWindowContents(window_id);
|
||||
|
||||
w->field_0xA0 = 3;
|
||||
}
|
||||
13
src/main_0203755C.c
Normal file
13
src/main_0203755C.c
Normal file
@@ -0,0 +1,13 @@
|
||||
#include "main_0203755C.h"
|
||||
|
||||
struct unk_020AFDF0 {
|
||||
u8 field_0x0[0xF8];
|
||||
s32 field_0xF8;
|
||||
};
|
||||
|
||||
extern struct unk_020AFDF0 *_020AFDF0;
|
||||
|
||||
s32 GetKeyboardStringResult(void)
|
||||
{
|
||||
return _020AFDF0->field_0xF8;
|
||||
}
|
||||
@@ -1,7 +1,22 @@
|
||||
#include "main_02042B84.h"
|
||||
#include "main_02042AF8.h"
|
||||
#include "main_02001188.h"
|
||||
|
||||
void *MemAlloc(u32 size, u32 nmemb);
|
||||
|
||||
s32 IsBagItemIndexSelected(s32 idx)
|
||||
{
|
||||
return UNK_STORAGE_STRUCT_0XC.field_0x8[idx];
|
||||
}
|
||||
|
||||
void AllocUnkBagStruct(void)
|
||||
{
|
||||
UNK_STORAGE_STRUCT_0XC.field_0x8 = MemAlloc(0xC8, 8);
|
||||
ClearBagSelectedItemTable();
|
||||
}
|
||||
|
||||
void FreeUnkBagStruct(void)
|
||||
{
|
||||
MemFree(UNK_STORAGE_STRUCT_0XC.field_0x8);
|
||||
UNK_STORAGE_STRUCT_0XC.field_0x8 = 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user