From 39759fa789e417c93a041884db6003eb7de18990 Mon Sep 17 00:00:00 2001 From: Joshua Sigona Date: Thu, 14 Oct 2021 23:17:01 +0900 Subject: [PATCH] Fix edit mode press and release holding tracking for editing mode. --- LLSIG/src/main/java/LLSIG/LLSIG.java | 34 ++++++++++++++++------------ LLSIG/src/main/java/LLSIG/Lane.java | 1 + 2 files changed, 21 insertions(+), 14 deletions(-) diff --git a/LLSIG/src/main/java/LLSIG/LLSIG.java b/LLSIG/src/main/java/LLSIG/LLSIG.java index 5f701b9..ff98631 100644 --- a/LLSIG/src/main/java/LLSIG/LLSIG.java +++ b/LLSIG/src/main/java/LLSIG/LLSIG.java @@ -402,12 +402,15 @@ public class LLSIG implements KeyListener{ } } else if (PLAYING&&EDITMODE) { - Note n = new Note(NoteType.NORMAL,musicPlayer.getPlayPosition()); - n.active=false; - //System.out.println(Math.round(((musicPlayer.getPlayPosition()-offset)/beatDelay)*NOTE_RECORD_BEAT_SNAP_MULTIPLE)/(double)NOTE_RECORD_BEAT_SNAP_MULTIPLE); - n.setBeatSnap(Math.round(((musicPlayer.getPlayPosition()-offset)/beatDelay)*NOTE_RECORD_BEAT_SNAP_MULTIPLE)/(double)NOTE_RECORD_BEAT_SNAP_MULTIPLE); - LLSIG.game.lanes.get(lane).addNote(n); - LLSIG.game.lanes.get(lane).lastNoteAdded=n; + if (!LLSIG.game.lanes.get(lane).keyPressed) { + Note n = new Note(NoteType.NORMAL,musicPlayer.getPlayPosition()); + n.active=false; + //System.out.println(Math.round(((musicPlayer.getPlayPosition()-offset)/beatDelay)*NOTE_RECORD_BEAT_SNAP_MULTIPLE)/(double)NOTE_RECORD_BEAT_SNAP_MULTIPLE); + n.setBeatSnap(Math.round(((musicPlayer.getPlayPosition()-offset)/beatDelay)*NOTE_RECORD_BEAT_SNAP_MULTIPLE)/(double)NOTE_RECORD_BEAT_SNAP_MULTIPLE); + LLSIG.game.lanes.get(lane).addNote(n); + LLSIG.game.lanes.get(lane).lastNoteAdded=n; + LLSIG.game.lanes.get(lane).keyPressed=true; + } } else if (PLAYING&&!EDITMODE&&!EDITOR) { Lane l = lanes.get(lane); @@ -466,15 +469,18 @@ public class LLSIG implements KeyListener{ } if (lane!=-1) { if (PLAYING&&EDITMODE) { - double noteBeat = Math.round(((musicPlayer.getPlayPosition()-offset)/beatDelay)*NOTE_RECORD_BEAT_SNAP_MULTIPLE)/(double)NOTE_RECORD_BEAT_SNAP_MULTIPLE; - Note lastNote = LLSIG.game.lanes.get(lane).lastNoteAdded; - if (lastNote!=null) { - if (noteBeat-lastNote.getBeatSnap()>=1) { - lastNote.setNoteType(NoteType.HOLD); - lastNote.setBeatSnapEnd(noteBeat); - lastNote.active2=false; - LLSIG.game.lanes.get(lane).lastNoteAdded=null; + if (LLSIG.game.lanes.get(lane).keyPressed) { + double noteBeat = Math.round(((musicPlayer.getPlayPosition()-offset)/beatDelay)*NOTE_RECORD_BEAT_SNAP_MULTIPLE)/(double)NOTE_RECORD_BEAT_SNAP_MULTIPLE; + Note lastNote = LLSIG.game.lanes.get(lane).lastNoteAdded; + if (lastNote!=null) { + if (noteBeat-lastNote.getBeatSnap()>=1) { + lastNote.setNoteType(NoteType.HOLD); + lastNote.setBeatSnapEnd(noteBeat); + lastNote.active2=false; + LLSIG.game.lanes.get(lane).lastNoteAdded=null; + } } + LLSIG.game.lanes.get(lane).keyPressed=false; } } if (PLAYING&&!EDITMODE&&!EDITOR) { diff --git a/LLSIG/src/main/java/LLSIG/Lane.java b/LLSIG/src/main/java/LLSIG/Lane.java index 6111c26..5b1b723 100644 --- a/LLSIG/src/main/java/LLSIG/Lane.java +++ b/LLSIG/src/main/java/LLSIG/Lane.java @@ -7,6 +7,7 @@ public class Lane{ TimingRating lastRating = TimingRating.MISS; double lastNote = -1; Note lastNoteAdded; + boolean keyPressed=false; public Lane(List noteChart) { super(); this.noteChart = noteChart;