mirror of
https://github.com/pret/pmd-sky.git
synced 2026-04-26 08:35:04 -05:00
Merge pull request #233 from slaw-22/Options5
Decomp SetOptions, GetOptions and InitOptions
This commit is contained in:
commit
fddbd26924
|
|
@ -225,8 +225,8 @@
|
||||||
.public sub_0203C9A0
|
.public sub_0203C9A0
|
||||||
.public sub_02048078
|
.public sub_02048078
|
||||||
.public sub_0204964C
|
.public sub_0204964C
|
||||||
.public sub_0204AB78
|
.public GetOptions
|
||||||
.public sub_0204AB98
|
.public SetOptions
|
||||||
.public CopyFrameTypeOption
|
.public CopyFrameTypeOption
|
||||||
.public SetFrameTypeOption
|
.public SetFrameTypeOption
|
||||||
.public sub_0204DA1C
|
.public sub_0204DA1C
|
||||||
|
|
|
||||||
|
|
@ -467,6 +467,7 @@
|
||||||
.public DebugPrintEventFlagSize
|
.public DebugPrintEventFlagSize
|
||||||
.public SetSpecialEpisodeOpenOld
|
.public SetSpecialEpisodeOpenOld
|
||||||
.public CopyFrameTypeOption
|
.public CopyFrameTypeOption
|
||||||
|
.public InitOptions
|
||||||
.public sub_0204CDB8
|
.public sub_0204CDB8
|
||||||
.public sub_0204E154
|
.public sub_0204E154
|
||||||
.public sub_0204E19C
|
.public sub_0204E19C
|
||||||
|
|
|
||||||
|
|
@ -480,7 +480,7 @@
|
||||||
.public sub_02048C3C
|
.public sub_02048C3C
|
||||||
.public sub_0204A198
|
.public sub_0204A198
|
||||||
.public sub_0204A1A4
|
.public sub_0204A1A4
|
||||||
.public sub_0204AB18
|
.public InitOptionsVeneer
|
||||||
.public CopyFrameTypeOption
|
.public CopyFrameTypeOption
|
||||||
.public SetGameMode
|
.public SetGameMode
|
||||||
.public sub_0204D018
|
.public sub_0204D018
|
||||||
|
|
|
||||||
|
|
@ -995,7 +995,7 @@ sub_02035640: ; 0x02035640
|
||||||
ldr r0, _02035764 ; =_020AFDD0
|
ldr r0, _02035764 ; =_020AFDD0
|
||||||
ldr r0, [r0, #4]
|
ldr r0, [r0, #4]
|
||||||
add r0, r0, #0xa4
|
add r0, r0, #0xa4
|
||||||
bl sub_0204AB78
|
bl GetOptions
|
||||||
ldr r1, _02035764 ; =_020AFDD0
|
ldr r1, _02035764 ; =_020AFDD0
|
||||||
mov r0, #0
|
mov r0, #0
|
||||||
ldr r3, [r1, #4]
|
ldr r3, [r1, #4]
|
||||||
|
|
@ -1401,7 +1401,7 @@ _02035BC0:
|
||||||
strb r0, [r1, #0xac]
|
strb r0, [r1, #0xac]
|
||||||
ldr r0, [r2, #4]
|
ldr r0, [r2, #4]
|
||||||
add r0, r0, #0xa4
|
add r0, r0, #0xa4
|
||||||
bl sub_0204AB98
|
bl SetOptions
|
||||||
_02035C4C:
|
_02035C4C:
|
||||||
ldr r0, _02035CCC ; =_020AFDD0
|
ldr r0, _02035CCC ; =_020AFDD0
|
||||||
ldr r2, [r0, #4]
|
ldr r2, [r0, #4]
|
||||||
|
|
|
||||||
|
|
@ -15124,7 +15124,7 @@ _02048B40:
|
||||||
arm_func_start sub_02048B48
|
arm_func_start sub_02048B48
|
||||||
sub_02048B48: ; 0x02048B48
|
sub_02048B48: ; 0x02048B48
|
||||||
stmdb sp!, {r3, lr}
|
stmdb sp!, {r3, lr}
|
||||||
bl sub_0204AB24
|
bl InitOptions
|
||||||
bl InitScriptVariableValues
|
bl InitScriptVariableValues
|
||||||
bl sub_02052C74
|
bl sub_02052C74
|
||||||
bl sub_0200CABC
|
bl sub_0200CABC
|
||||||
|
|
@ -17649,64 +17649,3 @@ _0204AB10:
|
||||||
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
||||||
arm_func_end sub_0204A9C8
|
arm_func_end sub_0204A9C8
|
||||||
|
|
||||||
arm_func_start sub_0204AB18
|
|
||||||
sub_0204AB18: ; 0x0204AB18
|
|
||||||
ldr ip, _0204AB20 ; =sub_0204AB24
|
|
||||||
bx ip
|
|
||||||
.align 2, 0
|
|
||||||
_0204AB20: .word sub_0204AB24
|
|
||||||
arm_func_end sub_0204AB18
|
|
||||||
|
|
||||||
arm_func_start sub_0204AB24
|
|
||||||
sub_0204AB24: ; 0x0204AB24
|
|
||||||
stmdb sp!, {r3}
|
|
||||||
sub sp, sp, #4
|
|
||||||
ldr r0, _0204AB74 ; =OPTIONS
|
|
||||||
mov r1, #2
|
|
||||||
mov r2, #0
|
|
||||||
strb r1, [r0]
|
|
||||||
strb r2, [r0, #2]
|
|
||||||
mov r1, #1
|
|
||||||
strb r1, [r0, #1]
|
|
||||||
strb r1, [r0, #3]
|
|
||||||
strb r2, [r0, #4]
|
|
||||||
strb r1, [r0, #5]
|
|
||||||
strb r1, [r0, #6]
|
|
||||||
strb r2, [r0, #7]
|
|
||||||
strb r2, [r0, #8]
|
|
||||||
strb r2, [sp]
|
|
||||||
strb r2, [r0, #9]
|
|
||||||
add sp, sp, #4
|
|
||||||
ldmia sp!, {r3}
|
|
||||||
bx lr
|
|
||||||
.align 2, 0
|
|
||||||
_0204AB74: .word OPTIONS
|
|
||||||
arm_func_end sub_0204AB24
|
|
||||||
|
|
||||||
arm_func_start sub_0204AB78
|
|
||||||
sub_0204AB78: ; 0x0204AB78
|
|
||||||
ldr r3, _0204AB94 ; =OPTIONS
|
|
||||||
mov r2, #0xa
|
|
||||||
_0204AB80:
|
|
||||||
ldrb r1, [r3], #1
|
|
||||||
subs r2, r2, #1
|
|
||||||
strb r1, [r0], #1
|
|
||||||
bne _0204AB80
|
|
||||||
bx lr
|
|
||||||
.align 2, 0
|
|
||||||
_0204AB94: .word OPTIONS
|
|
||||||
arm_func_end sub_0204AB78
|
|
||||||
|
|
||||||
arm_func_start sub_0204AB98
|
|
||||||
sub_0204AB98: ; 0x0204AB98
|
|
||||||
ldr r3, _0204ABB4 ; =OPTIONS
|
|
||||||
mov r2, #0xa
|
|
||||||
_0204ABA0:
|
|
||||||
ldrb r1, [r0], #1
|
|
||||||
subs r2, r2, #1
|
|
||||||
strb r1, [r3], #1
|
|
||||||
bne _0204ABA0
|
|
||||||
bx lr
|
|
||||||
.align 2, 0
|
|
||||||
_0204ABB4: .word OPTIONS
|
|
||||||
arm_func_end sub_0204AB98
|
|
||||||
|
|
|
||||||
|
|
@ -15832,7 +15832,7 @@ MainLoop: ; 0x02065D1C
|
||||||
bl InitWanTable
|
bl InitWanTable
|
||||||
bl sub_0201F208
|
bl sub_0201F208
|
||||||
bl DirectoryFileMngr_ExtractAllDirectoryFiles
|
bl DirectoryFileMngr_ExtractAllDirectoryFiles
|
||||||
bl sub_0204AB18
|
bl InitOptionsVeneer
|
||||||
bl InitKaomadoStream
|
bl InitKaomadoStream
|
||||||
bl sub_02025AD8
|
bl sub_02025AD8
|
||||||
bl sub_02026E78
|
bl sub_02026E78
|
||||||
|
|
|
||||||
|
|
@ -3501,4 +3501,14 @@ enum touch_screen_option {
|
||||||
TOUCH_SCREEN_USE_ANYWHERE = 2
|
TOUCH_SCREEN_USE_ANYWHERE = 2
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum speed_option {
|
||||||
|
SPEED_REGULAR = 0,
|
||||||
|
SPEED_FAST = 1
|
||||||
|
};
|
||||||
|
|
||||||
|
enum far_off_pals_option {
|
||||||
|
FAR_OFF_PALS_SELF = 0,
|
||||||
|
FAR_OFF_PALS_LOOK = 1
|
||||||
|
};
|
||||||
|
|
||||||
#endif //PMDSKY_ENUMS_H
|
#endif //PMDSKY_ENUMS_H
|
||||||
|
|
|
||||||
|
|
@ -9,14 +9,18 @@ struct options {
|
||||||
u8 bottom_screen;
|
u8 bottom_screen;
|
||||||
u8 top_screen;
|
u8 top_screen;
|
||||||
bool8 grids;
|
bool8 grids;
|
||||||
bool8 speed;
|
u8 speed;
|
||||||
bool8 far_off_pals;
|
u8 far_off_pals;
|
||||||
bool8 damage_turn;
|
bool8 damage_turn;
|
||||||
bool8 d_pad_attack;
|
bool8 d_pad_attack;
|
||||||
bool8 check_direction;
|
bool8 check_direction;
|
||||||
u8 frame_type;
|
u8 frame_type;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
void InitOptionsVeneer();
|
||||||
|
void InitOptions();
|
||||||
|
void GetOptions(u8* dest_opts_ptr);
|
||||||
|
void SetOptions(u8* src_options_ptr);
|
||||||
void SaveOptionsToCtx(u8* ctx);
|
void SaveOptionsToCtx(u8* ctx);
|
||||||
void LoadOptionsFromCtx(u8* ctx);
|
void LoadOptionsFromCtx(u8* ctx);
|
||||||
bool8 IsTouchScreenNotOff();
|
bool8 IsTouchScreenNotOff();
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,51 @@ extern u8 _0209CE89;
|
||||||
|
|
||||||
struct options OPTIONS = {};
|
struct options OPTIONS = {};
|
||||||
|
|
||||||
|
void InitOptionsVeneer() {
|
||||||
|
InitOptions();
|
||||||
|
}
|
||||||
|
|
||||||
|
void InitOptions() {
|
||||||
|
struct options *o = &OPTIONS;
|
||||||
|
volatile u8 unused;
|
||||||
|
|
||||||
|
o->touch_screen = TOUCH_SCREEN_USE_ANYWHERE;
|
||||||
|
o->top_screen = TOP_SCREEN_CONTROLS;
|
||||||
|
o->bottom_screen = BOTTOM_SCREEN_CLEAR_MAP;
|
||||||
|
o->grids = 1;
|
||||||
|
o->speed = SPEED_REGULAR;
|
||||||
|
o->far_off_pals = FAR_OFF_PALS_LOOK;
|
||||||
|
o->damage_turn = TRUE;
|
||||||
|
o->d_pad_attack = FALSE;
|
||||||
|
o->check_direction = FALSE;
|
||||||
|
unused = 0;
|
||||||
|
o->frame_type = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void GetOptions(u8* dest_opts_ptr) {
|
||||||
|
u32 idx = 0xA;
|
||||||
|
u8* src_opts_ptr = (u8*)&OPTIONS;
|
||||||
|
|
||||||
|
do {
|
||||||
|
*dest_opts_ptr = *src_opts_ptr;
|
||||||
|
src_opts_ptr += 1;
|
||||||
|
idx -= 1;
|
||||||
|
dest_opts_ptr += 1;
|
||||||
|
} while (idx != 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
void SetOptions(u8* src_options_ptr) {
|
||||||
|
u32 idx = 0xA;
|
||||||
|
u8* dest_opts_ptr = (u8*)&OPTIONS;
|
||||||
|
|
||||||
|
do {
|
||||||
|
*dest_opts_ptr = *src_options_ptr;
|
||||||
|
src_options_ptr += 1;
|
||||||
|
dest_opts_ptr += 1;
|
||||||
|
idx -= 1;
|
||||||
|
} while (idx != 0);
|
||||||
|
}
|
||||||
|
|
||||||
void SaveOptionsToCtx(u8* ctx) {
|
void SaveOptionsToCtx(u8* ctx) {
|
||||||
CopyBitsTo(ctx, &OPTIONS.touch_screen, 2);
|
CopyBitsTo(ctx, &OPTIONS.touch_screen, 2);
|
||||||
CopyBitsTo(ctx, &OPTIONS.top_screen, 3);
|
CopyBitsTo(ctx, &OPTIONS.top_screen, 3);
|
||||||
|
|
@ -21,14 +66,14 @@ void SaveOptionsToCtx(u8* ctx) {
|
||||||
}
|
}
|
||||||
CopyBitsTo(ctx, src, 1);
|
CopyBitsTo(ctx, src, 1);
|
||||||
|
|
||||||
if (OPTIONS.speed) {
|
if (OPTIONS.speed != SPEED_REGULAR) {
|
||||||
src = &_0209CE88;
|
src = &_0209CE88;
|
||||||
} else {
|
} else {
|
||||||
src = &_0209CE89;
|
src = &_0209CE89;
|
||||||
}
|
}
|
||||||
CopyBitsTo(ctx, src, 1);
|
CopyBitsTo(ctx, src, 1);
|
||||||
|
|
||||||
if (OPTIONS.far_off_pals) {
|
if (OPTIONS.far_off_pals != FAR_OFF_PALS_SELF) {
|
||||||
src = &_0209CE88;
|
src = &_0209CE88;
|
||||||
} else {
|
} else {
|
||||||
src = &_0209CE89;
|
src = &_0209CE89;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user