chore(file): add sfile/sfilenative backend selection

This commit is contained in:
aomizu 2025-12-29 19:01:26 +09:00 committed by fallenoak
parent fb141ff527
commit a4dec308c2
4 changed files with 126 additions and 0 deletions

View file

@ -39,11 +39,18 @@ if(WHOA_SYSTEM_LINUX)
list(APPEND STORM_SOURCES ${STORM_LINUX_SOURCES})
endif()
if(WHOA_SFILE_MODE STREQUAL "STORMLIB")
list(APPEND STORM_SOURCES "file/SFile.cpp")
else()
list(APPEND STORM_SOURCES "file/SFileNative.cpp")
endif()
add_library(storm STATIC
${STORM_SOURCES}
)
target_compile_definitions(storm PRIVATE _CRT_SECURE_NO_WARNINGS)
target_compile_definitions(storm PUBLIC WHOA_SFILE_MODE_${WHOA_SFILE_MODE})
target_include_directories(storm
PUBLIC

58
storm/file/SFile.cpp Normal file
View file

@ -0,0 +1,58 @@
#include "storm/File.hpp"
// TODO: implement StormLib-backed SFile functions.
int32_t STORMAPI SFileOpenArchive(const char* archivename, int32_t priority, uint32_t flags, HSARCHIVE* handle) {
(void)archivename;
(void)priority;
(void)flags;
(void)handle;
return 0;
}
int32_t STORMAPI SFileCloseArchive(HSARCHIVE handle) {
(void)handle;
return 0;
}
int32_t STORMAPI SFileOpenFileEx(HSARCHIVE archivehandle, const char* filename, uint32_t flags, HSFILE* handle) {
(void)archivehandle;
(void)filename;
(void)flags;
(void)handle;
return 0;
}
int32_t STORMAPI SFileReadFile(HSFILE handle, void* buffer, uint32_t bytestoread, uint32_t* bytesread, LPOVERLAPPED overlapped) {
(void)handle;
(void)buffer;
(void)bytestoread;
(void)overlapped;
if (bytesread) {
*bytesread = 0;
}
return 0;
}
uint32_t STORMAPI SFileGetFileSize(HSFILE handle, uint32_t* filesizehigh) {
(void)handle;
if (filesizehigh) {
*filesizehigh = 0;
}
return 0;
}
uint32_t STORMAPI SFileSetFilePointer(HSFILE handle, int32_t distancetomove, int32_t* distancetomovehigh, uint32_t movemethod) {
(void)handle;
(void)distancetomove;
(void)movemethod;
if (distancetomovehigh) {
*distancetomovehigh = 0;
}
return 0;
}
int32_t STORMAPI SFileCloseFile(HSFILE handle) {
(void)handle;
return 0;
}

View file

@ -0,0 +1,58 @@
#include "storm/File.hpp"
// TODO: implement native filesystem-backed SFile functions. same functionality as whoa's SFile?
int32_t STORMAPI SFileOpenArchive(const char* archivename, int32_t priority, uint32_t flags, HSARCHIVE* handle) {
(void)archivename;
(void)priority;
(void)flags;
(void)handle;
return 0;
}
int32_t STORMAPI SFileCloseArchive(HSARCHIVE handle) {
(void)handle;
return 0;
}
int32_t STORMAPI SFileOpenFileEx(HSARCHIVE archivehandle, const char* filename, uint32_t flags, HSFILE* handle) {
(void)archivehandle;
(void)filename;
(void)flags;
(void)handle;
return 0;
}
int32_t STORMAPI SFileReadFile(HSFILE handle, void* buffer, uint32_t bytestoread, uint32_t* bytesread, LPOVERLAPPED overlapped) {
(void)handle;
(void)buffer;
(void)bytestoread;
(void)overlapped;
if (bytesread) {
*bytesread = 0;
}
return 0;
}
uint32_t STORMAPI SFileGetFileSize(HSFILE handle, uint32_t* filesizehigh) {
(void)handle;
if (filesizehigh) {
*filesizehigh = 0;
}
return 0;
}
uint32_t STORMAPI SFileSetFilePointer(HSFILE handle, int32_t distancetomove, int32_t* distancetomovehigh, uint32_t movemethod) {
(void)handle;
(void)distancetomove;
(void)movemethod;
if (distancetomovehigh) {
*distancetomovehigh = 0;
}
return 0;
}
int32_t STORMAPI SFileCloseFile(HSFILE handle) {
(void)handle;
return 0;
}