BizHawk/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudioClipboard.cs

53 lines
1.3 KiB
C#

using System;
using System.Windows.Forms;
using BizHawk.Emulation.Common;
using BizHawk.Client.Common;
namespace BizHawk.Client.EmuHawk
{
public class TasClipboardEntry
{
public TasClipboardEntry(int frame, IController controllerState)
{
Frame = frame;
ControllerState = controllerState;
}
public int Frame { get; }
public IController ControllerState { get; }
public override string ToString()
{
var lg = Global.MovieSession.Movie.LogGeneratorInstance(ControllerState);
return lg.GenerateLogEntry();
}
public static IMovieController SetFromMnemonicStr(string inputLogEntry)
{
try
{
var controller = Global.MovieSession.GenerateMovieController();
controller.SetFromMnemonic(inputLogEntry);
foreach (var button in controller.Definition.BoolButtons)
{
Global.InputManager.ButtonOverrideAdapter.SetButton(button, controller.IsPressed(button));
}
foreach (var floatButton in controller.Definition.AxisControls)
{
Global.InputManager.ButtonOverrideAdapter.SetAxis(floatButton, controller.AxisValue(floatButton));
}
return controller;
}
catch (Exception)
{
MessageBox.Show($"Invalid mnemonic string: {inputLogEntry}", "Paste Input failed!");
return null;
}
}
}
}