#include "fallout4dataarchives.h" #include "iprofile.h" #include QStringList Fallout4DataArchives::vanillaArchives() const { return {"Fallout4 - Textures1.ba2", "Fallout4 - Textures2.ba2", "Fallout4 - Textures3.ba2", "Fallout4 - Textures4.ba2", "Fallout4 - Textures5.ba2", "Fallout4 - Textures6.ba2", "Fallout4 - Textures7.ba2", "Fallout4 - Textures8.ba2", "Fallout4 - Textures9.ba2", "Fallout4 - Meshes.ba2", "Fallout4 - MeshesExtra.ba2", "Fallout4 - Voices.ba2", "Fallout4 - Sounds.ba2", "Fallout4 - Interface.ba2", "Fallout4 - Animations.ba2", "Fallout4 - Materials.ba2", "Fallout4 - Shaders.ba2", "Fallout4 - Startup.ba2", "Fallout4 - Misc.ba2"}; } QStringList Fallout4DataArchives::archives(const MOBase::IProfile* profile) const { QStringList result; QString iniFile = profile->localSettingsEnabled() ? QDir(profile->absolutePath()).absoluteFilePath("Fallout4.ini") : localGameDirectory().absoluteFilePath("Fallout4.ini"); result.append(getArchivesFromKey(iniFile, "SResourceArchiveList")); result.append(getArchivesFromKey(iniFile, "SResourceArchiveList2")); return result; } void Fallout4DataArchives::writeArchiveList(MOBase::IProfile* profile, const QStringList& before) { QString list = before.join(", "); QString iniFile = profile->localSettingsEnabled() ? QDir(profile->absolutePath()).absoluteFilePath("Fallout4.ini") : localGameDirectory().absoluteFilePath("Fallout4.ini"); if (list.length() > 255) { int splitIdx = list.lastIndexOf(",", 256); setArchivesToKey(iniFile, "SResourceArchiveList", list.mid(0, splitIdx)); setArchivesToKey(iniFile, "SResourceArchiveList2", list.mid(splitIdx + 2)); } else { setArchivesToKey(iniFile, "SResourceArchiveList", list); } }