Пример #1
0
                                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"));
Пример #2
0
$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;