mirror of
https://github.com/loot/loot-condition-interpreter.git
synced 2026-07-27 14:16:09 -07:00
Add support for Starfield
As far as loot-condition-interpreter is concerned, it's not really any different from Fallout 4.
This commit is contained in:
+1
-1
@@ -7,7 +7,7 @@ edition = "2018"
|
||||
|
||||
[dependencies]
|
||||
crc32fast = "1.2.0"
|
||||
esplugin = "4.0.0"
|
||||
esplugin = "4.1.0"
|
||||
nom = "7.0.0"
|
||||
pelite = "0.10.0"
|
||||
regex = "1.0.5"
|
||||
|
||||
@@ -72,3 +72,7 @@ pub static LCI_GAME_SKYRIM_VR: c_int = 3;
|
||||
/// Game code for Fallout 4 VR.
|
||||
#[no_mangle]
|
||||
pub static LCI_GAME_FALLOUT_4_VR: c_int = 7;
|
||||
|
||||
/// Game code for Starfield.
|
||||
#[no_mangle]
|
||||
pub static LCI_GAME_STARFIELD: c_int = 9;
|
||||
|
||||
@@ -42,6 +42,7 @@ pub fn map_game_type(game_type: c_int) -> Result<GameType, c_int> {
|
||||
x if x == LCI_GAME_FALLOUT_NV => Ok(GameType::FalloutNV),
|
||||
x if x == LCI_GAME_FALLOUT_4 => Ok(GameType::Fallout4),
|
||||
x if x == LCI_GAME_FALLOUT_4_VR => Ok(GameType::Fallout4VR),
|
||||
x if x == LCI_GAME_STARFIELD => Ok(GameType::Starfield),
|
||||
_ => Err(LCI_ERROR_INVALID_ARGS),
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,6 +21,7 @@ void test_game_id_values() {
|
||||
assert(LCI_GAME_FALLOUT_NV == 5);
|
||||
assert(LCI_GAME_FALLOUT_4 == 6);
|
||||
assert(LCI_GAME_FALLOUT_4_VR == 7);
|
||||
assert(LCI_GAME_STARFIELD == 9);
|
||||
}
|
||||
|
||||
void test_lci_condition_parse() {
|
||||
|
||||
@@ -129,6 +129,7 @@ fn evaluate_is_master(state: &State, file_path: &Path) -> Result<bool, Error> {
|
||||
GameType::Fallout3 => GameId::Fallout3,
|
||||
GameType::FalloutNV => GameId::FalloutNV,
|
||||
GameType::Fallout4 | GameType::Fallout4VR => GameId::Fallout4,
|
||||
GameType::Starfield => GameId::Starfield,
|
||||
};
|
||||
|
||||
let path = resolve_path(state, file_path);
|
||||
|
||||
+8
-2
@@ -35,13 +35,18 @@ pub enum GameType {
|
||||
Fallout4,
|
||||
Fallout4VR,
|
||||
Morrowind,
|
||||
Starfield,
|
||||
}
|
||||
|
||||
impl GameType {
|
||||
fn supports_light_plugins(self) -> bool {
|
||||
matches!(
|
||||
self,
|
||||
GameType::SkyrimSE | GameType::SkyrimVR | GameType::Fallout4 | GameType::Fallout4VR
|
||||
GameType::SkyrimSE
|
||||
| GameType::SkyrimVR
|
||||
| GameType::Fallout4
|
||||
| GameType::Fallout4VR
|
||||
| GameType::Starfield
|
||||
)
|
||||
}
|
||||
}
|
||||
@@ -301,11 +306,12 @@ mod tests {
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn game_type_supports_light_plugins_should_be_true_for_tes5se_tes5vr_fo4_and_fo4vr() {
|
||||
fn game_type_supports_light_plugins_should_be_true_for_tes5se_tes5vr_fo4_fo4vr_and_starfield() {
|
||||
assert!(GameType::SkyrimSE.supports_light_plugins());
|
||||
assert!(GameType::SkyrimVR.supports_light_plugins());
|
||||
assert!(GameType::Fallout4.supports_light_plugins());
|
||||
assert!(GameType::Fallout4VR.supports_light_plugins());
|
||||
assert!(GameType::Starfield.supports_light_plugins());
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
||||
Reference in New Issue
Block a user