diff --git a/SKSE/Plugins/ArtifactTrackerFunctions.dll b/SKSE/Plugins/ArtifactTrackerFunctions.dll index b5e5e21..310e2c6 100644 Binary files a/SKSE/Plugins/ArtifactTrackerFunctions.dll and b/SKSE/Plugins/ArtifactTrackerFunctions.dll differ diff --git a/Source/ArtifactTrackerDLL/src/BookCheck.cpp b/Source/ArtifactTrackerDLL/src/BookCheck.cpp index d96e4f2..73038a1 100644 --- a/Source/ArtifactTrackerDLL/src/BookCheck.cpp +++ b/Source/ArtifactTrackerDLL/src/BookCheck.cpp @@ -16,7 +16,7 @@ namespace BookCheck const RE::BGSKeyword* recipeKeyword = dataHandler->LookupForm(0xF5CB0, "Skyrim.esm"); // VendorItemRecipe for (const auto& form : dataHandler->GetFormArray()) { - if (!form || !form->GetPlayable() || form->TeachesSpell()) { + if (!form || form->TeachesSpell()) { continue; } if (form->HasKeyword(recipeKeyword) || IsBook(form)) { @@ -98,17 +98,7 @@ namespace BookCheck bool IsNote(const char* const modelFileName, size_t modelFileNameLength) { // Most items will use one of the note models from the base game, e.g. Note01.nif. - if (ContainsWholeWord(modelFileName, modelFileNameLength, "Note", 4)) { - return true; - } - - // The Creation Club Fishing mod does not include 'Note' the inventory art model names for the - // regional fishing maps, instead those items use the following format: FishMap. - if (StartsWith(modelFileName, modelFileNameLength, "FishMap", 7)) { - return true; - } - - return false; + return ContainsWholeWord(modelFileName, modelFileNameLength, "Note", 4); } bool IsJournal(const char* const modelFileName, size_t modelFileNameLength) @@ -122,16 +112,23 @@ namespace BookCheck return false; } - RE::BGSSoundDescriptorForm* pickupSound = book->As()->pickupSound; + size_t modelFileNameLength; + const char* const modelFileName = BookCheck::ExtractFileName(book->inventoryModel->GetModel(), modelFileNameLength); - if (pickupSound && pickupSound->formID == 0xC7A54) { // ITMNoteUp + if (modelFileNameLength == 0) { return false; } - size_t modelFileNameLength; - const char* const modelFileName = BookCheck::ExtractFileName(book->inventoryModel->GetModel(), modelFileNameLength); + RE::BGSSoundDescriptorForm* pickupSound = book->As()->pickupSound; + + if (pickupSound && pickupSound->formID == 0xC7A54) { // ITMNoteUp + + // The Creation Club Fishing mod does not include 'Note' the inventory art model names for the + // regional fishing maps, instead those items use the following format: FishMap. + if (modelFileNameLength >= 11 && StartsWith(modelFileName, modelFileNameLength, "FishMap", 7)) { + return true; + } - if (modelFileNameLength == 0) { return false; }