private void Save() { BinaryFormatter binaryFormatter = new BinaryFormatter(); FileStream fileStream = File.Open(Environment.CurrentDirectory.Replace('\\', '/') + "/UserData/Replays/Recording.sia", FileMode.OpenOrCreate); SavedData savedData = new SavedData(); savedData._keyframes = new SavedData.KeyframeSerializable[_keyframes.Count]; for (int i = 0; i < _keyframes.Count; i++) { Keyframe keyframe = _keyframes[i]; SavedData.KeyframeSerializable keyframeSerializable = new SavedData.KeyframeSerializable(); keyframeSerializable._xPos1 = keyframe._pos1.x; keyframeSerializable._yPos1 = keyframe._pos1.y; keyframeSerializable._zPos1 = keyframe._pos1.z; keyframeSerializable._xPos2 = keyframe._pos2.x; keyframeSerializable._yPos2 = keyframe._pos2.y; keyframeSerializable._zPos2 = keyframe._pos2.z; keyframeSerializable._xRot1 = keyframe._rot1.x; keyframeSerializable._yRot1 = keyframe._rot1.y; keyframeSerializable._zRot1 = keyframe._rot1.z; keyframeSerializable._wRot1 = keyframe._rot1.w; keyframeSerializable._xRot2 = keyframe._rot2.x; keyframeSerializable._yRot2 = keyframe._rot2.y; keyframeSerializable._zRot2 = keyframe._rot2.z; keyframeSerializable._wRot2 = keyframe._rot2.w; keyframeSerializable._time = keyframe._time; keyframeSerializable._energy = keyframe._energy; keyframeSerializable._score = keyframe._score; keyframeSerializable._combo = keyframe._combo; savedData._keyframes[i] = keyframeSerializable; } binaryFormatter.Serialize(fileStream, savedData); fileStream.Close(); Logger.Log.Notice("Data saved to:" + Environment.CurrentDirectory.Replace('\\', '/') + "/UserData/Replays/Recording.sia"); }
private void Load() { BinaryFormatter binaryFormatter = new BinaryFormatter(); SavedData savedData = null; FileStream fileStream = null; try { fileStream = File.Open(Environment.CurrentDirectory.Replace('\\', '/') + "/UserData/Replays/Recording.sia", FileMode.Open); savedData = (SavedData)binaryFormatter.Deserialize(fileStream); } catch { savedData = null; } finally { if (fileStream != null) { fileStream.Close(); } } if (savedData != null) { Logger.Log.Notice("Loaded recording..."); } if (savedData != null) { _keyframes = new List <Keyframe>(savedData._keyframes.Length); for (int i = 0; i < savedData._keyframes.Length; i++) { SavedData.KeyframeSerializable keyframeSerializable = savedData._keyframes[i]; Keyframe keyframe = new Keyframe(); keyframe._pos1 = new Vector3(keyframeSerializable._xPos1, keyframeSerializable._yPos1, keyframeSerializable._zPos1); keyframe._pos2 = new Vector3(keyframeSerializable._xPos2, keyframeSerializable._yPos2, keyframeSerializable._zPos2); keyframe._rot1 = new Quaternion(keyframeSerializable._xRot1, keyframeSerializable._yRot1, keyframeSerializable._zRot1, keyframeSerializable._wRot1); keyframe._rot2 = new Quaternion(keyframeSerializable._xRot2, keyframeSerializable._yRot2, keyframeSerializable._zRot2, keyframeSerializable._wRot2); keyframe._time = keyframeSerializable._time; keyframe._energy = keyframeSerializable._energy; keyframe._score = keyframeSerializable._score; keyframe._combo = keyframeSerializable._combo; _keyframes.Add(keyframe); } ready = true; return; } Logger.Log.Error("Could not deserialize!"); enabled = false; }