From 4b337a024b5bae42000b8c70bbbbcfd28b728817 Mon Sep 17 00:00:00 2001 From: Christian Semmler Date: Mon, 26 Jun 2023 13:44:55 +0200 Subject: [PATCH] some accuracy improvements --- LEGO1/mxdsfile.cpp | 20 +++++++++++--------- LEGO1/mxioinfo.cpp | 2 +- LEGO1/mxioinfo.h | 2 +- 3 files changed, 13 insertions(+), 11 deletions(-) diff --git a/LEGO1/mxdsfile.cpp b/LEGO1/mxdsfile.cpp index cf37e187..1f268a2f 100644 --- a/LEGO1/mxdsfile.cpp +++ b/LEGO1/mxdsfile.cpp @@ -27,26 +27,28 @@ long MxDSFile::Open(unsigned long uStyle) { // No idea what's stopping this one matching, but I'm pretty // confident it has the correct behavior. + long longResult = 1; memset(&m_io, 0, sizeof(MXIOINFO)); + if (m_io.Open(m_filename.GetData(), uStyle) != 0) { return -1; } - m_io.SetBuffer(NULL, 0); + m_io.SetBuffer(NULL, 0, 0); m_position = 0; - long longResult = 1; - if (m_skipReadingChunks == 0) - { + if (m_skipReadingChunks == 0) { longResult = ReadChunks(); } - if (longResult != 0) - { + + if (longResult != 0) { Close(); // vtable + 0x18 - return longResult; } - Seek(0, 0); // vtable + 0x24 - return 0; + else { + Seek(0, 0); // vtable + 0x24 + } + + return longResult; } // OFFSET: LEGO1 0x100cc780 diff --git a/LEGO1/mxioinfo.cpp b/LEGO1/mxioinfo.cpp index 374eaedb..48b0c57e 100644 --- a/LEGO1/mxioinfo.cpp +++ b/LEGO1/mxioinfo.cpp @@ -37,7 +37,7 @@ LONG MXIOINFO::Seek(LONG lOffset, int iOrigin) } // OFFSET: LEGO1 0x100ccbc0 -void MXIOINFO::SetBuffer(LPSTR pchBuffer, LONG cchBuffer) +void MXIOINFO::SetBuffer(LPSTR pchBuffer, LONG cchBuffer, LONG unk) { } diff --git a/LEGO1/mxioinfo.h b/LEGO1/mxioinfo.h index 27aa482d..59ee3807 100644 --- a/LEGO1/mxioinfo.h +++ b/LEGO1/mxioinfo.h @@ -13,7 +13,7 @@ class MXIOINFO void Close(long arg); LONG Seek(LONG lOffset, int iOrigin); 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); MMIOINFO m_info;