Skip to content

Commit b3faba1

Browse files
committed
Fix looped notes jumping
The more a song's length is over where a natural beat should end, the more looped notes would jump into place at playback = 0. Instead looped notes are a set offset instead of beats+bpl
1 parent c30528d commit b3faba1

File tree

2 files changed

+5
-4
lines changed

2 files changed

+5
-4
lines changed

project.godot

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,6 @@ project/assembly_name="Funk Engine"
3939

4040
[game]
4141

42-
input_scheme="CONTROLLER"
4342

4443
[input]
4544

scenes/ChartViewport/scripts/ChartManager.cs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ public NoteArrow AddArrowToLane(
9696
)
9797
{
9898
var newNote = CreateNote(type, note, beat); //TODO: Notes on track have unqiue visuals
99-
var loopArrow = CreateNote(type, note, beat + BeatsPerLoop); //Create a dummy arrow for looping visuals
99+
var loopArrow = CreateNote(type, note, beat, 1); //Create a dummy arrow for looping visuals
100100
if (colorOverride != default)
101101
{
102102
newNote.SelfModulate = colorOverride;
@@ -106,15 +106,17 @@ public NoteArrow AddArrowToLane(
106106
return newNote;
107107
}
108108

109-
private NoteArrow CreateNote(ArrowType arrow, Note note, int beat = 0)
109+
private NoteArrow CreateNote(ArrowType arrow, Note note, int beat = 0, int loopOffset = 0)
110110
{
111111
var noteScene = ResourceLoader.Load<PackedScene>("res://scenes/NoteManager/note.tscn");
112112
NoteArrow newArrow = noteScene.Instantiate<NoteArrow>();
113113
newArrow.Init(IH.Arrows[(int)arrow], beat, note);
114114
newArrow.OutlineSprite.Modulate = IH.Arrows[(int)arrow].Color;
115115

116116
_arrowGroup.AddChild(newArrow);
117-
newArrow.Bounds = (float)(beat / TrueBeatsPerLoop * (ChartLength / 2));
117+
newArrow.Bounds = (float)(
118+
beat / TrueBeatsPerLoop * (ChartLength / 2) + loopOffset * (ChartLength / 2)
119+
);
118120
newArrow.Position += Vector2.Right * newArrow.Bounds * 10; //temporary fix for notes spawning and instantly calling loop from originating at 0,0
119121
return newArrow;
120122
}

0 commit comments

Comments
 (0)