mirror of
https://github.com/isledecomp/isle.git
synced 2025-10-24 08:54:15 +00:00
mxdiskstreamcontroller vtable + MxStreamController::vtable0x20
This commit is contained in:
@@ -16,6 +16,51 @@ MxDiskStreamController::~MxDiskStreamController()
|
||||
MxResult MxDiskStreamController::Tickle()
|
||||
{
|
||||
// TODO
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x100c7790
|
||||
MxResult MxDiskStreamController::Open(const char *p_filename)
|
||||
{
|
||||
return FAILURE;
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x100c7880
|
||||
MxResult MxDiskStreamController::vtable0x18(undefined4 p_unknown, undefined4 p_unknown2)
|
||||
{
|
||||
return SUCCESS;
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x100c7ff0 STUB
|
||||
MxResult MxDiskStreamController::vtable0x20(MxDSAction* p_action)
|
||||
{
|
||||
// TODO
|
||||
return FAILURE;
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x100c8160 STUB
|
||||
MxResult MxDiskStreamController::vtable0x24(undefined4 p_unknown)
|
||||
{
|
||||
// TODO
|
||||
return FAILURE;
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x100c7ac0 STUB
|
||||
MxResult MxDiskStreamController::vtable0x28()
|
||||
{
|
||||
// TODO
|
||||
return FAILURE;
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x100c7c00 STUB
|
||||
MxResult MxDiskStreamController::vtable0x30(undefined4 p_unknown)
|
||||
{
|
||||
// TODO
|
||||
return FAILURE;
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x100c7960
|
||||
MxResult MxDiskStreamController::vtable0x34(undefined4 p_unknown)
|
||||
{
|
||||
return FAILURE;
|
||||
}
|
||||
|
||||
@@ -15,6 +15,13 @@ public:
|
||||
virtual ~MxDiskStreamController() override;
|
||||
|
||||
virtual MxResult Tickle() override; // vtable+0x8
|
||||
virtual MxResult Open(const char *p_filename) override; // vtable+0x14
|
||||
virtual MxResult vtable0x18(undefined4 p_unknown, undefined4 p_unknown2) override; //vtable+0x18
|
||||
virtual MxResult vtable0x20(MxDSAction* p_action) override; //vtable+0x20
|
||||
virtual MxResult vtable0x24(undefined4 p_unknown) override; //vtable+0x24
|
||||
virtual MxResult vtable0x28() override; //vtable+0x28
|
||||
virtual MxResult vtable0x30(undefined4 p_unknown) override; //vtable+0x30
|
||||
virtual MxResult vtable0x34(undefined4 p_unknown); //vtable+0x34
|
||||
|
||||
// OFFSET: LEGO1 0x100c7360
|
||||
inline virtual const char *ClassName() const override // vtable+0x0c
|
||||
|
||||
@@ -45,11 +45,32 @@ MxResult MxStreamController::vtable0x1C(undefined4 p_unknown, undefined4 p_unkno
|
||||
return FAILURE;
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x100c1690 STUB
|
||||
// OFFSET: LEGO1 0x100c1690
|
||||
MxResult MxStreamController::vtable0x20(MxDSAction* p_action)
|
||||
{
|
||||
// TODO STUB
|
||||
return FAILURE;
|
||||
MxResult result;
|
||||
void* buffer;
|
||||
MxU32 buffer_value;
|
||||
MxAutoLocker locker(&m_criticalSection);
|
||||
|
||||
MxStreamProvider* provider = m_provider;
|
||||
MxU32 objectId = p_action->GetObjectId();
|
||||
if(objectId < provider->GetLengthInDWords())
|
||||
{
|
||||
buffer = provider->GetBufferForDWords();
|
||||
buffer_value = *(MxU32 *)((MxU32)buffer + objectId * 4);
|
||||
}
|
||||
|
||||
if (buffer_value == NULL)
|
||||
{
|
||||
result = FAILURE;
|
||||
}
|
||||
else
|
||||
{
|
||||
result = vtable0x2c(p_action, buffer_value);
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x100c1740 STUB
|
||||
@@ -66,7 +87,7 @@ MxResult MxStreamController::vtable0x28()
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x100c1c10 STUB
|
||||
MxResult MxStreamController::vtable0x2c(undefined4 p_unknown1, undefined4 p_unknow2)
|
||||
MxResult MxStreamController::vtable0x2c(MxDSAction* p_action, MxU32 p_bufferval)
|
||||
{
|
||||
return FAILURE;
|
||||
}
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
#include "mxcore.h"
|
||||
#include "mxdsobject.h"
|
||||
#include "mxdsaction.h"
|
||||
#include "mxstreamprovider.h"
|
||||
|
||||
// VTABLE 0x100dc968
|
||||
// SIZE 0x64
|
||||
@@ -36,7 +37,7 @@ public:
|
||||
virtual MxResult vtable0x20(MxDSAction* p_action); //vtable+0x20
|
||||
virtual MxResult vtable0x24(undefined4 p_unknown); //vtable+0x24
|
||||
virtual MxResult vtable0x28(); //vtable+0x28
|
||||
virtual MxResult vtable0x2c(undefined4 p_unknown1, undefined4 p_unknow2); //vtable+0x2c
|
||||
virtual MxResult vtable0x2c(MxDSAction* p_action, MxU32 p_bufferval); //vtable+0x2c
|
||||
virtual MxResult vtable0x30(undefined4 p_unknown); //vtable+0x30
|
||||
|
||||
MxBool FUN_100c20d0(MxDSObject &p_obj);
|
||||
@@ -45,7 +46,7 @@ public:
|
||||
protected:
|
||||
MxCriticalSection m_criticalSection;
|
||||
MxAtomId atom;
|
||||
undefined4 m_unk28; // MxStreamProvider*
|
||||
MxStreamProvider* m_provider; // MxStreamProvider*
|
||||
undefined4 m_unk2c;
|
||||
undefined m_unk30[0x34];
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user