mirror of
https://github.com/1dot13/source.git
synced 2026-09-09 14:46:05 +02:00
*** Merged Code from Multiplayer Branch Revision 2960 ***
- Virtual File System (VFS) by birdflu. This is needed for Multiplayer and is also used for Single Player. Very neat system :-) - Multiplayer Version 1.1 + some additional features and bugfixes * INFO: If you compile a new EXE and want to test, be sure to also use the latest SVN GameDir files in your JA2 install directory * git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@2961 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
#ifndef _VFS_VFILE_H_
|
||||
#define _VFS_VFILE_H_
|
||||
|
||||
#include "vfs_profile.h"
|
||||
#include <vector>
|
||||
|
||||
namespace vfs
|
||||
{
|
||||
class CVirtualFile
|
||||
{
|
||||
public:
|
||||
enum ESearchFile
|
||||
{
|
||||
SF_TOP,
|
||||
SF_FIRST_WRITEABLE,
|
||||
SF_STOP_ON_WRITEABLE_PROFILE,
|
||||
};
|
||||
public:
|
||||
~CVirtualFile();
|
||||
//CVirtualFile(vfs::Path const& sFilePath, CProfileStack& rPStack);
|
||||
static CVirtualFile* Create(vfs::Path const& sFilePath, CProfileStack& rPStack);
|
||||
|
||||
vfs::Path const& Path();
|
||||
void Add(vfs::IBaseFile *pFile, utf8string sProfileName, bool bReplace = false);
|
||||
bool Remove(vfs::IBaseFile *pFile);
|
||||
//////////////////////////////////////////////////
|
||||
vfs::IBaseFile* File(ESearchFile eSearch);
|
||||
vfs::IBaseFile* File(utf8string const& sProfileName);
|
||||
//////////////////////////////////////////////////
|
||||
private:
|
||||
friend class std::vector<vfs::CVirtualFile>;
|
||||
CVirtualFile();
|
||||
private:
|
||||
vfs::Path _path;
|
||||
utf8string _top_pname;
|
||||
vfs::IBaseFile* _top_file;
|
||||
CProfileStack* _pstack;
|
||||
private:
|
||||
unsigned int _myID;
|
||||
static ObjBlockAllocator<CVirtualFile>* _vfile_pool;
|
||||
};
|
||||
} // end namspace
|
||||
|
||||
#endif // _VFS_VFILE_H_
|
||||
Reference in New Issue
Block a user