simplify some IMovieSession stuff
This commit is contained in:
parent
189a2d7cfc
commit
f2e52988c1
|
@ -28,18 +28,18 @@ namespace BizHawk.Client.Common
|
|||
|
||||
public void SetFromMnemonicStr(string inputLogEntry)
|
||||
{
|
||||
var lg = Global.MovieSession.GenerateMovieController(Global.Emulator.ControllerDefinition);
|
||||
var controller = Global.MovieSession.GenerateMovieController();
|
||||
try
|
||||
{
|
||||
lg.SetFromMnemonic(inputLogEntry);
|
||||
controller.SetFromMnemonic(inputLogEntry);
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
LogCallback($"invalid mnemonic string: {inputLogEntry}");
|
||||
return;
|
||||
}
|
||||
foreach (var button in lg.Definition.BoolButtons) Global.InputManager.ButtonOverrideAdapter.SetButton(button, lg.IsPressed(button));
|
||||
foreach (var floatButton in lg.Definition.AxisControls) Global.InputManager.ButtonOverrideAdapter.SetAxis(floatButton, lg.AxisValue(floatButton));
|
||||
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));
|
||||
}
|
||||
|
||||
public void Set(Dictionary<string, bool> buttons, int? controller = null)
|
||||
|
|
|
@ -52,10 +52,10 @@ namespace BizHawk.Client.Common
|
|||
MovieController = new Bk2Controller(definition);
|
||||
}
|
||||
|
||||
public IMovieController GenerateMovieController(ControllerDefinition definition)
|
||||
public IMovieController GenerateMovieController()
|
||||
{
|
||||
// TODO: expose Movie.LogKey and pass in here
|
||||
return new Bk2Controller("", definition);
|
||||
return new Bk2Controller("", MovieController.Definition);
|
||||
}
|
||||
|
||||
// Convenience property that gets the controller state from the movie for the most recent frame
|
||||
|
|
|
@ -13,9 +13,16 @@ namespace BizHawk.Client.Common
|
|||
IController PreviousFrame { get; }
|
||||
IController CurrentInput { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Recreates MovieController with the given controller definition
|
||||
/// </summary>
|
||||
void CreateMovieController(ControllerDefinition definition);
|
||||
|
||||
IMovieController GenerateMovieController(ControllerDefinition definition);
|
||||
/// <summary>
|
||||
/// Creates a <see cref="IMovieController" /> instance based on the
|
||||
/// current <see cref="MovieController" /> button definition
|
||||
/// </summary>
|
||||
IMovieController GenerateMovieController();
|
||||
|
||||
bool ReadOnly { get; set; }
|
||||
bool MovieIsQueued { get; }
|
||||
|
|
|
@ -779,13 +779,13 @@ namespace BizHawk.Client.EmuHawk
|
|||
if (index < _bestBotAttempt.Log.Count)
|
||||
{
|
||||
var logEntry = _bestBotAttempt.Log[index];
|
||||
var lg = Global.MovieSession.GenerateMovieController(Emulator.ControllerDefinition);
|
||||
lg.SetFromMnemonic(logEntry);
|
||||
var controller = Global.MovieSession.GenerateMovieController();
|
||||
controller.SetFromMnemonic(logEntry);
|
||||
|
||||
foreach (var button in lg.Definition.BoolButtons)
|
||||
foreach (var button in controller.Definition.BoolButtons)
|
||||
{
|
||||
// TODO: make an input adapter specifically for the bot?
|
||||
Global.InputManager.ButtonOverrideAdapter.SetButton(button, lg.IsPressed(button));
|
||||
Global.InputManager.ButtonOverrideAdapter.SetButton(button, controller.IsPressed(button));
|
||||
}
|
||||
}
|
||||
else
|
||||
|
|
|
@ -27,20 +27,20 @@ namespace BizHawk.Client.EmuHawk
|
|||
{
|
||||
try
|
||||
{
|
||||
var lg = Global.MovieSession.GenerateMovieController(Global.Emulator.ControllerDefinition);
|
||||
lg.SetFromMnemonic(inputLogEntry);
|
||||
var controller = Global.MovieSession.GenerateMovieController();
|
||||
controller.SetFromMnemonic(inputLogEntry);
|
||||
|
||||
foreach (var button in lg.Definition.BoolButtons)
|
||||
foreach (var button in controller.Definition.BoolButtons)
|
||||
{
|
||||
Global.InputManager.ButtonOverrideAdapter.SetButton(button, lg.IsPressed(button));
|
||||
Global.InputManager.ButtonOverrideAdapter.SetButton(button, controller.IsPressed(button));
|
||||
}
|
||||
|
||||
foreach (var floatButton in lg.Definition.AxisControls)
|
||||
foreach (var floatButton in controller.Definition.AxisControls)
|
||||
{
|
||||
Global.InputManager.ButtonOverrideAdapter.SetAxis(floatButton, lg.AxisValue(floatButton));
|
||||
Global.InputManager.ButtonOverrideAdapter.SetAxis(floatButton, controller.AxisValue(floatButton));
|
||||
}
|
||||
|
||||
return lg;
|
||||
return controller;
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue