mirror of
https://github.com/Laupetin/OpenAssetTools.git
synced 2025-09-02 23:17:26 +00:00
Add AssetLoader basis
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
#pragma once
|
||||
|
||||
#include <vector>
|
||||
#include <map>
|
||||
#include <unordered_map>
|
||||
#include <string>
|
||||
#include <algorithm>
|
||||
#include <cassert>
|
||||
@@ -25,7 +25,7 @@ class GlobalAssetPool
|
||||
};
|
||||
|
||||
static std::vector<LinkedAssetPool*> m_linked_asset_pools;
|
||||
static std::map<std::string, GameAssetPoolEntry> m_assets;
|
||||
static std::unordered_map<std::string, GameAssetPoolEntry> m_assets;
|
||||
|
||||
static void SortLinkedAssetPools()
|
||||
{
|
||||
@@ -159,10 +159,19 @@ public:
|
||||
iAssetEntry = m_assets.erase(iAssetEntry);
|
||||
}
|
||||
}
|
||||
|
||||
static XAssetInfo<T>* GetAssetByName(const std::string& name)
|
||||
{
|
||||
const auto foundEntry = m_assets.find(name);
|
||||
if (foundEntry == m_assets.end())
|
||||
return nullptr;
|
||||
|
||||
return foundEntry->second.m_asset;
|
||||
}
|
||||
};
|
||||
|
||||
template<typename T>
|
||||
std::vector<typename GlobalAssetPool<T>::LinkedAssetPool*> GlobalAssetPool<T>::m_linked_asset_pools = std::vector<LinkedAssetPool*>();
|
||||
|
||||
template<typename T>
|
||||
std::map<std::string, typename GlobalAssetPool<T>::GameAssetPoolEntry> GlobalAssetPool<T>::m_assets = std::map<std::string, GameAssetPoolEntry>();
|
||||
std::unordered_map<std::string, typename GlobalAssetPool<T>::GameAssetPoolEntry> GlobalAssetPool<T>::m_assets = std::unordered_map<std::string, GameAssetPoolEntry>();
|
@@ -9,7 +9,7 @@ class Zone;
|
||||
class XAssetInfoGeneric
|
||||
{
|
||||
public:
|
||||
int m_type = -1;
|
||||
asset_type_t m_type = -1;
|
||||
std::string m_name;
|
||||
Zone* m_zone;
|
||||
std::vector<XAssetInfoGeneric*> m_dependencies;
|
||||
|
@@ -25,7 +25,7 @@ public:
|
||||
|
||||
XAssetInfoGeneric* AddAsset(asset_type_t type, std::string name, void* asset, std::vector<XAssetInfoGeneric*>& dependencies);
|
||||
virtual XAssetInfoGeneric* GetAsset(asset_type_t type, std::string name) const = 0;
|
||||
virtual const std::string& GetAssetTypeName(asset_type_t assetType) const = 0;
|
||||
virtual const char* GetAssetTypeName(asset_type_t assetType) const = 0;
|
||||
|
||||
virtual void InitPoolStatic(asset_type_t type, size_t capacity) = 0;
|
||||
virtual void InitPoolDynamic(asset_type_t type) = 0;
|
||||
|
Reference in New Issue
Block a user