From 441a06fb5b5b3bab2c5919650d47482902e0da81 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nguy=E1=BB=85n=20Th=E1=BA=BF=20H=C6=B0ng?= Date: Wed, 18 Dec 2024 17:39:48 +0700 Subject: [PATCH] fix(zzz); voicepack language detection --- vollerei/common/enums.py | 20 ++++++++++++++++++++ vollerei/zzz/launcher/game.py | 4 ++-- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/vollerei/common/enums.py b/vollerei/common/enums.py index 9f8e24a..70936fb 100644 --- a/vollerei/common/enums.py +++ b/vollerei/common/enums.py @@ -30,3 +30,23 @@ class VoicePackLanguage(Enum): return VoicePackLanguage.English else: raise ValueError(f"Invalid language string: {s}") + + @staticmethod + def from_zzz_name(s: str) -> "VoicePackLanguage": + """ + Converts a language string from ZZZ file name to a VoicePackLanguage enum. + + Only English is tested for now. + """ + if s == "Jp": + return VoicePackLanguage.Japanese + elif s == "Cn": + return VoicePackLanguage.Chinese + elif s == "Tw": + return VoicePackLanguage.Taiwanese + elif s == "Kr": + return VoicePackLanguage.Korean + elif s == "En": + return VoicePackLanguage.English + else: + raise ValueError(f"Invalid language string: {s}") \ No newline at end of file diff --git a/vollerei/zzz/launcher/game.py b/vollerei/zzz/launcher/game.py index e1cc004..0534de8 100644 --- a/vollerei/zzz/launcher/game.py +++ b/vollerei/zzz/launcher/game.py @@ -277,12 +277,12 @@ class Game(GameABC): voicepacks = [] for child in ( self.data_folder() - .joinpath("StreamingAssets/AudioAssets/AudioPackage/") + .joinpath("StreamingAssets/Audio/Windows/Full/") .iterdir() ): if child.resolve().is_dir(): try: - voicepacks.append(VoicePackLanguage[child.name]) + voicepacks.append(VoicePackLanguage.from_zzz_name(child.name)) except ValueError: pass return voicepacks