mirror of
https://github.com/isledecomp/isle-portable.git
synced 2024-12-18 03:43:54 -05:00
Merge remote-tracking branch 'isle/master'
This commit is contained in:
commit
aa3a66cd82
8 changed files with 20 additions and 14 deletions
|
@ -319,7 +319,7 @@ MxResult LegoWorldPresenter::FUN_10067360(ModelDbPart& p_part, FILE* p_wdbFile)
|
||||||
MxResult result;
|
MxResult result;
|
||||||
MxU8* buff = new MxU8[p_part.m_partDataLength];
|
MxU8* buff = new MxU8[p_part.m_partDataLength];
|
||||||
|
|
||||||
fseek(p_wdbFile, p_part.m_partDataOffset, 0);
|
fseek(p_wdbFile, p_part.m_partDataOffset, SEEK_SET);
|
||||||
if (fread(buff, p_part.m_partDataLength, 1, p_wdbFile) != 1) {
|
if (fread(buff, p_part.m_partDataLength, 1, p_wdbFile) != 1) {
|
||||||
return FAILURE;
|
return FAILURE;
|
||||||
}
|
}
|
||||||
|
@ -344,7 +344,7 @@ MxResult LegoWorldPresenter::FUN_100674b0(ModelDbModel& p_model, FILE* p_wdbFile
|
||||||
{
|
{
|
||||||
MxU8* buff = new MxU8[p_model.m_unk0x04];
|
MxU8* buff = new MxU8[p_model.m_unk0x04];
|
||||||
|
|
||||||
fseek(p_wdbFile, p_model.m_unk0x08, 0);
|
fseek(p_wdbFile, p_model.m_unk0x08, SEEK_SET);
|
||||||
if (fread(buff, p_model.m_unk0x04, 1, p_wdbFile) != 1) {
|
if (fread(buff, p_model.m_unk0x04, 1, p_wdbFile) != 1) {
|
||||||
return FAILURE;
|
return FAILURE;
|
||||||
}
|
}
|
||||||
|
|
|
@ -52,8 +52,11 @@ MxResult ModelDbModel::Read(FILE* p_file)
|
||||||
if (fread(&m_up, sizeof(*m_up), 3, p_file) != 3) {
|
if (fread(&m_up, sizeof(*m_up), 3, p_file) != 3) {
|
||||||
return FAILURE;
|
return FAILURE;
|
||||||
}
|
}
|
||||||
|
if (fread(&m_unk0x34, sizeof(m_unk0x34), 1, p_file) != 1) {
|
||||||
|
return FAILURE;
|
||||||
|
}
|
||||||
|
|
||||||
return fread(&m_unk0x34, sizeof(m_unk0x34), 1, p_file) == 1 ? SUCCESS : FAILURE;
|
return SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x10027850
|
// FUNCTION: LEGO1 0x10027850
|
||||||
|
@ -76,8 +79,11 @@ MxResult ModelDbPart::Read(FILE* p_file)
|
||||||
if (fread(&m_partDataLength, sizeof(m_partDataLength), 1, p_file) != 1) {
|
if (fread(&m_partDataLength, sizeof(m_partDataLength), 1, p_file) != 1) {
|
||||||
return FAILURE;
|
return FAILURE;
|
||||||
}
|
}
|
||||||
|
if (fread(&m_partDataOffset, sizeof(m_partDataOffset), 1, p_file) != 1) {
|
||||||
|
return FAILURE;
|
||||||
|
}
|
||||||
|
|
||||||
return fread(&m_partDataOffset, sizeof(m_partDataOffset), 1, p_file) == 1 ? SUCCESS : FAILURE;
|
return SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x10027910
|
// FUNCTION: LEGO1 0x10027910
|
||||||
|
|
|
@ -43,7 +43,7 @@ class MxDSFile : public MxDSSource {
|
||||||
MxResult Open(MxULong) override; // vtable+0x14
|
MxResult Open(MxULong) override; // vtable+0x14
|
||||||
MxResult Close() override; // vtable+0x18
|
MxResult Close() override; // vtable+0x18
|
||||||
MxResult Read(unsigned char*, MxULong) override; // vtable+0x20
|
MxResult Read(unsigned char*, MxULong) override; // vtable+0x20
|
||||||
MxResult Seek(MxLong, int) override; // vtable+0x24
|
MxResult Seek(MxLong, MxS32) override; // vtable+0x24
|
||||||
MxULong GetBufferSize() override; // vtable+0x28
|
MxULong GetBufferSize() override; // vtable+0x28
|
||||||
MxULong GetStreamBuffersNum() override; // vtable+0x2c
|
MxULong GetStreamBuffersNum() override; // vtable+0x2c
|
||||||
|
|
||||||
|
|
|
@ -31,7 +31,7 @@ class MxDSSource : public MxCore {
|
||||||
virtual MxLong Close() = 0; // vtable+0x18
|
virtual MxLong Close() = 0; // vtable+0x18
|
||||||
virtual MxResult ReadToBuffer(MxDSBuffer* p_buffer); // vtable+0x1c
|
virtual MxResult ReadToBuffer(MxDSBuffer* p_buffer); // vtable+0x1c
|
||||||
virtual MxResult Read(unsigned char*, MxULong) = 0; // vtable+0x20
|
virtual MxResult Read(unsigned char*, MxULong) = 0; // vtable+0x20
|
||||||
virtual MxLong Seek(MxLong, int) = 0; // vtable+0x24
|
virtual MxLong Seek(MxLong, MxS32) = 0; // vtable+0x24
|
||||||
virtual MxULong GetBufferSize() = 0; // vtable+0x28
|
virtual MxULong GetBufferSize() = 0; // vtable+0x28
|
||||||
virtual MxULong GetStreamBuffersNum() = 0; // vtable+0x2c
|
virtual MxULong GetStreamBuffersNum() = 0; // vtable+0x2c
|
||||||
virtual MxLong GetLengthInDWords(); // vtable+0x30
|
virtual MxLong GetLengthInDWords(); // vtable+0x30
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
|
|
||||||
// GLOBAL: LEGO1 0x101020e8
|
// GLOBAL: LEGO1 0x101020e8
|
||||||
void (*g_omniUserMessage)(const char*, int) = NULL;
|
void (*g_omniUserMessage)(const char*, MxS32) = NULL;
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100b6e10
|
// FUNCTION: LEGO1 0x100b6e10
|
||||||
MxBool GetRectIntersection(
|
MxBool GetRectIntersection(
|
||||||
|
@ -166,7 +166,7 @@ MxDSObject* CreateStreamObject(MxDSFile* p_file, MxS16 p_ofs)
|
||||||
MxU8* buf;
|
MxU8* buf;
|
||||||
_MMCKINFO tmpChunk;
|
_MMCKINFO tmpChunk;
|
||||||
|
|
||||||
if (p_file->Seek(((MxLong*) p_file->GetBuffer())[p_ofs], 0)) {
|
if (p_file->Seek(((MxLong*) p_file->GetBuffer())[p_ofs], SEEK_SET)) {
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -92,11 +92,11 @@ MxResult MxDiskStreamProvider::SetResourceToGet(MxStreamController* p_resource)
|
||||||
|
|
||||||
m_pFile = new MxDSFile(path.GetData(), 0);
|
m_pFile = new MxDSFile(path.GetData(), 0);
|
||||||
if (m_pFile != NULL) {
|
if (m_pFile != NULL) {
|
||||||
if (m_pFile->Open(0) != 0) {
|
if (m_pFile->Open(OF_READ) != 0) {
|
||||||
path = MxString(MxOmni::GetCD()) + p_resource->GetAtom().GetInternal() + ".si";
|
path = MxString(MxOmni::GetCD()) + p_resource->GetAtom().GetInternal() + ".si";
|
||||||
m_pFile->SetFileName(path.GetData());
|
m_pFile->SetFileName(path.GetData());
|
||||||
|
|
||||||
if (m_pFile->Open(0) != 0) {
|
if (m_pFile->Open(OF_READ) != 0) {
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -245,7 +245,7 @@ void MxDiskStreamProvider::PerformWork()
|
||||||
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(), SEEK_SET) == 0) {
|
||||||
buffer->SetUnknown14(m_pFile->GetPosition());
|
buffer->SetUnknown14(m_pFile->GetPosition());
|
||||||
|
|
||||||
if (m_pFile->ReadToBuffer(buffer) == SUCCESS) {
|
if (m_pFile->ReadToBuffer(buffer) == SUCCESS) {
|
||||||
|
|
|
@ -41,7 +41,7 @@ MxResult MxDSFile::Open(MxULong p_uStyle)
|
||||||
Close();
|
Close();
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
Seek(0, 0);
|
Seek(0, SEEK_SET);
|
||||||
}
|
}
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
|
|
|
@ -68,11 +68,11 @@ MxResult MxRAMStreamProvider::SetResourceToGet(MxStreamController* p_resource)
|
||||||
|
|
||||||
m_pFile = new MxDSFile(path.GetData(), 0);
|
m_pFile = new MxDSFile(path.GetData(), 0);
|
||||||
if (m_pFile != NULL) {
|
if (m_pFile != NULL) {
|
||||||
if (m_pFile->Open(0) != 0) {
|
if (m_pFile->Open(OF_READ) != 0) {
|
||||||
path = MxString(MxOmni::GetCD()) + p_resource->GetAtom().GetInternal() + ".si";
|
path = MxString(MxOmni::GetCD()) + p_resource->GetAtom().GetInternal() + ".si";
|
||||||
m_pFile->SetFileName(path.GetData());
|
m_pFile->SetFileName(path.GetData());
|
||||||
|
|
||||||
if (m_pFile->Open(0) != 0) {
|
if (m_pFile->Open(OF_READ) != 0) {
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue