mirror of
https://github.com/coop-deluxe/sm64coopdx.git
synced 2024-12-22 16:30:23 +00:00
Prevent clearing permanent vanilla model slot
This commit is contained in:
parent
016c385d7f
commit
47a8e9d3f6
1 changed files with 6 additions and 1 deletions
|
@ -8,6 +8,8 @@ extern "C" {
|
|||
#include "model_ids.h"
|
||||
}
|
||||
|
||||
#define VANILLA_ID_END 255
|
||||
|
||||
enum ModelLoadType {
|
||||
MLT_GEO,
|
||||
MLT_DL,
|
||||
|
@ -28,7 +30,7 @@ static std::map<u32, std::vector<struct ModelInfo>> sIdMap;
|
|||
static std::map<u32, u32> sOverwriteMap;
|
||||
|
||||
static u32 find_empty_id() {
|
||||
u32 id = 256;
|
||||
u32 id = VANILLA_ID_END + 1;
|
||||
while (true) {
|
||||
if (id != 0) {
|
||||
if (sIdMap.count(id) == 0) { return id; }
|
||||
|
@ -199,6 +201,9 @@ void DynOS_Model_ClearPool(enum ModelPool aModelPool) {
|
|||
auto& info = asset.second;
|
||||
if (sIdMap.count(info.id) == 0) { continue; }
|
||||
|
||||
// preventing clearing permanent vanilla model slot
|
||||
if (info.id <= VANILLA_ID_END && sIdMap.count(info.id) <= 1) { continue; }
|
||||
|
||||
// erase from id map
|
||||
auto& idMap = sIdMap[info.id];
|
||||
for (auto info2 = idMap.begin(); info2 != idMap.end(); ) {
|
||||
|
|
Loading…
Reference in a new issue