simplify RemoveFrames

This commit is contained in:
Morilli 2025-02-09 08:17:45 +01:00
parent 30c67cd297
commit b33d7f5ce4
1 changed files with 7 additions and 17 deletions

View File

@ -114,26 +114,16 @@ namespace BizHawk.Client.Common
List<int> framesToDelete = frames List<int> framesToDelete = frames
.Where(fr => fr >= 0 && fr < InputLogLength) .Where(fr => fr >= 0 && fr < InputLogLength)
.Order().ToList(); .Order().ToList();
// f is the current index for framesToDelete
int f = 0; int alreadyDeleted = 0;
int numDeleted = 0; for (int i = 1; i <= framesToDelete.Count; i++)
while (numDeleted != framesToDelete.Count)
{ {
int startFrame; if (i == framesToDelete.Count || framesToDelete[i] - framesToDelete[i - 1] != 1)
var prevFrame = startFrame = framesToDelete[f];
f++;
for (; f < framesToDelete.Count; f++)
{ {
var frame = framesToDelete[f]; // Each block is logged as an individual ChangeLog entry
if (frame - 1 != prevFrame) RemoveFrames(framesToDelete[alreadyDeleted] - alreadyDeleted, framesToDelete[i - 1] + 1 - alreadyDeleted);
{ alreadyDeleted = i;
break;
}
prevFrame = frame;
} }
// Each block is logged as an individual ChangeLog entry
RemoveFrames(startFrame - numDeleted, prevFrame + 1 - numDeleted);
numDeleted += prevFrame + 1 - startFrame;
} }
} }
} }