From ad471494e0846de2ff09b1a5a1d18c120e51ba2f Mon Sep 17 00:00:00 2001 From: Anonymous Maarten Date: Mon, 23 Dec 2024 22:03:14 +0100 Subject: [PATCH] Use SDL_IOStream to read bitmaps --- LEGO1/omni/include/mxbitmap.h | 3 ++- LEGO1/omni/src/video/mxbitmap.cpp | 17 ++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/LEGO1/omni/include/mxbitmap.h b/LEGO1/omni/include/mxbitmap.h index 5df4c8ba..439fcc9a 100644 --- a/LEGO1/omni/include/mxbitmap.h +++ b/LEGO1/omni/include/mxbitmap.h @@ -5,6 +5,7 @@ #include "mxtypes.h" #include +#include #include class MxPalette; @@ -43,7 +44,7 @@ class MxBitmap : public MxCore { virtual MxResult ImportBitmap(MxBitmap* p_bitmap); // vtable+14 virtual MxResult ImportBitmapInfo(MxBITMAPINFO* p_info); // vtable+18 virtual MxResult SetSize(MxS32 p_width, MxS32 p_height, MxPalette* p_palette, MxBool); // vtable+1c - virtual MxResult LoadFile(HANDLE p_handle); // vtable+20 + virtual MxResult LoadFile(SDL_IOStream* p_handle); // vtable+20 virtual MxLong Read(const char* p_filename); // vtable+24 // FUNCTION: LEGO1 0x1004e0d0 diff --git a/LEGO1/omni/src/video/mxbitmap.cpp b/LEGO1/omni/src/video/mxbitmap.cpp index d914d7fa..a2fc3dc0 100644 --- a/LEGO1/omni/src/video/mxbitmap.cpp +++ b/LEGO1/omni/src/video/mxbitmap.cpp @@ -175,11 +175,11 @@ MxResult MxBitmap::ImportBitmap(MxBitmap* p_bitmap) MxLong MxBitmap::Read(const char* p_filename) { MxResult result = FAILURE; - HANDLE handle = 0; + SDL_IOStream *handle; - handle = CreateFileA(p_filename, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); + handle = SDL_IOFromFile(p_filename, "rb"); - if (handle == INVALID_HANDLE_VALUE) { + if (handle == NULL) { goto done; } @@ -191,7 +191,7 @@ MxLong MxBitmap::Read(const char* p_filename) done: if (handle) { - CloseHandle(handle); + SDL_CloseIO(handle); } return result; @@ -199,15 +199,14 @@ MxLong MxBitmap::Read(const char* p_filename) // FUNCTION: LEGO1 0x100bcd60 // FUNCTION: BETA10 0x1013d169 -MxResult MxBitmap::LoadFile(HANDLE p_handle) +MxResult MxBitmap::LoadFile(SDL_IOStream* p_handle) { MxResult result = FAILURE; MxLong unused = 0; MxLong size; - DWORD bytesRead; BITMAPFILEHEADER hdr; - if (!ReadFile(p_handle, &hdr, sizeof(hdr), &bytesRead, NULL)) { + if (!SDL_ReadIO(p_handle, &hdr, sizeof(hdr))) { goto done; } @@ -220,7 +219,7 @@ MxResult MxBitmap::LoadFile(HANDLE p_handle) goto done; } - if (!ReadFile(p_handle, m_info, MxBitmapInfoSize(), &bytesRead, NULL)) { + if (!SDL_ReadIO(p_handle, m_info, MxBitmapInfoSize())) { goto done; } @@ -234,7 +233,7 @@ MxResult MxBitmap::LoadFile(HANDLE p_handle) goto done; } - if (!ReadFile(p_handle, m_data, size, &bytesRead, NULL)) { + if (!SDL_ReadIO(p_handle, m_data, size)) { goto done; }