if (isset($replacementnode['disc'])) { $prefix = "files/" . $replacementnode['disc']; } else { $prefix = null; } folderScrape($replacements, $index, $externalfull, $recursive, false, $prefix, $externalfull); break; case "memory": $memorypatch = true; break; case "dolphiidol": $dolphiidol = $sd . $root . "/" . $replacementnode['external']; break; } } } else { } } } } if ($memorypatch) { memoryPatch(realpath($compatiblexml), $patchsys . $maindol, realpath($sd . $root)); } } copyDolphiiDol($dolphiidol); //print_r_pre(directoryScan($patchfiles, false, false)); //print_r_pre($base); //print_r_pre($replacements); //print_r_pre($index); createSymlinkStructure(array_replace($base, $replacements)); echo json_encode(array("state" => "success"));
$json = file_get_contents($library); $games = json_decode($json, true); $iso = $games[$id]['iso']; $title = $games[$id]['title']; echo "<p>"; /* mount the virtual iso */ verbose("Attempting to mount {$title} in \"{$mountfuse}\""); mount($iso); /* list all files */ $files = listFiles($iso); verbose("Cleaning \"{$patch}\""); clean($patch); verbose("Initialising \"{$patch}\""); init($patch); verbose("Duplicating file structure in \"{$patch}\""); createSymlinkStructure($files); verbose("Collecting XML files"); $compatiblexmls = getCompatibleXML($id); foreach ($compatiblexmls as $compatiblexml) { $xml = simplexml_load_file($compatiblexml); foreach ($_POST as $option => $patchesraw) { if (!empty($patchesraw)) { $patches = explode(";", $patchesraw); foreach ($patches as $patch) { $patchnode = $xml->xpath("./patch[@id='{$patch}']"); if (count($patchnode) > 0) { foreach ($patchnode[0] as $replacementnode) { switch ($replacementnode->getName()) { case "file": filePatch($replacementnode['disc'], $replacementnode['external']); break;