Draft
Conversation
Basically note recoloring. This aims to preserve the structure of a file by only doing local edits when needed. This also corrects for BPM speed changes by including scroll edits as well.
This complicates the logic a ton, but cut note/tempo updating to 15% of the previous time on extreme cases. Also reduces the total history entries to just 1-2 per selection, instead of 1-2 per note.
This solves the 2 separate history entries for beat insert then note editing. This method is inheritably unsafe to use due to possible desync in history / chart state if misused, but allows for much more possibilities for compressing history entries.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Re-quantize / Re-color notes based on the current selected snapping.
This corrects for the time an scroll velocity so that it plays back the same in cmod and xmod. Tries to maintain the correct values when possible.
Doesn't currently work for notes positioned within a warp as time isn't progressing.
Issues to currently resolve:
beatInsert, which on more extreme cases take up the majority of the compute time.First issue need to be solved before this should be merged, as this step can be extremely slow on larger selections or when undoing.