Skip to content

Commit

Permalink
#5231: Move skin manager to core module, as it only depends on the VFS.
Browse files Browse the repository at this point in the history
  • Loading branch information
codereader committed May 4, 2020
1 parent da793a3 commit 814f992
Show file tree
Hide file tree
Showing 8 changed files with 23 additions and 36 deletions.
8 changes: 0 additions & 8 deletions radiant/skins/Makefile.am

This file was deleted.

File renamed without changes.
Expand Up @@ -13,7 +13,7 @@ namespace skins
namespace
{
// CONSTANTS
const char* SKINS_FOLDER = "skins/";
const char* const SKINS_FOLDER = "skins/";
}

Doom3SkinCache::Doom3SkinCache() :
Expand All @@ -25,12 +25,9 @@ ModelSkin& Doom3SkinCache::capture(const std::string& name)
{
ensureDefsLoaded();

NamedSkinMap::iterator i = _namedSkins.find(name);
auto i = _namedSkins.find(name);

if (i != _namedSkins.end())
return *(i->second); // dereference shared_ptr
else
return _nullSkin;
return i != _namedSkins.end() ? *(i->second) : _nullSkin;
}

const StringList& Doom3SkinCache::getSkinsForModel(const std::string& model)
Expand Down Expand Up @@ -71,7 +68,7 @@ void Doom3SkinCache::loadSkinFiles()
[&] (const vfs::FileInfo& fileInfo)
{
// Open the .skin file and get its contents as a std::string
ArchiveTextFilePtr file = GlobalFileSystem().openTextFile(SKINS_FOLDER + fileInfo.name);
auto file = GlobalFileSystem().openTextFile(SKINS_FOLDER + fileInfo.name);
assert(file);

std::istream is(&(file->getInputStream()));
Expand Down Expand Up @@ -116,7 +113,7 @@ void Doom3SkinCache::parseFile(std::istream& contents, const std::string& filena

modelSkin->setSkinFileName(filename);

NamedSkinMap::iterator found = _namedSkins.find(skinName);
auto found = _namedSkins.find(skinName);

// Is this already defined?
if (found != _namedSkins.end())
Expand All @@ -130,8 +127,8 @@ void Doom3SkinCache::parseFile(std::istream& contents, const std::string& filena
{
// Add the populated Doom3ModelSkin to the hashtable and the name to the
// list of all skins
_namedSkins.insert(NamedSkinMap::value_type(skinName, modelSkin));
_allSkins.push_back(skinName);
_namedSkins.emplace(skinName, modelSkin);
_allSkins.emplace_back(skinName);
}
}
catch (parser::ParseException& e)
Expand Down Expand Up @@ -161,7 +158,7 @@ Doom3ModelSkinPtr Doom3SkinCache::parseSkin(parser::DefTokeniser& tok)
tok.assertNextToken("{");

// Create the skin object
Doom3ModelSkinPtr skin(new Doom3ModelSkin(skinName));
auto skin = std::make_shared<Doom3ModelSkin>(skinName);

// Read key/value pairs until end of decl
std::string key = tok.nextToken();
Expand Down
Expand Up @@ -6,7 +6,6 @@
#include "modelskin.h"
#include "parser/DefTokeniser.h"

#include <future>
#include <map>
#include <string>
#include <vector>
Expand Down Expand Up @@ -91,6 +90,5 @@ class Doom3SkinCache :
*/
void parseFile(std::istream& contents, const std::string& filename);
};
typedef std::shared_ptr<Doom3SkinCache> Doom3SkinCachePtr;

} // namespace skins
3 changes: 0 additions & 3 deletions tools/msvc/DarkRadiant.vcxproj
Expand Up @@ -784,7 +784,6 @@
<ClCompile Include="..\..\radiant\shaders\TableDefinition.cpp" />
<ClCompile Include="..\..\radiant\shaders\textures\GLTextureManager.cpp" />
<ClCompile Include="..\..\radiant\shaders\textures\TextureManipulator.cpp" />
<ClCompile Include="..\..\radiant\skins\Doom3SkinCache.cpp" />
<ClCompile Include="..\..\radiant\uimanager\animationpreview\AnimationPreview.cpp" />
<ClCompile Include="..\..\radiant\uimanager\animationpreview\MD5AnimationChooser.cpp" />
<ClCompile Include="..\..\radiant\uimanager\animationpreview\MD5AnimationViewer.cpp" />
Expand Down Expand Up @@ -1205,8 +1204,6 @@
<ClInclude Include="..\..\radiant\shaders\textures\GLTextureManager.h" />
<ClInclude Include="..\..\radiant\shaders\textures\HeightmapCreator.h" />
<ClInclude Include="..\..\radiant\shaders\textures\TextureManipulator.h" />
<ClInclude Include="..\..\radiant\skins\Doom3ModelSkin.h" />
<ClInclude Include="..\..\radiant\skins\Doom3SkinCache.h" />
<ClInclude Include="..\..\radiant\uimanager\animationpreview\AnimationPreview.h" />
<ClInclude Include="..\..\radiant\uimanager\animationpreview\MD5AnimationChooser.h" />
<ClInclude Include="..\..\radiant\uimanager\animationpreview\MD5AnimationViewer.h" />
Expand Down
12 changes: 0 additions & 12 deletions tools/msvc/DarkRadiant.vcxproj.filters
Expand Up @@ -245,9 +245,6 @@
<Filter Include="src\entity\target">
<UniqueIdentifier>{2bf54469-b319-4cd2-9307-504daf10c7d6}</UniqueIdentifier>
</Filter>
<Filter Include="src\skins">
<UniqueIdentifier>{8ce1c78d-15f1-45e8-a2ae-ccf77e7a1b08}</UniqueIdentifier>
</Filter>
<Filter Include="src\modelfile">
<UniqueIdentifier>{fcaedc16-a752-4a69-87a3-212322803b03}</UniqueIdentifier>
</Filter>
Expand Down Expand Up @@ -1153,9 +1150,6 @@
<ClCompile Include="..\..\radiant\entity\target\TargetManager.cpp">
<Filter>src\entity\target</Filter>
</ClCompile>
<ClCompile Include="..\..\radiant\skins\Doom3SkinCache.cpp">
<Filter>src\skins</Filter>
</ClCompile>
<ClCompile Include="..\..\radiant\modelfile\AseExporter.cpp">
<Filter>src\modelfile</Filter>
</ClCompile>
Expand Down Expand Up @@ -2598,12 +2592,6 @@
<ClInclude Include="..\..\radiant\entity\target\TargetManager.h">
<Filter>src\entity\target</Filter>
</ClInclude>
<ClInclude Include="..\..\radiant\skins\Doom3ModelSkin.h">
<Filter>src\skins</Filter>
</ClInclude>
<ClInclude Include="..\..\radiant\skins\Doom3SkinCache.h">
<Filter>src\skins</Filter>
</ClInclude>
<ClInclude Include="..\..\radiant\modelfile\AseExporter.h">
<Filter>src\modelfile</Filter>
</ClInclude>
Expand Down
3 changes: 3 additions & 0 deletions tools/msvc/DarkRadiantCore.vcxproj
Expand Up @@ -48,6 +48,7 @@
<ClCompile Include="..\..\radiantcore\settings\LanguageManager.cpp" />
<ClCompile Include="..\..\radiantcore\settings\PreferencePage.cpp" />
<ClCompile Include="..\..\radiantcore\settings\PreferenceSystem.cpp" />
<ClCompile Include="..\..\radiantcore\skins\Doom3SkinCache.cpp" />
<ClCompile Include="..\..\radiantcore\vfs\DeflatedInputStream.cpp" />
<ClCompile Include="..\..\radiantcore\vfs\DirectoryArchive.cpp" />
<ClCompile Include="..\..\radiantcore\vfs\Doom3FileSystem.cpp" />
Expand Down Expand Up @@ -101,6 +102,8 @@
<ClInclude Include="..\..\radiantcore\settings\PreferenceItems.h" />
<ClInclude Include="..\..\radiantcore\settings\PreferencePage.h" />
<ClInclude Include="..\..\radiantcore\settings\PreferenceSystem.h" />
<ClInclude Include="..\..\radiantcore\skins\Doom3ModelSkin.h" />
<ClInclude Include="..\..\radiantcore\skins\Doom3SkinCache.h" />
<ClInclude Include="..\..\radiantcore\vfs\Archive.h" />
<ClInclude Include="..\..\radiantcore\vfs\DeflatedArchiveFile.h" />
<ClInclude Include="..\..\radiantcore\vfs\DeflatedArchiveTextFile.h" />
Expand Down
12 changes: 12 additions & 0 deletions tools/msvc/DarkRadiantCore.vcxproj.filters
Expand Up @@ -44,6 +44,9 @@
<Filter Include="src\filetypes">
<UniqueIdentifier>{47a1f568-f5e5-45cc-ba53-ae308447f576}</UniqueIdentifier>
</Filter>
<Filter Include="src\skins">
<UniqueIdentifier>{5ba83911-a3f4-4f34-8ca2-b498fa0c57bc}</UniqueIdentifier>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\radiantcore\modulesystem\ModuleLoader.cpp">
Expand Down Expand Up @@ -154,6 +157,9 @@
<ClCompile Include="..\..\radiantcore\filetypes\FileTypeRegistry.cpp">
<Filter>src\filetypes</Filter>
</ClCompile>
<ClCompile Include="..\..\radiantcore\skins\Doom3SkinCache.cpp">
<Filter>src\skins</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\radiantcore\modulesystem\ModuleLoader.h">
Expand Down Expand Up @@ -339,5 +345,11 @@
<ClInclude Include="..\..\radiantcore\filetypes\FileTypeRegistry.h">
<Filter>src\filetypes</Filter>
</ClInclude>
<ClInclude Include="..\..\radiantcore\skins\Doom3ModelSkin.h">
<Filter>src\skins</Filter>
</ClInclude>
<ClInclude Include="..\..\radiantcore\skins\Doom3SkinCache.h">
<Filter>src\skins</Filter>
</ClInclude>
</ItemGroup>
</Project>

0 comments on commit 814f992

Please sign in to comment.