From 35c053bf87342521ce0c201964b0126634c7d0e3 Mon Sep 17 00:00:00 2001 From: Oliver Hamlet Date: Fri, 16 May 2025 23:04:05 +0100 Subject: [PATCH] Check Oblivion Remastered plugins' master flag Although the game doesn't require master files to load before non-master files, if they load after that can apparently cause issues, so make LOOT sort master files first. --- cpp/src/tests/api/interface/plugin_interface_test.h | 6 ++---- src/plugin/mod.rs | 9 +++------ 2 files changed, 5 insertions(+), 10 deletions(-) diff --git a/cpp/src/tests/api/interface/plugin_interface_test.h b/cpp/src/tests/api/interface/plugin_interface_test.h index ed8da8ba..8a87a64c 100644 --- a/cpp/src/tests/api/interface/plugin_interface_test.h +++ b/cpp/src/tests/api/interface/plugin_interface_test.h @@ -186,8 +186,7 @@ TEST_P(PluginInterfaceTest, EXPECT_EQ(blankEsm, plugin->GetName()); EXPECT_TRUE(plugin->GetMasters().empty()); - if (GetParam() == GameType::openmw || - GetParam() == GameType::oblivionRemastered) { + if (GetParam() == GameType::openmw) { EXPECT_FALSE(plugin->IsMaster()); } else { EXPECT_TRUE(plugin->IsMaster()); @@ -212,8 +211,7 @@ TEST_P(PluginInterfaceTest, shouldBeAbleToGetAllDataFromFullyLoadedPlugin) { EXPECT_EQ(blankEsm, plugin->GetName()); EXPECT_TRUE(plugin->GetMasters().empty()); - if (GetParam() == GameType::openmw || - GetParam() == GameType::oblivionRemastered) { + if (GetParam() == GameType::openmw) { EXPECT_FALSE(plugin->IsMaster()); } else { EXPECT_TRUE(plugin->IsMaster()); diff --git a/src/plugin/mod.rs b/src/plugin/mod.rs index d36c2dca..5a307823 100644 --- a/src/plugin/mod.rs +++ b/src/plugin/mod.rs @@ -170,10 +170,7 @@ impl Plugin { /// sometimes referred to as *master files* or simply *masters*, while the /// other meaning is always referenced in relation to another plugin. pub fn is_master(&self) -> bool { - if matches!( - self.game_type, - GameType::OpenMW | GameType::OblivionRemastered - ) { + if self.game_type == GameType::OpenMW { false } else { self.plugin @@ -544,7 +541,7 @@ mod tests { assert_eq!(plugin_name, plugin.name()); assert_eq!(expected_masters, plugin.masters().unwrap()); - if matches!(game_type, GameType::OpenMW | GameType::OblivionRemastered) { + if matches!(game_type, GameType::OpenMW) { assert!(!plugin.is_master()); } else { assert!(plugin.is_master()); @@ -621,7 +618,7 @@ mod tests { assert_eq!(plugin_name, plugin.name()); assert_eq!(expected_masters, plugin.masters().unwrap()); - if matches!(game_type, GameType::OpenMW | GameType::OblivionRemastered) { + if matches!(game_type, GameType::OpenMW) { assert!(!plugin.is_master()); } else { assert!(plugin.is_master());