53 lines
1.3 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|
|
}
|