diff --git a/src/egs/get_manifests.rs b/src/egs/get_manifests.rs index 893a2c1..c200301 100644 --- a/src/egs/get_manifests.rs +++ b/src/egs/get_manifests.rs @@ -39,7 +39,8 @@ pub(crate) fn get_egs_manifests( let manifests = manifest_dir .filter_map(|dir| dir.ok()) .filter_map(get_manifest_item) - .filter(is_game_installed); + .filter(is_game_installed) + .filter(is_game_launchable); Ok(manifests.collect()) } Err(err) => Err(ReadDirError { @@ -129,6 +130,10 @@ fn is_game_installed(manifest: &ManifestItem) -> bool { Path::new(manifest.manifest_location.as_str()).exists() } +fn is_game_launchable(manifest: &ManifestItem) -> bool { + (!manifest.launch_executable.is_empty()) || (manifest.is_managed) +} + fn get_manifest_item(dir_entry: DirEntry) -> Option { if let Some(extension) = dir_entry.path().extension() { if extension.eq("item") {