From 066802872d130b98fb55434225f0f1fb5e8e1e7f Mon Sep 17 00:00:00 2001 From: Jeremy Rimpo Date: Wed, 21 Aug 2024 23:51:22 -0500 Subject: [PATCH] Add support for the vehicle update - New save format (v140) which adds another plugin list flag for 'is custom plugin'; remaining changes are compatible with existing parser - New core plugin (SFBGS004.esm) --- src/game_starfield_en.ts | 8 ++++---- src/gamestarfield.cpp | 3 ++- src/starfieldsavegame.cpp | 6 +++++- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/src/game_starfield_en.ts b/src/game_starfield_en.ts index 9e3e605..bedbe79 100644 --- a/src/game_starfield_en.ts +++ b/src/game_starfield_en.ts @@ -29,22 +29,22 @@ - + You have active ESP plugins in Starfield - + sTestFile entries are present - + <p>ESP plugins are not ideal for Starfield. In addition to being unable to sort them alongside ESM or master-flagged plugins, certain record references are always kept loaded by the game. This consumes unnecessary resources and limits the game's ability to load what it needs.</p><p>Ideally, plugins should be saved as ESM files upon release. It can also be released as an ESL plugin, however there are additional concerns with the way light plugins are currently handled and should only be used when absolutely certain about what you're doing.</p><p>Notably, xEdit does not currently support saving ESP files.</p><h4>Current ESPs:</h4><p>%1</p> - + <p>You have plugin managment enabled but you still have sTestFile settings in your StarfieldCustom.ini. These must be removed or the game will not read the plugins.txt file. Management is still disabled.</p> diff --git a/src/gamestarfield.cpp b/src/gamestarfield.cpp index 0ab6f25..e498442 100644 --- a/src/gamestarfield.cpp +++ b/src/gamestarfield.cpp @@ -258,7 +258,8 @@ QStringList GameStarfield::primaryPlugins() const QStringList plugins = {"Starfield.esm", "Constellation.esm", "OldMars.esm", "BlueprintShips-Starfield.esm", "SFBGS007.esm", "SFBGS008.esm", - "SFBGS006.esm", "SFBGS003.esm"}; + "SFBGS006.esm", "SFBGS003.esm", + "SFBGS004.esm"}; auto testPlugins = testFilePlugins(); if (loadOrderMechanism() == LoadOrderMechanism::None) { diff --git a/src/starfieldsavegame.cpp b/src/starfieldsavegame.cpp index 9d5af94..5240837 100644 --- a/src/starfieldsavegame.cpp +++ b/src/starfieldsavegame.cpp @@ -104,7 +104,11 @@ std::unique_ptr StarfieldSaveGame::fetchDataFields dummyLocation, dummyTime); } - bool extraInfo = saveVersion >= 122; + int extraInfo = 0; + if (saveVersion >= 122) + extraInfo = 1; + if (saveVersion >= 140) + extraInfo = 2; QStringList gamePlugins = m_Game->primaryPlugins() + m_Game->enabledPlugins(); QString ignore;