diff --git a/src/TSHGameAssetManager.py b/src/TSHGameAssetManager.py index b153c6fd3..04204b294 100644 --- a/src/TSHGameAssetManager.py +++ b/src/TSHGameAssetManager.py @@ -302,9 +302,9 @@ def run(self): for c in self.parent().characters.keys(): self.parent().stockIcons[c] = {} + pattern = re.compile(f'({assetsObj.get("prefix", "")})({self.parent().characters[c].get("codename")})({assetsObj.get("postfix", "")})([0-9]*)\\.([A-Za-z0-9]+)') filteredFiles = \ - [f for f in files if f.startswith(assetsObj.get( - "prefix", "")+self.parent().characters[c].get("codename")+assetsObj.get("postfix", ""))] + [f for f in files if pattern.match(f)] if len(filteredFiles) == 0: # Store path only — QImage must be created on the main thread @@ -341,9 +341,9 @@ def run(self): files = sorted(os.listdir( './user_data/games/'+game_dir+'/'+assetsKey)) + pattern = re.compile(f'({asset.get("prefix", "")})({self.parent().characters[c].get("codename")})({asset.get("postfix", "")})([0-9]*)\\.([A-Za-z0-9]+)') filteredFiles = \ - [f for f in files if f.startswith(asset.get( - "prefix", "")+self.parent().characters[c].get("codename")+asset.get("postfix", ""))] + [f for f in files if pattern.match(f)] for f in filteredFiles: numberStart = f.rfind( @@ -638,9 +638,9 @@ def run(self, mods_active=False, mods_reload_mode=False): for c in self.parent.characters.keys(): self.parent.stockIcons[c] = {} + pattern = re.compile(f'({assetsObj.get("prefix", "")})({self.parent().characters[c].get("codename")})({assetsObj.get("postfix", "")})([0-9]*)\\.([A-Za-z0-9]+)') filteredFiles = \ - [f for f in files if f.startswith(assetsObj.get( - "prefix", "")+self.parent.characters[c].get("codename")+assetsObj.get("postfix", ""))] + [f for f in files if pattern.match(f)] if len(filteredFiles) == 0: # Store path only — QImage must be created on the main thread @@ -677,9 +677,9 @@ def run(self, mods_active=False, mods_reload_mode=False): files = sorted(os.listdir( './user_data/games/'+game_dir+'/'+assetsKey)) + pattern = re.compile(f'({asset.get("prefix", "")})({self.parent().characters[c].get("codename")})({asset.get("postfix", "")})([0-9]*)\\.([A-Za-z0-9]+)') filteredFiles = \ - [f for f in files if f.startswith(asset.get( - "prefix", "")+self.parent.characters[c].get("codename")+asset.get("postfix", ""))] + [f for f in files if pattern.match(f)] for f in filteredFiles: numberStart = f.rfind( @@ -1509,14 +1509,15 @@ def GetCharacterAssets(self, characterCodename: str, skin: int, assetpack: str = baseName = asset.get( "prefix", "")+characterCodename+asset.get("postfix", "") + pattern = f"({baseName})([0-9]*)\\.([A-Za-z0-9])" skinFileList = [f for f in os.listdir( - assetPath) if f.startswith(baseName)] + assetPath) if re.match(pattern, f)] skinFiles = {} for f in skinFileList: - skinId = f[len(baseName):].rsplit(".", 1)[0] + skinId = re.search(pattern, f).group(2) if skinId == "": skinId = 0 else: