Fix bugs and annotations

This commit is contained in:
Christian Semmler 2024-01-14 13:38:56 -05:00
parent 8fc7d4ed4e
commit 7fea12e8a4
8 changed files with 35 additions and 10 deletions

View File

@ -40,6 +40,9 @@
// LIBRARY: LEGO1 0x1008b608 // LIBRARY: LEGO1 0x1008b608
// __ftol // __ftol
// LIBRARY: LEGO1 0x1008b630
// _srand
// LIBRARY: LEGO1 0x1008b680 // LIBRARY: LEGO1 0x1008b680
// _strncmp // _strncmp
@ -82,6 +85,9 @@
// LIBRARY: LEGO1 0x1008ca60 // LIBRARY: LEGO1 0x1008ca60
// _abort // _abort
// LIBRARY: LEGO1 0x100977c0
// _itoa
// LIBRARY: LEGO1 0x10097b10 // LIBRARY: LEGO1 0x10097b10
// _strchr // _strchr

View File

@ -20,9 +20,6 @@ class MxDiskStreamProviderThread : public MxThread {
MxResult Run() override; MxResult Run() override;
MxResult StartWithTarget(MxDiskStreamProvider* p_target); MxResult StartWithTarget(MxDiskStreamProvider* p_target);
// SYNTHETIC: LEGO1 0x100d10a0
// MxDiskStreamProviderThread::`scalar deleting destructor'
}; };
// VTABLE: LEGO1 0x100dd138 // VTABLE: LEGO1 0x100dd138
@ -58,9 +55,6 @@ class MxDiskStreamProvider : public MxStreamProvider {
virtual MxU32 GetLengthInDWords() override; // vtable+0x24 virtual MxU32 GetLengthInDWords() override; // vtable+0x24
virtual MxU32* GetBufferForDWords() override; // vtable+0x28 virtual MxU32* GetBufferForDWords() override; // vtable+0x28
// SYNTHETIC: LEGO1 0x100d1220
// MxDiskStreamProvider::`scalar deleting destructor'
private: private:
MxDiskStreamProviderThread m_thread; // 0x10 MxDiskStreamProviderThread m_thread; // 0x10
MxSemaphore m_busySemaphore; // 0x2c MxSemaphore m_busySemaphore; // 0x2c
@ -70,4 +64,13 @@ class MxDiskStreamProvider : public MxStreamProvider {
MxStreamListMxDSAction m_list; // 0x54 MxStreamListMxDSAction m_list; // 0x54
}; };
// SYNTHETIC: LEGO1 0x100d10a0
// MxDiskStreamProviderThread::`scalar deleting destructor'
// SYNTHETIC: LEGO1 0x100d1110
// MxDiskStreamProviderThread::~MxDiskStreamProviderThread
// SYNTHETIC: LEGO1 0x100d1220
// MxDiskStreamProvider::`scalar deleting destructor'
#endif // MXDISKSTREAMPROVIDER_H #endif // MXDISKSTREAMPROVIDER_H

View File

@ -43,6 +43,7 @@ class MxDSAction : public MxDSObject {
return !strcmp(p_name, MxDSAction::ClassName()) || MxDSObject::IsA(p_name); return !strcmp(p_name, MxDSAction::ClassName()) || MxDSObject::IsA(p_name);
} }
virtual undefined4 VTable0x14() override; // vtable+14;
virtual MxU32 GetSizeOnDisk() override; // vtable+18; virtual MxU32 GetSizeOnDisk() override; // vtable+18;
virtual void Deserialize(MxU8** p_source, MxS16 p_unk0x24) override; // vtable+1c; virtual void Deserialize(MxU8** p_source, MxS16 p_unk0x24) override; // vtable+1c;
virtual MxLong GetDuration(); // vtable+24; virtual MxLong GetDuration(); // vtable+24;

View File

@ -44,6 +44,9 @@ class MxDSActionListCursor : public MxListCursor<MxDSAction*> {
// TEMPLATE: LEGO1 0x100c9cc0 // TEMPLATE: LEGO1 0x100c9cc0
// MxCollection<MxDSAction *>::Compare // MxCollection<MxDSAction *>::Compare
// TEMPLATE: LEGO1 0x100c9cd0
// MxCollection<MxDSAction *>::~MxCollection<MxDSAction *>
// TEMPLATE: LEGO1 0x100c9d20 // TEMPLATE: LEGO1 0x100c9d20
// MxCollection<MxDSAction *>::Destroy // MxCollection<MxDSAction *>::Destroy

View File

@ -41,4 +41,7 @@ class MxStreamProvider : public MxCore {
// SYNTHETIC: LEGO1 0x100d0870 // SYNTHETIC: LEGO1 0x100d0870
// MxStreamProvider::`scalar deleting destructor' // MxStreamProvider::`scalar deleting destructor'
// SYNTHETIC: LEGO1 0x100d08e0
// MxStreamProvider::~MxStreamProvider
#endif // MXSTREAMPROVIDER_H #endif // MXSTREAMPROVIDER_H

View File

@ -99,6 +99,12 @@ MxU32 MxDSAction::GetSizeOnDisk()
return totalSizeOnDisk; return totalSizeOnDisk;
} }
// FUNCTION: LEGO1 0x100adbd0
undefined4 MxDSAction::VTable0x14()
{
return MxDSObject::VTable0x14();
}
// FUNCTION: LEGO1 0x100adc10 // FUNCTION: LEGO1 0x100adc10
MxDSAction& MxDSAction::operator=(MxDSAction& p_dsAction) MxDSAction& MxDSAction::operator=(MxDSAction& p_dsAction)
{ {

View File

@ -215,18 +215,20 @@ void MxDiskStreamProvider::PerformWork()
} }
} }
MxDSBuffer* buffer;
{ {
MxAutoLocker lock(&m_criticalSection); MxAutoLocker lock(&m_criticalSection);
if (!m_list.PopFrontStreamingAction(streamingAction)) if (!m_list.PopFrontStreamingAction(streamingAction))
return; goto done;
} }
if (streamingAction->GetUnknowna0()->GetWriteOffset() < 0x20000) { if (streamingAction->GetUnknowna0()->GetWriteOffset() < 0x20000) {
g_unk0x10102878--; g_unk0x10102878--;
} }
MxDSBuffer* buffer = streamingAction->GetUnknowna0(); buffer = streamingAction->GetUnknowna0();
if (m_pFile->GetPosition() == streamingAction->GetBufferOffset() || if (m_pFile->GetPosition() == streamingAction->GetBufferOffset() ||
m_pFile->Seek(streamingAction->GetBufferOffset(), 0) == 0) { m_pFile->Seek(streamingAction->GetBufferOffset(), 0) == 0) {
@ -251,6 +253,7 @@ void MxDiskStreamProvider::PerformWork()
} }
} }
done:
if (streamingAction) { if (streamingAction) {
controller->FUN_100c8670(streamingAction); controller->FUN_100c8670(streamingAction);
} }

View File

@ -47,12 +47,12 @@ MxRAMStreamProvider::~MxRAMStreamProvider()
m_bufferSize = 0; m_bufferSize = 0;
m_fileSize = 0; m_fileSize = 0;
free(m_pBufferOfFileSize); delete[] m_pBufferOfFileSize;
m_pBufferOfFileSize = NULL; m_pBufferOfFileSize = NULL;
m_lengthInDWords = 0; m_lengthInDWords = 0;
free(m_bufferForDWords); delete[] m_bufferForDWords;
m_bufferForDWords = NULL; m_bufferForDWords = NULL;
} }