public static TasMovie ToTasMovie(this IMovie old, bool copy = false)
        {
            string newFilename = old.Filename + "." + TasMovie.Extension;

            if (File.Exists(newFilename))
            {
                int  fileNum      = 1;
                bool fileConflict = true;
                while (fileConflict)
                {
                    if (File.Exists(newFilename))
                    {
                        newFilename = old.Filename + " (" + fileNum + ")" + "." + TasMovie.Extension;
                        fileNum++;
                    }
                    else
                    {
                        fileConflict = false;
                    }
                }
            }

            var tas = new TasMovie(newFilename, old.StartsFromSavestate);

            for (var i = 0; i < old.InputLogLength; i++)
            {
                var input = old.GetInputState(i);
                tas.AppendFrame(input);
            }

            if (!copy)
            {
                old.Truncate(0);                 // Trying to minimize ram usage
            }

            tas.HeaderEntries.Clear();
            foreach (var kvp in old.HeaderEntries)
            {
                tas.HeaderEntries[kvp.Key] = kvp.Value;
            }

            tas.SyncSettingsJson = old.SyncSettingsJson;

            tas.Comments.Clear();
            foreach (var comment in old.Comments)
            {
                tas.Comments.Add(comment);
            }

            tas.Subtitles.Clear();
            foreach (var sub in old.Subtitles)
            {
                tas.Subtitles.Add(sub);
            }

            tas.TextSavestate   = old.TextSavestate;
            tas.BinarySavestate = old.BinarySavestate;

            return(tas);
        }
Exemplo n.º 2
0
		public static TasMovie ToTasMovie(this IMovie old)
		{
			var newFilename = old.Filename + "." +  TasMovie.Extension;
			var tas = new TasMovie(newFilename);
			tas.HeaderEntries.Clear();
			foreach (var kvp in old.HeaderEntries)
			{
				tas.HeaderEntries[kvp.Key] = kvp.Value;
			}

			tas.SyncSettingsJson = old.SyncSettingsJson;

			tas.Comments.Clear();
			foreach (var comment in old.Comments)
			{
				tas.Comments.Add(comment);
			}

			tas.Subtitles.Clear();
			foreach (var sub in old.Subtitles)
			{
				tas.Subtitles.Add(sub);
			}

			tas.TextSavestate = old.TextSavestate;
			tas.BinarySavestate = old.BinarySavestate;

			for (var i = 0; i < old.InputLogLength; i++)
			{
				var input = old.GetInputState(i);
				tas.AppendFrame(input);
			}

			return tas;
		}
Exemplo n.º 3
0
        public static TasMovie ToTasMovie(this IMovie old)
        {
            var newFilename = old.Filename + "." + TasMovie.Extension;
            var tas         = new TasMovie(newFilename);

            tas.HeaderEntries.Clear();
            foreach (var kvp in old.HeaderEntries)
            {
                tas.HeaderEntries[kvp.Key] = kvp.Value;
            }

            tas.SyncSettingsJson = old.SyncSettingsJson;

            tas.Comments.Clear();
            foreach (var comment in old.Comments)
            {
                tas.Comments.Add(comment);
            }

            tas.Subtitles.Clear();
            foreach (var sub in old.Subtitles)
            {
                tas.Subtitles.Add(sub);
            }

            tas.TextSavestate   = old.TextSavestate;
            tas.BinarySavestate = old.BinarySavestate;

            for (var i = 0; i < old.InputLogLength; i++)
            {
                var input = old.GetInputState(i);
                tas.AppendFrame(input);
            }

            return(tas);
        }
		public static TasMovie ToTasMovie(this IMovie old, bool copy = false)
		{
			string newFilename = old.Filename + "." + TasMovie.Extension;

			if (File.Exists(newFilename))
			{
				int fileNum = 1;
				bool fileConflict = true;
				while (fileConflict)
				{
					if (File.Exists(newFilename))
					{
						newFilename = old.Filename + " (" + fileNum + ")" + "." + TasMovie.Extension;
						fileNum++;
					}
					else
					{
						fileConflict = false;
					}
				}
			}

			var tas = new TasMovie(newFilename, old.StartsFromSavestate);
			tas.TasStateManager.MountWriteAccess();

			for (var i = 0; i < old.InputLogLength; i++)
			{
				var input = old.GetInputState(i);
				tas.AppendFrame(input);
			}

			if (!copy)
			{
				old.Truncate(0); // Trying to minimize ram usage
			}

			tas.HeaderEntries.Clear();
			foreach (var kvp in old.HeaderEntries)
			{
				tas.HeaderEntries[kvp.Key] = kvp.Value;
			}

			tas.SyncSettingsJson = old.SyncSettingsJson;

			tas.Comments.Clear();
			foreach (var comment in old.Comments)
			{
				tas.Comments.Add(comment);
			}

			tas.Subtitles.Clear();
			foreach (var sub in old.Subtitles)
			{
				tas.Subtitles.Add(sub);
			}

			tas.TextSavestate = old.TextSavestate;
			tas.BinarySavestate = old.BinarySavestate;
			tas.SaveRam = old.SaveRam;

			return tas;
		}