fix(file): added missing Read and ReadP calls on Windows

This commit is contained in:
phaneron 2025-03-16 02:18:03 -04:00
parent 48d1a3c0b0
commit d78609cceb
3 changed files with 16 additions and 4 deletions

View file

@ -1,7 +1,6 @@
#include "bc/system/file/Stacked.hpp"
#include "bc/file/Filesystem.hpp" #include "bc/file/Filesystem.hpp"
#include "bc/system/file/System_File.hpp" #include "bc/system/file/System_File.hpp"
#include "bc/system/file/Stacked.hpp"
#include "bc/String.hpp" #include "bc/String.hpp"
#include "bc/Memory.hpp" #include "bc/Memory.hpp"

View file

@ -3,7 +3,6 @@
#include "bc/file/Types.hpp" #include "bc/file/Types.hpp"
#include "bc/file/Filesystem.hpp" #include "bc/file/Filesystem.hpp"
#include "bc/system/file/System_File.hpp"
#include <cstdint> #include <cstdint>

View file

@ -308,12 +308,26 @@ bool write_init(Blizzard::File::StreamRecord* file, void* data, LPOVERLAPPED ove
return write_func(file, data, overlapped, count); return write_func(file, data, overlapped, count);
} }
bool Read(Blizzard::File::Filesystem* fs, Stacked::FileParms* parms) {
return read_func(parms->file, parms->data, nullptr, reinterpret_cast<LPDWORD>(&parms->count));
}
bool ReadP(Blizzard::File::Filesystem* fs, Stacked::FileParms* parms) {
OVERLAPPED overlapped;
overlapped.Offset = static_cast<DWORD>(parms->offset & 0xFFFFFFFF);
overlapped.OffsetHigh = static_cast<DWORD>((parms->offset >> 32) & 0xFFFFFFFF);
overlapped.Internal = 0;
overlapped.InternalHigh = 0;
overlapped.hEvent = nullptr;
return read_func(parms->file, parms->data, &overlapped, reinterpret_cast<LPDWORD>(&parms->count));
}
bool Write(Blizzard::File::Filesystem* fs, Stacked::FileParms* parms) { bool Write(Blizzard::File::Filesystem* fs, Stacked::FileParms* parms) {
return write_func(parms->file, parms->data, nullptr, reinterpret_cast<LPDWORD>(&parms->count)); return write_func(parms->file, parms->data, nullptr, reinterpret_cast<LPDWORD>(&parms->count));
} }
bool WriteP(Blizzard::File::Filesystem* fs, Stacked::FileParms* parms) { bool WriteP(Blizzard::File::Filesystem* fs, Stacked::FileParms* parms) {
OVERLAPPED overlapped = {}; OVERLAPPED overlapped;
overlapped.Offset = static_cast<DWORD>(parms->offset & 0xFFFFFFFF); overlapped.Offset = static_cast<DWORD>(parms->offset & 0xFFFFFFFF);
overlapped.OffsetHigh = static_cast<DWORD>((parms->offset >> 32) & 0xFFFFFFFF); overlapped.OffsetHigh = static_cast<DWORD>((parms->offset >> 32) & 0xFFFFFFFF);
overlapped.Internal = 0; overlapped.Internal = 0;