7 Commits
7 changed files with 122 additions and 90 deletions
+2 -2
View File
@@ -7,9 +7,9 @@
<Nullable>enable</Nullable> <Nullable>enable</Nullable>
<UseWindowsForms>true</UseWindowsForms> <UseWindowsForms>true</UseWindowsForms>
<ImplicitUsings>enable</ImplicitUsings> <ImplicitUsings>enable</ImplicitUsings>
<Version>$(VersionPrefix)2.1.7</Version> <Version>$(VersionPrefix)2.1.8</Version>
<AssemblyVersion>1.0.0.0</AssemblyVersion> <AssemblyVersion>1.0.0.0</AssemblyVersion>
<FileVersion>2.1.7</FileVersion> <FileVersion>2.1.8</FileVersion>
<Company>Goatgarien</Company> <Company>Goatgarien</Company>
<Copyright>2022</Copyright> <Copyright>2022</Copyright>
<StartupObject>BAKKA_Editor.Program</StartupObject> <StartupObject>BAKKA_Editor.Program</StartupObject>
+21 -19
View File
@@ -1,13 +1,16 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Globalization;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks; using System.Threading.Tasks;
namespace BAKKA_Editor namespace BAKKA_Editor
{ {
internal class Chart internal class Chart
{ {
private static readonly CultureInfo _defaultParsingCulture = CultureInfo.InvariantCulture;
public List<Note> Notes { get; set; } public List<Note> Notes { get; set; }
public List<Gimmick> Gimmicks { get; set; } public List<Gimmick> Gimmicks { get; set; }
/// <summary> /// <summary>
@@ -55,14 +58,13 @@ namespace BAKKA_Editor
var path = Utils.GetTag(line, "#MUSIC_FILE_PATH "); var path = Utils.GetTag(line, "#MUSIC_FILE_PATH ");
if (path != null) if (path != null)
SongFileName = path; SongFileName = path;
var offset = Utils.GetTag(line, "#OFFSET"); var offset = Utils.GetTag(line, "#OFFSET");
if (offset != null) if (offset != null)
Offset = Convert.ToDouble(offset); Offset = Convert.ToDouble(offset, _defaultParsingCulture);
offset = Utils.GetTag(line, "#MOVIEOFFSET"); offset = Utils.GetTag(line, "#MOVIEOFFSET");
if (offset != null) if (offset != null)
MovieOffset = Convert.ToDouble(offset); MovieOffset = Convert.ToDouble(offset, _defaultParsingCulture);
if (line.Contains("#BODY")) if (line.Contains("#BODY"))
@@ -71,7 +73,7 @@ namespace BAKKA_Editor
break; break;
} }
} while(++index < file.Length); } while (++index < file.Length);
int lineNum; int lineNum;
Gimmick gimmickTemp; Gimmick gimmickTemp;
@@ -83,46 +85,46 @@ namespace BAKKA_Editor
if (String.IsNullOrWhiteSpace(file[i])) if (String.IsNullOrWhiteSpace(file[i]))
continue; continue;
var parsed = file[i].Split(new string[] {" "}, StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries); var parsed = file[i].Split(new string[] { " " }, StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries);
NoteBase temp = new(); NoteBase temp = new();
temp.BeatInfo = new BeatInfo(Convert.ToInt32(parsed[0]), Convert.ToInt32(parsed[1])); temp.BeatInfo = new BeatInfo(Convert.ToInt32(parsed[0], _defaultParsingCulture), Convert.ToInt32(parsed[1], _defaultParsingCulture));
temp.GimmickType = (GimmickType)Convert.ToInt32(parsed[2]); temp.GimmickType = (GimmickType)Convert.ToInt32(parsed[2], _defaultParsingCulture);
switch (temp.GimmickType) switch (temp.GimmickType)
{ {
case GimmickType.NoGimmick: case GimmickType.NoGimmick:
noteTemp = new Note(temp.BeatInfo); noteTemp = new Note(temp.BeatInfo);
noteTemp.NoteType = (NoteType)Convert.ToInt32(parsed[3]); noteTemp.NoteType = (NoteType)Convert.ToInt32(parsed[3], _defaultParsingCulture);
lineNum = Convert.ToInt32(parsed[4]); lineNum = Convert.ToInt32(parsed[4], _defaultParsingCulture);
noteTemp.Position = Convert.ToInt32(parsed[5]); noteTemp.Position = Convert.ToInt32(parsed[5], _defaultParsingCulture);
noteTemp.Size = Convert.ToInt32(parsed[6]); noteTemp.Size = Convert.ToInt32(parsed[6], _defaultParsingCulture);
noteTemp.HoldChange = Convert.ToBoolean(Convert.ToInt32(parsed[7])); noteTemp.HoldChange = Convert.ToBoolean(Convert.ToInt32(parsed[7], _defaultParsingCulture));
if (noteTemp.NoteType == NoteType.MaskAdd || noteTemp.NoteType == NoteType.MaskRemove) if (noteTemp.NoteType == NoteType.MaskAdd || noteTemp.NoteType == NoteType.MaskRemove)
{ {
noteTemp.MaskFill = (MaskType)Convert.ToInt32(parsed[8]); noteTemp.MaskFill = (MaskType)Convert.ToInt32(parsed[8], _defaultParsingCulture);
} }
else if (noteTemp.NoteType == NoteType.HoldStartNoBonus || else if (noteTemp.NoteType == NoteType.HoldStartNoBonus ||
noteTemp.NoteType == NoteType.HoldJoint || noteTemp.NoteType == NoteType.HoldJoint ||
noteTemp.NoteType == NoteType.HoldStartBonusFlair) noteTemp.NoteType == NoteType.HoldStartBonusFlair)
{ {
refByLine[lineNum] = Convert.ToInt32(parsed[8]); refByLine[lineNum] = Convert.ToInt32(parsed[8], _defaultParsingCulture);
} }
Notes.Add(noteTemp); Notes.Add(noteTemp);
notesByLine[lineNum] = Notes.Last(); notesByLine[lineNum] = Notes.Last();
break; break;
case GimmickType.BpmChange: case GimmickType.BpmChange:
gimmickTemp = new Gimmick(temp.BeatInfo, temp.GimmickType); gimmickTemp = new Gimmick(temp.BeatInfo, temp.GimmickType);
gimmickTemp.BPM = Convert.ToDouble(parsed[3]); gimmickTemp.BPM = Convert.ToDouble(parsed[3], _defaultParsingCulture);
Gimmicks.Add(gimmickTemp); Gimmicks.Add(gimmickTemp);
break; break;
case GimmickType.TimeSignatureChange: case GimmickType.TimeSignatureChange:
gimmickTemp = new Gimmick(temp.BeatInfo, temp.GimmickType); gimmickTemp = new Gimmick(temp.BeatInfo, temp.GimmickType);
gimmickTemp.TimeSig = new TimeSignature() { Upper = Convert.ToInt32(parsed[3]), Lower = parsed.Length == 5 ? Convert.ToInt32(parsed[4]) : 4 }; gimmickTemp.TimeSig = new TimeSignature() { Upper = Convert.ToInt32(parsed[3], _defaultParsingCulture), Lower = parsed.Length == 5 ? Convert.ToInt32(parsed[4], _defaultParsingCulture) : 4 };
Gimmicks.Add(gimmickTemp); Gimmicks.Add(gimmickTemp);
break; break;
case GimmickType.HiSpeedChange: case GimmickType.HiSpeedChange:
gimmickTemp = new Gimmick(temp.BeatInfo, temp.GimmickType); gimmickTemp = new Gimmick(temp.BeatInfo, temp.GimmickType);
gimmickTemp.HiSpeed = Convert.ToDouble(parsed[3]); gimmickTemp.HiSpeed = Convert.ToDouble(parsed[3], _defaultParsingCulture);
Gimmicks.Add(gimmickTemp); Gimmicks.Add(gimmickTemp);
break; break;
case GimmickType.ReverseStart: case GimmickType.ReverseStart:
@@ -191,7 +193,7 @@ namespace BAKKA_Editor
foreach (var note in Notes) foreach (var note in Notes)
{ {
sw.Write($"{note.BeatInfo.Measure,4:F0}{note.BeatInfo.Beat,5:F0}{((int)note.GimmickType),5:F0}{(int)note.NoteType,5:F0}"); sw.Write($"{note.BeatInfo.Measure,4:F0}{note.BeatInfo.Beat,5:F0}{((int)note.GimmickType),5:F0}{(int)note.NoteType,5:F0}");
sw.Write($"{Notes.IndexOf(note),5:F0}{note.Position,5:F0}{note.Size,5:F0}{Convert.ToInt32(note.HoldChange),5:F0}"); sw.Write($"{Notes.IndexOf(note),5:F0}{note.Position,5:F0}{note.Size,5:F0}{Convert.ToInt32(note.HoldChange, _defaultParsingCulture),5:F0}");
if (note.IsMask) if (note.IsMask)
sw.Write($"{(int)note.MaskFill,5:F0}"); sw.Write($"{(int)note.MaskFill,5:F0}");
if (note.NextNote != null) if (note.NextNote != null)
@@ -264,7 +266,7 @@ namespace BAKKA_Editor
((60000.0 / evt.BPM) * 4.0 * evt.TimeSig.Ratio) * measure = time ((60000.0 / evt.BPM) * 4.0 * evt.TimeSig.Ratio) * measure = time
time / ((60000.0 / evt.BPM) * 4.0 * evt.TimeSig.Ratio) = measure time / ((60000.0 / evt.BPM) * 4.0 * evt.TimeSig.Ratio) = measure
*/ */
/// <summary> /// <summary>
/// Translate clock time to beats /// Translate clock time to beats
/// </summary> /// </summary>
+52 -45
View File
@@ -18,6 +18,7 @@ namespace BAKKA_Editor
public float Radius { get; private set; } public float Radius { get; private set; }
public float CurrentMeasure { get; set; } public float CurrentMeasure { get; set; }
public float Hispeed { get; set; } = 1.5f; public float Hispeed { get; set; } = 1.5f;
public bool showHispeed { get; set; } = true;
// Pens and Brushes // Pens and Brushes
public Pen BasePen { get; set; } public Pen BasePen { get; set; }
@@ -77,67 +78,73 @@ namespace BAKKA_Editor
{ {
//Convert hispeed to frames //Convert hispeed to frames
float displayFrames = 73.0f - ((Hispeed - 1.5f) * 10.0f); float displayFrames = 73.0f - ((Hispeed - 1.5f) * 10.0f);
//Account for hispeed gimmick
List<Gimmick> HispeedChanges = new List<Gimmick>();
Gimmick InitialSpeed = chart.Gimmicks.Where(x => x.GimmickType == GimmickType.HiSpeedChange && CurrentMeasure > x.Measure).LastOrDefault();
//Add initial hispeed to list
if (InitialSpeed == null)
{
InitialSpeed = new Gimmick();
InitialSpeed.HiSpeed = 1.0;
}
HispeedChanges.Add(InitialSpeed);
//add all hispeed changes to list that happen within the current total time to show notes
float tempTotalTime = ((displayFrames / 60.0f) * 1000.0f); float tempTotalTime = ((displayFrames / 60.0f) * 1000.0f);
float currentTime = chart.GetTime(new BeatInfo(CurrentMeasure)); float currentTime = chart.GetTime(new BeatInfo(CurrentMeasure));
float tempEndTime = currentTime + tempTotalTime; float tempEndTime = currentTime + tempTotalTime;
HispeedChanges.AddRange(chart.Gimmicks.Where( if (showHispeed)
x => x.Measure >= CurrentMeasure
&& chart.GetTime(new BeatInfo(x.Measure)) < tempEndTime
&& x.GimmickType == GimmickType.HiSpeedChange).ToList());
if (HispeedChanges.Count > 1)
{ {
for (int i = 0; i < HispeedChanges.Count; i++) //Account for hispeed gimmick
List<Gimmick> HispeedChanges = new List<Gimmick>();
Gimmick InitialSpeed = chart.Gimmicks.Where(x => x.GimmickType == GimmickType.HiSpeedChange && CurrentMeasure > x.Measure).LastOrDefault();
//Add initial hispeed to list
if (InitialSpeed == null)
{ {
float timeDiff; InitialSpeed = new Gimmick();
float itemTime; InitialSpeed.HiSpeed = 1.0;
float modifiedTime; }
if (chart.GetTime(HispeedChanges[i].BeatInfo) <= (tempTotalTime + currentTime)) HispeedChanges.Add(InitialSpeed);
//Random todos that im too lazy to put in applicable locations
//TODO: add "time" to notes so we can compare against it every time instead of always calculating what time a note is at
//TODO: add function to reevaluate the time of every note when bpm or TS is added/removed.
//add all hispeed changes to list that happen within the current total time to show notes
HispeedChanges.AddRange(chart.Gimmicks.Where(
x => x.Measure >= CurrentMeasure
&& chart.GetTime(new BeatInfo(x.Measure)) < tempEndTime
&& x.GimmickType == GimmickType.HiSpeedChange).ToList());
if (HispeedChanges.Count > 1)
{
for (int i = 0; i < HispeedChanges.Count; i++)
{ {
if (i == 0) float timeDiff;
itemTime = currentTime; float itemTime = chart.GetTime(HispeedChanges[i].BeatInfo);
else float modifiedTime;
itemTime = chart.GetTime(HispeedChanges[i].BeatInfo); if (itemTime <= (tempTotalTime + currentTime))
if (i != HispeedChanges.Count - 1)
{ {
float tempTestITimeDiff = (currentTime + tempTotalTime) - itemTime; if (i == 0)
float tempTestIModifiedTime = (tempTestITimeDiff) / (float)(HispeedChanges[i].HiSpeed); itemTime = currentTime;
if ((currentTime + tempTotalTime - tempTestITimeDiff + tempTestIModifiedTime) < chart.GetTime(HispeedChanges[i + 1].BeatInfo))
if (i != HispeedChanges.Count - 1)
{
float tempTestITimeDiff = (currentTime + tempTotalTime) - itemTime;
float tempTestIModifiedTime = (tempTestITimeDiff) / (float)(HispeedChanges[i].HiSpeed);
if ((currentTime + tempTotalTime - tempTestITimeDiff + tempTestIModifiedTime) < chart.GetTime(HispeedChanges[i + 1].BeatInfo))
{
timeDiff = (currentTime + tempTotalTime) - itemTime;
modifiedTime = timeDiff / (float)HispeedChanges[i].HiSpeed;
}
else
{
timeDiff = chart.GetTime(HispeedChanges[i + 1].BeatInfo) - itemTime;
modifiedTime = timeDiff / (float)HispeedChanges[i].HiSpeed;
}
}
else
{ {
timeDiff = (currentTime + tempTotalTime) - itemTime; timeDiff = (currentTime + tempTotalTime) - itemTime;
modifiedTime = timeDiff / (float)HispeedChanges[i].HiSpeed; modifiedTime = timeDiff / (float)HispeedChanges[i].HiSpeed;
} }
else tempTotalTime = tempTotalTime - timeDiff + modifiedTime;
{
timeDiff = chart.GetTime(HispeedChanges[i + 1].BeatInfo) - itemTime;
modifiedTime = timeDiff / (float)HispeedChanges[i].HiSpeed;
}
} }
else
{
timeDiff = (currentTime + tempTotalTime) - itemTime;
modifiedTime = timeDiff / (float)HispeedChanges[i].HiSpeed;
}
tempTotalTime = tempTotalTime - timeDiff + modifiedTime;
} }
} }
} else
else {
{ tempTotalTime /= (float)HispeedChanges[0].HiSpeed;
tempTotalTime /= (float)HispeedChanges[0].HiSpeed; }
tempEndTime = currentTime + tempTotalTime;
} }
//convert total time to total measure //convert total time to total measure
tempEndTime = currentTime + tempTotalTime;
BeatInfo EndMeasure = chart.GetBeat(tempEndTime); BeatInfo EndMeasure = chart.GetBeat(tempEndTime);
return EndMeasure.MeasureDecimal - CurrentMeasure; return EndMeasure.MeasureDecimal - CurrentMeasure;
} }
+2 -2
View File
@@ -52,8 +52,8 @@ namespace BAKKA_Editor
internal enum MaskType internal enum MaskType
{ {
Clockwise = 0, CounterClockwise = 0,
CounterClockwise = 1, Clockwise = 1,
Center = 2 Center = 2
} }
+17 -6
View File
@@ -101,6 +101,7 @@
this.highlightViewedNoteToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.highlightViewedNoteToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.selectLastInsertedNoteToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.selectLastInsertedNoteToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.showGimmicksInCircleViewToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.showGimmicksInCircleViewToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.showGimmicksDuringPlaybackToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.chartToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.chartToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.initialChartSettingsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.initialChartSettingsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.aboutToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.aboutToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
@@ -945,7 +946,8 @@
this.showCursorDuringPlaybackToolStripMenuItem, this.showCursorDuringPlaybackToolStripMenuItem,
this.highlightViewedNoteToolStripMenuItem, this.highlightViewedNoteToolStripMenuItem,
this.selectLastInsertedNoteToolStripMenuItem, this.selectLastInsertedNoteToolStripMenuItem,
this.showGimmicksInCircleViewToolStripMenuItem}); this.showGimmicksInCircleViewToolStripMenuItem,
this.showGimmicksDuringPlaybackToolStripMenuItem});
this.viewToolStripMenuItem.Name = "viewToolStripMenuItem"; this.viewToolStripMenuItem.Name = "viewToolStripMenuItem";
this.viewToolStripMenuItem.Size = new System.Drawing.Size(44, 20); this.viewToolStripMenuItem.Size = new System.Drawing.Size(44, 20);
this.viewToolStripMenuItem.Text = "View"; this.viewToolStripMenuItem.Text = "View";
@@ -956,14 +958,14 @@
this.showCursorToolStripMenuItem.CheckOnClick = true; this.showCursorToolStripMenuItem.CheckOnClick = true;
this.showCursorToolStripMenuItem.CheckState = System.Windows.Forms.CheckState.Checked; this.showCursorToolStripMenuItem.CheckState = System.Windows.Forms.CheckState.Checked;
this.showCursorToolStripMenuItem.Name = "showCursorToolStripMenuItem"; this.showCursorToolStripMenuItem.Name = "showCursorToolStripMenuItem";
this.showCursorToolStripMenuItem.Size = new System.Drawing.Size(233, 22); this.showCursorToolStripMenuItem.Size = new System.Drawing.Size(248, 22);
this.showCursorToolStripMenuItem.Text = "Show Cursor"; this.showCursorToolStripMenuItem.Text = "Show Cursor";
this.showCursorToolStripMenuItem.Click += new System.EventHandler(this.showCursorToolStripMenuItem_Click); this.showCursorToolStripMenuItem.Click += new System.EventHandler(this.showCursorToolStripMenuItem_Click);
// //
// showCursorDuringPlaybackToolStripMenuItem // showCursorDuringPlaybackToolStripMenuItem
// //
this.showCursorDuringPlaybackToolStripMenuItem.Name = "showCursorDuringPlaybackToolStripMenuItem"; this.showCursorDuringPlaybackToolStripMenuItem.Name = "showCursorDuringPlaybackToolStripMenuItem";
this.showCursorDuringPlaybackToolStripMenuItem.Size = new System.Drawing.Size(233, 22); this.showCursorDuringPlaybackToolStripMenuItem.Size = new System.Drawing.Size(248, 22);
this.showCursorDuringPlaybackToolStripMenuItem.Text = "Show Cursor During Playback"; this.showCursorDuringPlaybackToolStripMenuItem.Text = "Show Cursor During Playback";
// //
// highlightViewedNoteToolStripMenuItem // highlightViewedNoteToolStripMenuItem
@@ -972,7 +974,7 @@
this.highlightViewedNoteToolStripMenuItem.CheckOnClick = true; this.highlightViewedNoteToolStripMenuItem.CheckOnClick = true;
this.highlightViewedNoteToolStripMenuItem.CheckState = System.Windows.Forms.CheckState.Checked; this.highlightViewedNoteToolStripMenuItem.CheckState = System.Windows.Forms.CheckState.Checked;
this.highlightViewedNoteToolStripMenuItem.Name = "highlightViewedNoteToolStripMenuItem"; this.highlightViewedNoteToolStripMenuItem.Name = "highlightViewedNoteToolStripMenuItem";
this.highlightViewedNoteToolStripMenuItem.Size = new System.Drawing.Size(233, 22); this.highlightViewedNoteToolStripMenuItem.Size = new System.Drawing.Size(248, 22);
this.highlightViewedNoteToolStripMenuItem.Text = "Highlight Viewed Note"; this.highlightViewedNoteToolStripMenuItem.Text = "Highlight Viewed Note";
// //
// selectLastInsertedNoteToolStripMenuItem // selectLastInsertedNoteToolStripMenuItem
@@ -981,7 +983,7 @@
this.selectLastInsertedNoteToolStripMenuItem.CheckOnClick = true; this.selectLastInsertedNoteToolStripMenuItem.CheckOnClick = true;
this.selectLastInsertedNoteToolStripMenuItem.CheckState = System.Windows.Forms.CheckState.Checked; this.selectLastInsertedNoteToolStripMenuItem.CheckState = System.Windows.Forms.CheckState.Checked;
this.selectLastInsertedNoteToolStripMenuItem.Name = "selectLastInsertedNoteToolStripMenuItem"; this.selectLastInsertedNoteToolStripMenuItem.Name = "selectLastInsertedNoteToolStripMenuItem";
this.selectLastInsertedNoteToolStripMenuItem.Size = new System.Drawing.Size(233, 22); this.selectLastInsertedNoteToolStripMenuItem.Size = new System.Drawing.Size(248, 22);
this.selectLastInsertedNoteToolStripMenuItem.Text = "Select Last Inserted Note"; this.selectLastInsertedNoteToolStripMenuItem.Text = "Select Last Inserted Note";
// //
// showGimmicksInCircleViewToolStripMenuItem // showGimmicksInCircleViewToolStripMenuItem
@@ -990,10 +992,18 @@
this.showGimmicksInCircleViewToolStripMenuItem.CheckOnClick = true; this.showGimmicksInCircleViewToolStripMenuItem.CheckOnClick = true;
this.showGimmicksInCircleViewToolStripMenuItem.CheckState = System.Windows.Forms.CheckState.Checked; this.showGimmicksInCircleViewToolStripMenuItem.CheckState = System.Windows.Forms.CheckState.Checked;
this.showGimmicksInCircleViewToolStripMenuItem.Name = "showGimmicksInCircleViewToolStripMenuItem"; this.showGimmicksInCircleViewToolStripMenuItem.Name = "showGimmicksInCircleViewToolStripMenuItem";
this.showGimmicksInCircleViewToolStripMenuItem.Size = new System.Drawing.Size(233, 22); this.showGimmicksInCircleViewToolStripMenuItem.Size = new System.Drawing.Size(248, 22);
this.showGimmicksInCircleViewToolStripMenuItem.Text = "Show Gimmicks In Circle View"; this.showGimmicksInCircleViewToolStripMenuItem.Text = "Show Gimmicks In Circle View";
this.showGimmicksInCircleViewToolStripMenuItem.Click += new System.EventHandler(this.showGimmicksInCircleViewToolStripMenuItem_Click); this.showGimmicksInCircleViewToolStripMenuItem.Click += new System.EventHandler(this.showGimmicksInCircleViewToolStripMenuItem_Click);
// //
// showGimmicksDuringPlaybackToolStripMenuItem
//
this.showGimmicksDuringPlaybackToolStripMenuItem.CheckOnClick = true;
this.showGimmicksDuringPlaybackToolStripMenuItem.Name = "showGimmicksDuringPlaybackToolStripMenuItem";
this.showGimmicksDuringPlaybackToolStripMenuItem.Size = new System.Drawing.Size(248, 22);
this.showGimmicksDuringPlaybackToolStripMenuItem.Text = "Show Gimmicks During Playback";
this.showGimmicksDuringPlaybackToolStripMenuItem.Click += new System.EventHandler(this.showGimmicksDuringPlaybackToolStripMenuItem_Click);
//
// chartToolStripMenuItem // chartToolStripMenuItem
// //
this.chartToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.chartToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
@@ -1577,5 +1587,6 @@
private TrackBar trackBarSpeed; private TrackBar trackBarSpeed;
private Button gimmickJumpToCurrTimeButton; private Button gimmickJumpToCurrTimeButton;
private ToolStripMenuItem showGimmicksInCircleViewToolStripMenuItem; private ToolStripMenuItem showGimmicksInCircleViewToolStripMenuItem;
private ToolStripMenuItem showGimmicksDuringPlaybackToolStripMenuItem;
} }
} }
+16 -8
View File
@@ -128,6 +128,7 @@ namespace BAKKA_Editor
showCursorDuringPlaybackToolStripMenuItem.Checked = userSettings.ViewSettings.ShowCursorDuringPlayback; showCursorDuringPlaybackToolStripMenuItem.Checked = userSettings.ViewSettings.ShowCursorDuringPlayback;
highlightViewedNoteToolStripMenuItem.Checked = userSettings.ViewSettings.HighlightViewedNote; highlightViewedNoteToolStripMenuItem.Checked = userSettings.ViewSettings.HighlightViewedNote;
showGimmicksInCircleViewToolStripMenuItem.Checked = userSettings.ViewSettings.ShowGimmicks; showGimmicksInCircleViewToolStripMenuItem.Checked = userSettings.ViewSettings.ShowGimmicks;
showGimmicksDuringPlaybackToolStripMenuItem.Checked = userSettings.ViewSettings.ShowGimmicksDuringPlayback;
selectLastInsertedNoteToolStripMenuItem.Checked = userSettings.ViewSettings.SelectLastInsertedNote; selectLastInsertedNoteToolStripMenuItem.Checked = userSettings.ViewSettings.SelectLastInsertedNote;
visualHispeedNumeric.Value = (decimal)userSettings.ViewSettings.HispeedSetting; visualHispeedNumeric.Value = (decimal)userSettings.ViewSettings.HispeedSetting;
trackBarVolume.Value = userSettings.ViewSettings.Volume; trackBarVolume.Value = userSettings.ViewSettings.Volume;
@@ -349,14 +350,15 @@ namespace BAKKA_Editor
if (tempFilePath != "") if (tempFilePath != "")
File.Delete(tempFilePath); File.Delete(tempFilePath);
// Apply settings // Apply settings
userSettings.ViewSettings.ShowCursor = showCursorToolStripMenuItem.Checked; userSettings.ViewSettings.ShowCursor = showCursorToolStripMenuItem.Checked;
userSettings.ViewSettings.ShowCursorDuringPlayback = showCursorDuringPlaybackToolStripMenuItem.Checked; userSettings.ViewSettings.ShowCursorDuringPlayback = showCursorDuringPlaybackToolStripMenuItem.Checked;
userSettings.ViewSettings.HighlightViewedNote = highlightViewedNoteToolStripMenuItem.Checked; userSettings.ViewSettings.HighlightViewedNote = highlightViewedNoteToolStripMenuItem.Checked;
userSettings.ViewSettings.ShowGimmicks = showGimmicksInCircleViewToolStripMenuItem.Checked; userSettings.ViewSettings.ShowGimmicks = showGimmicksInCircleViewToolStripMenuItem.Checked;
userSettings.ViewSettings.SelectLastInsertedNote = selectLastInsertedNoteToolStripMenuItem.Checked; userSettings.ViewSettings.ShowGimmicksDuringPlayback = showGimmicksDuringPlaybackToolStripMenuItem.Checked;
userSettings.ViewSettings.HispeedSetting = circleView.Hispeed; userSettings.ViewSettings.SelectLastInsertedNote = selectLastInsertedNoteToolStripMenuItem.Checked;
userSettings.ViewSettings.Volume = trackBarVolume.Value; userSettings.ViewSettings.HispeedSetting = circleView.Hispeed;
userSettings.SaveSettings.AutoSaveInterval = autoSaveTimer.Interval / 60000; userSettings.ViewSettings.Volume = trackBarVolume.Value;
userSettings.SaveSettings.AutoSaveInterval = autoSaveTimer.Interval / 60000;
//Update user settings.toml //Update user settings.toml
if (File.Exists("settings.toml")) if (File.Exists("settings.toml"))
File.WriteAllText("settings.toml", Toml.FromModel(userSettings)); File.WriteAllText("settings.toml", Toml.FromModel(userSettings));
@@ -2193,5 +2195,11 @@ namespace BAKKA_Editor
currentSong.PlaybackSpeed = (trackBarSpeed.Value / (float)trackBarSpeed.Maximum); currentSong.PlaybackSpeed = (trackBarSpeed.Value / (float)trackBarSpeed.Maximum);
labelSpeed.Text = $"Speed (x{currentSong.PlaybackSpeed:0.00})"; labelSpeed.Text = $"Speed (x{currentSong.PlaybackSpeed:0.00})";
} }
private void showGimmicksDuringPlaybackToolStripMenuItem_Click(object sender, EventArgs e)
{
circleView.showHispeed = showGimmicksDuringPlaybackToolStripMenuItem.Checked;
circlePanel.Invalidate();
}
} }
} }
+12 -8
View File
@@ -1,11 +1,13 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Globalization;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
namespace BAKKA_Editor namespace BAKKA_Editor
{ {
internal class UserSettings internal class UserSettings
{ {
public ViewSettings ViewSettings { get; set; } = new(); public ViewSettings ViewSettings { get; set; } = new();
@@ -20,6 +22,7 @@ namespace BAKKA_Editor
public bool HighlightViewedNote { get; set; } = true; public bool HighlightViewedNote { get; set; } = true;
public bool SelectLastInsertedNote { get; set; } = true; public bool SelectLastInsertedNote { get; set; } = true;
public bool ShowGimmicks { get; set; } = true; public bool ShowGimmicks { get; set; } = true;
public bool ShowGimmicksDuringPlayback { get; set; } = true;
public float HispeedSetting { get; set; } = 1.5f; public float HispeedSetting { get; set; } = 1.5f;
public int Volume { get; set; } = 100; public int Volume { get; set; } = 100;
} }
@@ -34,13 +37,14 @@ namespace BAKKA_Editor
internal class HotkeySettings internal class HotkeySettings
{ {
public int TouchHotkey { get; set; } = Convert.ToInt32(Keys.D1); private static readonly CultureInfo _defaultParsingCulture = CultureInfo.InvariantCulture;
public int SlideLeftHotkey { get; set; } = Convert.ToInt32(Keys.D2); public int TouchHotkey { get; set; } = Convert.ToInt32(Keys.D1, _defaultParsingCulture);
public int SlideRightHotkey { get; set; } = Convert.ToInt32(Keys.D3); public int SlideLeftHotkey { get; set; } = Convert.ToInt32(Keys.D2, _defaultParsingCulture);
public int SnapUpHotkey { get; set; } = Convert.ToInt32(Keys.D4); public int SlideRightHotkey { get; set; } = Convert.ToInt32(Keys.D3, _defaultParsingCulture);
public int SnapDownHotkey { get; set; } = Convert.ToInt32(Keys.D5); public int SnapUpHotkey { get; set; } = Convert.ToInt32(Keys.D4, _defaultParsingCulture);
public int ChainHotkey { get; set; } = Convert.ToInt32(Keys.D6); public int SnapDownHotkey { get; set; } = Convert.ToInt32(Keys.D5, _defaultParsingCulture);
public int HoldHotkey { get; set; } = Convert.ToInt32(Keys.D7); public int ChainHotkey { get; set; } = Convert.ToInt32(Keys.D6, _defaultParsingCulture);
public int PlayHotkey { get; set; } = Convert.ToInt32(Keys.Space); public int HoldHotkey { get; set; } = Convert.ToInt32(Keys.D7, _defaultParsingCulture);
public int PlayHotkey { get; set; } = Convert.ToInt32(Keys.Space, _defaultParsingCulture);
} }
} }