mirror of
https://github.com/pret/pmd-red.git
synced 2026-09-28 14:49:25 -04:00
139 lines
2.6 KiB
C
139 lines
2.6 KiB
C
#include "global.h"
|
|
#include "time.h"
|
|
|
|
extern struct PlayTimeStruct *gUnknown_203B47C;
|
|
extern struct PlayTimeStruct gPlayTime;
|
|
|
|
extern u8 gUnknown_2038C88;
|
|
extern u8 gUnknown_2039288;
|
|
extern u32 gUnknown_20392E8;
|
|
extern u32 gUnknown_20393C0;
|
|
extern u8 *gUnknown_203B480;
|
|
extern u8 *gUnknown_203B484;
|
|
extern u32 *gUnknown_203B488;
|
|
extern u32 *gUnknown_203B48C;
|
|
|
|
|
|
extern void sub_809488C(u32, u32, u32);
|
|
extern void sub_8094924(u32, u32, u32);
|
|
|
|
|
|
// Forward Declaration
|
|
void ResetPlayTime(struct PlayTimeStruct *Time);
|
|
|
|
|
|
void sub_8094F88(void)
|
|
{
|
|
gUnknown_203B47C = &gPlayTime;
|
|
ResetPlayTime(&gPlayTime);
|
|
}
|
|
|
|
struct PlayTimeStruct *sub_8094FA0(void)
|
|
{
|
|
return &gPlayTime;
|
|
}
|
|
|
|
void ResetPlayTime(struct PlayTimeStruct *Time)
|
|
{
|
|
Time->frames = 0;
|
|
Time->seconds = 0;
|
|
Time->minutes = 0;
|
|
Time->hours = 0;
|
|
}
|
|
|
|
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;
|
|
Time->seconds = 0;
|
|
|
|
Time->minutes++;
|
|
if(Time->minutes <= 59)
|
|
return;
|
|
Time->minutes = 0;
|
|
|
|
// Casting here for unsigned comparison
|
|
temp_store16 = Time->hours;
|
|
if(Time->hours <= 9998)
|
|
{
|
|
temp_store16++;
|
|
Time->hours = temp_store16;
|
|
}
|
|
else
|
|
{
|
|
Time->seconds = 59;
|
|
Time->minutes = 59;
|
|
Time->hours= 9999;
|
|
}
|
|
}
|
|
|
|
void DeconstructPlayTime(struct PlayTimeStruct *r0, u32 *outHours, u32 *outMinutes, u32 *outSeconds)
|
|
{
|
|
if(r0->hours <= 9999)
|
|
{
|
|
*outHours = r0->hours;
|
|
*outMinutes = r0->minutes;
|
|
*outSeconds = r0->seconds;
|
|
}
|
|
else
|
|
{
|
|
*outHours = 9999;
|
|
*outMinutes = 59;
|
|
*outSeconds = 59;
|
|
}
|
|
}
|
|
|
|
void sub_8095044(u32 r0)
|
|
{
|
|
sub_809488C(r0, (u32)(gUnknown_203B47C) + 4, 0x6);
|
|
sub_809488C(r0, (u32)(gUnknown_203B47C) + 3, 0x6);
|
|
sub_809488C(r0, (u32)(gUnknown_203B47C) + 2, 0x6);
|
|
sub_809488C(r0, (u32)(gUnknown_203B47C), 0xE);
|
|
}
|
|
|
|
void sub_8095080(u32 r0)
|
|
{
|
|
sub_8094924(r0, (u32)(gUnknown_203B47C) + 4, 0x6);
|
|
sub_8094924(r0, (u32)(gUnknown_203B47C) + 3, 0x6);
|
|
sub_8094924(r0, (u32)(gUnknown_203B47C) + 2, 0x6);
|
|
sub_8094924(r0, (u32)(gUnknown_203B47C), 0xE);
|
|
}
|
|
|
|
void sub_80950BC(void)
|
|
{
|
|
gUnknown_203B480 = &gUnknown_2038C88;
|
|
gUnknown_203B484 = &gUnknown_2039288;
|
|
gUnknown_203B488 = &gUnknown_20392E8;
|
|
gUnknown_203B48C = &gUnknown_20393C0;
|
|
}
|
|
|
|
u8 *sub_80950F8(void)
|
|
{
|
|
return &gUnknown_2038C88;
|
|
}
|
|
|
|
u8 *sub_8095100(void)
|
|
{
|
|
return &gUnknown_2039288;
|
|
}
|
|
|
|
u32 *sub_8095108(void)
|
|
{
|
|
return &gUnknown_20392E8;
|
|
}
|
|
|
|
u32 *sub_8095110(void)
|
|
{
|
|
return &gUnknown_20393C0;
|
|
}
|
|
|
|
|