Tastudio - better tracking of which frame to invalidate from when input painting, fixes #1790
This commit is contained in:
parent
f9435fb17f
commit
a08c0a394c
|
@ -24,6 +24,7 @@ namespace BizHawk.Client.EmuHawk
|
||||||
private bool _selectionDragState;
|
private bool _selectionDragState;
|
||||||
private bool _suppressContextMenu;
|
private bool _suppressContextMenu;
|
||||||
private int _startRow;
|
private int _startRow;
|
||||||
|
private int _paintingMinFrame = -1;
|
||||||
|
|
||||||
// Editing analog input
|
// Editing analog input
|
||||||
private string _floatEditColumn = "";
|
private string _floatEditColumn = "";
|
||||||
|
@ -323,6 +324,10 @@ namespace BizHawk.Client.EmuHawk
|
||||||
{
|
{
|
||||||
offsetX = TasView.HorizontalOrientation ? 2 : 7;
|
offsetX = TasView.HorizontalOrientation ? 2 : 7;
|
||||||
text = index.ToString().PadLeft(CurrentTasMovie.InputLogLength.ToString().Length, '0');
|
text = index.ToString().PadLeft(CurrentTasMovie.InputLogLength.ToString().Length, '0');
|
||||||
|
if (_paintingMinFrame >= 0)
|
||||||
|
{
|
||||||
|
text += " " + _paintingMinFrame.ToString();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -546,6 +551,7 @@ namespace BizHawk.Client.EmuHawk
|
||||||
if (e.Button == MouseButtons.Left)
|
if (e.Button == MouseButtons.Left)
|
||||||
{
|
{
|
||||||
_leftButtonHeld = true;
|
_leftButtonHeld = true;
|
||||||
|
_paintingMinFrame = frame;
|
||||||
|
|
||||||
// SuuperW: Exit float editing mode, or re-enter mouse editing
|
// SuuperW: Exit float editing mode, or re-enter mouse editing
|
||||||
if (FloatEditingMode)
|
if (FloatEditingMode)
|
||||||
|
@ -785,6 +791,7 @@ namespace BizHawk.Client.EmuHawk
|
||||||
_startSelectionDrag = false;
|
_startSelectionDrag = false;
|
||||||
_startBoolDrawColumn = "";
|
_startBoolDrawColumn = "";
|
||||||
_startFloatDrawColumn = "";
|
_startFloatDrawColumn = "";
|
||||||
|
_paintingMinFrame = -1;
|
||||||
TasView.ReleaseCurrentCell();
|
TasView.ReleaseCurrentCell();
|
||||||
|
|
||||||
// Exit float editing if value was changed with cursor
|
// Exit float editing if value was changed with cursor
|
||||||
|
@ -839,7 +846,7 @@ namespace BizHawk.Client.EmuHawk
|
||||||
// So now we have to ensure that all the edited frames are invalidated
|
// So now we have to ensure that all the edited frames are invalidated
|
||||||
if (CurrentTasMovie.LastEditedFrame < Emulator.Frame)
|
if (CurrentTasMovie.LastEditedFrame < Emulator.Frame)
|
||||||
{
|
{
|
||||||
GoToFrame(CurrentTasMovie.LastEditedFrame);
|
GoToFrame(_paintingMinFrame);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -950,6 +957,11 @@ namespace BizHawk.Client.EmuHawk
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (_paintingMinFrame >= 0)
|
||||||
|
{
|
||||||
|
_paintingMinFrame = Math.Min(_paintingMinFrame, e.NewCell?.RowIndex ?? 0);
|
||||||
|
}
|
||||||
|
|
||||||
// skip rerecord counting on drawing entirely, mouse down is enough
|
// skip rerecord counting on drawing entirely, mouse down is enough
|
||||||
// avoid introducing another global
|
// avoid introducing another global
|
||||||
bool wasCountingRerecords = CurrentTasMovie.IsCountingRerecords;
|
bool wasCountingRerecords = CurrentTasMovie.IsCountingRerecords;
|
||||||
|
|
Loading…
Reference in New Issue