finish docing PlayTime and fix function - Kermalis

This commit is contained in:
Seth Barberee
2020-11-20 10:33:21 -06:00
parent 5f8105180b
commit cbfab08a06
10 changed files with 39 additions and 235 deletions

View File

@@ -7545,7 +7545,7 @@ sub_8010960:
bl sub_80060EC
ldr r0, _080109FC
ldr r0, [r0]
bl sub_8094FB4
bl IncrementPlayTime
bl sub_800CB20
bl sub_800485C
bl CopySpritesToOam
@@ -9175,7 +9175,7 @@ sub_801169C:
bl sub_80060EC
ldr r0, _0801175C
ldr r0, [r0]
bl sub_8094FB4
bl IncrementPlayTime
bl sub_800CB20
bl sub_800485C
bl CopySpritesToOam

View File

@@ -35186,7 +35186,7 @@ _08039696:
add r1, sp, 0x144
add r2, sp, 0x148
add r3, sp, 0x14C
bl sub_8095014
bl DeconstructPlayTime
ldr r0, [r7]
movs r5, 0x84
lsls r5, 2

View File

@@ -2673,7 +2673,7 @@ _0803E5A2:
str r0, [r1]
ldr r0, _0803E65C
ldr r0, [r0]
bl sub_8094FB4
bl IncrementPlayTime
bl sub_800CB20
bl sub_800485C
bl CopySpritesToOam
@@ -2748,7 +2748,7 @@ sub_803E668:
str r0, [r1]
ldr r0, _0803E6FC
ldr r0, [r0]
bl sub_8094FB4
bl IncrementPlayTime
bl sub_800CB20
bl sub_800485C
bl CopySpritesToOam

View File

@@ -26632,7 +26632,7 @@ _0805FA62:
add r2, sp, 0x8
add r3, sp, 0xC
add r1, sp, 0x4
bl sub_8095014
bl DeconstructPlayTime
movs r1, 0x9E
lsls r1, 1
adds r0, r7, r1

View File

@@ -510,7 +510,7 @@ _080988F8:
bl sub_8011860
ldr r0, _08098978
ldr r0, [r0]
bl sub_8094FB4
bl IncrementPlayTime
bl sub_800CB20
bl sub_800485C
bl nullsub_120

View File

@@ -5,202 +5,6 @@
.text
thumb_func_start sub_80A26CC
sub_80A26CC:
lsls r0, 16
movs r1, 0xDC
lsls r1, 14
adds r0, r1
asrs r0, 16
bx lr
thumb_func_end sub_80A26CC
thumb_func_start sub_80A26D8
sub_80A26D8:
push {r4-r6,lr}
lsls r0, 24
lsrs r6, r0, 24
movs r5, 0
_080A26E0:
lsls r0, r5, 16
asrs r4, r0, 16
adds r0, r4, 0
bl sub_80A2608
adds r1, r0, 0
ldrb r0, [r1, 0x11]
cmp r0, 0
beq _080A26FC
ldrb r0, [r1, 0xC]
cmp r0, r6
bne _080A26FC
adds r0, r4, 0
b _080A2706
_080A26FC:
adds r5, 0x1
cmp r5, 0x52
ble _080A26E0
movs r0, 0x1
negs r0, r0
_080A2706:
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_80A26D8
thumb_func_start sub_80A270C
sub_80A270C:
push {lr}
lsls r0, 16
ldr r1, _080A2724
asrs r0, 15
adds r0, r1
movs r1, 0
ldrsh r0, [r0, r1]
bl sub_80A2608
ldrb r0, [r0, 0xC]
pop {r1}
bx r1
.align 2, 0
_080A2724: .4byte gUnknown_8116F9A
thumb_func_end sub_80A270C
thumb_func_start sub_80A2728
sub_80A2728:
push {lr}
lsls r0, 16
movs r1, 0xDC
lsls r1, 14
adds r0, r1
asrs r0, 16
bl sub_80A2608
ldrb r0, [r0, 0xC]
pop {r1}
bx r1
thumb_func_end sub_80A2728
thumb_func_start sub_80A2740
sub_80A2740:
push {lr}
lsls r0, 16
asrs r0, 16
bl sub_80A2608
ldrb r0, [r0, 0xC]
pop {r1}
bx r1
thumb_func_end sub_80A2740
thumb_func_start sub_80A2750
sub_80A2750:
push {r4,lr}
lsls r0, 16
asrs r1, r0, 16
adds r2, r1, 0
cmp r1, 0x50
bne _080A2760
movs r0, 0x3
b _080A27C4
_080A2760:
cmp r1, 0x51
beq _080A27BE
cmp r1, 0x52
beq _080A2780
adds r0, r1, 0
subs r0, 0x28
lsls r0, 16
lsrs r0, 16
cmp r0, 0xE
bls _080A27BE
adds r0, r1, 0
subs r0, 0x37
lsls r0, 16
lsrs r0, 16
cmp r0, 0x18
bhi _080A2784
_080A2780:
movs r0, 0x4
b _080A27C4
_080A2784:
adds r0, r2, 0
bl sub_80A2608
adds r4, r0, 0
movs r0, 0xE
ldrsh r1, [r4, r0]
movs r0, 0x1
negs r0, r0
cmp r1, r0
beq _080A27C2
movs r0, 0x5
bl sub_80023E4
lsls r0, 24
cmp r0, 0
bne _080A27C2
movs r1, 0xE
ldrsh r0, [r4, r1]
bl sub_80973F4
lsls r0, 24
cmp r0, 0
beq _080A27C2
movs r0, 0x1
bl sub_80023E4
lsls r0, 24
cmp r0, 0
beq _080A27C2
_080A27BE:
movs r0, 0x2
b _080A27C4
_080A27C2:
movs r0, 0x1
_080A27C4:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_80A2750
thumb_func_start sub_80A27CC
sub_80A27CC:
push {r4,r5,lr}
lsls r0, 16
asrs r4, r0, 16
adds r5, r4, 0
adds r0, r4, 0
bl sub_80A2620
movs r2, 0
ldrsh r1, [r0, r2]
movs r0, 0x1
negs r0, r0
cmp r1, r0
beq _080A281A
movs r0, 0x5
bl sub_80023E4
lsls r0, 24
cmp r0, 0
bne _080A281A
adds r0, r4, 0
bl sub_8097384
lsls r0, 24
cmp r0, 0
bne _080A2816
movs r0, 0x1
bl sub_80023E4
lsls r0, 24
cmp r0, 0
beq _080A281A
adds r0, r5, 0
bl sub_80973F4
lsls r0, 24
cmp r0, 0
beq _080A281A
_080A2816:
movs r0, 0x1
b _080A281C
_080A281A:
movs r0, 0
_080A281C:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_80A27CC
thumb_func_start sub_80A2824
sub_80A2824:
push {r4-r6,lr}

View File

@@ -3,15 +3,16 @@
struct PlayTimeStruct
{
s16 unk0;
u8 hours;
s16 hours;
u8 minutes;
u8 seconds;
u8 frames;
};
void sub_8094FB4(struct PlayTimeStruct *Time);
void IncrementPlayTime(struct PlayTimeStruct *Time);
void ResetPlayTime(struct PlayTimeStruct *Time);
struct PlayTimeStruct *sub_8094FA0(void);
void DeconstructPlayTime(struct PlayTimeStruct *r0, u32 *outHours, u32 *outMinutes, u32 *outSeconds);
void sub_8094F88(void);

View File

@@ -1,11 +1,11 @@
#include "global.h"
#include "time.h"
extern u8 *gUnknown_203B418;
extern u32 gUnknown_203B47C;
extern struct PlayTimeStruct *gUnknown_203B47C;
extern void sub_803F7BC(void);
extern void sub_80060EC(void);
extern void sub_8094FB4(u32);
extern void sub_800CB20(void);
extern void sub_800485C(void);
extern void xxx_call_update_bg_sound_input(void);
@@ -17,7 +17,7 @@ void sub_8040094(u8 r0)
gUnknown_203B418[0x18217] = r0;
sub_803F7BC();
sub_80060EC();
sub_8094FB4(gUnknown_203B47C);
IncrementPlayTime(gUnknown_203B47C);
sub_800CB20();
sub_800485C();
xxx_call_update_bg_sound_input();

View File

@@ -35,16 +35,21 @@ struct PlayTimeStruct *sub_8094FA0(void)
void ResetPlayTime(struct PlayTimeStruct *Time)
{
Time->frames = 0;
Time->seconds = 0;
Time->minutes = 0;
Time->hours = 0;
Time->unk0 = 0;
}
void sub_8094FB4(struct PlayTimeStruct *Time)
void IncrementPlayTime(struct PlayTimeStruct *Time)
{
u16 temp_store16;
Time->frames++;
if(Time->frames <= 59)
return;
Time->frames = 0;
Time->seconds++;
if(Time->seconds <= 59)
return;
@@ -55,42 +60,35 @@ void sub_8094FB4(struct PlayTimeStruct *Time)
return;
Time->minutes = 0;
Time->hours++;
if(Time->hours <= 59)
return;
Time->hours = 0;
// ???
temp_store16 = Time->unk0;
if(Time->unk0 <= 9998)
// Casting here for unsigned comparison
temp_store16 = Time->hours;
if(Time->hours <= 9998)
{
temp_store16++;
Time->unk0 = temp_store16;
Time->hours = temp_store16;
}
else
{
Time->seconds = 59;
Time->minutes = 59;
Time->hours = 59;
Time->unk0 = 9999;
Time->hours= 9999;
}
}
void sub_8095014(struct PlayTimeStruct *r0, u32 *r1, u32 *r2, u32 *r3)
void DeconstructPlayTime(struct PlayTimeStruct *r0, u32 *outHours, u32 *outMinutes, u32 *outSeconds)
{
u32 temp;
if(r0->unk0 <= 9999)
if(r0->hours <= 9999)
{
*r1 = r0->unk0;
*r2 = r0->hours;
temp = r0->minutes;
*outHours = r0->hours;
*outMinutes = r0->minutes;
*outSeconds = r0->seconds;
}
else
{
*r1 = 9999;
*r2 = 59;
temp = 59;
*outHours = 9999;
*outMinutes = 59;
*outSeconds = 59;
}
*r3 = temp;
}
void sub_8095044(u32 r0)

View File

@@ -1,6 +1,7 @@
#include "global.h"
#include "time.h"
extern u32 gUnknown_203B47C;
extern struct PlayTimeStruct *gUnknown_203B47C;
extern u32 gUnknown_20398A8;
extern u32 gUnknown_8115F5C;
extern u32 gUnknown_20398AC;
@@ -21,7 +22,7 @@ extern void sub_80A6E80();
extern void sub_8099BE4();
extern void sub_8099744();
extern void sub_8011860();
extern void sub_8094FB4(u32 r0);
extern void IncrementPlayTime(struct PlayTimeStruct *Time);
extern void sub_800CB20();
extern void sub_800485C();
extern void nullsub_120();
@@ -69,7 +70,7 @@ void sub_8098BDC(void)
sub_8099BE4();
sub_8099744();
sub_8011860();
sub_8094FB4(gUnknown_203B47C);
IncrementPlayTime(gUnknown_203B47C);
sub_800CB20();
sub_800485C();
nullsub_120();