diff options
| author | briaguya <70942617+briaguya-ai@users.noreply.github.com> | 2022-11-14 05:22:34 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-11-14 11:22:34 +0100 |
| commit | 3914781ebfd5cb22717cc207cb3d37d8754d0eb7 (patch) | |
| tree | 2e412b87e66b1deef47bef242e7189a200cea0ff /StormLib/src/SFileExtractFile.cpp | |
| parent | 9eb29ed81cb497a6a216811255f8af7daf3f8bd8 (diff) | |
Import libultraship as a submodule (#1943)
Co-authored-by: briaguya <briaguya>
Co-authored-by: Christopher Leggett <chris@leggett.dev>
Co-authored-by: David Chavez <davi@dcvz.io>
Diffstat (limited to 'StormLib/src/SFileExtractFile.cpp')
| -rw-r--r-- | StormLib/src/SFileExtractFile.cpp | 64 |
1 files changed, 0 insertions, 64 deletions
diff --git a/StormLib/src/SFileExtractFile.cpp b/StormLib/src/SFileExtractFile.cpp deleted file mode 100644 index 6b3b76759..000000000 --- a/StormLib/src/SFileExtractFile.cpp +++ /dev/null @@ -1,64 +0,0 @@ -/*****************************************************************************/ -/* SFileExtractFile.cpp Copyright (c) Ladislav Zezula 2003 */ -/*---------------------------------------------------------------------------*/ -/* Simple extracting utility */ -/*---------------------------------------------------------------------------*/ -/* Date Ver Who Comment */ -/* -------- ---- --- ------- */ -/* 20.06.03 1.00 Lad The first version of SFileExtractFile.cpp */ -/*****************************************************************************/ - -#define __STORMLIB_SELF__ -#include "StormLib.h" -#include "StormCommon.h" - -bool WINAPI SFileExtractFile(HANDLE hMpq, const char * szToExtract, const TCHAR * szExtracted, DWORD dwSearchScope) -{ - TFileStream * pLocalFile = NULL; - HANDLE hMpqFile = NULL; - DWORD dwErrCode = ERROR_SUCCESS; - - // Open the MPQ file - if(dwErrCode == ERROR_SUCCESS) - { - if(!SFileOpenFileEx(hMpq, szToExtract, dwSearchScope, &hMpqFile)) - dwErrCode = GetLastError(); - } - - // Create the local file - if(dwErrCode == ERROR_SUCCESS) - { - pLocalFile = FileStream_CreateFile(szExtracted, 0); - if(pLocalFile == NULL) - dwErrCode = GetLastError(); - } - - // Copy the file's content - while(dwErrCode == ERROR_SUCCESS) - { - char szBuffer[0x1000]; - DWORD dwTransferred = 0; - - // dwTransferred is only set to nonzero if something has been read. - // dwErrCode can be ERROR_SUCCESS or ERROR_HANDLE_EOF - if(!SFileReadFile(hMpqFile, szBuffer, sizeof(szBuffer), &dwTransferred, NULL)) - dwErrCode = GetLastError(); - if(dwErrCode == ERROR_HANDLE_EOF) - dwErrCode = ERROR_SUCCESS; - if(dwTransferred == 0) - break; - - // If something has been actually read, write it - if(!FileStream_Write(pLocalFile, NULL, szBuffer, dwTransferred)) - dwErrCode = GetLastError(); - } - - // Close the files - if(hMpqFile != NULL) - SFileCloseFile(hMpqFile); - if(pLocalFile != NULL) - FileStream_Close(pLocalFile); - if(dwErrCode != ERROR_SUCCESS) - SetLastError(dwErrCode); - return (dwErrCode == ERROR_SUCCESS); -} |
