summaryrefslogtreecommitdiff
path: root/StormLib/src/SFileExtractFile.cpp
diff options
context:
space:
mode:
authorbriaguya <70942617+briaguya-ai@users.noreply.github.com>2022-11-14 05:22:34 -0500
committerGitHub <noreply@github.com>2022-11-14 11:22:34 +0100
commit3914781ebfd5cb22717cc207cb3d37d8754d0eb7 (patch)
tree2e412b87e66b1deef47bef242e7189a200cea0ff /StormLib/src/SFileExtractFile.cpp
parent9eb29ed81cb497a6a216811255f8af7daf3f8bd8 (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.cpp64
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);
-}