Skip to content

Commit

Permalink
Merge pull request #16 from clementpups/fix/convert-issue-with-cultur…
Browse files Browse the repository at this point in the history
…eInfo

Fix/convert issue with culture info
  • Loading branch information
Goatgarien committed Apr 14, 2023
2 parents 837dc01 + bdc06d1 commit 3a2854f
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 27 deletions.
40 changes: 21 additions & 19 deletions BAKKA-Editor/Chart.cs
Original file line number Diff line number Diff line change
@@ -1,13 +1,16 @@
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;

namespace BAKKA_Editor
{
internal class Chart
{
private static readonly CultureInfo _defaultParsingCulture = CultureInfo.InvariantCulture;
public List<Note> Notes { get; set; }
public List<Gimmick> Gimmicks { get; set; }
/// <summary>
Expand Down Expand Up @@ -55,14 +58,13 @@ public bool ParseFile(string filename)
var path = Utils.GetTag(line, "#MUSIC_FILE_PATH ");
if (path != null)
SongFileName = path;

var offset = Utils.GetTag(line, "#OFFSET");
if (offset != null)
Offset = Convert.ToDouble(offset);
Offset = Convert.ToDouble(offset, _defaultParsingCulture);

offset = Utils.GetTag(line, "#MOVIEOFFSET");
if (offset != null)
MovieOffset = Convert.ToDouble(offset);
MovieOffset = Convert.ToDouble(offset, _defaultParsingCulture);


if (line.Contains("#BODY"))
Expand All @@ -71,7 +73,7 @@ public bool ParseFile(string filename)
break;
}

} while(++index < file.Length);
} while (++index < file.Length);

int lineNum;
Gimmick gimmickTemp;
Expand All @@ -83,46 +85,46 @@ public bool ParseFile(string filename)
if (String.IsNullOrWhiteSpace(file[i]))
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();
temp.BeatInfo = new BeatInfo(Convert.ToInt32(parsed[0]), Convert.ToInt32(parsed[1]));
temp.GimmickType = (GimmickType)Convert.ToInt32(parsed[2]);
temp.BeatInfo = new BeatInfo(Convert.ToInt32(parsed[0], _defaultParsingCulture), Convert.ToInt32(parsed[1], _defaultParsingCulture));
temp.GimmickType = (GimmickType)Convert.ToInt32(parsed[2], _defaultParsingCulture);

switch (temp.GimmickType)
{
case GimmickType.NoGimmick:
noteTemp = new Note(temp.BeatInfo);
noteTemp.NoteType = (NoteType)Convert.ToInt32(parsed[3]);
lineNum = Convert.ToInt32(parsed[4]);
noteTemp.Position = Convert.ToInt32(parsed[5]);
noteTemp.Size = Convert.ToInt32(parsed[6]);
noteTemp.HoldChange = Convert.ToBoolean(Convert.ToInt32(parsed[7]));
noteTemp.NoteType = (NoteType)Convert.ToInt32(parsed[3], _defaultParsingCulture);
lineNum = Convert.ToInt32(parsed[4], _defaultParsingCulture);
noteTemp.Position = Convert.ToInt32(parsed[5], _defaultParsingCulture);
noteTemp.Size = Convert.ToInt32(parsed[6], _defaultParsingCulture);
noteTemp.HoldChange = Convert.ToBoolean(Convert.ToInt32(parsed[7], _defaultParsingCulture));
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 ||
noteTemp.NoteType == NoteType.HoldJoint ||
noteTemp.NoteType == NoteType.HoldStartBonusFlair)
{
refByLine[lineNum] = Convert.ToInt32(parsed[8]);
refByLine[lineNum] = Convert.ToInt32(parsed[8], _defaultParsingCulture);
}
Notes.Add(noteTemp);
notesByLine[lineNum] = Notes.Last();
break;
case GimmickType.BpmChange:
gimmickTemp = new Gimmick(temp.BeatInfo, temp.GimmickType);
gimmickTemp.BPM = Convert.ToDouble(parsed[3]);
gimmickTemp.BPM = Convert.ToDouble(parsed[3], _defaultParsingCulture);
Gimmicks.Add(gimmickTemp);
break;
case GimmickType.TimeSignatureChange:
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);
break;
case GimmickType.HiSpeedChange:
gimmickTemp = new Gimmick(temp.BeatInfo, temp.GimmickType);
gimmickTemp.HiSpeed = Convert.ToDouble(parsed[3]);
gimmickTemp.HiSpeed = Convert.ToDouble(parsed[3], _defaultParsingCulture);
Gimmicks.Add(gimmickTemp);
break;
case GimmickType.ReverseStart:
Expand Down Expand Up @@ -191,7 +193,7 @@ public bool WriteFile(string filename, bool setSave = true)
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($"{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)
sw.Write($"{(int)note.MaskFill,5:F0}");
if (note.NextNote != null)
Expand Down Expand Up @@ -264,7 +266,7 @@ public void RecalcTime()
((60000.0 / evt.BPM) * 4.0 * evt.TimeSig.Ratio) * measure = time
time / ((60000.0 / evt.BPM) * 4.0 * evt.TimeSig.Ratio) = measure
*/

/// <summary>
/// Translate clock time to beats
/// </summary>
Expand Down
19 changes: 11 additions & 8 deletions BAKKA-Editor/UserSettings.cs
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace BAKKA_Editor
{

internal class UserSettings
{
public ViewSettings ViewSettings { get; set; } = new();
Expand Down Expand Up @@ -34,13 +36,14 @@ internal class SaveSettings

internal class HotkeySettings
{
public int TouchHotkey { get; set; } = Convert.ToInt32(Keys.D1);
public int SlideLeftHotkey { get; set; } = Convert.ToInt32(Keys.D2);
public int SlideRightHotkey { get; set; } = Convert.ToInt32(Keys.D3);
public int SnapUpHotkey { get; set; } = Convert.ToInt32(Keys.D4);
public int SnapDownHotkey { get; set; } = Convert.ToInt32(Keys.D5);
public int ChainHotkey { get; set; } = Convert.ToInt32(Keys.D6);
public int HoldHotkey { get; set; } = Convert.ToInt32(Keys.D7);
public int PlayHotkey { get; set; } = Convert.ToInt32(Keys.Space);
private static readonly CultureInfo _defaultParsingCulture = CultureInfo.InvariantCulture;
public int TouchHotkey { get; set; } = Convert.ToInt32(Keys.D1, _defaultParsingCulture);
public int SlideLeftHotkey { get; set; } = Convert.ToInt32(Keys.D2, _defaultParsingCulture);
public int SlideRightHotkey { get; set; } = Convert.ToInt32(Keys.D3, _defaultParsingCulture);
public int SnapUpHotkey { get; set; } = Convert.ToInt32(Keys.D4, _defaultParsingCulture);
public int SnapDownHotkey { get; set; } = Convert.ToInt32(Keys.D5, _defaultParsingCulture);
public int ChainHotkey { get; set; } = Convert.ToInt32(Keys.D6, _defaultParsingCulture);
public int HoldHotkey { get; set; } = Convert.ToInt32(Keys.D7, _defaultParsingCulture);
public int PlayHotkey { get; set; } = Convert.ToInt32(Keys.Space, _defaultParsingCulture);
}
}

0 comments on commit 3a2854f

Please sign in to comment.