mirror of
https://github.com/isledecomp/isle.git
synced 2025-10-24 17:04:17 +00:00
mxdiskstreamcontroller vtable + MxStreamController::vtable0x20
This commit is contained in:
@@ -16,6 +16,51 @@ MxDiskStreamController::~MxDiskStreamController()
|
|||||||
MxResult MxDiskStreamController::Tickle()
|
MxResult MxDiskStreamController::Tickle()
|
||||||
{
|
{
|
||||||
// TODO
|
// TODO
|
||||||
|
|
||||||
return 0;
|
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 ~MxDiskStreamController() override;
|
||||||
|
|
||||||
virtual MxResult Tickle() override; // vtable+0x8
|
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
|
// OFFSET: LEGO1 0x100c7360
|
||||||
inline virtual const char *ClassName() const override // vtable+0x0c
|
inline virtual const char *ClassName() const override // vtable+0x0c
|
||||||
|
|||||||
@@ -45,11 +45,32 @@ MxResult MxStreamController::vtable0x1C(undefined4 p_unknown, undefined4 p_unkno
|
|||||||
return FAILURE;
|
return FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
// OFFSET: LEGO1 0x100c1690 STUB
|
// OFFSET: LEGO1 0x100c1690
|
||||||
MxResult MxStreamController::vtable0x20(MxDSAction* p_action)
|
MxResult MxStreamController::vtable0x20(MxDSAction* p_action)
|
||||||
{
|
{
|
||||||
// TODO STUB
|
MxResult result;
|
||||||
return FAILURE;
|
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
|
// OFFSET: LEGO1 0x100c1740 STUB
|
||||||
@@ -66,7 +87,7 @@ MxResult MxStreamController::vtable0x28()
|
|||||||
}
|
}
|
||||||
|
|
||||||
// OFFSET: LEGO1 0x100c1c10 STUB
|
// OFFSET: LEGO1 0x100c1c10 STUB
|
||||||
MxResult MxStreamController::vtable0x2c(undefined4 p_unknown1, undefined4 p_unknow2)
|
MxResult MxStreamController::vtable0x2c(MxDSAction* p_action, MxU32 p_bufferval)
|
||||||
{
|
{
|
||||||
return FAILURE;
|
return FAILURE;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,6 +7,7 @@
|
|||||||
#include "mxcore.h"
|
#include "mxcore.h"
|
||||||
#include "mxdsobject.h"
|
#include "mxdsobject.h"
|
||||||
#include "mxdsaction.h"
|
#include "mxdsaction.h"
|
||||||
|
#include "mxstreamprovider.h"
|
||||||
|
|
||||||
// VTABLE 0x100dc968
|
// VTABLE 0x100dc968
|
||||||
// SIZE 0x64
|
// SIZE 0x64
|
||||||
@@ -36,7 +37,7 @@ public:
|
|||||||
virtual MxResult vtable0x20(MxDSAction* p_action); //vtable+0x20
|
virtual MxResult vtable0x20(MxDSAction* p_action); //vtable+0x20
|
||||||
virtual MxResult vtable0x24(undefined4 p_unknown); //vtable+0x24
|
virtual MxResult vtable0x24(undefined4 p_unknown); //vtable+0x24
|
||||||
virtual MxResult vtable0x28(); //vtable+0x28
|
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
|
virtual MxResult vtable0x30(undefined4 p_unknown); //vtable+0x30
|
||||||
|
|
||||||
MxBool FUN_100c20d0(MxDSObject &p_obj);
|
MxBool FUN_100c20d0(MxDSObject &p_obj);
|
||||||
@@ -45,7 +46,7 @@ public:
|
|||||||
protected:
|
protected:
|
||||||
MxCriticalSection m_criticalSection;
|
MxCriticalSection m_criticalSection;
|
||||||
MxAtomId atom;
|
MxAtomId atom;
|
||||||
undefined4 m_unk28; // MxStreamProvider*
|
MxStreamProvider* m_provider; // MxStreamProvider*
|
||||||
undefined4 m_unk2c;
|
undefined4 m_unk2c;
|
||||||
undefined m_unk30[0x34];
|
undefined m_unk30[0x34];
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user