$maps = PatchLocator::getMaps('R60_2005'); $patcher = new Patcher(); foreach ($_POST['setting'] as $mapName => $settingVal) { if ($settingVal == $mapName . '0' && !array_key_exists('overwriteOriginal', $_POST)) { continue; } $mod = new Modification($maps[$mapName], $maps[$mapName]->getSetting($settingVal)); $patcher->addModification($mod); } $presetString = ''; $presetMap = _PRESET_MAPPING(); foreach ($presetMap as $preset) { if (!array_key_exists($preset, $_POST['setting'])) { $presetString = ''; break; } $presetString .= str_replace($preset, '', $_POST['setting'][$preset]); } if ($patcher->getNumberOfModifications() == 0) { jsCallback('Keine Ă„nderungen vorgenommen!'); die; } $staticMaps = PatchLocator::getStaticMaps('R60_2005'); foreach ($staticMaps as $mapName => $map) { $mod = new Modification($map, $map->getSetting($mapName . '0')); $patcher->addModification($mod); } $filename = $patcher->createTunedFile($sourceFile, $originalFile); $newFilename = str_replace(basename($filename), '', $filename) . 'R60_2005-' . $presetString . '-' . $requestId . '.Bad Checksums!!'; rename($filename, $newFilename); downloadFile($newFilename, basename($newFilename), md5_file($newFilename));
$rangesCount = $section[_RANGESCOUNT]; for ($i = 1; $i <= $rangesCount; $i++) { if (!array_key_exists('Range' . $i . 'Start', $section) || !array_key_exists('Range' . $i . 'End', $section)) { throw new Exception('RangesCount differs from actual number of ranges'); } $range = new Range($section['Range' . $i . 'Start'], $section['Range' . $i . 'End']); $map->addRange($range); } break; default: $setting = new Setting($sectionName, $section[_DESCRIPTION], $section[_LISTENTRY], array()); foreach ($section as $key => $value) { if ($key == _DESCRIPTION || $key == _LISTENTRY) { continue; } $value = new Value($key, $value); $setting->addValue($value); } $map->addSetting($setting); break; } } $maps[] = $map; } $settingKeys = $maps[0]->getSettingKeys(); $mod1 = new Modification($maps[0], $maps[0]->getSetting($settingKeys[1])); $patcher = new Patcher(); $patcher->addModification($mod1); echo "<pre>"; $patcher->createTunedFile(_DIRECTORY . 'original.rom', _DIRECTORY . 'original.rom'); echo "</pre>";