Beispiel #1
0
 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");
     }
 }