mirror of
https://github.com/cemu-project/Cemu.git
synced 2025-07-08 16:01:19 +12:00
coreinit: Implement several FSA functions and fix some bugs (#844)
This commit is contained in:
parent
ae4cb45cf3
commit
f1ebfa9941
10 changed files with 1032 additions and 121 deletions
|
@ -302,6 +302,15 @@ public:
|
|||
return true;
|
||||
}
|
||||
|
||||
bool fscRewindDir() override
|
||||
{
|
||||
if (!dirIterator)
|
||||
return true;
|
||||
|
||||
dirIterator->index = 0;
|
||||
return true;
|
||||
}
|
||||
|
||||
void addUniqueDirEntry(const FSCDirEntry& dirEntry)
|
||||
{
|
||||
// skip if already in list
|
||||
|
@ -378,6 +387,7 @@ FSCVirtualFile* fsc_open(const char* path, FSC_ACCESS_FLAG accessFlags, sint32*
|
|||
{
|
||||
// return first found file
|
||||
cemu_assert_debug(HAS_FLAG(accessFlags, FSC_ACCESS_FLAG::OPEN_FILE));
|
||||
fscVirtualFile->m_isAppend = HAS_FLAG(accessFlags, FSC_ACCESS_FLAG::IS_APPEND);
|
||||
fscLeave();
|
||||
return fscVirtualFile;
|
||||
}
|
||||
|
@ -598,6 +608,9 @@ uint32 fsc_writeFile(FSCVirtualFile* fscFile, void* buffer, uint32 size)
|
|||
fscLeave();
|
||||
return 0;
|
||||
}
|
||||
if (fscFile->m_isAppend)
|
||||
fsc_setFileSeek(fscFile, fsc_getFileSize(fscFile));
|
||||
|
||||
uint32 fscStatus = fscFile->fscWriteData(buffer, size);
|
||||
fscLeave();
|
||||
return fscStatus;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue