mirror of
https://github.com/pret/pmd-sky.git
synced 2026-03-21 17:25:15 -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_02048078
|
||||
.public sub_0204964C
|
||||
.public sub_0204AB78
|
||||
.public sub_0204AB98
|
||||
.public GetOptions
|
||||
.public SetOptions
|
||||
.public CopyFrameTypeOption
|
||||
.public SetFrameTypeOption
|
||||
.public sub_0204DA1C
|
||||
|
|
|
|||
|
|
@ -467,6 +467,7 @@
|
|||
.public DebugPrintEventFlagSize
|
||||
.public SetSpecialEpisodeOpenOld
|
||||
.public CopyFrameTypeOption
|
||||
.public InitOptions
|
||||
.public sub_0204CDB8
|
||||
.public sub_0204E154
|
||||
.public sub_0204E19C
|
||||
|
|
|
|||
|
|
@ -480,7 +480,7 @@
|
|||
.public sub_02048C3C
|
||||
.public sub_0204A198
|
||||
.public sub_0204A1A4
|
||||
.public sub_0204AB18
|
||||
.public InitOptionsVeneer
|
||||
.public CopyFrameTypeOption
|
||||
.public SetGameMode
|
||||
.public sub_0204D018
|
||||
|
|
|
|||
|
|
@ -995,7 +995,7 @@ sub_02035640: ; 0x02035640
|
|||
ldr r0, _02035764 ; =_020AFDD0
|
||||
ldr r0, [r0, #4]
|
||||
add r0, r0, #0xa4
|
||||
bl sub_0204AB78
|
||||
bl GetOptions
|
||||
ldr r1, _02035764 ; =_020AFDD0
|
||||
mov r0, #0
|
||||
ldr r3, [r1, #4]
|
||||
|
|
@ -1401,7 +1401,7 @@ _02035BC0:
|
|||
strb r0, [r1, #0xac]
|
||||
ldr r0, [r2, #4]
|
||||
add r0, r0, #0xa4
|
||||
bl sub_0204AB98
|
||||
bl SetOptions
|
||||
_02035C4C:
|
||||
ldr r0, _02035CCC ; =_020AFDD0
|
||||
ldr r2, [r0, #4]
|
||||
|
|
|
|||
|
|
@ -15124,7 +15124,7 @@ _02048B40:
|
|||
arm_func_start sub_02048B48
|
||||
sub_02048B48: ; 0x02048B48
|
||||
stmdb sp!, {r3, lr}
|
||||
bl sub_0204AB24
|
||||
bl InitOptions
|
||||
bl InitScriptVariableValues
|
||||
bl sub_02052C74
|
||||
bl sub_0200CABC
|
||||
|
|
@ -17649,64 +17649,3 @@ _0204AB10:
|
|||
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
||||
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 sub_0201F208
|
||||
bl DirectoryFileMngr_ExtractAllDirectoryFiles
|
||||
bl sub_0204AB18
|
||||
bl InitOptionsVeneer
|
||||
bl InitKaomadoStream
|
||||
bl sub_02025AD8
|
||||
bl sub_02026E78
|
||||
|
|
|
|||
|
|
@ -3501,4 +3501,14 @@ enum touch_screen_option {
|
|||
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
|
||||
|
|
|
|||
|
|
@ -9,14 +9,18 @@ struct options {
|
|||
u8 bottom_screen;
|
||||
u8 top_screen;
|
||||
bool8 grids;
|
||||
bool8 speed;
|
||||
bool8 far_off_pals;
|
||||
u8 speed;
|
||||
u8 far_off_pals;
|
||||
bool8 damage_turn;
|
||||
bool8 d_pad_attack;
|
||||
bool8 check_direction;
|
||||
u8 frame_type;
|
||||
};
|
||||
|
||||
void InitOptionsVeneer();
|
||||
void InitOptions();
|
||||
void GetOptions(u8* dest_opts_ptr);
|
||||
void SetOptions(u8* src_options_ptr);
|
||||
void SaveOptionsToCtx(u8* ctx);
|
||||
void LoadOptionsFromCtx(u8* ctx);
|
||||
bool8 IsTouchScreenNotOff();
|
||||
|
|
|
|||
|
|
@ -8,6 +8,51 @@ extern u8 _0209CE89;
|
|||
|
||||
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) {
|
||||
CopyBitsTo(ctx, &OPTIONS.touch_screen, 2);
|
||||
CopyBitsTo(ctx, &OPTIONS.top_screen, 3);
|
||||
|
|
@ -21,14 +66,14 @@ void SaveOptionsToCtx(u8* ctx) {
|
|||
}
|
||||
CopyBitsTo(ctx, src, 1);
|
||||
|
||||
if (OPTIONS.speed) {
|
||||
if (OPTIONS.speed != SPEED_REGULAR) {
|
||||
src = &_0209CE88;
|
||||
} else {
|
||||
src = &_0209CE89;
|
||||
}
|
||||
CopyBitsTo(ctx, src, 1);
|
||||
|
||||
if (OPTIONS.far_off_pals) {
|
||||
if (OPTIONS.far_off_pals != FAR_OFF_PALS_SELF) {
|
||||
src = &_0209CE88;
|
||||
} else {
|
||||
src = &_0209CE89;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user