Update iw4 asset loader clipmap to use interface without asset_type_t specification

This commit is contained in:
Jan 2022-01-02 01:10:57 +01:00
parent 57f37ec0ea
commit 8e2b9f4a62
2 changed files with 12 additions and 7 deletions

View File

@ -2,17 +2,22 @@
#include "IAssetLoader.h" #include "IAssetLoader.h"
#include "Pool/GlobalAssetPool.h" #include "Pool/GlobalAssetPool.h"
template<typename T>
class BasicAssetLoaderWithoutType : public IAssetLoader
{
public:
_NODISCARD XAssetInfoGeneric* LoadFromGlobalAssetPools(const std::string& assetName) const override
{
return GlobalAssetPool<T>::GetAssetByName(assetName);
}
};
template<asset_type_t AssetType, typename T> template<asset_type_t AssetType, typename T>
class BasicAssetLoader : public IAssetLoader class BasicAssetLoader : public BasicAssetLoaderWithoutType<T>
{ {
public: public:
_NODISCARD asset_type_t GetHandlingAssetType() const override _NODISCARD asset_type_t GetHandlingAssetType() const override
{ {
return AssetType; return AssetType;
} }
_NODISCARD XAssetInfoGeneric* LoadFromGlobalAssetPools(const std::string& assetName) const override
{
return GlobalAssetPool<T>::GetAssetByName(assetName);
}
}; };

View File

@ -6,7 +6,7 @@
namespace IW4 namespace IW4
{ {
class AssetLoaderClipMap : public BasicAssetLoader<ASSET_TYPE_CLIPMAP_MP, clipMap_t> class AssetLoaderClipMap : public BasicAssetLoaderWithoutType<clipMap_t>
{ {
_NODISCARD void* CreateEmptyAsset(const std::string& assetName, MemoryManager* memory) override; _NODISCARD void* CreateEmptyAsset(const std::string& assetName, MemoryManager* memory) override;
}; };