mirror of
https://github.com/R2Northstar/NorthstarLauncher
synced 2026-08-23 20:26:04 -04:00
Fix postload crash from missing rpak.json (#762)
Missing `rpak.json` would previously crash the game due to faulty boolean logic in the `if` statement. This change ensures that a missing `rpak.json` is handled gracefully.
This commit is contained in:
parent
a176b707fa
commit
a28c1cb10c
1 changed files with 16 additions and 8 deletions
|
|
@ -866,16 +866,24 @@ void ModManager::LoadMods()
|
|||
if (fs::is_regular_file(file) && file.path().extension() == ".rpak")
|
||||
{
|
||||
std::string pakName(file.path().filename().string());
|
||||
|
||||
ModRpakEntry& modPak = mod.Rpaks.emplace_back();
|
||||
modPak.m_bAutoLoad =
|
||||
!bUseRpakJson || (dRpakJson.HasMember("Preload") && dRpakJson["Preload"].IsObject() &&
|
||||
dRpakJson["Preload"].HasMember(pakName) && dRpakJson["Preload"][pakName].IsTrue());
|
||||
|
||||
// postload things
|
||||
if (!bUseRpakJson ||
|
||||
(dRpakJson.HasMember("Postload") && dRpakJson["Postload"].IsObject() && dRpakJson["Postload"].HasMember(pakName)))
|
||||
modPak.m_sLoadAfterPak = dRpakJson["Postload"][pakName].GetString();
|
||||
if (!bUseRpakJson)
|
||||
{
|
||||
spdlog::warn("Mod {} contains rpaks without valid rpak.json, rpaks might not be loaded", mod.Name);
|
||||
}
|
||||
else
|
||||
{
|
||||
modPak.m_bAutoLoad =
|
||||
(dRpakJson.HasMember("Preload") && dRpakJson["Preload"].IsObject() && dRpakJson["Preload"].HasMember(pakName) &&
|
||||
dRpakJson["Preload"][pakName].IsTrue());
|
||||
|
||||
// postload things
|
||||
if (dRpakJson.HasMember("Postload") && dRpakJson["Postload"].IsObject() && dRpakJson["Postload"].HasMember(pakName))
|
||||
{
|
||||
modPak.m_sLoadAfterPak = dRpakJson["Postload"][pakName].GetString();
|
||||
}
|
||||
}
|
||||
|
||||
modPak.m_sPakName = pakName;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue