From 377a36455d973c1530ca286e8cf9dd71fdab6098 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A1chym=20Tou=C5=A1ek?= Date: Sat, 18 May 2019 08:18:08 +0200 Subject: [PATCH] Use unity versions in archive names --- .../meakashi-unix-5.5.3p1/TitleHigurashi.png | Bin 0 -> 33311 bytes compileall.sh | 31 +++++++++-------- scripts/AssetVersion.py | 3 +- src/main.rs | 32 +++++++++++++----- versions.sh | 30 ---------------- 5 files changed, 41 insertions(+), 55 deletions(-) create mode 100644 assets/images/version-specific/meakashi-unix-5.5.3p1/TitleHigurashi.png delete mode 100644 versions.sh diff --git a/assets/images/version-specific/meakashi-unix-5.5.3p1/TitleHigurashi.png b/assets/images/version-specific/meakashi-unix-5.5.3p1/TitleHigurashi.png new file mode 100644 index 0000000000000000000000000000000000000000..c83eef9b5c317d661efac54669b73b2ff3999164 GIT binary patch literal 33311 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

V5vdbrEMB@*t;rN34Z~&c&w|V$dgA3|&;} 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 F{|95u9mN0u literal 0 HcmV?d00001 diff --git a/compileall.sh b/compileall.sh index 63e0f5d..b621262 100644 --- a/compileall.sh +++ b/compileall.sh @@ -1,15 +1,16 @@ -cargo run onikakushi steam win -cargo run onikakushi steam unix -cargo run watanagashi steam win -cargo run watanagashi steam unix -cargo run tatarigoroshi steam win -cargo run tatarigoroshi steam unix -cargo run tatarigoroshi mg win -cargo run tatarigoroshi mg unix -cargo run himatsubushi steam win -cargo run himatsubushi steam unix -cargo run meakashi steam win -cargo run meakashi steam unix -cargo run meakashi gog win -cargo run tsumihoroboshi steam win -cargo run tsumihoroboshi steam unix +cargo run onikakushi 5.2.2f1 win +cargo run onikakushi 5.2.2f1 unix +cargo run watanagashi 5.2.2f1 win +cargo run watanagashi 5.2.2f1 unix +cargo run tatarigoroshi 5.4.0f1 win +cargo run tatarigoroshi 5.4.0f1 unix +cargo run tatarigoroshi 5.3.5f1 win +cargo run tatarigoroshi 5.3.4p1 unix +cargo run himatsubushi 5.4.1f1 win +cargo run himatsubushi 5.4.1f1 unix +cargo run meakashi 5.5.3p3 win +cargo run meakashi 5.5.3p3 unix +cargo run meakashi 5.5.3p1 win +cargo run meakashi 5.5.3p1 unix +cargo run tsumihoroboshi 5.5.3p3 win +cargo run tsumihoroboshi 5.5.3p3 unix diff --git a/scripts/AssetVersion.py b/scripts/AssetVersion.py index 76c678b..ed31605 100644 --- a/scripts/AssetVersion.py +++ b/scripts/AssetVersion.py @@ -1,9 +1,8 @@ import os from sys import argv -path = argv[1] +assetsbundlePath = argv[1] -assetsbundlePath = os.path.join(path, "sharedassets0.assets") if os.path.exists(assetsbundlePath): with open(assetsbundlePath, "rb") as assetsBundle: unityVersion = assetsBundle.read(28)[20:].decode("utf-8").rstrip("\0") diff --git a/src/main.rs b/src/main.rs index d8a5d59..7d2ae06 100644 --- a/src/main.rs +++ b/src/main.rs @@ -11,7 +11,7 @@ use inflector::Inflector; fn main() { let args: Vec = env::args().collect(); let chapter = &args[1]; - let platform = &args[2]; + let unity = &args[2]; let system = &args[3]; let mut chapters = HashMap::new(); @@ -29,11 +29,11 @@ fn main() { let arc_number = chapters.get(chapter).unwrap(); let arc_type = if arc_number <= &4 { "question_arcs" } else { "answer_arcs" }; - let assets = format!("assets/vanilla/{}/{}/{}/sharedassets0.assets", chapter, platform, system); + let assets = format!("assets/vanilla/{}/{}-{}/sharedassets0.assets", &chapter, &system, &unity); let directory_assets = "output/assets"; - let directory_data = format!("output/HigurashiEp{:02}_Data", arc_number); - let emip = format!("{}/{}_{}_{}.emip", &directory_data, &chapter, &platform, &system); - let archive = format!("{}-UI_{}_{}.7z", &chapter.to_title_case(), &platform, &system); + let directory_data = format!("output/HigurashiEp{:02}_Data", &arc_number); + let emip = format!("{}/{}_{}_{}.emip", &directory_data, &chapter, &unity, &system); + let archive = format!("{}-UI_{}_{}.7z", &chapter.to_title_case(), &unity, &system); if Path::new(&emip).exists() { fs::remove_file(&emip).expect("Failed to remove file"); @@ -50,6 +50,18 @@ fn main() { } fs::create_dir_all(&directory_data).expect("Failed to recreate directory"); + // 0. check version + let output = Command::new("python") + .env("PYTHONIOENCODING", "utf-8") + .arg("scripts/AssetVersion.py") + .arg(&assets) + .output() + .expect("failed to execute UnityTextModifier.py"); + + let version = String::from_utf8_lossy(&output.stdout).into_owned(); + + assert_eq!(unity, &version.trim()); + // 1. texts let status = Command::new("python") .env("PYTHONIOENCODING", "utf-8") @@ -66,6 +78,10 @@ fn main() { copy_images("assets/images/shared", &directory_assets); copy_images(format!("assets/images/{}", &arc_type).as_ref(), &directory_assets); copy_images(format!("assets/images/specific/{}", &chapter).as_ref(), &directory_assets); + let version_specific_path = format!("assets/images/version-specific/{}-{}", &chapter, &unity); + if Path::new(&version_specific_path).exists() { + copy_images(version_specific_path.as_ref(), &directory_assets); + } fs::rename("output/assets/configbg_Texture2D.png", "output/assets/47configbg_Texture2D.png").expect("Unable to rename"); println!(); @@ -75,7 +91,7 @@ fn main() { .arg("scripts/TMPAssetConverter.py") .arg("assets/fonts/msgothic_0 SDF Atlas_Texture2D.dat") .arg("assets/fonts/msgothic_0 SDF_TextMeshProFont.dat") - .arg(format!("assets/vanilla/{}/{}/msgothic_0.dat", &chapter, platform)) + .arg(format!("assets/vanilla/{}/msgothic_0.dat", &chapter)) .arg(&directory_assets) .status() .expect("failed to execute TMPAssetConverter.py"); @@ -87,7 +103,7 @@ fn main() { .arg("scripts/TMPAssetConverter.py") .arg("assets/fonts/msgothic_2 SDF Atlas_Texture2D.dat") .arg("assets/fonts/msgothic_2 SDF_TextMeshProFont.dat") - .arg(format!("assets/vanilla/{}/{}/msgothic_2.dat", &chapter, platform)) + .arg(format!("assets/vanilla/{}/msgothic_2.dat", &chapter)) .arg(&directory_assets) .status() .expect("failed to execute TMPAssetConverter.py"); @@ -97,7 +113,7 @@ fn main() { println!(); // 4. copy assets - copy_files(format!("assets/vanilla/{}/{}/{}", chapter, platform, system).as_ref(), &directory_data); + copy_files(format!("assets/vanilla/{}/{}-{}", &chapter, &system, &unity).as_ref(), &directory_data); println!(); diff --git a/versions.sh b/versions.sh deleted file mode 100644 index b7ee2e3..0000000 --- a/versions.sh +++ /dev/null @@ -1,30 +0,0 @@ -echo -n "Onikakushi win: " -py ./scripts/AssetVersion.py ./assets/vanilla/onikakushi/steam/win -echo -n "Onikakushi unix: " -py ./scripts/AssetVersion.py ./assets/vanilla/onikakushi/steam/unix -echo -n "Watanagashi win: " -py ./scripts/AssetVersion.py ./assets/vanilla/watanagashi/steam/win -echo -n "Watanagashi unix: " -py ./scripts/AssetVersion.py ./assets/vanilla/watanagashi/steam/unix -echo -n "Tatarigoroshi win: " -py ./scripts/AssetVersion.py ./assets/vanilla/tatarigoroshi/steam/win -echo -n "Tatarigoroshi unix: " -py ./scripts/AssetVersion.py ./assets/vanilla/tatarigoroshi/steam/unix -echo -n "Tatarigoroshi win MG: " -py ./scripts/AssetVersion.py ./assets/vanilla/tatarigoroshi/mg/win -echo -n "Tatarigoroshi unix MG: " -py ./scripts/AssetVersion.py ./assets/vanilla/tatarigoroshi/mg/unix -echo -n "Himatsubushi win: " -py ./scripts/AssetVersion.py ./assets/vanilla/himatsubushi/steam/win -echo -n "Himatsubushi unix: " -py ./scripts/AssetVersion.py ./assets/vanilla/himatsubushi/steam/unix -echo -n "Meakashi win: " -py ./scripts/AssetVersion.py ./assets/vanilla/meakashi/steam/win -echo -n "Meakashi unix: " -py ./scripts/AssetVersion.py ./assets/vanilla/meakashi/steam/unix -echo -n "Meakashi win GOG: " -py ./scripts/AssetVersion.py ./assets/vanilla/meakashi/gog/win -echo -n "Tsumihoroboshi win: " -py ./scripts/AssetVersion.py ./assets/vanilla/tsumihoroboshi/steam/win -echo -n "Tsumihoroboshi unix: " -py ./scripts/AssetVersion.py ./assets/vanilla/tsumihoroboshi/steam/unix