From 2692db1ed3109ceb0448c96b3a65e15a1e02405a Mon Sep 17 00:00:00 2001 From: Xiao Qi Date: Thu, 9 Mar 2023 01:49:43 +0800 Subject: [PATCH] Changed function to return pointer type instead of std::optional --- SHADE_Engine/src/Assets/SHAssetManager.cpp | 16 +++++++++++++--- SHADE_Engine/src/Assets/SHAssetManager.h | 3 ++- SHADE_Engine/src/Editor/SHEditorUI.cpp | 8 ++++---- SHADE_Engine/src/Resource/SHResourceManager.cpp | 4 ++-- SHADE_Engine/src/Resource/SHResourceManager.hpp | 4 ++-- 5 files changed, 23 insertions(+), 12 deletions(-) diff --git a/SHADE_Engine/src/Assets/SHAssetManager.cpp b/SHADE_Engine/src/Assets/SHAssetManager.cpp index 3dfe91a7..660fe6d9 100644 --- a/SHADE_Engine/src/Assets/SHAssetManager.cpp +++ b/SHADE_Engine/src/Assets/SHAssetManager.cpp @@ -164,14 +164,24 @@ namespace SHADE return AssetType::INVALID; } - std::optional SHAssetManager::GetAsset(AssetID id) noexcept + SHAsset* SHAssetManager::GetAsset(AssetID id) noexcept { if (assetCollection.contains(id)) { - return assetCollection[id]; + return &assetCollection[id]; } - return {}; + return nullptr; + } + + SHAsset const* SHAssetManager::GetAssetConst(AssetID id) noexcept + { + if (assetCollection.contains(id)) + { + return &assetCollection[id]; + } + + return nullptr; } AssetID SHAssetManager::GetAssetIDFromPath(AssetPath const& path) noexcept diff --git a/SHADE_Engine/src/Assets/SHAssetManager.h b/SHADE_Engine/src/Assets/SHAssetManager.h index 6a8f91ef..d8a48afd 100644 --- a/SHADE_Engine/src/Assets/SHAssetManager.h +++ b/SHADE_Engine/src/Assets/SHAssetManager.h @@ -50,7 +50,8 @@ namespace SHADE * \return const& to unordered_map ****************************************************************************/ static std::vector GetAllAssets() noexcept; - static std::optional GetAsset(AssetID id) noexcept; + static SHAsset* GetAsset(AssetID id) noexcept; + static SHAsset const* GetAssetConst(AssetID id) noexcept; static AssetType GetType(AssetID id) noexcept; diff --git a/SHADE_Engine/src/Editor/SHEditorUI.cpp b/SHADE_Engine/src/Editor/SHEditorUI.cpp index 3f5fdaaa..212a87ae 100644 --- a/SHADE_Engine/src/Editor/SHEditorUI.cpp +++ b/SHADE_Engine/src/Editor/SHEditorUI.cpp @@ -378,9 +378,9 @@ namespace SHADE // Attempt to get the asset's data for rendering editor auto asset = SHAssetManager::GetAsset(value); std::string assetName; - if (asset.has_value()) + if (asset) { - assetName = asset.value().name; + assetName = asset->name; } // Editor @@ -391,9 +391,9 @@ namespace SHADE { // Check if type matches auto draggedAsset = SHAssetManager::GetAsset(*payload); - if (draggedAsset.has_value() && draggedAsset.value().type == type) + if (draggedAsset && draggedAsset->type == type) { - value = draggedAsset.value().id; + value = draggedAsset->id; changed = true; } SHDragDrop::EndTarget(); diff --git a/SHADE_Engine/src/Resource/SHResourceManager.cpp b/SHADE_Engine/src/Resource/SHResourceManager.cpp index 9ddb8814..1875ee46 100644 --- a/SHADE_Engine/src/Resource/SHResourceManager.cpp +++ b/SHADE_Engine/src/Resource/SHResourceManager.cpp @@ -127,8 +127,8 @@ namespace SHADE if (assetId.has_value()) { const auto ASSET_INFO = SHAssetManager::GetAsset(assetId.value()); - if (ASSET_INFO.has_value()) - return ASSET_INFO.value().name; + if (ASSET_INFO) + return ASSET_INFO->name; } return {}; } diff --git a/SHADE_Engine/src/Resource/SHResourceManager.hpp b/SHADE_Engine/src/Resource/SHResourceManager.hpp index a405b298..85f5fd33 100644 --- a/SHADE_Engine/src/Resource/SHResourceManager.hpp +++ b/SHADE_Engine/src/Resource/SHResourceManager.hpp @@ -162,8 +162,8 @@ namespace SHADE if (assetId.has_value()) { const auto ASSET_INFO = SHAssetManager::GetAsset(assetId.value()); - if (ASSET_INFO.has_value()) - return ASSET_INFO.value().name; + if (ASSET_INFO) + return ASSET_INFO->name; } return {}; }