public static function migrateRequirements($v1GameId, $v2GameId, $maps) { //no need to return map of any kind- nothing references v1 requirements //round up all v1 requirements into groups by type and by object $rGroupings = new stdClass(); $rGroupings->dialogOptions = array(); $rGroupings->questCompletes = array(); $rGroupings->questDisplays = array(); $rGroupings->triggers = array(); $rGroupings->webhooks = array(); $rGroupings->factories = array(); $rGroupings->overlays = array(); $rGroupings->tabs = array(); $requirements = migration_dbconnection::queryArray("SELECT * FROM requirements WHERE game_id = '{$v1GameId}'", "v1"); $q = 0; for ($i = 0; $i < count($requirements); $i++) { if ($requirements[$i]->content_type == "Node") { $typeGroup =& $rGroupings->dialogOptions; } if ($requirements[$i]->content_type == "QuestDisplay") { $typeGroup =& $rGroupings->questDisplays; } if ($requirements[$i]->content_type == "QuestComplete") { $typeGroup =& $rGroupings->questCompletes; } if ($requirements[$i]->content_type == "Location") { $typeGroup =& $rGroupings->triggers; } if ($requirements[$i]->content_type == "OutgoingWebHook") { $typeGroup =& $rGroupings->webhooks; } if ($requirements[$i]->content_type == "Spawnable") { $typeGroup =& $rGroupings->factories; } if ($requirements[$i]->content_type == "CustomMap") { $typeGroup =& $rGroupings->overlays; } if ($requirements[$i]->content_type == "Tab") { $typeGroup =& $rGroupings->tabs; } if (!$typeGroup[$requirements[$i]->content_id]) { $typeGroup[$requirements[$i]->content_id] = array(); } $typeGroup[$requirements[$i]->content_id][] = $requirements[$i]; } foreach ($rGroupings->dialogOptions as $optionId => $requirementsList) { $req_package_id = migration::migrateRequirementListIntoPackage($v2GameId, $requirementsList, $maps); migration_dbconnection::query("UPDATE dialog_options SET requirement_root_package_id = '{$req_package_id}' WHERE dialog_option_id = '{$maps->options[$optionId]}'", "v2"); } foreach ($rGroupings->questCompletes as $questId => $requirementsList) { $req_package_id = migration::migrateRequirementListIntoPackage($v2GameId, $requirementsList, $maps); migration_dbconnection::query("UPDATE quests SET complete_requirement_root_package_id = '{$req_package_id}' WHERE quest_id = '{$maps->quests[$questId]}'", "v2"); } foreach ($rGroupings->questDisplays as $questId => $requirementsList) { $req_package_id = migration::migrateRequirementListIntoPackage($v2GameId, $requirementsList, $maps); migration_dbconnection::query("UPDATE quests SET active_requirement_root_package_id = '{$req_package_id}' WHERE quest_id = '{$maps->quests[$questId]}'", "v2"); } foreach ($rGroupings->triggers as $locationId => $requirementsList) { //I do this twice- once for the v2 location trigger that was generated for the v1 location... $req_package_id = migration::migrateRequirementListIntoPackage($v2GameId, $requirementsList, $maps); migration_dbconnection::query("UPDATE triggers SET requirement_root_package_id = '{$req_package_id}' WHERE trigger_id = '{$maps->locTriggers[$locationId]}'", "v2"); //and once for the v2 qr trigger that was generated for the v1 location $req_package_id = migration::migrateRequirementListIntoPackage($v2GameId, $requirementsList, $maps); migration_dbconnection::query("UPDATE triggers SET requirement_root_package_id = '{$req_package_id}' WHERE trigger_id = '{$maps->qrTriggers[$locationId]}'", "v2"); } foreach ($rGroupings->webhooks as $webhookId => $requirementsList) { $req_package_id = migration::migrateRequirementListIntoPackage($v2GameId, $requirementsList, $maps); migration_dbconnection::query("UPDATE web_hooks SET requirement_root_package_id = '{$req_package_id}' WHERE web_hook_id = '{$maps->webhooks[$webhookId]}'", "v2"); } foreach ($rGroupings->factories as $factoryId => $requirementsList) { $req_package_id = migration::migrateRequirementListIntoPackage($v2GameId, $requirementsList, $maps); migration_dbconnection::query("UPDATE factories SET trigger_requirement_root_package_id = '{$req_package_id}' WHERE factory_id = '{$maps->factories[$factoryId]}'", "v2"); } foreach ($rGroupings->overlays as $overlayId => $requirementsList) { $req_package_id = migration::migrateRequirementListIntoPackage($v2GameId, $requirementsList, $maps); migration_dbconnection::query("UPDATE overlays SET requirement_root_package_id = '{$req_package_id}' WHERE overlay_id = '{$maps->overlays[$overlayId]}'", "v2"); } foreach ($rGroupings->tabs as $tabId => $requirementsList) { $req_package_id = migration::migrateRequirementListIntoPackage($v2GameId, $requirementsList, $maps); migration_dbconnection::query("UPDATE tabs SET requirement_root_package_id = '{$req_package_id}' WHERE tab_id = '{$maps->tabs[$tabId]}'", "v2"); } }