diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index e3c159ac..6f00f2bb 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -12,6 +12,7 @@ on: env: CARGO_TERM_COLOR: always + RA_HARDCORE: ${{ github.ref_type == 'tag' && 'true' || 'false' }} jobs: build-linux: diff --git a/build.rs b/build.rs index 0fb28314..e3e02742 100644 --- a/build.rs +++ b/build.rs @@ -272,6 +272,15 @@ fn main() { let git_hash = String::from_utf8(git_output.stdout).unwrap(); println!("cargo:rustc-env=GIT_HASH={git_hash}"); + println!("cargo:rerun-if-env-changed=NETPLAY_ID"); let netplay_id = std::env::var("NETPLAY_ID").unwrap_or("gopher64".to_string()); println!("cargo:rustc-env=NETPLAY_ID={netplay_id}"); + + println!("cargo:rerun-if-env-changed=RA_HARDCORE"); + println!("cargo:rustc-check-cfg=cfg(ra_hardcore_enabled)"); + if let Ok(ra_hardcore) = std::env::var("RA_HARDCORE") + && ra_hardcore.to_lowercase() == "true" + { + println!("cargo:rustc-cfg=ra_hardcore_enabled"); + } } diff --git a/src/main.rs b/src/main.rs index abc8c1d5..5cd7a241 100644 --- a/src/main.rs +++ b/src/main.rs @@ -158,7 +158,11 @@ async fn main() -> std::io::Result<()> { .unwrap_or_default() }; - retroachievements::init_client(false); //args.ra_hardcore + if cfg!(ra_hardcore_enabled) { + retroachievements::init_client(args.ra_hardcore); + } else { + retroachievements::init_client(false); + } let mut shutdown_tx = None; if let Some(peer_addr) = args.netplay_peer_addr diff --git a/src/ui/gui/retroachievements_page.slint b/src/ui/gui/retroachievements_page.slint index 0bbb413d..884abbec 100644 --- a/src/ui/gui/retroachievements_page.slint +++ b/src/ui/gui/retroachievements_page.slint @@ -41,7 +41,7 @@ export component RetroAchievements inherits Page { HorizontalBox { alignment: center; CheckBox { - text: @tr("Hardcore mode (not currently supported)"); + text: @tr("Hardcore mode"); checked: RAData.hardcore; enabled: RAData.enabled; toggled => {