mirror of
https://github.com/Laupetin/OpenAssetTools.git
synced 2025-06-27 15:17:58 -05:00
refactor: use asset_type_t for ZoneDefinition
This commit is contained in:
22
src/ZoneCommon/Game/IW3/AssetNameResolverIW3.cpp
Normal file
22
src/ZoneCommon/Game/IW3/AssetNameResolverIW3.cpp
Normal file
@ -0,0 +1,22 @@
|
||||
#include "AssetNameResolverIW3.h"
|
||||
|
||||
#include "Game/IW3/GameAssetPoolIW3.h"
|
||||
#include "Utils/StringUtils.h"
|
||||
|
||||
using namespace IW3;
|
||||
|
||||
AssetNameResolver::AssetNameResolver()
|
||||
{
|
||||
for (auto assetType = 0; assetType < ASSET_TYPE_COUNT; assetType++)
|
||||
AddAssetTypeName(assetType, *GameAssetPoolIW3::AssetTypeNameByType(assetType));
|
||||
}
|
||||
|
||||
GameId AssetNameResolver::GetGameId() const
|
||||
{
|
||||
return GameId::IW3;
|
||||
}
|
||||
|
||||
std::optional<const char*> AssetNameResolver::GetAssetTypeName(const asset_type_t assetType) const
|
||||
{
|
||||
return GameAssetPoolIW3::AssetTypeNameByType(assetType);
|
||||
}
|
14
src/ZoneCommon/Game/IW3/AssetNameResolverIW3.h
Normal file
14
src/ZoneCommon/Game/IW3/AssetNameResolverIW3.h
Normal file
@ -0,0 +1,14 @@
|
||||
#pragma once
|
||||
|
||||
#include "Zone/AssetNameResolver.h"
|
||||
|
||||
namespace IW3
|
||||
{
|
||||
class AssetNameResolver final : public HashMapBasedAssetNameResolver
|
||||
{
|
||||
public:
|
||||
AssetNameResolver();
|
||||
[[nodiscard]] GameId GetGameId() const override;
|
||||
[[nodiscard]] std::optional<const char*> GetAssetTypeName(asset_type_t assetType) const override;
|
||||
};
|
||||
} // namespace IW3
|
@ -218,15 +218,15 @@ XAssetInfoGeneric* GameAssetPoolIW3::GetAsset(const asset_type_t type, const std
|
||||
#undef CASE_GET_ASSET
|
||||
}
|
||||
|
||||
const char* GameAssetPoolIW3::AssetTypeNameByType(const asset_type_t assetType)
|
||||
std::optional<const char*> GameAssetPoolIW3::AssetTypeNameByType(const asset_type_t assetType)
|
||||
{
|
||||
if (assetType >= 0 && assetType < static_cast<int>(std::extent_v<decltype(ASSET_TYPE_NAMES)>))
|
||||
return ASSET_TYPE_NAMES[assetType];
|
||||
|
||||
return ASSET_TYPE_INVALID;
|
||||
return std::nullopt;
|
||||
}
|
||||
|
||||
const char* GameAssetPoolIW3::GetAssetTypeName(const asset_type_t assetType) const
|
||||
std::optional<const char*> GameAssetPoolIW3::GetAssetTypeName(const asset_type_t assetType) const
|
||||
{
|
||||
return AssetTypeNameByType(assetType);
|
||||
}
|
||||
|
@ -5,12 +5,12 @@
|
||||
#include "Pool/ZoneAssetPools.h"
|
||||
|
||||
#include <memory>
|
||||
#include <optional>
|
||||
|
||||
class GameAssetPoolIW3 final : public ZoneAssetPools
|
||||
{
|
||||
int m_priority;
|
||||
|
||||
static constexpr const char* ASSET_TYPE_INVALID = "invalid_asset_type";
|
||||
static const char* ASSET_TYPE_NAMES[];
|
||||
|
||||
protected:
|
||||
@ -54,8 +54,8 @@ public:
|
||||
|
||||
_NODISCARD XAssetInfoGeneric* GetAsset(asset_type_t type, const std::string& name) const override;
|
||||
|
||||
static const char* AssetTypeNameByType(asset_type_t assetType);
|
||||
_NODISCARD const char* GetAssetTypeName(asset_type_t assetType) const override;
|
||||
static std::optional<const char*> AssetTypeNameByType(asset_type_t assetType);
|
||||
_NODISCARD std::optional<const char*> GetAssetTypeName(asset_type_t assetType) const override;
|
||||
|
||||
static asset_type_t AssetTypeCount();
|
||||
_NODISCARD asset_type_t GetAssetTypeCount() const override;
|
||||
|
Reference in New Issue
Block a user