//Save/Load private Ahibp mergeLightNShadow() { // Ahibp tmpLight = new Ahibp(0,0,0,0,0); // Ahibp tmpShadow = new Ahibp(0,0,0,0,0); // // bool isLight = false; // bool isShadow = false; // // if(m_lightData.Count>0) // { // isLight = true; // tmpLight = m_lightData[m_lightData.Count-1]; // } // if(m_shadowData.Count>0) // { // isShadow = true; // tmpShadow = m_shadowData[m_shadowData.Count-1]; // } // // if(isLight && isShadow) // y en a au moins un de chaque // { // if(tmpLight.m_a == tmpShadow.m_a && tmpLight.m_h == tmpShadow.m_h && tmpLight.m_i == tmpShadow.m_i) // { // return tmpShadow; // } // else // return tmpLight; // // } // else if(isLight || isShadow) // y en a un des deux // { // if(!isLight) // return tmpShadow; // else // return tmpLight; // } // else //y en a aucun --> pb // { // Debug.Log("No Saved Data"); // return new Ahibp(0,0,0,0,0);; // } Ahibp toReturn = new Ahibp(0,0,0,0,0, 0, 0, 0); if(m_lightData.Count>0) { toReturn = m_lightData[m_lightData.Count-1]; } if(m_shadowData.Count>0) { toReturn.m_b = m_shadowData[m_shadowData.Count-1].m_b; toReturn.m_p = m_shadowData[m_shadowData.Count-1].m_p; } return toReturn; }
public void load(BinaryReader buf,bool completeLoad, string version) { //camera //chargement données montage Hlips toload; toload.m_h = buf.ReadSingle(); toload.m_l = buf.ReadSingle(); toload.m_i = buf.ReadSingle(); toload.m_p = buf.ReadSingle(); toload.m_s = buf.ReadSingle(); toload.m_t = buf.ReadSingle(); Debug.Log ("Chargement toload " + toload.m_h + " " + toload.m_l + " " + toload.m_i + " " + toload.m_p + " " + toload.m_s + " "+ toload.m_t + " "); //chargement données origine (gyro) m_originalState = new Hlips(); m_originalState.m_h = buf.ReadSingle(); m_originalState.m_l = buf.ReadSingle(); m_originalState.m_i = buf.ReadSingle(); m_originalState.m_p = buf.ReadSingle(); m_originalState.m_s = buf.ReadSingle(); m_originalState.m_t = buf.ReadSingle(); Debug.Log ("OriginalState " + m_originalState.m_h + " " + m_originalState.m_l + " " + m_originalState.m_i + " " + m_originalState.m_p + " " + m_originalState.m_s + " "+ m_originalState.m_t + " "); m_cameraData.Clear(); if(completeLoad) { m_cameraData.Add(toload);//données sauvegardées GameObject.Find("camPivot").GetComponent<SceneControl>().loadFromModel(); } else { m_cameraData.Add(m_originalState);//données sauvegardées GameObject.Find("camPivot").GetComponent<SceneControl>().loadFromModel(); // /*m_cameraData.*/setFromOriginal();//données originales(gyroscope si photo prise de l'ipad) } // //ce serait mieux de faire un "fireSceneModelChange" a la fin du load mais bon ... // //ptet plus tard // //light // LightData.Clear(); Ahibp liteToLoad = new Ahibp(0,0,0,0,0,128.0f,128.0f,128.0f); liteToLoad.m_a = buf.ReadSingle(); liteToLoad.m_h = buf.ReadSingle(); liteToLoad.m_i = buf.ReadSingle(); liteToLoad.m_b = buf.ReadSingle(); liteToLoad.m_p = buf.ReadSingle(); SetNightMode(false); if(!LibraryLoader.numVersionInferieur(version,"1.2.1")) { liteToLoad.m_img_r = buf.ReadSingle(); liteToLoad.m_img_g = buf.ReadSingle(); liteToLoad.m_img_b = buf.ReadSingle(); } if(!LibraryLoader.numVersionInferieur(version,"1.2.2")) { _nightMode = buf.ReadBoolean(); } m_lightData.Clear(); m_lightData.Add(liteToLoad); GameObject.Find("LightPivot").GetComponent<LightConfiguration>().LoadFromModel(); // LightData.Add(buf.ReadSingle()); //FLOAT // LightData.Add(buf.ReadSingle()); //FLOAT // LightData.Add(buf.ReadSingle()); //FLOAT // LightData.Add(buf.ReadSingle()); //FLOAT // LightData.Add(buf.ReadSingle()); //FLOAT // // GameObject.Find("LightPivot").GetComponent<LightConfiguration>().loadFromModel(LightData); // //Reflex m_reflex.m_id = buf.ReadInt32(); m_reflex.m_rate = buf.ReadSingle(); Debug.Log("LOADED ID" + m_reflex.m_id + " taux "+ m_reflex.m_rate); // GameObject.Find("LightPivot").GetComponent<LightConfiguration>().setReflexionLimits(m_reflex.m_id); GameObject.Find("LightPivot").GetComponent<LightConfiguration>().loadReflex(m_reflex.m_rate,m_reflex.m_id); //background float scaleY = buf.ReadSingle(); isFromPhototheque = buf.ReadBoolean(); Vector3 tmp = GameObject.Find("backgroundImage").transform.localScale; tmp.y = scaleY; GameObject.Find("backgroundImage").transform.localScale = tmp; if(isFromPhototheque) { backgroundPath = buf.ReadString(); background = GameObject.Find("MainScene").GetComponent<GUIStart>().getPicFromPhototheque(int.Parse(backgroundPath)); GameObject.Find("MainScene").GetComponent<Montage>().reset(); GameObject.Find("MainScene").GetComponent<GUIMenuMain>().setStarter(false); GameObject.Find("MainScene").GetComponent<GUIMenuMain>().SetHideAll(true); } else { int len = buf.ReadInt32(); int w = buf.ReadInt32(); int h = buf.ReadInt32(); byte[] bytes = buf.ReadBytes(len); background = new Texture2D(w,h,TextureFormat.RGB24,false); background.LoadImage(bytes); GameObject.Find("MainScene").GetComponent<Montage>().reset(); GameObject.Find("MainScene").GetComponent<GUIMenuMain> ().setStarter (false); GameObject.Find("MainScene").GetComponent<GUIMenuMain>().SetHideAll(true); // GameObject.Find("MainScene").GetComponent<Montage>().loadBgFromOutside(backgroundPath); } // -- Mode2D -- if(!LibraryLoader.numVersionInferieur(version,"1.3.2")) { bool m2d_empty = buf.ReadBoolean(); if(!m2d_empty) { Rect org = new Rect(); org.x = buf.ReadSingle(); org.y = buf.ReadSingle(); org.width = buf.ReadSingle(); org.height = buf.ReadSingle(); Rect saved = new Rect(); saved.x = buf.ReadSingle(); saved.y = buf.ReadSingle(); saved.width = buf.ReadSingle(); saved.height = buf.ReadSingle(); Vector2 old = new Vector2(); old.x = buf.ReadSingle(); old.y = buf.ReadSingle(); float zoomO = buf.ReadSingle(); Vector2 translaO = new Vector2(buf.ReadSingle(), buf.ReadSingle()); float rotaO = buf.ReadSingle(); float[] lineData = null; bool oldSave = false; if(LibraryLoader.numVersionInferieur(version,"1.6.4")) { oldSave = true; // Tag the save as old so the Mode2D knows it must not load everything buf.ReadSingle(); // Old "ZoomImg" variable } else { //DEBUG_SAVE int countLigneData=(int)buf.ReadSingle(); lineData = new float[countLigneData+1]; lineData[0] = countLigneData; for(int i=1; i<lineData.Length; i++) // New lineData lineData[i] = buf.ReadSingle(); } bool image = buf.ReadBoolean(); if(image) { int len = buf.ReadInt32(); int w = buf.ReadInt32(); int h = buf.ReadInt32(); byte[] bytes = buf.ReadBytes(len); Texture2D img = new Texture2D(w,h); img.LoadImage(bytes); m_mode2D.Set(org, saved, old, zoomO, translaO, rotaO, lineData, img, oldSave); } else m_mode2D.Set(org, saved, old, zoomO, translaO, rotaO, lineData, null, oldSave); } } }