Skip to content

Commit

Permalink
Replace VFS directories array with std::list.
Browse files Browse the repository at this point in the history
Remove the VFS_MAXDIRS constant since there's no such limitation in Doom 3 neither.
  • Loading branch information
codereader committed Sep 12, 2017
1 parent 4946757 commit 2a7e114
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 16 deletions.
16 changes: 5 additions & 11 deletions plugins/vfspk3/Doom3FileSystem.cpp
Expand Up @@ -39,29 +39,23 @@
#include "DirectoryArchiveTextFile.h"
#include "SortedFilenames.h"

Doom3FileSystem::Doom3FileSystem() :
_numDirectories(0)
Doom3FileSystem::Doom3FileSystem()
{}

void Doom3FileSystem::initDirectory(const std::string& inputPath)
{
if (_numDirectories == (VFS_MAXDIRS-1)) {
return;
}

// greebo: Normalise path: Replace backslashes and ensure trailing slash
_directories[_numDirectories] = os::standardPathWithSlash(inputPath);
_directories.push_back(os::standardPathWithSlash(inputPath));

// Shortcut
const std::string& path = _directories[_numDirectories];

_numDirectories++;
const std::string& path = _directories.back();

{
ArchiveDescriptor entry;
entry.name = path;
entry.archive = std::make_shared<DirectoryArchive>(path);
entry.is_pakfile = false;

_archives.push_back(entry);
}

Expand Down Expand Up @@ -138,7 +132,7 @@ void Doom3FileSystem::shutdown()
rMessage() << "filesystem shutdown" << std::endl;

_archives.clear();
_numDirectories = 0;
_directories.clear();
}

void Doom3FileSystem::addObserver(Observer& observer)
Expand Down
6 changes: 1 addition & 5 deletions plugins/vfspk3/Doom3FileSystem.h
Expand Up @@ -4,14 +4,11 @@
#include "iarchive.h"
#include "ifilesystem.h"

#define VFS_MAXDIRS 8

class Doom3FileSystem :
public VirtualFileSystem
{
private:
std::string _directories[VFS_MAXDIRS];
int _numDirectories;
std::list<std::string> _directories;
std::set<std::string> _allowedExtensions;
std::set<std::string> _allowedExtensionsDir;

Expand All @@ -29,7 +26,6 @@ class Doom3FileSystem :
ObserverList _observers;

public:
// Constructor
Doom3FileSystem();

void initDirectory(const std::string& path) override;
Expand Down

0 comments on commit 2a7e114

Please sign in to comment.