Bladeren bron

different iso files have different data1.cab location

stopiccot 11 jaren geleden
bovenliggende
commit
a091398027
1 gewijzigde bestanden met toevoegingen van 20 en 1 verwijderingen
  1. 20 1
      osx/osx-vcmibuilder/vcmibuilder/AppDelegate.m

+ 20 - 1
osx/osx-vcmibuilder/vcmibuilder/AppDelegate.m

@@ -206,7 +206,26 @@
     
     // Extract
     [self showProgressText:@"Extracting game data using unshield..."];
-    if ([self runTask:@"/unshield" withArgs:@[@"-d", tempDir, @"x", [cd1 stringByAppendingString:@"/_setup/data1.cab"]] withWorkingDir:tempDir  withPipe:nil] != 0) {
+
+    NSArray* knownLocations = @[
+        @"/_setup/data1.cab",
+        @"/Autorun/Setup/data1.cab"
+    ];
+
+    bool success = false;
+    for (NSString* location in knownLocations) {
+        NSString* cabLocation = [cd1 stringByAppendingString:location];
+        if ([[NSFileManager defaultManager] fileExistsAtPath:cabLocation]) {
+            int result = [self runTask:@"/unshield" withArgs:@[@"-d", tempDir, @"x", cabLocation] withWorkingDir:tempDir  withPipe:nil];
+        
+            if (result == 0) {
+                success = true;
+                break;
+            }
+        }
+    }
+    
+    if (!success) {
         return [self showErrorText:@"Failed to extract game data using unshield"];
     }