From 4ebc1386d887f7fd99788d6f659c96371f624576 Mon Sep 17 00:00:00 2001 From: slaw-22 <> Date: Sun, 21 Dec 2025 21:56:58 +0000 Subject: [PATCH] Decomp more options funcs #2 --- asm/include/main_0202598C.inc | 2 +- asm/include/main_0202676C.inc | 2 +- asm/include/main_0203C774.inc | 1 + asm/include/overlay_01.inc | 2 +- asm/include/overlay_03_0233CA98.inc | 2 +- asm/include/overlay_05.inc | 2 +- asm/include/overlay_06.inc | 2 +- asm/include/overlay_11.inc | 6 +-- asm/include/overlay_11_022EE5E4.inc | 2 +- asm/include/overlay_14.inc | 2 +- asm/include/overlay_29_022DEBA4.inc | 2 +- asm/include/overlay_29_022E08A0.inc | 2 +- asm/include/overlay_29_022E37DC.inc | 2 +- asm/include/overlay_29_022E9618.inc | 4 +- asm/include/overlay_29_022F05B4.inc | 6 +-- asm/include/overlay_29_022F9744.inc | 2 +- asm/include/overlay_29_023047DC.inc | 2 +- asm/include/overlay_29_02336450.inc | 2 +- asm/include/overlay_29_0233861C.inc | 4 +- asm/include/overlay_31_023833D8.inc | 2 +- asm/main_0202598C.s | 2 +- asm/main_0202676C.s | 2 +- asm/main_0203C774.s | 84 +---------------------------- asm/overlay_01.s | 10 ++-- asm/overlay_03_0233CA98.s | 6 +-- asm/overlay_05.s | 4 +- asm/overlay_06.s | 4 +- asm/overlay_11.s | 12 ++--- asm/overlay_11_022EE5E4.s | 4 +- asm/overlay_14.s | 2 +- asm/overlay_29_022DEBA4.s | 2 +- asm/overlay_29_022E08A0.s | 2 +- asm/overlay_29_022E37DC.s | 10 ++-- asm/overlay_29_022E9618.s | 4 +- asm/overlay_29_022F05B4.s | 8 +-- asm/overlay_29_022F9744.s | 2 +- asm/overlay_29_023047DC.s | 6 +-- asm/overlay_29_02336450.s | 4 +- asm/overlay_29_0233861C.s | 28 +++++----- asm/overlay_31_023833D8.s | 2 +- include/enums.h | 6 +++ include/options.h | 8 +++ src/options.c | 38 +++++++++++++ src/overlay_31_02383328.c | 4 +- 44 files changed, 139 insertions(+), 166 deletions(-) diff --git a/asm/include/main_0202598C.inc b/asm/include/main_0202598C.inc index 6581884c..2f58292b 100644 --- a/asm/include/main_0202598C.inc +++ b/asm/include/main_0202598C.inc @@ -67,7 +67,7 @@ .public sub_02028324 .public sub_020288DC .public sub_020288FC -.public sub_0204AE60 +.public IsTouchScreenNotOff .public TBL_TALK_GROUP_STRING_ID_START .public UnloadFile .public UpdateWindow diff --git a/asm/include/main_0202676C.inc b/asm/include/main_0202676C.inc index 5ef11a73..c1229045 100644 --- a/asm/include/main_0202676C.inc +++ b/asm/include/main_0202676C.inc @@ -195,7 +195,7 @@ .public sub_0203C984 .public sub_020469BC .public sub_02048240 -.public sub_0204AE60 +.public IsTouchScreenNotOff .public TEAM_SELECTION_MENU_DEFAULT_WINDOW_PARAMS .public TEXT_BOX_DEFAULT_WINDOW_PARAMS .public UnloadFile diff --git a/asm/include/main_0203C774.inc b/asm/include/main_0203C774.inc index 62955dde..f41af682 100644 --- a/asm/include/main_0203C774.inc +++ b/asm/include/main_0203C774.inc @@ -297,6 +297,7 @@ .public IsStorableItem .public IsStorageFull .public IsThrownItem +.public IsTouchScreenNotOff .public IsTreasureBox .public LAST_NEW_MOVE .public LearnMoves diff --git a/asm/include/overlay_01.inc b/asm/include/overlay_01.inc index 05ef3cf3..1d98ebe3 100644 --- a/asm/include/overlay_01.inc +++ b/asm/include/overlay_01.inc @@ -336,7 +336,7 @@ .public sub_02049D4C .public sub_0204a1cc .public sub_0204A1CC -.public sub_0204AE60 +.public IsTouchScreenNotOff .public sub_0204DF54 .public sub_0204DFB0 .public sub_0204E02C diff --git a/asm/include/overlay_03_0233CA98.inc b/asm/include/overlay_03_0233CA98.inc index 0b394f21..f0598a32 100644 --- a/asm/include/overlay_03_0233CA98.inc +++ b/asm/include/overlay_03_0233CA98.inc @@ -246,7 +246,7 @@ .public sub_02046D20 .public sub_0204A018 .public sub_0204A1CC -.public sub_0204AE60 +.public IsTouchScreenNotOff .public sub_0204DBA0 .public sub_0204DCA0 .public sub_0204E210 diff --git a/asm/include/overlay_05.inc b/asm/include/overlay_05.inc index e7745242..7c239768 100644 --- a/asm/include/overlay_05.inc +++ b/asm/include/overlay_05.inc @@ -93,7 +93,7 @@ .public sub_02047150 .public sub_0204A018 .public sub_0204A1CC -.public sub_0204AE60 +.public IsTouchScreenNotOff .public sub_0204E210 .public sub_0204E5E4 .public sub_02050CD0 diff --git a/asm/include/overlay_06.inc b/asm/include/overlay_06.inc index 03b07c2a..da0bc849 100644 --- a/asm/include/overlay_06.inc +++ b/asm/include/overlay_06.inc @@ -70,7 +70,7 @@ .public sub_02046D20 .public sub_0204A018 .public sub_0204A1CC -.public sub_0204AE60 +.public IsTouchScreenNotOff .public SetSpecialEpisodeOpen .public sub_0204E210 .public sub_02050974 diff --git a/asm/include/overlay_11.inc b/asm/include/overlay_11.inc index e77c5950..96565010 100644 --- a/asm/include/overlay_11.inc +++ b/asm/include/overlay_11.inc @@ -636,9 +636,9 @@ .public sub_02048614 .public sub_02049338 .public sub_0204964C -.public sub_0204AE60 -.public sub_0204AE80 -.public sub_0204AEE0 +.public IsTouchScreenNotOff +.public IsTouchScreenUseAnywhere +.public GetSpeedOption .public DefaultInitScriptVariable .public SetResolvedPerformanceProgressFlag .public sub_0204CDE8 diff --git a/asm/include/overlay_11_022EE5E4.inc b/asm/include/overlay_11_022EE5E4.inc index 4c209761..45ae4d96 100644 --- a/asm/include/overlay_11_022EE5E4.inc +++ b/asm/include/overlay_11_022EE5E4.inc @@ -942,7 +942,7 @@ .public sub_020483D8 .public sub_02048764 .public sub_02048794 -.public sub_0204AEA0 +.public GetTopScreenOption .public sub_0204AFD0 .public sub_0204CDCC .public sub_0204CE00 diff --git a/asm/include/overlay_14.inc b/asm/include/overlay_14.inc index 0517dcb4..6d8d1e74 100644 --- a/asm/include/overlay_14.inc +++ b/asm/include/overlay_14.inc @@ -67,5 +67,5 @@ .public sub_0202BC60 .public sub_0202F334 .public sub_0202F954 -.public sub_0204AE60 +.public IsTouchScreenNotOff .public UpdateWindow diff --git a/asm/include/overlay_29_022DEBA4.inc b/asm/include/overlay_29_022DEBA4.inc index 3d9a1fca..0cd16e5f 100644 --- a/asm/include/overlay_29_022DEBA4.inc +++ b/asm/include/overlay_29_022DEBA4.inc @@ -235,7 +235,7 @@ .public sub_02009194 .public sub_020091B0 .public sub_02017B00 -.public sub_0204AEA0 +.public GetTopScreenOption .public sub_0204F1B4 .public sub_020510E8 .public sub_02051134 diff --git a/asm/include/overlay_29_022E08A0.inc b/asm/include/overlay_29_022E08A0.inc index fc52fc88..4add5afa 100644 --- a/asm/include/overlay_29_022E08A0.inc +++ b/asm/include/overlay_29_022E08A0.inc @@ -57,6 +57,6 @@ .public sub_0201B43C .public sub_0201E380 .public sub_0201F598 -.public sub_0204AE80 +.public IsTouchScreenUseAnywhere .public UnloadFile .public UnloadWte diff --git a/asm/include/overlay_29_022E37DC.inc b/asm/include/overlay_29_022E37DC.inc index 4c59cd3a..f1f31877 100644 --- a/asm/include/overlay_29_022E37DC.inc +++ b/asm/include/overlay_29_022E37DC.inc @@ -155,7 +155,7 @@ .public sub_020483B8 .public sub_020483D8 .public sub_02048400 -.public sub_0204AEA0 +.public GetTopScreenOption .public IsTeamStatsOnTopScreen .public SubstitutePlaceholderStringTags .public TOP_SCREEN_STATUS_PTR diff --git a/asm/include/overlay_29_022E9618.inc b/asm/include/overlay_29_022E9618.inc index a6f3f737..837d29c7 100644 --- a/asm/include/overlay_29_022E9618.inc +++ b/asm/include/overlay_29_022E9618.inc @@ -48,8 +48,8 @@ .public ov29_0237C888 .public RenderWeather3D .public sub_0201BAC8 -.public sub_0204AEA0 -.public sub_0204AEC0 +.public GetTopScreenOption +.public GetBottomScreenOption .public sub_02051E20 .public UpdateCamera .public UpdateMinimap diff --git a/asm/include/overlay_29_022F05B4.inc b/asm/include/overlay_29_022F05B4.inc index 869d64cb..4d0186da 100644 --- a/asm/include/overlay_29_022F05B4.inc +++ b/asm/include/overlay_29_022F05B4.inc @@ -186,9 +186,9 @@ .public sub_0201CF90 .public sub_02026268 .public sub_02027B1C -.public sub_0204AEA0 -.public sub_0204AEB0 -.public sub_0204AEC0 +.public GetTopScreenOption +.public SetTopScreenOption +.public GetBottomScreenOption .public GetDPadAttackOption .public GetCheckDirectionOption .public IsTextLogOnTopScreen diff --git a/asm/include/overlay_29_022F9744.inc b/asm/include/overlay_29_022F9744.inc index 27f28c09..56492823 100644 --- a/asm/include/overlay_29_022F9744.inc +++ b/asm/include/overlay_29_022F9744.inc @@ -52,7 +52,7 @@ .public SetPreprocessorArgsStringToName .public ShouldDisplayEntityWrapper .public sub_02017C50 -.public sub_0204AEF0 +.public GetFarOffPalsOption .public sub_02050FF8 .public sub_02052E2C .public sub_02056228 diff --git a/asm/include/overlay_29_023047DC.inc b/asm/include/overlay_29_023047DC.inc index e8cdc9da..ee493718 100644 --- a/asm/include/overlay_29_023047DC.inc +++ b/asm/include/overlay_29_023047DC.inc @@ -39,7 +39,7 @@ .public SetAndPlayAnimationForAnimationControl .public SetSpriteIdForAnimationControl .public ShouldDisplayEntityWrapper -.public sub_0204AEE0 +.public GetSpeedOption .public sub_02053038 .public TryForcedLoss .public UpdateEntityPixelPos diff --git a/asm/include/overlay_29_02336450.inc b/asm/include/overlay_29_02336450.inc index ad2ee419..a9d84e75 100644 --- a/asm/include/overlay_29_02336450.inc +++ b/asm/include/overlay_29_02336450.inc @@ -37,6 +37,6 @@ .public ov29_0237CAAC .public RandIntSafe .public SECONDARY_TERRAIN_TYPES -.public sub_0204AED0 +.public GetGridsOption .public sub_02051D8C .public sub_02051E60 diff --git a/asm/include/overlay_29_0233861C.inc b/asm/include/overlay_29_0233861C.inc index cf6f806d..e103016d 100644 --- a/asm/include/overlay_29_0233861C.inc +++ b/asm/include/overlay_29_0233861C.inc @@ -88,8 +88,8 @@ .public sub_0200C008 .public sub_0201B9F8 .public sub_0201F2A0 -.public sub_0204AEA0 -.public sub_0204AEC0 +.public GetTopScreenOption +.public GetBottomScreenOption .public IsMapShownOnEitherScreen .public TeamMemberHasExclusiveItemEffectActive .public TILESET_PROPERTIES diff --git a/asm/include/overlay_31_023833D8.inc b/asm/include/overlay_31_023833D8.inc index 9f9bf4ee..3148d00e 100644 --- a/asm/include/overlay_31_023833D8.inc +++ b/asm/include/overlay_31_023833D8.inc @@ -6,4 +6,4 @@ .public OVERLAY31_UNKNOWN_POINTER__NA_238A268 .public sub_020355DC .public sub_02035CE4 -.public sub_0204AEA0 +.public GetTopScreenOption diff --git a/asm/main_0202598C.s b/asm/main_0202598C.s index aa553af8..ff3909eb 100644 --- a/asm/main_0202598C.s +++ b/asm/main_0202598C.s @@ -769,7 +769,7 @@ sub_02025F10: ; 0x02025F10 moveq r0, #1 beq _02025FD4 _02025F5C: - bl sub_0204AE60 + bl IsTouchScreenNotOff cmp r0, #0 beq _02025FD0 ldrsb r0, [r5] diff --git a/asm/main_0202676C.s b/asm/main_0202676C.s index def120a6..f83e1a27 100644 --- a/asm/main_0202676C.s +++ b/asm/main_0202676C.s @@ -14465,7 +14465,7 @@ _020319F8: orrne r5, r5, #8 cmp r4, #0 beq _02031A30 - bl sub_0204AE60 + bl IsTouchScreenNotOff cmp r0, #0 mov r0, r4 beq _02031A2C diff --git a/asm/main_0203C774.s b/asm/main_0203C774.s index 0ccbb746..ee0c8a52 100644 --- a/asm/main_0203C774.s +++ b/asm/main_0203C774.s @@ -5036,7 +5036,7 @@ _02040AF8: b _02040F88 _02040B10: mov r4, #0 - bl sub_0204AE60 + bl IsTouchScreenNotOff cmp r0, #0 add r0, sp, #0x10 beq _02040B2C @@ -12273,7 +12273,7 @@ sub_020467B4: ; 0x020467B4 stmdb sp!, {r3, r4, lr} sub sp, sp, #0x24 mov r4, r0 - bl sub_0204AE60 + bl IsTouchScreenNotOff cmp r0, #0 moveq r0, #0 beq _020467E8 @@ -17890,83 +17890,3 @@ sub_0204ACDC: ; 0x0204ACDC .align 2, 0 _0204AE5C: .word _022AB0A0 arm_func_end sub_0204ACDC - - arm_func_start sub_0204AE60 -sub_0204AE60: ; 0x0204AE60 - ldr r0, _0204AE7C ; =_022AB0A0 - ldrb r0, [r0] - cmp r0, #1 - movhs r0, #1 - movlo r0, #0 - and r0, r0, #0xff - bx lr - .align 2, 0 -_0204AE7C: .word _022AB0A0 - arm_func_end sub_0204AE60 - - arm_func_start sub_0204AE80 -sub_0204AE80: ; 0x0204AE80 - ldr r0, _0204AE9C ; =_022AB0A0 - ldrb r0, [r0] - cmp r0, #2 - movhs r0, #1 - movlo r0, #0 - and r0, r0, #0xff - bx lr - .align 2, 0 -_0204AE9C: .word _022AB0A0 - arm_func_end sub_0204AE80 - - arm_func_start sub_0204AEA0 -sub_0204AEA0: ; 0x0204AEA0 - ldr r0, _0204AEAC ; =_022AB0A0 - ldrb r0, [r0, #2] - bx lr - .align 2, 0 -_0204AEAC: .word _022AB0A0 - arm_func_end sub_0204AEA0 - - arm_func_start sub_0204AEB0 -sub_0204AEB0: ; 0x0204AEB0 - ldr r1, _0204AEBC ; =_022AB0A0 - strb r0, [r1, #2] - bx lr - .align 2, 0 -_0204AEBC: .word _022AB0A0 - arm_func_end sub_0204AEB0 - - arm_func_start sub_0204AEC0 -sub_0204AEC0: ; 0x0204AEC0 - ldr r0, _0204AECC ; =_022AB0A0 - ldrb r0, [r0, #1] - bx lr - .align 2, 0 -_0204AECC: .word _022AB0A0 - arm_func_end sub_0204AEC0 - - arm_func_start sub_0204AED0 -sub_0204AED0: ; 0x0204AED0 - ldr r0, _0204AEDC ; =_022AB0A0 - ldrb r0, [r0, #3] - bx lr - .align 2, 0 -_0204AEDC: .word _022AB0A0 - arm_func_end sub_0204AED0 - - arm_func_start sub_0204AEE0 -sub_0204AEE0: ; 0x0204AEE0 - ldr r0, _0204AEEC ; =_022AB0A0 - ldrb r0, [r0, #4] - bx lr - .align 2, 0 -_0204AEEC: .word _022AB0A0 - arm_func_end sub_0204AEE0 - - arm_func_start sub_0204AEF0 -sub_0204AEF0: ; 0x0204AEF0 - ldr r0, _0204AEFC ; =_022AB0A0 - ldrb r0, [r0, #5] - bx lr - .align 2, 0 -_0204AEFC: .word _022AB0A0 - arm_func_end sub_0204AEF0 diff --git a/asm/overlay_01.s b/asm/overlay_01.s index dbc05ec0..d3202416 100644 --- a/asm/overlay_01.s +++ b/asm/overlay_01.s @@ -16774,7 +16774,7 @@ ov01_02336B50: ; 0x02336B50 cmpge r0, #6 mvnge r0, #0 strgeh r0, [r1, #0xe4] - bl sub_0204AE60 + bl IsTouchScreenNotOff cmp r0, #0 moveq r0, #0 beq _02337000 @@ -20766,7 +20766,7 @@ _02339B54: add r1, sp, #2 mov r0, #0 bl GetHeldButtons - bl sub_0204AE60 + bl IsTouchScreenNotOff cmp r0, #0 moveq r0, #0 beq _02339BC4 @@ -20859,7 +20859,7 @@ _02339CDC: add r1, sp, #0 mov r0, #0 bl GetHeldButtons - bl sub_0204AE60 + bl IsTouchScreenNotOff cmp r0, #0 moveq r0, #0 beq _02339D24 @@ -21212,7 +21212,7 @@ ov01_0233A130: ; 0x0233A130 add r1, sp, #0 mov r0, #0 bl GetHeldButtons - bl sub_0204AE60 + bl IsTouchScreenNotOff cmp r0, #0 moveq r0, #0 beq _0233A184 @@ -21395,7 +21395,7 @@ ov01_0233A390: ; 0x0233A390 add r1, sp, #0 mov r0, #0 bl GetHeldButtons - bl sub_0204AE60 + bl IsTouchScreenNotOff cmp r0, #0 moveq r0, #0 beq _0233A3E4 diff --git a/asm/overlay_03_0233CA98.s b/asm/overlay_03_0233CA98.s index ceab3c47..5999061b 100644 --- a/asm/overlay_03_0233CA98.s +++ b/asm/overlay_03_0233CA98.s @@ -2088,7 +2088,7 @@ _0233E5F8: add r1, sp, #6 mov r0, #0 bl GetPressedButtons - bl sub_0204AE60 + bl IsTouchScreenNotOff cmp r0, #0 add r0, sp, #0x10 beq _0233E61C @@ -6822,7 +6822,7 @@ _023427CC: add r1, sp, #0x14 mov r0, #0 bl GetHeldButtons - bl sub_0204AE60 + bl IsTouchScreenNotOff cmp r0, #0 moveq r0, #0 beq _02342818 @@ -8132,7 +8132,7 @@ _02343AC4: add r1, sp, #0x12 mov r0, #0 bl GetHeldButtons - bl sub_0204AE60 + bl IsTouchScreenNotOff cmp r0, #0 moveq r0, #0 beq _02343B08 diff --git a/asm/overlay_05.s b/asm/overlay_05.s index d9acb46c..c1ec6f2c 100644 --- a/asm/overlay_05.s +++ b/asm/overlay_05.s @@ -2561,7 +2561,7 @@ _0233ED24: add r1, sp, #0xe mov r0, #0 bl GetHeldButtons - bl sub_0204AE60 + bl IsTouchScreenNotOff cmp r0, #0 moveq r0, #0 beq _0233ED6C @@ -2842,7 +2842,7 @@ _0233F13C: add r1, sp, #0xc mov r0, #0 bl GetHeldButtons - bl sub_0204AE60 + bl IsTouchScreenNotOff cmp r0, #0 moveq r0, #0 beq _0233F184 diff --git a/asm/overlay_06.s b/asm/overlay_06.s index a39271c0..a8ed66d5 100644 --- a/asm/overlay_06.s +++ b/asm/overlay_06.s @@ -1847,7 +1847,7 @@ _0233E248: add r1, sp, #4 mov r0, #0 bl GetHeldButtons - bl sub_0204AE60 + bl IsTouchScreenNotOff cmp r0, #0 moveq r0, #0 beq _0233E27C @@ -2037,7 +2037,7 @@ _0233E508: add r1, sp, #4 mov r0, #0 bl GetHeldButtons - bl sub_0204AE60 + bl IsTouchScreenNotOff cmp r0, #0 moveq r0, #0 beq _0233E53C diff --git a/asm/overlay_11.s b/asm/overlay_11.s index b85b2933..e88fa025 100644 --- a/asm/overlay_11.s +++ b/asm/overlay_11.s @@ -13021,7 +13021,7 @@ _022E7548: add r1, sp, #8 mov r0, #0 bl GetPressedButtons - bl sub_0204AE60 + bl IsTouchScreenNotOff cmp r0, #0 add r0, sp, #0x68 beq _022E756C @@ -14994,7 +14994,7 @@ _022E8F1C: mov r0, fp add r1, sp, #0 bl GetPressedButtons - bl sub_0204AE60 + bl IsTouchScreenNotOff cmp r0, #0 add r0, sp, #0x10 beq _022E8F4C @@ -17216,7 +17216,7 @@ _022EAB38: moveq r0, #5 streq r0, [r8] beq _022EAB84 - bl sub_0204AEE0 + bl GetSpeedOption cmp r0, #0 movne r0, #4 strne r0, [r8] @@ -17226,7 +17226,7 @@ _022EAB84: ldrh r0, [sp, #6] bl ov11_022EAF70 strb r0, [r7] - bl sub_0204AE80 + bl IsTouchScreenUseAnywhere cmp r0, #0 beq _022EAE7C ldrsb r1, [r7] @@ -17345,7 +17345,7 @@ _022EAD10: mov r0, #2 b _022EAF54 _022EAD48: - bl sub_0204AEE0 + bl GetSpeedOption cmp r0, #0 movne r0, #0x10 moveq r0, #0xf @@ -17389,7 +17389,7 @@ _022EADD4: moveq r0, #0xe streq r0, [r8] beq _022EAE00 - bl sub_0204AEE0 + bl GetSpeedOption cmp r0, #0 movne r0, #0xd strne r0, [r8] diff --git a/asm/overlay_11_022EE5E4.s b/asm/overlay_11_022EE5E4.s index 5c38a0ac..2920b98c 100644 --- a/asm/overlay_11_022EE5E4.s +++ b/asm/overlay_11_022EE5E4.s @@ -37613,7 +37613,7 @@ _0230CFFC: .word ov11_0230D71C arm_func_start ov11_0230D000 ov11_0230D000: ; 0x0230D000 stmdb sp!, {r3, lr} - bl sub_0204AEA0 + bl GetTopScreenOption ldr r1, _0230D084 ; =ov11_02324DBC mov r2, #1 ldr r1, [r1] @@ -37660,7 +37660,7 @@ _0230D084: .word ov11_02324DBC arm_func_start ov11_0230D088 ov11_0230D088: ; 0x0230D088 stmdb sp!, {r3, lr} - bl sub_0204AEA0 + bl GetTopScreenOption cmp r0, #4 addls pc, pc, r0, lsl #2 b _0230D0F4 diff --git a/asm/overlay_14.s b/asm/overlay_14.s index 447f947f..3d69cb50 100644 --- a/asm/overlay_14.s +++ b/asm/overlay_14.s @@ -3069,7 +3069,7 @@ SentryStateGetUserChoice: ; 0x0238CA94 add r1, sp, #0 mov r0, r4 bl GetPressedButtons - bl sub_0204AE60 + bl IsTouchScreenNotOff cmp r0, #0 beq _0238CBCC add r0, sp, #4 diff --git a/asm/overlay_29_022DEBA4.s b/asm/overlay_29_022DEBA4.s index 76480da4..0aa06511 100644 --- a/asm/overlay_29_022DEBA4.s +++ b/asm/overlay_29_022DEBA4.s @@ -863,7 +863,7 @@ _022DF7B4: bl ov29_022EA428 mov r0, #1 bl ov29_0233A15C - bl sub_0204AEA0 + bl GetTopScreenOption cmp r0, #3 bne _022DF7EC mov r0, #1 diff --git a/asm/overlay_29_022E08A0.s b/asm/overlay_29_022E08A0.s index 27687d07..f67b9a97 100644 --- a/asm/overlay_29_022E08A0.s +++ b/asm/overlay_29_022E08A0.s @@ -258,7 +258,7 @@ _022E0B5C: .word ov29_0237C694 arm_func_start ov29_022E0B60 ov29_022E0B60: ; 0x022E0B60 stmdb sp!, {r3, lr} - bl sub_0204AE80 + bl IsTouchScreenUseAnywhere cmp r0, #0 beq _022E0C18 ldr r0, _022E0C24 ; =ov29_0237C6A4 diff --git a/asm/overlay_29_022E37DC.s b/asm/overlay_29_022E37DC.s index 5ae88714..38943dc7 100644 --- a/asm/overlay_29_022E37DC.s +++ b/asm/overlay_29_022E37DC.s @@ -5934,7 +5934,7 @@ ov29_022E8054: ; 0x022E8054 ldmeqia sp!, {r3, pc} mov r1, #0 strb r1, [r0, #0x10] - bl sub_0204AEA0 + bl GetTopScreenOption cmp r0, #3 ldrne r0, _022E80CC ; =TOP_SCREEN_STATUS_PTR movne r1, #0 @@ -6074,7 +6074,7 @@ ov29_022E81F8: ; 0x022E81F8 bl ov29_022E8104 ldmia sp!, {r3, pc} _022E8210: - bl sub_0204AEA0 + bl GetTopScreenOption cmp r0, #1 bne _022E8238 ldr r0, _022E8240 ; =TOP_SCREEN_STATUS_PTR @@ -6094,7 +6094,7 @@ _022E8240: .word TOP_SCREEN_STATUS_PTR arm_func_start ov29_022E8244 ov29_022E8244: ; 0x022E8244 stmdb sp!, {r3, lr} - bl sub_0204AEA0 + bl GetTopScreenOption cmp r0, #4 ldreq r0, _022E826C ; =TOP_SCREEN_STATUS_PTR ldreq r0, [r0] @@ -6505,7 +6505,7 @@ _022E8704: .word TOP_SCREEN_STATUS_PTR arm_func_start ov29_022E8708 ov29_022E8708: ; 0x022E8708 stmdb sp!, {r3, lr} - bl sub_0204AEA0 + bl GetTopScreenOption cmp r0, #3 bne _022E8724 mov r0, #3 @@ -6581,7 +6581,7 @@ _022E87D8: .word TOP_SCREEN_STATUS_PTR arm_func_start ov29_022E87DC ov29_022E87DC: ; 0x022E87DC stmdb sp!, {r3, lr} - bl sub_0204AEA0 + bl GetTopScreenOption ldr r1, _022E87F8 ; =ov29_023515E8 mov r0, r0, lsl #1 ldrsh r0, [r1, r0] diff --git a/asm/overlay_29_022E9618.s b/asm/overlay_29_022E9618.s index 56d8bd86..d897e2d3 100644 --- a/asm/overlay_29_022E9618.s +++ b/asm/overlay_29_022E9618.s @@ -865,7 +865,7 @@ _022EA0F8: bl FlashLeaderIcon b _022EA154 _022EA140: - bl sub_0204AEA0 + bl GetTopScreenOption cmp r0, #3 bne _022EA154 mov r0, #1 @@ -1198,7 +1198,7 @@ _022EA540: beq _022EA614 mov r0, #0 bl ov29_0234B1A4 - bl sub_0204AEC0 + bl GetBottomScreenOption cmp r0, #0 beq _022EA614 mov r0, #0 diff --git a/asm/overlay_29_022F05B4.s b/asm/overlay_29_022F05B4.s index 35452462..cd65826b 100644 --- a/asm/overlay_29_022F05B4.s +++ b/asm/overlay_29_022F05B4.s @@ -577,7 +577,7 @@ _022F0C90: ov29_022F0C98: ; 0x022F0C98 stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} mov sl, r0 - bl sub_0204AEA0 + bl GetTopScreenOption mov r7, r0 mov r0, #4 mov r1, #0x2f @@ -611,7 +611,7 @@ ov29_022F0C98: ; 0x022F0C98 bl ov29_02338F58 cmp sl, #0 bne _022F0D24 - bl sub_0204AEC0 + bl GetBottomScreenOption cmp r0, #0 bne _022F0D44 _022F0D24: @@ -693,7 +693,7 @@ _022F0E18: _022F0E30: cmp sl, #0 bne _022F0E44 - bl sub_0204AEC0 + bl GetBottomScreenOption cmp r0, #0 bne _022F0E64 _022F0E44: @@ -721,7 +721,7 @@ _022F0E64: #else strb r2, [r1, #0x249] #endif - bl sub_0204AEB0 + bl SetTopScreenOption ldr r0, _022F0ECC ; =ov29_0237CFBB mov r1, #1 strb r1, [r0] diff --git a/asm/overlay_29_022F9744.s b/asm/overlay_29_022F9744.s index 4c7ce9e5..3d0e10e1 100644 --- a/asm/overlay_29_022F9744.s +++ b/asm/overlay_29_022F9744.s @@ -98,7 +98,7 @@ ov29_022F9840: ; 0x022F9840 movne r0, r4 and r4, r0, #0xff _022F987C: - bl sub_0204AEF0 + bl GetFarOffPalsOption cmp r0, #0 moveq r4, #0 cmp r4, #0 diff --git a/asm/overlay_29_023047DC.s b/asm/overlay_29_023047DC.s index e8c03ca7..1c7feaa6 100644 --- a/asm/overlay_29_023047DC.s +++ b/asm/overlay_29_023047DC.s @@ -463,7 +463,7 @@ ov29_02304D20: ; 0x02304D20 movge r0, #0 strgeh r0, [sb, #0x4a] ldmgeia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - bl sub_0204AEE0 + bl GetSpeedOption cmp r0, #0 movne r1, #2 ldr r2, _02304FD4 ; =ov29_0237C9CC @@ -497,7 +497,7 @@ ov29_02304D20: ; 0x02304D20 ldr r1, [r2] mul r0, r1, r0 str r0, [r7, #0x14] - bl sub_0204AEE0 + bl GetSpeedOption cmp r0, #0 movne r1, #2 ldr r5, _02304FD4 ; =ov29_0237C9CC @@ -652,7 +652,7 @@ DisplayActions: ; 0x02304FE0 mov sl, r0 mov r7, r6 strb r6, [r1] - bl sub_0204AEE0 + bl GetSpeedOption cmp r0, #0 mov r5, #0 movne r1, #2 diff --git a/asm/overlay_29_02336450.s b/asm/overlay_29_02336450.s index eac35a8a..999a33ad 100644 --- a/asm/overlay_29_02336450.s +++ b/asm/overlay_29_02336450.s @@ -1275,7 +1275,7 @@ _02337598: _023375A0: cmp r0, #6 bne _023375CC - bl sub_0204AED0 + bl GetGridsOption cmp r0, #0 #ifdef JAPAN addne r0, r5, #0x9a @@ -1392,7 +1392,7 @@ _02337700: _02337708: cmp r0, #6 bne _02337724 - bl sub_0204AED0 + bl GetGridsOption cmp r0, #0 ldrne sl, [sp, #0x10] ldreq sl, [sp, #0x14] diff --git a/asm/overlay_29_0233861C.s b/asm/overlay_29_0233861C.s index 014a8ef6..bc3b17fb 100644 --- a/asm/overlay_29_0233861C.s +++ b/asm/overlay_29_0233861C.s @@ -1410,11 +1410,11 @@ _0233970C: moveq r0, r0, lsl #0x10 moveq r5, r0, asr #0x10 _02339734: - bl sub_0204AEA0 + bl GetTopScreenOption cmp r0, #3 addeq r0, r5, #0x80 streqh r0, [sp, #0x2e] - bl sub_0204AEC0 + bl GetBottomScreenOption cmp r0, #0 bne _02339770 ldr r0, _023398CC ; =ov29_0235376C @@ -1426,7 +1426,7 @@ _02339734: streqh r0, [sp, #0x2c] b _0233979C _02339770: - bl sub_0204AEC0 + bl GetBottomScreenOption cmp r0, #1 addeq r0, r5, #0x40 streqh r0, [sp, #0x2c] @@ -1569,7 +1569,7 @@ ov29_0233992C: ; 0x0233992C cmpne r0, #0xc moveq r4, #1 _0233996C: - bl sub_0204AEA0 + bl GetTopScreenOption cmp r0, #3 moveq r5, #1 bl GetMinimapData @@ -1687,7 +1687,7 @@ FlashLeaderIcon: ; 0x02339A24 ldrb r0, [r0, #0x448] cmp r0, #0 beq _02339BC0 - bl sub_0204AEA0 + bl GetTopScreenOption cmp r0, #3 bne _02339BC0 ldrh r0, [sp, #4] @@ -1744,7 +1744,7 @@ _02339BC0: ldrb r0, [r0, #0x447] cmp r0, #0 beq _02339CB0 - bl sub_0204AEC0 + bl GetBottomScreenOption cmp r0, #0 beq _02339CB0 ldrh r0, [sp, #4] @@ -1839,7 +1839,7 @@ _02339D10: add r6, r6, #1 cmp r6, #0x20 blt _02339D0C - bl sub_0204AEC0 + bl GetBottomScreenOption cmp r0, #0 beq _02339D54 bl GetMinimapData @@ -2024,7 +2024,7 @@ _02339F84: .word sub_0200B330 ov29_02339F88: ; 0x02339F88 stmdb sp!, {r4, lr} mov r4, r0 - bl sub_0204AEC0 + bl GetBottomScreenOption cmp r0, #0 beq _02339FAC mov r1, r4 @@ -2048,7 +2048,7 @@ _02339FCC: .word ov29_0235376C ov29_02339FD0: ; 0x02339FD0 stmdb sp!, {r4, lr} mov r4, r0 - bl sub_0204AEA0 + bl GetTopScreenOption cmp r0, #3 ldmneia sp!, {r4, pc} mov r1, r4 @@ -2062,7 +2062,7 @@ ov29_02339FF4: ; 0x02339FF4 stmdb sp!, {r4, lr} mov r4, r0 bl ov29_02339F88 - bl sub_0204AEA0 + bl GetTopScreenOption cmp r0, #3 ldmneia sp!, {r4, pc} mov r1, r4 @@ -2138,7 +2138,7 @@ ov29_0233A0E8: ; 0x0233A0E8 mov r4, r0 cmp r1, #1 bne _0233A114 - bl sub_0204AEA0 + bl GetTopScreenOption cmp r0, #3 ldmneia sp!, {r4, pc} mov r0, r4 @@ -2148,7 +2148,7 @@ ov29_0233A0E8: ; 0x0233A0E8 _0233A114: cmp r1, #0 ldmneia sp!, {r4, pc} - bl sub_0204AEC0 + bl GetBottomScreenOption cmp r0, #0 beq _0233A138 mov r0, r4 @@ -2172,14 +2172,14 @@ _0233A158: .word ov29_0235376C ov29_0233A15C: ; 0x0233A15C stmdb sp!, {r4, lr} mov r4, r0 - bl sub_0204AEA0 + bl GetTopScreenOption cmp r0, #3 bne _0233A17C mov r0, r4 mov r1, #1 bl ov29_0233A01C _0233A17C: - bl sub_0204AEC0 + bl GetBottomScreenOption cmp r0, #0 beq _0233A198 mov r0, r4 diff --git a/asm/overlay_31_023833D8.s b/asm/overlay_31_023833D8.s index 1127e3b7..4e2491e8 100644 --- a/asm/overlay_31_023833D8.s +++ b/asm/overlay_31_023833D8.s @@ -20,7 +20,7 @@ ov31_023833D8: ; 0x023833D8 mov r0, #0x100 strb ip, [r3] bl sub_020355DC - bl sub_0204AEA0 + bl GetTopScreenOption ldr r1, _02383430 ; =ov31_0238A2A8 strb r0, [r1] add sp, sp, #0x98 diff --git a/include/enums.h b/include/enums.h index 6d12bdf9..298fe7ea 100644 --- a/include/enums.h +++ b/include/enums.h @@ -3495,4 +3495,10 @@ enum bottom_screen_option { BOTTOM_SCREEN_SHADED_MAP = 2 }; +enum touch_screen_option { + TOUCH_SCREEN_OFF = 0, + TOUCH_SCREEN_MENU_ONLY = 1, + TOUCH_SCREEN_USE_ANYWHERE = 2 +}; + #endif //PMDSKY_ENUMS_H diff --git a/include/options.h b/include/options.h index 5653305b..53ecbc9c 100644 --- a/include/options.h +++ b/include/options.h @@ -17,6 +17,14 @@ struct options { u8 frame_type; }; +bool8 IsTouchScreenNotOff(); +bool8 IsTouchScreenUseAnywhere(); +u8 GetTopScreenOption(); +void SetTopScreenOption(u8 new_ts); +u8 GetBottomScreenOption(); +u8 GetGridsOption(); +u8 GetSpeedOption(); +u8 GetFarOffPalsOption(); u8 GetDamageTurnOption(); u8 GetDPadAttackOption(); u8 GetCheckDirectionOption(); diff --git a/src/options.c b/src/options.c index fe247e51..3e80b31b 100644 --- a/src/options.c +++ b/src/options.c @@ -3,6 +3,44 @@ extern struct options _022AB0A0; +bool8 IsTouchScreenNotOff() { + if (_022AB0A0.touch_screen >= TOUCH_SCREEN_MENU_ONLY) { + return TRUE; + } + return FALSE; +} + +bool8 IsTouchScreenUseAnywhere() { + if (_022AB0A0.touch_screen >= TOUCH_SCREEN_USE_ANYWHERE) { + return TRUE; + } + return FALSE; +} + +u8 GetTopScreenOption() { + return _022AB0A0.top_screen; +} + +void SetTopScreenOption(u8 new_ts) { + _022AB0A0.top_screen = new_ts; +} + +u8 GetBottomScreenOption() { + return _022AB0A0.bottom_screen; +} + +u8 GetGridsOption() { + return _022AB0A0.grids; +} + +u8 GetSpeedOption() { + return _022AB0A0.speed; +} + +u8 GetFarOffPalsOption() { + return _022AB0A0.far_off_pals; +} + u8 GetDamageTurnOption() { return _022AB0A0.damage_turn; } diff --git a/src/overlay_31_02383328.c b/src/overlay_31_02383328.c index 6ab34b73..17685b79 100644 --- a/src/overlay_31_02383328.c +++ b/src/overlay_31_02383328.c @@ -3,13 +3,13 @@ extern u8 OVERLAY31_UNKNOWN_POINTER__NA_238A268[]; extern u8 ov31_0238A2A8; -extern u8 sub_0204AEA0(void (*f)(void)); +extern u8 GetTopScreenOption(void (*f)(void)); extern void ov29_022E8708(); extern u32 ov29_022E87DC(); void ov31_02383328(void (*f)(void)) { - if (sub_0204AEA0(f) != ov31_0238A2A8) { + if (GetTopScreenOption(f) != ov31_0238A2A8) { ov29_022E8708(); OVERLAY31_UNKNOWN_POINTER__NA_238A268[0] = 1; }