mirror of
https://github.com/isledecomp/isle-portable.git
synced 2026-01-11 18:41:14 +00:00
Use SDL_IOStream to read bitmaps
This commit is contained in:
parent
79dca34394
commit
ad471494e0
@ -5,6 +5,7 @@
|
||||
#include "mxtypes.h"
|
||||
|
||||
#include <ddraw.h>
|
||||
#include <SDL3/SDL_iostream.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
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
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user