Squashed 'deps/nostalgia/' changes from 5e90f8d4..3b874c6e
3b874c6e [turbine] Fix refresh logic to handle default refresh within value 6cf7bf96 [ox/std] Hopefully fix MSVC build e34df255 [nostalgia] Update developer-handbook non-error return 7eab2f92 [studio/modlib] Comment out logging in configio 3824788a [ox/std] Add non-const operator[] to Pair 1eac7e1e [ox/std] Add Pair 8798d2d7 [nostalgia/core] Fix getTileIdx(TileSheet, SubSheetId) f82db690 [nostalgia/core] Make load TileSheet functions take CompactTileSheet, in addition to FileAddresses 0dfa7c30 [studio/modlib] Make TaskRunner check that task is not null 2afade24 Merge commit 'fc2dec64389824a251fb258f6fd0a9074e521cc2' 3635702e [nostalgia] Cleanup config IO 6cbafc75 [nostalgia,keel] Make repair return ox::Error 0d7b89a0 [turbine] Add TimeMs alias to uint64_t e8f5c911 [studio/applib] Change updateHandler to 10 second interval 3cb3bc12 [nostalgia/core] Add valid and repair functions for PaletteV3 a2cec10c [keel] Add valid and repair functions for AssetManager git-subtree-dir: deps/nostalgia git-subtree-split: 3b874c6e6aa0b80783fc9d712c31bc837326337c
This commit is contained in:
@@ -21,6 +21,17 @@ class AssetManager;
|
||||
template<typename T>
|
||||
class AssetRef;
|
||||
|
||||
|
||||
[[nodiscard]]
|
||||
constexpr bool valid(auto const&) noexcept {
|
||||
return true;
|
||||
}
|
||||
|
||||
[[nodiscard]]
|
||||
constexpr ox::Error repair(auto const&) noexcept {
|
||||
return {};
|
||||
}
|
||||
|
||||
#ifndef OX_BARE_METAL
|
||||
template<typename T>
|
||||
class AssetContainer {
|
||||
@@ -215,6 +226,9 @@ class AssetManager {
|
||||
ox::Result<AssetRef<T>> loadAsset(ox::StringView const assetId) noexcept {
|
||||
auto &p = m_cache[assetId];
|
||||
oxRequireM(obj, m_loader(assetId));
|
||||
if (!valid(obj) && repair(obj)) {
|
||||
return OxError(1, "asset is invalid state and could not be repaired");
|
||||
}
|
||||
if (!p) {
|
||||
p = ox::make_unique<AssetContainer<T>>(std::move(obj));
|
||||
} else {
|
||||
|
Reference in New Issue
Block a user