diff --git a/Vocaluxe/Base/CGame.cs b/Vocaluxe/Base/CGame.cs index 6eb98838..5433aa59 100644 --- a/Vocaluxe/Base/CGame.cs +++ b/Vocaluxe/Base/CGame.cs @@ -210,6 +210,8 @@ namespace Vocaluxe.Base public static void UpdatePoints(float time) { + bool DEBUG_HIT = false; + CSong song = _SongQueue.GetSong(); if (song == null) @@ -270,10 +272,11 @@ namespace Vocaluxe.Base if (line == lines.Length - 1 && beat == lines[line].LastNoteBeat) Players[p].SongFinished = true; - if (notes[note].PointsForBeat > 0 && CSound.RecordToneValid(p)) + if (notes[note].PointsForBeat > 0 && (CSound.RecordToneValid(p) || DEBUG_HIT)) { int tone = notes[note].Tone; int tonePlayer = CSound.RecordGetTone(p); + if (DEBUG_HIT) tonePlayer = tone; while (tonePlayer - tone > 6) tonePlayer -= 12; diff --git a/VocaluxeLib/Menu/SingNotes/CSingNotes.cs b/VocaluxeLib/Menu/SingNotes/CSingNotes.cs index a3a189a3..89b915d9 100644 --- a/VocaluxeLib/Menu/SingNotes/CSingNotes.cs +++ b/VocaluxeLib/Menu/SingNotes/CSingNotes.cs @@ -392,10 +392,10 @@ namespace VocaluxeLib.Menu.SingNotes _AddFlare(re, n); } - if (note.Perfect && note.EndBeat < CBase.Game.GetRecordedBeat()) + if (note.Perfect && !note.PerfectDrawn && note.EndBeat < CBase.Game.GetRecordedBeat()) { _AddPerfectNote(rect, n); - note.Perfect = false; + note.PerfectDrawn = true; } } diff --git a/VocaluxeLib/Songs/CSungNote.cs b/VocaluxeLib/Songs/CSungNote.cs index a624d4c5..7dd0e8f7 100644 --- a/VocaluxeLib/Songs/CSungNote.cs +++ b/VocaluxeLib/Songs/CSungNote.cs @@ -57,6 +57,7 @@ namespace VocaluxeLib.Songs public CSongNote HitNote { get; private set; } // for drawing perfect note effect public bool Perfect { get; set; } + public bool PerfectDrawn { get; set; } #endregion #region Methods