private static bool Studio_LoadScene(Studio.Studio __instance, string _path, ref bool __result, ref BackgroundCtrl ___m_BackgroundCtrl, ref Studio.CameraControl ___m_CameraCtrl) { if (IsStudio) { return(true); } if (!File.Exists(_path)) { __result = false; return(false); } __instance.InitScene(false); var sceneInfo = new SceneInfo(); Traverse.Create(__instance).Property("sceneInfo").SetValue(sceneInfo); if (!sceneInfo.Load(_path)) { __result = false; return(false); } LoadingScene = true; AddObjectAssist.LoadChild(sceneInfo.dicObject); ChangeAmount source = sceneInfo.caMap.Clone(); __instance.AddMap(sceneInfo.map, false, false); sceneInfo.caMap.Copy(source); Singleton <MapCtrl> .Instance.Reflect(); __instance.bgmCtrl.Play(__instance.bgmCtrl.no); __instance.envCtrl.Play(__instance.envCtrl.no); __instance.outsideSoundCtrl.Play(__instance.outsideSoundCtrl.fileName); //Add the component if it doesn't exist if (___m_BackgroundCtrl == null) { ___m_BackgroundCtrl = Camera.main.gameObject.AddComponent <BackgroundCtrl>(); } __instance.treeNodeCtrl.RefreshHierachy(); if (sceneInfo.cameraSaveData != null) { ___m_CameraCtrl.Import(sceneInfo.cameraSaveData); } __instance.cameraLightCtrl.Reflect(); sceneInfo.dataVersion = sceneInfo.version; LoadingScene = false; __result = true; return(false); }