public void Load(LuaSaveSlot slot) { if (slot == null) { return; } if (slot.Stream == null && _machine.K7Path != null) { var path = GetStateFilePath(slot.Number); if (File.Exists(path)) { slot.Stream = File.OpenRead(path); } } if (slot.Stream == null) { return; } _machine.RestoreState(slot.Stream); if (!slot.IsPersistent) { slot.Stream.Dispose(); slot.Stream = null; } }
public void Save(LuaSaveSlot slot) { if (slot == null) { return; } var stream = new MemoryStream(); slot.Stream = stream; _machine.SaveState(stream); if (slot.IsPersistent && !slot.IsAnonymous) { File.WriteAllBytes(GetStateFilePath(slot.Number), stream.ToArray()); } }
public void Persist(LuaSaveSlot saveState) { saveState.IsPersistent = true; }