11using CollapseLauncher . GameVersioning ;
2+ using CollapseLauncher . InstallManager . StarRail ;
23using CollapseLauncher . Interfaces ;
34using Hi3Helper . Data ;
45using Hi3Helper . Shared . ClassStruct ;
@@ -23,6 +24,7 @@ public override string GamePath
2324 }
2425
2526 private GameTypeStarRailVersion InnerGameVersionManager { get ; }
27+ private StarRailInstall InnerGameInstaller { get ; }
2628 private bool IsOnlyRecoverMain { get ; }
2729 private List < FilePropertiesRemote > OriginAssetIndex { get ; set ; }
2830 private string ExecName { get ; }
@@ -59,6 +61,7 @@ private string GameAudioLangListPath
5961 public StarRailRepair (
6062 UIElement parentUI ,
6163 IGameVersion gameVersionManager ,
64+ IGameInstallManager gameInstallManager ,
6265 IGameSettings gameSettings ,
6366 bool onlyRecoverMainAsset = false ,
6467 string versionOverride = null )
@@ -71,6 +74,7 @@ public StarRailRepair(
7174 // Get flag to only recover main assets
7275 IsOnlyRecoverMain = onlyRecoverMainAsset ;
7376 InnerGameVersionManager = gameVersionManager as GameTypeStarRailVersion ;
77+ InnerGameInstaller = gameInstallManager as StarRailInstall ;
7478 ExecName = Path . GetFileNameWithoutExtension ( InnerGameVersionManager ! . GamePreset . GameExecutableName ) ;
7579 }
7680
@@ -105,15 +109,18 @@ private async Task<bool> CheckRoutine()
105109 ResetStatusAndProgress ( ) ;
106110
107111 // Step 1: Fetch asset indexes
108- await Fetch ( AssetIndex , Token . Token ) ;
112+ await Fetch ( AssetIndex , Token ! . Token ) ;
109113
110- // Step 2: Calculate the total size and count of the files
114+ // Step 2: Remove blacklisted files from asset index (borrow function from StarRailInstall)
115+ await InnerGameInstaller . FilterAssetList ( AssetIndex , x => x . N , Token . Token ) ;
116+
117+ // Step 3: Calculate the total size and count of the files
111118 CountAssetIndex ( AssetIndex ) ;
112119
113- // Step 3 : Check for the asset indexes integrity
120+ // Step 4 : Check for the asset indexes integrity
114121 await Check ( AssetIndex , Token . Token ) ;
115122
116- // Step 4 : Summarize and returns true if the assetIndex count != 0 indicates broken file was found.
123+ // Step 5 : Summarize and returns true if the assetIndex count != 0 indicates broken file was found.
117124 // either way, returns false.
118125 return SummarizeStatusAndProgress (
119126 AssetIndex ,
@@ -124,7 +131,7 @@ private async Task<bool> CheckRoutine()
124131 private async Task < bool > RepairRoutine ( )
125132 {
126133 // Assign repair task
127- Task < bool > repairTask = Repair ( AssetIndex , Token . Token ) ;
134+ Task < bool > repairTask = Repair ( AssetIndex , Token ! . Token ) ;
128135
129136 // Run repair process
130137 bool repairTaskSuccess = await TryRunExamineThrow ( repairTask ) ;
0 commit comments