mirror of
https://github.com/TerryCavanagh/VVVVVV.git
synced 2024-06-25 05:58:30 +02:00
This seems to be a comment left by Ethan that he never got around to. So I did it for him. What I've done is made it so FileSystemUtils.cpp knows what a binary blob is, and moved the binary blob loading code directly to FileSystemUtils.cpp. To do this, I removed the private access modifier from binaryBlob - I don't think we'll need it, and anyways when we move to C we can't use it. Along the way, I also cleaned up the style of the function a bit - the null termination offset is no longer hardcoded, and the function no longer mixes code and declarations together in the same block. I also noticed that when printing all the filenames at the end, a single invalid header would stop the whole loop instead of just being skipped over... this seems to be a bug to me, so I've made it so invalid headers just get skipped over instead of stopping the whole loop. In FileSystemUtils.h, I used a forward declaration. In hindsight, incomplete forward declarations should basically always be done in header files if possible, otherwise this introduces the possibility of transitive includes - if a file includes this header and it does a full include, the file is silently able to use the full header, whereas if it's a forward declaration, then the moment the file tries to use the full header it fails, and then it's forced to include the full header for itself. But uh, that's a code cleanup for later.
49 lines
1.5 KiB
C++
49 lines
1.5 KiB
C++
#ifndef FILESYSTEMUTILS_H
|
|
#define FILESYSTEMUTILS_H
|
|
|
|
/* Forward declaration */
|
|
class binaryBlob;
|
|
|
|
#include <stddef.h>
|
|
|
|
// Forward declaration, including the entirety of tinyxml2.h across all files this file is included in is unnecessary
|
|
namespace tinyxml2 { class XMLDocument; }
|
|
|
|
int FILESYSTEM_init(char *argvZero, char* baseDir, char* assetsPath);
|
|
void FILESYSTEM_deinit(void);
|
|
|
|
char *FILESYSTEM_getUserSaveDirectory(void);
|
|
char *FILESYSTEM_getUserLevelDirectory(void);
|
|
|
|
bool FILESYSTEM_isFile(const char* filename);
|
|
bool FILESYSTEM_isMounted(const char* filename);
|
|
|
|
void FILESYSTEM_loadZip(const char* filename);
|
|
void FILESYSTEM_mountAssets(const char *path);
|
|
void FILESYSTEM_unmountAssets(void);
|
|
bool FILESYSTEM_isAssetMounted(const char* filename);
|
|
|
|
void FILESYSTEM_loadFileToMemory(const char *name, unsigned char **mem,
|
|
size_t *len, bool addnull);
|
|
void FILESYSTEM_loadAssetToMemory(
|
|
const char* name,
|
|
unsigned char** mem,
|
|
size_t* len,
|
|
const bool addnull
|
|
);
|
|
void FILESYSTEM_freeMemory(unsigned char **mem);
|
|
|
|
bool FILESYSTEM_loadBinaryBlob(binaryBlob* blob, const char* filename);
|
|
|
|
bool FILESYSTEM_saveTiXml2Document(const char *name, tinyxml2::XMLDocument& doc);
|
|
bool FILESYSTEM_loadTiXml2Document(const char *name, tinyxml2::XMLDocument& doc);
|
|
|
|
void FILESYSTEM_enumerateLevelDirFileNames(void (*callback)(const char* filename));
|
|
|
|
bool FILESYSTEM_openDirectoryEnabled(void);
|
|
bool FILESYSTEM_openDirectory(const char *dname);
|
|
|
|
bool FILESYSTEM_delete(const char *name);
|
|
|
|
#endif /* FILESYSTEMUTILS_H */
|