some accuracy improvements

This commit is contained in:
Christian Semmler 2023-06-26 13:44:55 +02:00
parent 47ee40fabc
commit 4b337a024b
No known key found for this signature in database
GPG Key ID: 086DAA1360BEEE5C
3 changed files with 13 additions and 11 deletions

View File

@ -27,26 +27,28 @@ long MxDSFile::Open(unsigned long uStyle)
{ {
// No idea what's stopping this one matching, but I'm pretty // No idea what's stopping this one matching, but I'm pretty
// confident it has the correct behavior. // confident it has the correct behavior.
long longResult = 1;
memset(&m_io, 0, sizeof(MXIOINFO)); memset(&m_io, 0, sizeof(MXIOINFO));
if (m_io.Open(m_filename.GetData(), uStyle) != 0) { if (m_io.Open(m_filename.GetData(), uStyle) != 0) {
return -1; return -1;
} }
m_io.SetBuffer(NULL, 0); m_io.SetBuffer(NULL, 0, 0);
m_position = 0; m_position = 0;
long longResult = 1; if (m_skipReadingChunks == 0) {
if (m_skipReadingChunks == 0)
{
longResult = ReadChunks(); longResult = ReadChunks();
} }
if (longResult != 0)
{ if (longResult != 0) {
Close(); // vtable + 0x18 Close(); // vtable + 0x18
return longResult;
} }
Seek(0, 0); // vtable + 0x24 else {
return 0; Seek(0, 0); // vtable + 0x24
}
return longResult;
} }
// OFFSET: LEGO1 0x100cc780 // OFFSET: LEGO1 0x100cc780

View File

@ -37,7 +37,7 @@ LONG MXIOINFO::Seek(LONG lOffset, int iOrigin)
} }
// OFFSET: LEGO1 0x100ccbc0 // OFFSET: LEGO1 0x100ccbc0
void MXIOINFO::SetBuffer(LPSTR pchBuffer, LONG cchBuffer) void MXIOINFO::SetBuffer(LPSTR pchBuffer, LONG cchBuffer, LONG unk)
{ {
} }

View File

@ -13,7 +13,7 @@ class MXIOINFO
void Close(long arg); void Close(long arg);
LONG Seek(LONG lOffset, int iOrigin); LONG Seek(LONG lOffset, int iOrigin);
unsigned long Read(HPSTR pch, LONG cch); unsigned long Read(HPSTR pch, LONG cch);
void SetBuffer(LPSTR pchBuffer, LONG cchBuffer); void SetBuffer(LPSTR pchBuffer, LONG cchBuffer, LONG unk);
unsigned short Descend(LPMMCKINFO pmmcki, const MMCKINFO *pmmckiParent, UINT fuDescend); unsigned short Descend(LPMMCKINFO pmmcki, const MMCKINFO *pmmckiParent, UINT fuDescend);
MMIOINFO m_info; MMIOINFO m_info;