Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1a0fdefcab | ||
|
|
aea6e7ff30 | ||
|
|
8ee60bee2a | ||
|
|
3a2854fafe | ||
|
|
bdc06d137d | ||
|
|
47b55a3774 | ||
|
|
063241068f |
@@ -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
@@ -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
@@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Generated
+17
-6
@@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -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();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user