mirror of
https://github.com/isledecomp/isle.git
synced 2025-10-23 16:34:06 +00:00
Move CreateStreamObject
to proper location (#1249)
This commit is contained in:

committed by
GitHub

parent
c9acd9a49f
commit
5a61cf6566
@@ -3,6 +3,7 @@
|
||||
#include "mxdsaction.h"
|
||||
#include "mxdsanim.h"
|
||||
#include "mxdsevent.h"
|
||||
#include "mxdsfile.h"
|
||||
#include "mxdsmediaaction.h"
|
||||
#include "mxdsmultiaction.h"
|
||||
#include "mxdsobjectaction.h"
|
||||
@@ -227,3 +228,39 @@ MxDSObject* DeserializeDSObjectDispatch(MxU8*& p_source, MxS16 p_flags)
|
||||
|
||||
return obj;
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x100c0280
|
||||
MxDSObject* CreateStreamObject(MxDSFile* p_file, MxS16 p_ofs)
|
||||
{
|
||||
MxU8* buf;
|
||||
_MMCKINFO tmpChunk;
|
||||
|
||||
if (p_file->Seek(((MxLong*) p_file->GetBuffer())[p_ofs], SEEK_SET)) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (p_file->Read((MxU8*) &tmpChunk.ckid, 8) == 0 && tmpChunk.ckid == FOURCC('M', 'x', 'S', 't')) {
|
||||
if (p_file->Read((MxU8*) &tmpChunk.ckid, 8) == 0 && tmpChunk.ckid == FOURCC('M', 'x', 'O', 'b')) {
|
||||
|
||||
buf = new MxU8[tmpChunk.cksize];
|
||||
if (!buf) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (p_file->Read(buf, tmpChunk.cksize) != 0) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
// Save a copy so we can clean up properly, because
|
||||
// this function will alter the pointer value.
|
||||
MxU8* copy = buf;
|
||||
MxDSObject* obj = DeserializeDSObjectDispatch(buf, -1);
|
||||
delete[] copy;
|
||||
return obj;
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
@@ -158,39 +158,3 @@ void FUN_100b7220(MxDSAction* p_action, MxU32 p_newFlags, MxBool p_setFlags)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Should probably be somewhere else
|
||||
// FUNCTION: LEGO1 0x100c0280
|
||||
MxDSObject* CreateStreamObject(MxDSFile* p_file, MxS16 p_ofs)
|
||||
{
|
||||
MxU8* buf;
|
||||
_MMCKINFO tmpChunk;
|
||||
|
||||
if (p_file->Seek(((MxLong*) p_file->GetBuffer())[p_ofs], SEEK_SET)) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (p_file->Read((MxU8*) &tmpChunk.ckid, 8) == 0 && tmpChunk.ckid == FOURCC('M', 'x', 'S', 't')) {
|
||||
if (p_file->Read((MxU8*) &tmpChunk.ckid, 8) == 0 && tmpChunk.ckid == FOURCC('M', 'x', 'O', 'b')) {
|
||||
|
||||
buf = new MxU8[tmpChunk.cksize];
|
||||
if (!buf) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (p_file->Read(buf, tmpChunk.cksize) != 0) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
// Save a copy so we can clean up properly, because
|
||||
// this function will alter the pointer value.
|
||||
MxU8* copy = buf;
|
||||
MxDSObject* obj = DeserializeDSObjectDispatch(buf, -1);
|
||||
delete[] copy;
|
||||
return obj;
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
@@ -8,6 +8,7 @@
|
||||
#define SI_MAJOR_VERSION 2
|
||||
#define SI_MINOR_VERSION 2
|
||||
|
||||
DECOMP_SIZE_ASSERT(MxDSSource, 0x14)
|
||||
DECOMP_SIZE_ASSERT(MxDSFile::ChunkHeader, 0x0c)
|
||||
DECOMP_SIZE_ASSERT(MxDSFile, 0x7c)
|
||||
|
||||
|
@@ -1,23 +0,0 @@
|
||||
#include "mxdssource.h"
|
||||
|
||||
#include "mxdsbuffer.h"
|
||||
|
||||
DECOMP_SIZE_ASSERT(MxDSSource, 0x14)
|
||||
|
||||
// FUNCTION: LEGO1 0x100bffd0
|
||||
MxResult MxDSSource::ReadToBuffer(MxDSBuffer* p_buffer)
|
||||
{
|
||||
return Read(p_buffer->GetBuffer(), p_buffer->GetWriteOffset());
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x100bfff0
|
||||
MxLong MxDSSource::GetLengthInDWords()
|
||||
{
|
||||
return m_lengthInDWords;
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x100c0000
|
||||
MxU32* MxDSSource::GetBuffer()
|
||||
{
|
||||
return m_pBuffer;
|
||||
}
|
Reference in New Issue
Block a user