Decomp options funcs

This commit is contained in:
slaw-22 2025-12-20 17:21:37 +00:00 committed by slaw-22
parent 4a78adb0fa
commit 852ad2c5da
18 changed files with 133 additions and 111 deletions

View File

@ -465,6 +465,7 @@
.public sub_0203931C
.public DebugPrintEventFlagSize
.public SetSpecialEpisodeOpenOld
.public sub_0204AF98
.public sub_0204CDB8
.public sub_0204E154
.public sub_0204E19C

View File

@ -0,0 +1,2 @@
#pragma once
.public _022AB0A0

View File

@ -156,7 +156,7 @@
.public sub_020483D8
.public sub_02048400
.public sub_0204AEA0
.public sub_0204AF58
.public IsTeamStatsOnTopScreen
.public SubstitutePlaceholderStringTags
.public TOP_SCREEN_STATUS_PTR
.public UnloadFile

View File

@ -189,9 +189,9 @@
.public sub_0204AEA0
.public sub_0204AEB0
.public sub_0204AEC0
.public sub_0204AF10
.public sub_0204AF20
.public sub_0204AF78
.public GetDPadAttackOption
.public GetCheckDirectionOption
.public IsTextLogOnTopScreen
.public SubstitutePlaceholderStringTags
.public TryAddMonsterToActiveTeam
.public TryLeaderItemPickUp

View File

@ -106,7 +106,7 @@
.public SetPokemonBattled
.public ShouldDisplayEntityWrapper
.public SpawnDroppedItemWrapper
.public sub_0204AF00
.public GetDamageTurnOption
.public SubInitMonster
.public SubstitutePlaceholderStringTags
.public TryEndPetrifiedOrSleepStatus

View File

@ -90,7 +90,7 @@
.public sub_0201F2A0
.public sub_0204AEA0
.public sub_0204AEC0
.public sub_0204AF30
.public IsMapShownOnEitherScreen
.public TeamMemberHasExclusiveItemEffectActive
.public TILESET_PROPERTIES
.public UnloadFile

View File

@ -62,7 +62,7 @@
.public sub_0200B3D4
.public sub_020282F4
.public sub_0202AAE8
.public sub_0204AF20
.public GetCheckDirectionOption
.public TeamMenu
.public TryPointCameraToMonster
.public UnloadOverlay

View File

