diff --git a/SKSE/Plugins/EnderalSE.dll b/SKSE/Plugins/EnderalSE.dll index c50ae351..0a4cd391 100644 --- a/SKSE/Plugins/EnderalSE.dll +++ b/SKSE/Plugins/EnderalSE.dll @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:339403c800358d36bdcf4e0f8d2bc4503135d6e16a64405994f026e328168c4f -size 632320 +oid sha256:c5d64977f3e7f511e0009e5b63323e06ed08017a5244dc73e83b787941a106bf +size 641536 diff --git a/source/Enderal DLL/src/CheckInvalidForms.h b/source/Enderal DLL/src/CheckInvalidForms.h index b38ffb61..0214e8b4 100644 --- a/source/Enderal DLL/src/CheckInvalidForms.h +++ b/source/Enderal DLL/src/CheckInvalidForms.h @@ -1096,3 +1096,90 @@ inline void CheckEnderalCells() //memset(formids, 0, sizeof(formids)); aModNames.clear(); } + +inline void CheckCCMods() +{ + std::string filenames[74] = { + "ccASVSSE001-ALMSIVI.esm", + "ccBGSSSE001-Fish.esm", + "ccBGSSSE002-ExoticArrows.esl", + "ccBGSSSE003-Zombies.esl", + "ccBGSSSE004-RuinsEdge.esl", + "ccBGSSSE005-Goldbrand.esl", + "ccBGSSSE006-StendarsHammer.esl", + "ccBGSSSE007-Chrysamere.esl", + "ccBGSSSE010-PetDwarvenArmoredMudcrab.esl", + "ccBGSSSE011-HrsArmrElvn.esl", + "ccBGSSSE012-HrsArmrStl.esl", + "ccBGSSSE014-SpellPack01.esl", + "ccBGSSSE019-StaffofSheogorath.esl", + "ccBGSSSE020-GrayCowl.esl", + "ccBGSSSE021-LordsMail.esl", + "ccMTYSSE001-KnightsoftheNine.esl", + "ccQDRSSE001-SurvivalMode.esl", + "ccTWBSSE001-PuzzleDungeon.esm", + "ccEEJSSE001-Hstead.esm", + "ccQDRSSE002-Firewood.esl", + "ccBGSSSE018-Shadowrend.esl", + "ccBGSSSE035-PetNHound.esl", + "ccFSVSSE001-Backpacks.esl", + "ccEEJSSE002-Tower.esl", + "ccEDHSSE001-NorJewel.esl", + "ccVSVSSE002-Pets.esl", + "ccBGSSSE037-Curios.esl", + "ccBGSSSE034-MntUni.esl", + "ccBGSSSE045-Hasedoki.esl", + "ccBGSSSE008-Wraithguard.esl", + "ccBGSSSE036-PetBWolf.esl", + "ccFFBSSE001-ImperialDragon.esl", + "ccMTYSSE002-VE.esl", + "ccBGSSSE043-CrossElv.esl", + "ccVSVSSE001-Winter.esl", + "ccEEJSSE003-Hollow.esl", + "ccBGSSSE016-Umbra.esm", + "ccBGSSSE031-AdvCyrus.esm", + "ccBGSSSE038-BowofShadows.esl", + "ccBGSSSE040-AdvObGobs.esl", + "ccBGSSSE050-BA_Daedric.esl", + "ccBGSSSE052-BA_Iron.esl", + "ccBGSSSE054-BA_Orcish.esl", + "ccBGSSSE058-BA_Steel.esl", + "ccBGSSSE059-BA_Dragonplate.esl", + "ccBGSSSE061-BA_Dwarven.esl", + "ccPEWSSE002-ArmsOfChaos.esl", + "ccBGSSSE041-NetchLeather.esl", + "ccEDHSSE002-SplKntSet.esl", + "ccBGSSSE064-BA_Elven.esl", + "ccBGSSSE063-BA_Ebony.esl", + "ccBGSSSE062-BA_DwarvenMail.esl", + "ccBGSSSE060-BA_Dragonscale.esl", + "ccBGSSSE056-BA_Silver.esl", + "ccBGSSSE055-BA_OrcishScaled.esl", + "ccBGSSSE053-BA_Leather.esl", + "ccBGSSSE051-BA_DaedricMail.esl", + "ccBGSSSE057-BA_Stalhrim.esl", + "ccBGSSSE066-Staves.esl", + "ccBGSSSE067-DaedInv.esm", + "ccBGSSSE068-Bloodfall.esl", + "ccBGSSSE069-Contest.esl", + "ccVSVSSE003-NecroArts.esl", + "ccVSVSSE004-BeAFarmer.esl", + "ccBGSSSE025-AdvDSGS.esm", + "ccFFBSSE002-CrossbowPack.esl", + "ccBGSSSE013-Dawnfang.esl", + "ccRMSSSE001-NecroHouse.esl", + "ccEDHSSE003-Redguard.esl", + "ccEEJSSE004-Hall.esl", + "ccEEJSSE005-Cave.esm", + "ccKRTSSE001_Altar.esl", + "ccCBHSSE001-Gaunt.esl", + "ccAFDSSE001-DweSanctuary.esm", + }; + + for (short i = 0; i < 74; i++) { + if (std::filesystem::exists(std::format("Data\\{}", filenames[i]))) { + MessageBoxW(NULL, L"Creation Club mods are incompatible with Enderal.", L"Error", MB_OK | MB_ICONERROR); + exit(EXIT_FAILURE); + } + } +} diff --git a/source/Enderal DLL/src/Main.cpp b/source/Enderal DLL/src/Main.cpp index cd7af985..33327821 100644 --- a/source/Enderal DLL/src/Main.cpp +++ b/source/Enderal DLL/src/Main.cpp @@ -43,10 +43,8 @@ namespace { MessageBoxW(NULL, L"Unofficial Skyrim Special Edition Patch is incompatible with Enderal.", L"Error", MB_OK | MB_ICONERROR); exit(EXIT_FAILURE); } - if (std::filesystem::exists("Data\\ccBGSSSE001-Fish.esm") || std::filesystem::exists("Data\\ccBGSSSE025-AdvDSGS.esm") || std::filesystem::exists("Data\\ccBGSSSE037-Curios.esl") || std::filesystem::exists("Data\\ccQDRSSE001-SurvivalMode.esl")) { - MessageBoxW(NULL, L"Creation Club mods are incompatible with Enderal.", L"Error", MB_OK | MB_ICONERROR); - exit(EXIT_FAILURE); - } + + CheckCCMods(); if (g_settings.at("StayAtSystemPage")) { if (const auto pluginInfo = GetLoadInterface()->GetPluginInfo("StayAtSystemPage"); pluginInfo) {