diff --git a/src/games/genshin/game.rs b/src/games/genshin/game.rs index 8281f2d..4ce0812 100644 --- a/src/games/genshin/game.rs +++ b/src/games/genshin/game.rs @@ -5,6 +5,8 @@ use anime_game_core::prelude::*; use anime_game_core::genshin::telemetry; use anime_game_core::genshin::game::Game; +use crate::components::wine::Bundle as WineBundle; + use crate::config::ConfigExt; use crate::genshin::config::Config; @@ -238,10 +240,18 @@ pub fn run() -> anyhow::Result<()> { } } - command.envs(config.game.wine.sync.get_env_vars()); + let mut wine_folder = folders.wine.clone(); + + if features.bundle == Some(WineBundle::Proton) { + wine_folder.push("files"); + } + command.envs(config.game.enhancements.hud.get_env_vars(config.game.enhancements.gamescope.enabled)); command.envs(config.game.enhancements.fsr.get_env_vars()); + + command.envs(config.game.wine.sync.get_env_vars()); command.envs(config.game.wine.language.get_env_vars()); + command.envs(config.game.wine.shared_libraries.get_env_vars(wine_folder)); command.envs(config.game.environment); diff --git a/src/games/honkai/game.rs b/src/games/honkai/game.rs index 558442c..39ec1b1 100644 --- a/src/games/honkai/game.rs +++ b/src/games/honkai/game.rs @@ -3,6 +3,8 @@ use std::path::PathBuf; use anime_game_core::honkai::telemetry; +use crate::components::wine::Bundle as WineBundle; + use crate::config::ConfigExt; use crate::honkai::config::Config; @@ -174,10 +176,18 @@ pub fn run() -> anyhow::Result<()> { } } - command.envs(config.game.wine.sync.get_env_vars()); + let mut wine_folder = folders.wine.clone(); + + if features.bundle == Some(WineBundle::Proton) { + wine_folder.push("files"); + } + command.envs(config.game.enhancements.hud.get_env_vars(config.game.enhancements.gamescope.enabled)); command.envs(config.game.enhancements.fsr.get_env_vars()); + + command.envs(config.game.wine.sync.get_env_vars()); command.envs(config.game.wine.language.get_env_vars()); + command.envs(config.game.wine.shared_libraries.get_env_vars(wine_folder)); command.envs(config.game.environment); diff --git a/src/games/star_rail/game.rs b/src/games/star_rail/game.rs index ac32b97..0125e2d 100644 --- a/src/games/star_rail/game.rs +++ b/src/games/star_rail/game.rs @@ -3,6 +3,8 @@ use std::path::PathBuf; use anime_game_core::star_rail::telemetry; +use crate::components::wine::Bundle as WineBundle; + use crate::config::ConfigExt; use crate::star_rail::config::Config; @@ -175,10 +177,18 @@ pub fn run() -> anyhow::Result<()> { } } - command.envs(config.game.wine.sync.get_env_vars()); + let mut wine_folder = folders.wine.clone(); + + if features.bundle == Some(WineBundle::Proton) { + wine_folder.push("files"); + } + command.envs(config.game.enhancements.hud.get_env_vars(config.game.enhancements.gamescope.enabled)); command.envs(config.game.enhancements.fsr.get_env_vars()); + + command.envs(config.game.wine.sync.get_env_vars()); command.envs(config.game.wine.language.get_env_vars()); + command.envs(config.game.wine.shared_libraries.get_env_vars(wine_folder)); command.envs(config.game.environment);