isle-portable/LEGO1/mxdssource.h

43 lines
1,013 B
C
Raw Normal View History

#ifndef MXDSSOURCE_H
#define MXDSSOURCE_H
#include "mxcore.h"
class MxDSBuffer;
// VTABLE 0x100dc8c8
2023-10-24 19:38:27 -04:00
class MxDSSource : public MxCore {
public:
2023-10-24 19:38:27 -04:00
MxDSSource() : m_lengthInDWords(0), m_pBuffer(NULL), m_position(-1) {}
// OFFSET: LEGO1 0x100c0010
inline virtual const char* ClassName() const override // vtable+0x0c
{
// 0x10102588
return "MxDSSource";
}
// OFFSET: LEGO1 0x100c0020
inline virtual MxBool IsA(const char* name) const override // vtable+0x10
{
return !strcmp(name, MxDSSource::ClassName()) || MxCore::IsA(name);
}
virtual MxLong Open(MxULong) = 0;
virtual MxLong Close() = 0;
virtual void ReadToBuffer(MxDSBuffer* p_buffer);
virtual MxResult Read(unsigned char*, MxULong) = 0;
virtual MxLong Seek(MxLong, int) = 0;
virtual MxULong GetBufferSize() = 0;
virtual MxULong GetStreamBuffersNum() = 0;
virtual MxLong GetLengthInDWords();
virtual MxU32* GetBuffer(); // 0x34
protected:
2023-10-24 19:38:27 -04:00
MxULong m_lengthInDWords;
MxU32* m_pBuffer;
MxLong m_position;
};
#endif // MXDSSOURCE_H