@ -17970,91 +17970,3 @@ sub_0204AEF0: ; 0x0204AEF0
.align 2, 0
_0204AEFC: .word _022AB0A0
arm_func_end sub_0204AEF0
arm_func_start sub_0204AF00
sub_0204AF00: ; 0x0204AF00
ldr r0, _0204AF0C ; =_022AB0A0
ldrb r0, [r0, #6]
bx lr
.align 2, 0
_0204AF0C: .word _022AB0A0
arm_func_end sub_0204AF00
arm_func_start sub_0204AF10
sub_0204AF10: ; 0x0204AF10
ldr r0, _0204AF1C ; =_022AB0A0
ldrb r0, [r0, #7]
bx lr
.align 2, 0
_0204AF1C: .word _022AB0A0
arm_func_end sub_0204AF10
arm_func_start sub_0204AF20
sub_0204AF20: ; 0x0204AF20
ldr r0, _0204AF2C ; =_022AB0A0
ldrb r0, [r0, #8]
bx lr
.align 2, 0
_0204AF2C: .word _022AB0A0
arm_func_end sub_0204AF20
arm_func_start sub_0204AF30
sub_0204AF30: ; 0x0204AF30
ldr r0, _0204AF54 ; =_022AB0A0
ldrb r1, [r0, #1]
cmp r1, #1
cmpne r1, #2
ldrneb r0, [r0, #2]
cmpne r0, #3
moveq r0, #1
movne r0, #0
bx lr
.align 2, 0
_0204AF54: .word _022AB0A0
arm_func_end sub_0204AF30
arm_func_start sub_0204AF58
sub_0204AF58: ; 0x0204AF58
ldr r0, _0204AF74 ; =_022AB0A0
ldrb r0, [r0, #2]
cmp r0, #1
moveq r0, #1
movne r0, #0
and r0, r0, #0xff
bx lr
.align 2, 0
_0204AF74: .word _022AB0A0
arm_func_end sub_0204AF58
arm_func_start sub_0204AF78
sub_0204AF78: ; 0x0204AF78
ldr r0, _0204AF94 ; =_022AB0A0
ldrb r0, [r0, #2]
cmp r0, #2
moveq r0, #1
movne r0, #0
and r0, r0, #0xff
bx lr
.align 2, 0
_0204AF94: .word _022AB0A0
arm_func_end sub_0204AF78
arm_func_start sub_0204AF98
sub_0204AF98: ; 0x0204AF98
ldr r1, _0204AFA8 ; =_022AB0A0
ldrb r1, [r1, #9]
strb r1, [r0]
bx lr
.align 2, 0
_0204AFA8: .word _022AB0A0
arm_func_end sub_0204AF98
arm_func_start sub_0204AFAC
sub_0204AFAC: ; 0x0204AFAC
ldrb r1, [r0]
ldr r0, _0204AFBC ; =_022AB0A0
strb r1, [r0, #9]
bx lr
.align 2, 0
_0204AFBC: .word _022AB0A0
arm_func_end sub_0204AFAC

24
asm/main_0204AF98.s Normal file
View File

@ -0,0 +1,24 @@
.include "asm/macros.inc"
.include "main_0204AF98.inc"
.text
arm_func_start sub_0204AF98
sub_0204AF98: ; 0x0204AF98
ldr r1, _0204AFA8 ; =_022AB0A0
ldrb r1, [r1, #9]
strb r1, [r0]
bx lr
.align 2, 0
_0204AFA8: .word _022AB0A0
arm_func_end sub_0204AF98
arm_func_start sub_0204AFAC
sub_0204AFAC: ; 0x0204AFAC
ldrb r1, [r0]
ldr r0, _0204AFBC ; =_022AB0A0
strb r1, [r0, #9]
bx lr
.align 2, 0
_0204AFBC: .word _022AB0A0
arm_func_end sub_0204AFAC

View File

@ -6068,7 +6068,7 @@ FreeTeamStatsWrapper: ; 0x022E81E8
arm_func_start ov29_022E81F8
ov29_022E81F8: ; 0x022E81F8
stmdb sp!, {r3, lr}
bl sub_0204AF58
bl IsTeamStatsOnTopScreen
cmp r0, #0
bne _022E8210
bl ov29_022E8104

View File

@ -1311,7 +1311,7 @@ _022F16A4:
mov r2, #4
bl ChangeMonsterAnimation
_022F16F4:
bl sub_0204AF10
bl GetDPadAttackOption
cmp r0, #0
moveq r1, #0
beq _022F17E0
@ -1618,7 +1618,7 @@ _022F1B5C:
_022F1B64:
cmp r3, #4
bne _022F1B9C
bl sub_0204AF20
bl GetCheckDirectionOption
cmp r0, #0
beq _022F1B8C
mov r0, r6
@ -1663,7 +1663,7 @@ _022F1BE0:
bl sub_02006B70
b _022F2970
_022F1C04:
bl sub_0204AF20
bl GetCheckDirectionOption
cmp r0, #0
beq _022F1C28
add r1, sb, #0x124 + SET_LEADER_ACTION_OFFSET
@ -1825,13 +1825,13 @@ _022F1E3C:
ldrh r0, [r0, #2]
tst r0, #2
beq _022F1E90
bl sub_0204AF78
bl IsTextLogOnTopScreen
mov r0, #4
bl PlaySeVolumeWrapper
mov r0, #0
mov r1, #1
bl OpenMessageLog
bl sub_0204AF78
bl IsTextLogOnTopScreen
cmp r0, #0
beq _022F1E88
bl ov29_0234BB38
@ -2026,7 +2026,7 @@ _022F2118:
movs fp, r0
bmi _022F2180
mov r8, #1
bl sub_0204AF20
bl GetCheckDirectionOption
cmp r0, #0
beq _022F2150
mov r0, r6
@ -3904,7 +3904,7 @@ ov29_022F3B98: ; 0x022F3B98
mov r8, r2
mov fp, r4
str r4, [sp]
bl sub_0204AF20
bl GetCheckDirectionOption
cmp r0, #0
moveq r0, r4
beq _022F3E88

View File

@ -604,7 +604,7 @@ _0230A24C:
mov r6, #0
cmp r0, #0
beq _0230A2CC
bl sub_0204AF00
bl GetDamageTurnOption
cmp r0, #0
beq _0230A2CC
mov r0, sb
@ -1708,7 +1708,7 @@ _02309820:
mov sl, #0
cmp r0, #0
beq _023098A0
bl sub_0204AF00
bl GetDamageTurnOption
cmp r0, #0
beq _023098A0
mov r0, r7

View File

@ -1133,7 +1133,7 @@ _02339318:
streq r8, [sp, #0x14]
moveq r8, #1
_02339344:
bl sub_0204AF30
bl IsMapShownOnEitherScreen
cmp r0, #0
ldreq r0, _023398CC ; =ov29_0235376C
ldreqb r1, [r0, #1]

View File

@ -206,7 +206,7 @@ _0234E0B8:
cmpne r0, #0x27
cmpne r0, #0x41
bne _0234E0EC
bl sub_0204AF20
bl GetCheckDirectionOption
cmp r0, #0
beq _0234E140
bl GetLeaderAction
@ -218,7 +218,7 @@ _0234E0B8:
_0234E0EC:
cmp r0, #0x31
bne _0234E140
bl sub_0204AF20
bl GetCheckDirectionOption
cmp r0, #0
beq _0234E140
bl GetLeaderAction
@ -479,7 +479,7 @@ _0234E45C:
cmp r0, #0x15
bne _0234E4CC
_0234E48C:
bl sub_0204AF20
bl GetCheckDirectionOption
cmp r0, #0
beq _0234E4CC
bl GetLeaderAction
@ -625,7 +625,7 @@ _0234E698:
cmpne r0, #0x27
cmpne r0, #0x41
bne _0234E6CC
bl sub_0204AF20
bl GetCheckDirectionOption
cmp r0, #0
beq _0234E720
bl GetLeaderAction
@ -637,7 +637,7 @@ _0234E698:
_0234E6CC:
cmp r0, #0x31
bne _0234E720
bl sub_0204AF20
bl GetCheckDirectionOption
cmp r0, #0
beq _0234E720
bl GetLeaderAction

View File

@ -3481,4 +3481,18 @@ enum compare_operation { // Taken from pmd-red's FlagJudgeOperation
CMP_BIT_SET,
};
enum top_screen_options {
TOP_SCREEN_CONTROLS = 0,
TOP_SCREEN_TEAM_STATS = 1,
TOP_SCREEN_TEXT_LOG = 2,
TOP_SCREEN_MAP_AND_TEAM = 3,
TOP_SCREEN_JOB = 4
};
enum bottom_screen_option {
BOTTOM_SCREEN_NO_MAP = 0,
BOTTOM_SCREEN_CLEAR_MAP = 1,
BOTTOM_SCREEN_SHADED_MAP = 2
};
#endif //PMDSKY_ENUMS_H

27
include/options.h Normal file
View File

@ -0,0 +1,27 @@
#ifndef PMDSKY_OPTIONS
#define PMDSKY_OPTIONS
#include "util.h"
// See enums for values
struct options {
u8 touch_screen;
u8 bottom_screen;
u8 top_screen;
u8 unk0;
u8 speed;
u8 far_off_pals;
u8 damage_turn;
u8 d_pad_attack;
u8 check_direction;
u8 unk1;
};
u8 GetDamageTurnOption();
u8 GetDPadAttackOption();
u8 GetCheckDirectionOption();
bool8 IsMapShownOnEitherScreen();
bool8 IsTeamStatsOnTopScreen();
bool8 IsTextLogOnTopScreen();
#endif //PMDSKY_OPTIONS

View File

@ -78,6 +78,8 @@ Static main
Object asm/main_02034974.o
Object src/main_0203C760.o
Object asm/main_0203C774.o
Object src/options.o
Object asm/main_0204AF98.o
Object src/game_mode.o
Object src/script_variable.o
Object asm/main_rodata_0209CECC.o

40
src/options.c Normal file
View File

@ -0,0 +1,40 @@
#include "enums.h"
#include "options.h"
extern struct options _022AB0A0;
u8 GetDamageTurnOption() {
return _022AB0A0.damage_turn;
}
u8 GetDPadAttackOption() {
return _022AB0A0.d_pad_attack;
}
u8 GetCheckDirectionOption() {
return _022AB0A0.check_direction;
}
bool8 IsMapShownOnEitherScreen() {
if (_022AB0A0.bottom_screen == BOTTOM_SCREEN_CLEAR_MAP ||
_022AB0A0.bottom_screen == BOTTOM_SCREEN_SHADED_MAP ||
_022AB0A0.top_screen == TOP_SCREEN_MAP_AND_TEAM) {
return TRUE;
}
return FALSE;
}
bool8 IsTeamStatsOnTopScreen() {
if (_022AB0A0.top_screen == TOP_SCREEN_TEAM_STATS) {
return TRUE;
}
return FALSE;
}
bool8 IsTextLogOnTopScreen() {
if (_022AB0A0.top_screen == TOP_SCREEN_TEXT_LOG) {
return TRUE;
} else {
return FALSE;
}
}