diff --git a/src/audio_file.cc b/src/audio_file.cc index d9001de..89805e9 100644 --- a/src/audio_file.cc +++ b/src/audio_file.cc @@ -6,9 +6,9 @@ #include "sound.h" #include -#include #include #include +#include // 0x5108C0 AudioFileIsCompressedProc* _queryCompressedFunc_2 = _defaultCompressionFunc__; @@ -100,7 +100,7 @@ int audioFileOpen(const char* fname, int flags, ...) audioFile->soundDecoder = soundDecoderInit(audioFileSoundDecoderReadHandler, audioFile->fileHandle, &(audioFile->field_14), &(audioFile->field_10), &(audioFile->fileSize)); audioFile->fileSize *= 2; } else { - audioFile->fileSize = filelength(fileno(stream)); + audioFile->fileSize = std::filesystem::file_size(path); } audioFile->position = 0; diff --git a/src/cache.cc b/src/cache.cc index e6ed0b3..e2c77f3 100644 --- a/src/cache.cc +++ b/src/cache.cc @@ -5,6 +5,7 @@ #include "sound.h" #include +#include // qsort #include #include diff --git a/src/dfile.cc b/src/dfile.cc index 2332c46..f83f77c 100644 --- a/src/dfile.cc +++ b/src/dfile.cc @@ -5,10 +5,10 @@ #include #include -#include #include #include #include +#include // Reads .DAT file contents. // @@ -32,7 +32,7 @@ DBase* dbaseOpen(const char* filePath) // Get file size, and reposition stream to read footer, which contains two // 32-bits ints. - int fileSize = filelength(fileno(stream)); + int fileSize = std::filesystem::file_size(filePath); if (fseek(stream, fileSize - sizeof(int) * 2, SEEK_SET) != 0) { goto err; } diff --git a/src/game.cc b/src/game.cc index eeeb359..1cc632f 100644 --- a/src/game.cc +++ b/src/game.cc @@ -56,7 +56,12 @@ #include "window_manager.h" #include "world_map.h" +#ifdef _WIN32 #include +#else +#include // access +#endif + #include #define HELP_SCREEN_WIDTH (640) diff --git a/src/xfile.cc b/src/xfile.cc index ed667ae..95ca375 100644 --- a/src/xfile.cc +++ b/src/xfile.cc @@ -418,7 +418,9 @@ long xfileGetSize(XFile* stream) fileSize = 0; break; default: - fileSize = filelength(fileno(stream->file)); + fseek(stream->file, 0L, SEEK_END); + fileSize = ftell(stream->file); + rewind(stream->file); break; }