From daf8c7e444d0ff7128f63f410b9b88e94ed7bf0a Mon Sep 17 00:00:00 2001 From: MysterD Date: Sun, 11 Jun 2023 13:45:24 -0700 Subject: [PATCH] Deduplicate level models using the permanent model map --- data/dynos_mgr_models.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/data/dynos_mgr_models.cpp b/data/dynos_mgr_models.cpp index db8b3e84d..64d423939 100644 --- a/data/dynos_mgr_models.cpp +++ b/data/dynos_mgr_models.cpp @@ -66,6 +66,19 @@ struct GraphNode* DynOS_Model_LoadCommon(u32* aId, enum ModelPool aModelPool, vo sModelPools[aModelPool] = dynamic_pool_init(); } + // check perm map + auto& permMap = sAssetMap[MODEL_POOL_PERMANENT]; + if (aDeDuplicate && permMap.count(aAsset)) { + auto& found = permMap[aAsset]; + if (*aId && *aId == found.id) { + return found.graphNode; + } + if (*aId == 0) { + *aId = found.id; + return found.graphNode; + } + } + // check map auto& map = sAssetMap[aModelPool]; if (aDeDuplicate && map.count(aAsset)) {