diff --git a/LLSIG/src/main/java/LLSIG/Canvas.java b/LLSIG/src/main/java/LLSIG/Canvas.java index 5a3527a..e803a42 100644 --- a/LLSIG/src/main/java/LLSIG/Canvas.java +++ b/LLSIG/src/main/java/LLSIG/Canvas.java @@ -201,6 +201,9 @@ public class Canvas extends JPanel implements AudioSpectrumListener{ public void drawNote(Graphics g,double x,double y,double xsize,double ysize,boolean multiple) { g.fillOval((int)x,(int)y,(int)(xsize*NOTE_SIZE),(int)(ysize*NOTE_SIZE)); + if (multiple) { + g.fillRoundRect((int)x,(int)(y+(ysize*NOTE_SIZE)/2),(int)(xsize*NOTE_SIZE), 4, 6, 2); + } } @Override public void spectrumDataUpdate(double timestamp, double duration, float[] magnitudes, float[] phases) { diff --git a/LLSIG/src/main/java/LLSIG/LLSIG.java b/LLSIG/src/main/java/LLSIG/LLSIG.java index 8fb8041..60d0baa 100644 --- a/LLSIG/src/main/java/LLSIG/LLSIG.java +++ b/LLSIG/src/main/java/LLSIG/LLSIG.java @@ -37,6 +37,7 @@ public class LLSIG implements KeyListener,MouseWheelListener{ public static double offset = 0; public static double testOffset = 0; public static double beatDelay = ((1/((double)bpm/60))*1000); + public static boolean lastHold = false; //A toggle. Decides primary/secondary color marking. public static List beats = new ArrayList(); diff --git a/LLSIG/src/main/java/LLSIG/Lane.java b/LLSIG/src/main/java/LLSIG/Lane.java index fd4357b..8393323 100644 --- a/LLSIG/src/main/java/LLSIG/Lane.java +++ b/LLSIG/src/main/java/LLSIG/Lane.java @@ -69,27 +69,37 @@ public class Lane{ if (l!=this) { for (Note nn : l.noteChart) { if (nn.start==n.start) { + if (!n.multiple&&!nn.multiple) {LLSIG.lastHold=!LLSIG.lastHold;} nn.multiple=true; n.multiple=true; + n.multiple_col=nn.multiple_col=LLSIG.lastHold; } if (n.getNoteType()==NoteType.HOLD) { if (nn.getNoteType()==NoteType.HOLD) { if (n.start==nn.end) { + if (!n.multiple&&!nn.multiple2) {LLSIG.lastHold=!LLSIG.lastHold;} nn.multiple2=true; n.multiple=true; + n.multiple_col=nn.multiple2_col=LLSIG.lastHold; } if (n.end==nn.start) { + if (!n.multiple2&&!nn.multiple) {LLSIG.lastHold=!LLSIG.lastHold;} nn.multiple=true; n.multiple2=true; + n.multiple2_col=nn.multiple_col=LLSIG.lastHold; } else if (n.end==nn.end) { + if (!n.multiple2&&!nn.multiple2) {LLSIG.lastHold=!LLSIG.lastHold;} nn.multiple2=true; n.multiple2=true; + n.multiple2_col=nn.multiple2_col=LLSIG.lastHold; } } else { if (n.end==nn.start) { + if (!n.multiple2&&!nn.multiple) {LLSIG.lastHold=!LLSIG.lastHold;} nn.multiple=true; n.multiple2=true; + n.multiple2_col=nn.multiple_col=LLSIG.lastHold; } } } diff --git a/LLSIG/src/main/java/LLSIG/Note.java b/LLSIG/src/main/java/LLSIG/Note.java index d427151..5cbbc0d 100644 --- a/LLSIG/src/main/java/LLSIG/Note.java +++ b/LLSIG/src/main/java/LLSIG/Note.java @@ -9,6 +9,8 @@ public class Note { boolean deleted=false; //Set this marker to delete it on the next frame (when using the editor) boolean multiple=false; //Whether or not to display an indicator showing this is a multi-press note. boolean multiple2=false; //Whether or not to display an indicator showing this is a multi-press note for the ending of the hold. + boolean multiple_col=false; //If true, use the secondary color. + boolean multiple2_col=false; //If true, use the secondary color. public Note(NoteType type,double start,double end) { this.type=type; this.start=start;