From 84b6ddaf0d189cf37cae34e6ac670b3562931c7c Mon Sep 17 00:00:00 2001 From: Joshua Sigona Date: Thu, 14 Oct 2021 23:58:48 +0900 Subject: [PATCH] Fix up the backtracking editing feature --- LLSIG/src/main/java/LLSIG/LLSIG.java | 53 ++++++++++++++-------------- 1 file changed, 27 insertions(+), 26 deletions(-) diff --git a/LLSIG/src/main/java/LLSIG/LLSIG.java b/LLSIG/src/main/java/LLSIG/LLSIG.java index 686a5e4..8dc176d 100644 --- a/LLSIG/src/main/java/LLSIG/LLSIG.java +++ b/LLSIG/src/main/java/LLSIG/LLSIG.java @@ -46,11 +46,11 @@ public class LLSIG implements KeyListener{ final static Dimension WINDOW_SIZE = new Dimension(1280,1050); - public boolean EDITMODE = false; + public boolean EDITMODE = true; public boolean METRONOME = false; public boolean BPM_MEASURE = false; public boolean PLAYING = true; //Whether or not a song is loaded and playing. - public boolean EDITOR = true; //Whether or not we are in beatmap editing mode. + public boolean EDITOR = false; //Whether or not we are in beatmap editing mode. public static double EDITOR_CURSOR_BEAT = 0; public static double PREVIOUS_CURSOR_BEAT = 0; @@ -229,29 +229,31 @@ public class LLSIG implements KeyListener{ String[] data = FileUtils.readFromFile("music/"+song+".sig"); for (String line : data) { String[] split = line.split(Pattern.quote(",")); - if (split[0].equals("B")) { - offset=Double.parseDouble(split[1]); - bpm=Integer.parseInt(split[2]); - beatDelay = ((1/((double)bpm/60))*1000); - timings.add(new BeatTiming(offset,bpm)); - } else { - int lane = Integer.parseInt(split[0]); - NoteType noteType = NoteType.valueOf(split[1]); - int offset = (int)Math.round(Double.parseDouble(split[2])*beatDelay+LLSIG.offset); - int offset2 = -1; - while (lanes.size()())); - } - if (noteType==NoteType.HOLD) { - offset2 = (int)Math.round(Double.parseDouble(split[3])*beatDelay+LLSIG.offset); - Note n = new Note(noteType,offset,offset2); - n.beatSnapStart = Double.parseDouble(split[2]); - n.beatSnapEnd = Double.parseDouble(split[3]); - lanes.get(lane-1).addNote(n); + if (split[0].length()>0) { + if (split[0].equals("B")) { + offset=Double.parseDouble(split[1]); + bpm=Integer.parseInt(split[2]); + beatDelay = ((1/((double)bpm/60))*1000); + timings.add(new BeatTiming(offset,bpm)); } else { - Note n = new Note(noteType,offset); - n.beatSnapStart = Double.parseDouble(split[2]); - lanes.get(lane-1).addNote(n); + int lane = Integer.parseInt(split[0]); + NoteType noteType = NoteType.valueOf(split[1]); + int offset = (int)Math.round(Double.parseDouble(split[2])*beatDelay+LLSIG.offset); + int offset2 = -1; + while (lanes.size()())); + } + if (noteType==NoteType.HOLD) { + offset2 = (int)Math.round(Double.parseDouble(split[3])*beatDelay+LLSIG.offset); + Note n = new Note(noteType,offset,offset2); + n.beatSnapStart = Double.parseDouble(split[2]); + n.beatSnapEnd = Double.parseDouble(split[3]); + lanes.get(lane-1).addNote(n); + } else { + Note n = new Note(noteType,offset); + n.beatSnapStart = Double.parseDouble(split[2]); + lanes.get(lane-1).addNote(n); + } } } } @@ -366,9 +368,8 @@ public class LLSIG implements KeyListener{ beatNumber=Math.max(0,beatNumber-12); } musicPlayer.seek((long)(Math.floor(musicPlayer.getPlayPosition()-(beatDelay*12)))); - double noteBeat = Math.round(((musicPlayer.getPlayPosition()-offset)/beatDelay)*NOTE_RECORD_BEAT_SNAP_MULTIPLE)/(double)NOTE_RECORD_BEAT_SNAP_MULTIPLE; LLSIG.game.lanes.forEach((l)->{ - l.noteChart.forEach((note)->{if (note.getBeatSnap()>noteBeat) {note.markForDeletion();}}); + l.noteChart.forEach((note)->{if (note.start>musicPlayer.getPlayPosition()) {note.markForDeletion();System.out.println("Marked "+note);}}); }); }break; case KeyEvent.VK_S:{lane=1;}break;