1010using System . IO ;
1111
1212using ModAPI_Installers ;
13+ using ModAPI_Installers . Types ;
1314
1415namespace Spore_ModAPI_Easy_Uninstaller
1516{
@@ -68,18 +69,22 @@ public static void UninstallMods(Dictionary<ModConfiguration, bool> mods)
6869 {
6970 foreach ( var mod in mods )
7071 {
72+ ResultType result = ResultType . Success ;
73+
7174 if ( mod . Value )
7275 {
73- ExecuteConfigurator ( mod . Key , true ) ;
76+ result = ExecuteConfigurator ( mod . Key , true ) ;
7477 }
7578 else
7679 {
7780 RemoveModFiles ( mod . Key ) ;
7881 }
7982
80- Mods . RemoveMod ( mod . Key ) ;
81-
82- successfulMods . Add ( mod . Key ) ;
83+ if ( result == ResultType . Success )
84+ {
85+ Mods . RemoveMod ( mod . Key ) ;
86+ successfulMods . Add ( mod . Key ) ;
87+ }
8388 }
8489 }
8590 catch ( UnauthorizedAccessException )
@@ -205,7 +210,7 @@ private static string ConvertToArgument(string path)
205210 }
206211 }
207212
208- public static void ExecuteConfigurator ( ModConfiguration mod , bool uninstall )
213+ public static ResultType ExecuteConfigurator ( ModConfiguration mod , bool uninstall )
209214 {
210215 if ( mod . ConfiguratorPath . ToLowerInvariant ( ) . EndsWith ( "xml" ) )
211216 {
@@ -216,6 +221,7 @@ public static void ExecuteConfigurator(ModConfiguration mod, bool uninstall)
216221 //MessageBox.Show(path + "\n\n" + args, "process information");
217222 var process = Process . Start ( path , args ) ;
218223 process . WaitForExit ( ) ;
224+ return ( ResultType ) process . ExitCode ;
219225 }
220226 else
221227 {
@@ -234,6 +240,8 @@ public static void ExecuteConfigurator(ModConfiguration mod, bool uninstall)
234240 ConvertToArgument ( GetOutputPath ( "GalacticAdventures" , null ) ) + " " +
235241 ConvertToArgument ( GetOutputPath ( "Spore" , null ) )
236242 } ) ;
243+
244+ return ResultType . Success ;
237245 }
238246 }
239247 }
0 commit comments