diff options
author | Max <mparisi@stevens.edu> | 2020-10-27 16:13:32 -0400 |
---|---|---|
committer | Max <mparisi@stevens.edu> | 2020-10-27 16:13:32 -0400 |
commit | 126972af1a4ff9084cd48f9c57eb07f3951e5086 (patch) | |
tree | 55ac7ff81ee2656da6542fb2700452a15436a77b /src/code_801DBE90.cpp | |
parent | 69dd6927a2ec6791639065a70da615228ae362f6 (diff) |
match up to func_801DC9CC
Diffstat (limited to 'src/code_801DBE90.cpp')
-rw-r--r-- | src/code_801DBE90.cpp | 83 |
1 files changed, 82 insertions, 1 deletions
diff --git a/src/code_801DBE90.cpp b/src/code_801DBE90.cpp index c8c2ad1..3826f7d 100644 --- a/src/code_801DBE90.cpp +++ b/src/code_801DBE90.cpp @@ -36,6 +36,8 @@ extern char* lbl_8063D6D8; extern char* lbl_8063D6E0;
extern char lbl_8063D6E4[8];
extern char lbl_8063D6EC[8];
+extern s32 lbl_8063D6F4;
+
extern u8 lbl_8063F31E;
extern u8 lbl_8063F31F;
@@ -43,9 +45,15 @@ extern size_t lbl_8063F320; extern unkClass* lbl_8063F324;
extern u32 lbl_8063F328;
extern u32 lbl_8063F32C;
+
+extern void (*lbl_8063F330)(void);
+extern void (*lbl_8063F334)(void);
+
extern gUnkClass4* lbl_8063F338;
extern u8 lbl_804917F0[0x40];
+extern OSSemaphore lbl_80491830;
+extern DVDCommandBlock lbl_80491840;
extern void* lbl_8063F600; // initialized in func_8022410C
@@ -231,7 +239,7 @@ void func_801DBFEC(s32 p1, DVDFileInfo* p2) }
//static
-void lbl_801DC068(s32 p1, DVDFileInfo* p2)
+void func_801DC068(s32 p1, DVDFileInfo* p2)
{
if (lbl_8063F31F == 0) {
unkClass* r3 = func_801DBF98(p2);
@@ -436,11 +444,84 @@ s32 func_801DC7DC(void) return (!lbl_8063F31E) ? -1 : DVDGetDriveStatus();
}
+BOOL func_801DC7F8(unkClass* p1, s32 offset, void (*p3)(s32, void*))
+{
+ if (!lbl_8063F31E)
+ return FALSE;
+ func_801DC264();
+ if (!p1)
+ return FALSE;
+ p1->unk4.unk40 = p3;
+ return DVDSeekAsyncPrio(&p1->unk4, offset, &func_801DC068, 2) != 0;
+}
+
+//static
+void func_801DC888(s32 p1)
+{
+ switch (p1)
+ {
+ case -1:
+ lbl_8063F328 = 9;
+ break;
+ case 5:
+ lbl_8063F328 = 1;
+ break;
+ case 4:
+ lbl_8063F328 = 3;
+ break;
+ case 6:
+ lbl_8063F328 = 5;
+ break;
+ case 11:
+ lbl_8063F328 = 7;
+ break;
+ default:
+ break;
+ }
+}
+//static
+void func_801DC8E8(void)
+{
+ if (lbl_8063F330)
+ lbl_8063F330();
+}
+//static
+void func_801DC900(void)
+{
+ if (lbl_8063F334)
+ lbl_8063F334();
+}
+//static
+void func_801DC918(s32 p1, DVDCommandBlock*)
+{
+ lbl_8063D6F4 = p1;
+ OSSignalSemaphore(&lbl_80491830);
+}
+//static
+BOOL func_801DC928(void)
+{
+ BOOL r31 = OSDisableInterrupts();
+ OSRestoreInterrupts();
+ if (!r31)
+ return TRUE;
+ OSInitSemaphore(&lbl_80491830, 0);
+ lbl_8063D6F4 = -1;
+ if (!DVDCheckDiskAsync(&lbl_80491840, &func_801DC918))
+ lbl_8063D6F4 = 0;
+ if (lbl_8063D6F4 < 0)
+ OSWaitSemaphore(&lbl_80491830);
+ return lbl_8063D6F4 != 0;
+}
+//static
+func_801DC9CC(u32 p1, u32 p2)
+{
+
+}
|