diff --git a/SKSE/Plugins/ArtifactTracker.dll b/SKSE/Plugins/ArtifactTracker.dll index 46779ab..5bf5ab0 100644 Binary files a/SKSE/Plugins/ArtifactTracker.dll and b/SKSE/Plugins/ArtifactTracker.dll differ diff --git a/Source/ArtifactTrackerDLL/src/ArtifactTracker.cpp b/Source/ArtifactTrackerDLL/src/ArtifactTracker.cpp index 1924b92..8611a40 100644 --- a/Source/ArtifactTrackerDLL/src/ArtifactTracker.cpp +++ b/Source/ArtifactTrackerDLL/src/ArtifactTracker.cpp @@ -62,7 +62,7 @@ namespace ArtifactTracker g_artifactFormTypes.insert(RE::FormType::Weapon); for (const auto& form : dataHandler->GetFormArray()) { - if (form->GetPlayable() && !form->IsBound() && !form->weaponData.flags.all(RE::TESObjectWEAP::Data::Flag::kCantDrop) && !form->IsDeleted()) { + if (form->GetPlayable() && !form->IsBound() && !form->weaponData.flags.all(RE::TESObjectWEAP::Data::Flag::kCantDrop)) { if ((!form->HasKeyword(notArtifactKeyword) || form->HasKeyword(extraArtifactKeyword)) && strlen(form->GetName()) > 0) { g_artifactMap[form->formID] = form; } @@ -72,7 +72,7 @@ namespace ArtifactTracker g_artifactFormTypes.insert(RE::FormType::Armor); for (const auto& form : dataHandler->GetFormArray()) { - if (form->GetPlayable() && !form->IsDeleted() && form->race && (form->race->formID == 0x19 || form->race->HasKeyword(npcRaceKeyword))) { + if (form->GetPlayable() && form->race && (form->race->formID == 0x19 || form->race->HasKeyword(npcRaceKeyword))) { if ((!form->HasKeyword(notArtifactKeyword) || form->HasKeyword(extraArtifactKeyword)) && strlen(form->GetName()) > 0) { g_artifactMap[form->formID] = form; } @@ -84,14 +84,14 @@ namespace ArtifactTracker g_artifactFormTypes.insert(RE::FormType::Book); for (const auto& form : dataHandler->GetFormArray()) { - if (!form->IsDeleted() && (form->HasKeyword(extraArtifactKeyword) || (!form->TeachesSpell() && BookCheck::IsBook(form))) && !form->HasKeyword(notArtifactKeyword)) { + if ((form->HasKeyword(extraArtifactKeyword) || (!form->TeachesSpell() && BookCheck::IsBook(form))) && !form->HasKeyword(notArtifactKeyword)) { g_artifactMap[form->formID] = form; } } g_artifactFormTypes.insert(RE::FormType::Misc); for (const auto& form : dataHandler->GetFormArray()) { - if (form->GetPlayable() && !form->IsDeleted() && (form->GetNumKeywords() == 0 || (!bKID && form->HasKeyword(extraArtifactKeyword)) || (bKID && (!form->HasKeyword(notArtifactKeyword) || form->HasKeyword(extraArtifactKeyword)))) && strlen(form->GetName()) > 0) { + if (form->GetPlayable() && (form->GetNumKeywords() == 0 || (!bKID && form->HasKeyword(extraArtifactKeyword)) || (bKID && (!form->HasKeyword(notArtifactKeyword) || form->HasKeyword(extraArtifactKeyword)))) && strlen(form->GetName()) > 0) { g_artifactMap[form->formID] = form; } } @@ -99,21 +99,21 @@ namespace ArtifactTracker g_artifactMap.erase(0xF); // Gold for (const auto& form : dataHandler->GetFormArray()) { - if (!form->IsDeleted() && form->HasKeyword(extraArtifactKeyword) && !form->HasKeyword(notArtifactKeyword)) { + if (form->HasKeyword(extraArtifactKeyword) && !form->HasKeyword(notArtifactKeyword)) { g_artifactMap[form->formID] = form; g_artifactFormTypes.insert(RE::FormType::AlchemyItem); } } for (const auto& form : dataHandler->GetFormArray()) { - if (!form->IsDeleted() && form->HasKeyword(extraArtifactKeyword) && !form->HasKeyword(notArtifactKeyword)) { + if (form->HasKeyword(extraArtifactKeyword) && !form->HasKeyword(notArtifactKeyword)) { g_artifactMap[form->formID] = form; g_artifactFormTypes.insert(RE::FormType::Ingredient); } } for (const auto& form : dataHandler->GetFormArray()) { - if (!form->IsDeleted() && form->HasKeyword(extraArtifactKeyword) && !form->HasKeyword(notArtifactKeyword)) { + if (form->HasKeyword(extraArtifactKeyword) && !form->HasKeyword(notArtifactKeyword)) { g_artifactMap[form->formID] = form; g_artifactFormTypes.insert(RE::FormType::SoulGem); } diff --git a/Source/ArtifactTrackerDLL/src/Util.h b/Source/ArtifactTrackerDLL/src/Util.h index b2c0817..8889076 100644 --- a/Source/ArtifactTrackerDLL/src/Util.h +++ b/Source/ArtifactTrackerDLL/src/Util.h @@ -177,4 +177,14 @@ inline void LoadINI(std::map* settings, const char* iniPath) } catch (const std::exception& e) { SKSE::log::error(e.what()); } +} + +inline void RunBenchmark(std::function benchmark, std::string desc) +{ + const auto start = std::chrono::high_resolution_clock::now(); + benchmark(); + const auto end = std::chrono::high_resolution_clock::now(); + + const auto elapsed = std::chrono::duration(end - start); + SKSE::log::info("{}: Elapsed time: {} seconds", desc, elapsed.count()); } \ No newline at end of file