diff --git a/Qwilight/Assets/Language.json b/Qwilight/Assets/Language.json index 67ab835..dfa4686 100644 --- a/Qwilight/Assets/Language.json +++ b/Qwilight/Assets/Language.json @@ -643,18 +643,10 @@ "ko-KR": "순서대로 글꼴 모양을 설정합니다.", "en-US": "Sets the font appearance in order." }, - "ConfigureHighestLongNoteModify": { - "ko-KR": "끝 간격", - "en-US": "End interval" - }, "ConfigureLevelContents": { "ko-KR": "사용할 난이도 테이블을 설정합니다.", "en-US": "Set the difficulty table to use" }, - "ConfigureLowestLongNoteModify": { - "ko-KR": "시작 간격", - "en-US": "Start interval" - }, "ConfigurePutNoteSetContents": { "ko-KR": "대상 비율", "en-US": "Target Ratio" @@ -1267,6 +1259,10 @@ "ko-KR": "판정 난이도가 매우 어려워집니다.", "en-US": "Very hard judgment mode" }, + "HighestLongNoteModify": { + "ko-KR": "끝 간격", + "en-US": "End interval" + }, "HighestWantBPMContents": { "ko-KR": "0 BPM 까지", "en-US": "Up to 0 BPM" @@ -1855,6 +1851,10 @@ "ko-KR": "판정 난이도가 매우 관대해집니다.", "en-US": "Very easy judgment mode" }, + "LowestLongNoteModify": { + "ko-KR": "시작 간격", + "en-US": "Start interval" + }, "LowestWantBPMContents": { "ko-KR": "0 BPM 부터", "en-US": "From 0 BPM" @@ -2703,6 +2703,10 @@ "ko-KR": "대상 비율 만큼의 BGM을 대상 간격 이상 거리를 유지하여 추가 노트로 만듭니다.", "en-US": "Make BGM as much as the target ratio into an additional note by maintaining a distance beyond the target interval." }, + "PutNoteSetFaultText": { + "ko-KR": "대상 간격이 올바르지 않습니다.", + "en-US": "Destination spacing is not valid." + }, "PutSetNoteModeContents": { "ko-KR": "BGM을 추가 노트로 만듭니다.", "en-US": "Make the BGM an additional note." diff --git a/Qwilight/Compiler/BaseCompiler.cs b/Qwilight/Compiler/BaseCompiler.cs index 1cda898..67b8f5a 100644 --- a/Qwilight/Compiler/BaseCompiler.cs +++ b/Qwilight/Compiler/BaseCompiler.cs @@ -843,7 +843,7 @@ { foreach (var note in Notes) { - note.Wait = defaultComputer.Length + Component.QuitWait - note.Wait - note.LongWait + Component.QuitWait; + note.Wait = defaultComputer.Length - note.Wait - note.LongWait; } var waitAudioNoteMap = new SortedDictionary>(defaultComputer.WaitAudioNoteMap); @@ -853,7 +853,7 @@ var audioNotes = waitAudioNoteMap[wait]; foreach (var audioNote in audioNotes) { - Utility.NewValue(defaultComputer.WaitAudioNoteMap, defaultComputer.Length + Component.QuitWait - wait + Component.QuitWait - (audioNote.AudioItem?.Length ?? 0.0), audioNote); + Utility.NewValue(defaultComputer.WaitAudioNoteMap, defaultComputer.Length - wait - (audioNote.AudioItem?.Length ?? 0.0), audioNote); } } @@ -864,7 +864,7 @@ var mediaNotes = waitMediaNoteMap[wait]; foreach (var mediaNote in mediaNotes) { - Utility.NewValue(defaultComputer.WaitMediaNoteMap, defaultComputer.Length + Component.QuitWait - wait + Component.QuitWait - mediaNote.Length, mediaNote); + Utility.NewValue(defaultComputer.WaitMediaNoteMap, defaultComputer.Length - wait - mediaNote.Length, mediaNote); } } @@ -1031,8 +1031,8 @@ // 단일 노트를 롱 노트로 만듭니다. case ModeComponent.NoteModifyMode.LongNote: var waitBPMMap = new Queue>(defaultComputer.WaitBPMMap); - var lowestLongNoteModify = defaultComputer.ModeComponentValue.ConfigureLowestLongNoteModify; - var highestLongNoteModify = defaultComputer.ModeComponentValue.ConfigureHighestLongNoteModify; + var lowestLongNoteModify = defaultComputer.ModeComponentValue.LowestLongNoteModify; + var highestLongNoteModify = defaultComputer.ModeComponentValue.HighestLongNoteModify; var distanceLongNoteModify = highestLongNoteModify - lowestLongNoteModify; for (var i = inputCount; i > 0; --i) { diff --git a/Qwilight/ModeComponent.cs b/Qwilight/ModeComponent.cs index 5aa4060..fed577d 100644 --- a/Qwilight/ModeComponent.cs +++ b/Qwilight/ModeComponent.cs @@ -814,7 +814,7 @@ { if (Configure.Instance.LowestAutoLongNoteModify) { - ConfigureLowestLongNoteModify = 1000.0 * 240.0 / (BPM * AudioMultiplier) / Configure.Instance.LowestAutoLongNoteModifyValue; + LowestLongNoteModify = 1000.0 * 240.0 / (BPM * AudioMultiplier) / Configure.Instance.LowestAutoLongNoteModifyValue; } } @@ -822,7 +822,7 @@ { if (Configure.Instance.HighestAutoLongNoteModify) { - ConfigureHighestLongNoteModify = 1000.0 * 240.0 / (BPM * AudioMultiplier) / Configure.Instance.HighestAutoLongNoteModifyValue; + HighestLongNoteModify = 1000.0 * 240.0 / (BPM * AudioMultiplier) / Configure.Instance.HighestAutoLongNoteModifyValue; } } @@ -834,18 +834,18 @@ } } - public double ConfigureLowestLongNoteModify + public double LowestLongNoteModify { get => _lowestLongNoteModify; - set => SetProperty(ref _lowestLongNoteModify, value, nameof(ConfigureLowestLongNoteModify)); + set => SetProperty(ref _lowestLongNoteModify, value, nameof(LowestLongNoteModify)); } - public double ConfigureHighestLongNoteModify + public double HighestLongNoteModify { get => _highestLongNoteModify; - set => SetProperty(ref _highestLongNoteModify, value, nameof(ConfigureHighestLongNoteModify)); + set => SetProperty(ref _highestLongNoteModify, value, nameof(HighestLongNoteModify)); } public double PutNoteSet @@ -892,8 +892,8 @@ lowJudgment1 = LowJudgment1, lowerJudgment1 = LowerJudgment1, lowestJudgment1 = LowestJudgment1, - lowestLongNoteModify = ConfigureLowestLongNoteModify, - highestLongNoteModify = ConfigureHighestLongNoteModify, + lowestLongNoteModify = LowestLongNoteModify, + highestLongNoteModify = HighestLongNoteModify, putNoteSet = PutNoteSet, putNoteSetMillis = PutNoteSetMillis, highestHitPoints0 = HighestHitPoints0, @@ -974,7 +974,7 @@ { if (modeComponentValue.NoteModifyModeValue == NoteModifyMode.LongNote) { - if (ConfigureLowestLongNoteModify != modeComponentValue.ConfigureLowestLongNoteModify || ConfigureHighestLongNoteModify != modeComponentValue.ConfigureHighestLongNoteModify) + if (LowestLongNoteModify != modeComponentValue.LowestLongNoteModify || HighestLongNoteModify != modeComponentValue.HighestLongNoteModify) { return false; } @@ -1091,8 +1091,8 @@ OnPropertyChanged(nameof(HigherHitPoints1)); OnPropertyChanged(nameof(HighestHitPoints0)); OnPropertyChanged(nameof(HighestHitPoints1)); - ConfigureLowestLongNoteModify = modeComponentValue.ConfigureLowestLongNoteModify; - ConfigureHighestLongNoteModify = modeComponentValue.ConfigureHighestLongNoteModify; + LowestLongNoteModify = modeComponentValue.LowestLongNoteModify; + HighestLongNoteModify = modeComponentValue.HighestLongNoteModify; PutNoteSet = modeComponentValue.PutNoteSet; PutNoteSetMillis = modeComponentValue.PutNoteSetMillis; PutCopyNotesValueV2 = modeComponentValue.PutCopyNotesValueV2; @@ -1178,8 +1178,8 @@ LowJudgment1 = modeComponentData.lowJudgment1; LowerJudgment1 = modeComponentData.lowerJudgment1; LowestJudgment1 = modeComponentData.lowestJudgment1; - ConfigureLowestLongNoteModify = modeComponentData.lowestLongNoteModify; - ConfigureHighestLongNoteModify = modeComponentData.highestLongNoteModify; + LowestLongNoteModify = modeComponentData.lowestLongNoteModify; + HighestLongNoteModify = modeComponentData.highestLongNoteModify; PutNoteSet = modeComponentData.putNoteSet; PutNoteSetMillis = modeComponentData.putNoteSetMillis; HighestHitPoints0 = modeComponentData.highestHitPoints0; diff --git a/Qwilight/Qwilight.csproj b/Qwilight/Qwilight.csproj index e8013e1..8fe9a49 100644 --- a/Qwilight/Qwilight.csproj +++ b/Qwilight/Qwilight.csproj @@ -10,9 +10,9 @@ Qwilight.ico Taehui 불로그 - 1.16.14.572 - 1.16.14.572 - 1.16.14 + 1.16.15.573 + 1.16.15.573 + 1.16.15 true enable true @@ -50,7 +50,7 @@ - + diff --git a/Qwilight/System/DB.cs b/Qwilight/System/DB.cs index 8d57421..a37ae3e 100644 --- a/Qwilight/System/DB.cs +++ b/Qwilight/System/DB.cs @@ -15,7 +15,7 @@ { enum Date : long { - DB100, DB1169, Max + DB_1_0_0, DB_1_16_9, DB_1_16_15, Max } const Date LatestDBDate = Date.Max - 1; @@ -87,7 +87,7 @@ #endregion #region 오프라인 기록 - if (date < Date.DB1169) + if (date < Date.DB_1_16_15) { using (var dbStatement = NewDBStatement(""" CREATE TABLE IF NOT EXISTS tmp_comment ( @@ -165,10 +165,10 @@ CHECK (Band >= 0) CHECK (Is_P IN (0, 1)) CHECK (Point >= 0.0 AND Point <= 1.0) - CHECK (Lowest_Long_Note_Modify >= 1.0 AND Lowest_Long_Note_Modify <= 1000.0) - CHECK (Highest_Long_Note_Modify >= 1.0 AND Highest_Long_Note_Modify <= 1000.0) - CHECK (Put_Note_Set >= 1 AND Put_Note_Set <= 100) - CHECK (Put_Note_Set_Millis >= 0.0 AND Put_Note_Set_Millis <= 1000.0) + CHECK (Lowest_Long_Note_Modify > 0.0) + CHECK (Highest_Long_Note_Modify > 0.0) + CHECK (Put_Note_Set >= 0.0 AND Put_Note_Set <= 100.0) + CHECK (Put_Note_Set_Millis > 0.0) CHECK (Is_Paused IN (0, 1)) CHECK (Input_Flags >= 0 AND Input_Flags <= 15) ) @@ -212,7 +212,7 @@ #endregion #region 폴더의 선택된 노트 파일 - if (date < Date.DB1169) + if (date < Date.DB_1_16_9) { using (var dbStatement = NewDBStatement(""" CREATE TABLE IF NOT EXISTS tmp_entry ( @@ -251,7 +251,7 @@ #endregion #region 컬렉션 - if (date < Date.DB1169) + if (date < Date.DB_1_16_9) { using (var dbStatement = NewDBStatement(""" CREATE TABLE IF NOT EXISTS tmp_favorite_entry ( @@ -297,7 +297,7 @@ #endregion #region 클리어 램프 - if (date < Date.DB1169) + if (date < Date.DB_1_16_9) { using (var dbStatement = NewDBStatement(""" CREATE TABLE IF NOT EXISTS tmp_handled ( @@ -336,7 +336,7 @@ #endregion #region 클리어 시간들 (플레이 카운트, 마지막 플레이 정렬) - if (date < Date.DB1169) + if (date < Date.DB_1_16_9) { using (var dbStatement = NewDBStatement(""" CREATE TABLE IF NOT EXISTS tmp_date ( @@ -384,7 +384,7 @@ #endregion #region 노트 파일 설정 (오디오 레이턴시, BGA 레이턴시, BGA 활성화) - if (date < Date.DB1169) + if (date < Date.DB_1_16_9) { using (var dbStatement = NewDBStatement(""" CREATE TABLE IF NOT EXISTS tmp_wait ( @@ -428,7 +428,7 @@ #endregion #region 텍스트 인코딩 - if (date < Date.DB1169) + if (date < Date.DB_1_16_9) { using (var dbStatement = NewDBStatement(""" CREATE TABLE IF NOT EXISTS tmp_format ( @@ -467,7 +467,7 @@ #endregion #region 코스 - if (date < Date.DB1169) + if (date < Date.DB_1_16_9) { using (var dbStatement = NewDBStatement(""" CREATE TABLE IF NOT EXISTS tmp_event_note ( @@ -509,7 +509,7 @@ #endregion #region 코스 캐시 - if (date < Date.DB1169) + if (date < Date.DB_1_16_9) { using (var dbStatement = NewDBStatement(""" CREATE TABLE IF NOT EXISTS tmp_event_note_data ( @@ -630,8 +630,8 @@ LowJudgment1 = rows.GetDouble("Low_Judgment_1"), LowerJudgment1 = rows.GetDouble("Lower_Judgment_1"), LowestJudgment1 = rows.GetDouble("Lowest_Judgment_1"), - ConfigureLowestLongNoteModify = rows.GetDouble("Lowest_Long_Note_Modify"), - ConfigureHighestLongNoteModify = rows.GetDouble("Highest_Long_Note_Modify"), + LowestLongNoteModify = rows.GetDouble("Lowest_Long_Note_Modify"), + HighestLongNoteModify = rows.GetDouble("Highest_Long_Note_Modify"), PutNoteSet = rows.GetInt32("Put_Note_Set"), PutNoteSetMillis = rows.GetDouble("Put_Note_Set_Millis"), HighestHitPoints0 = 100.0 * rows.GetDouble("Highest_Hit_Points_0"), @@ -999,8 +999,8 @@ dbStatement.Parameters.AddWithValue("lowJudgment1", modeComponentValue.LowJudgment1); dbStatement.Parameters.AddWithValue("lowerJudgment1", modeComponentValue.LowerJudgment1); dbStatement.Parameters.AddWithValue("lowestJudgment1", modeComponentValue.LowestJudgment1); - dbStatement.Parameters.AddWithValue("lowestLongNoteModify", modeComponentValue.ConfigureLowestLongNoteModify); - dbStatement.Parameters.AddWithValue("highestLongNoteModify", modeComponentValue.ConfigureHighestLongNoteModify); + dbStatement.Parameters.AddWithValue("lowestLongNoteModify", modeComponentValue.LowestLongNoteModify); + dbStatement.Parameters.AddWithValue("highestLongNoteModify", modeComponentValue.HighestLongNoteModify); dbStatement.Parameters.AddWithValue("putNoteSet", modeComponentValue.PutNoteSet); dbStatement.Parameters.AddWithValue("putNoteSetMillis", modeComponentValue.PutNoteSetMillis); dbStatement.Parameters.AddWithValue("highestHitPoints0", modeComponentValue.HighestHitPoints0 / 100.0); diff --git a/Qwilight/System/LanguageSystem/LanguageSystem.g.cs b/Qwilight/System/LanguageSystem/LanguageSystem.g.cs index 0942447..04811c6 100644 --- a/Qwilight/System/LanguageSystem/LanguageSystem.g.cs +++ b/Qwilight/System/LanguageSystem/LanguageSystem.g.cs @@ -163,9 +163,7 @@ public string ConfigureBaseUIContents { get; set; } public string ConfigureEtcUIContents { get; set; } public string ConfigureFontFamilyContents { get; set; } - public string ConfigureHighestLongNoteModify { get; set; } public string ConfigureLevelContents { get; set; } - public string ConfigureLowestLongNoteModify { get; set; } public string ConfigurePutNoteSetContents { get; set; } public string ConfigurePutNoteSetMillisContents { get; set; } public string ConfigureText { get; set; } @@ -319,6 +317,7 @@ public string HigherNoteFileContents { get; set; } public string HighestHitPointsModeContents { get; set; } public string HighestJudgmentModeContents { get; set; } + public string HighestLongNoteModify { get; set; } public string HighestWantBPMContents { get; set; } public string HighestWantInputCountContents { get; set; } public string HighestWantLevelTextValue { get; set; } @@ -466,6 +465,7 @@ public string LowestHitPointsModeContents { get; set; } public string LowestJudgmentConditionModeAssist { get; set; } public string LowestJudgmentModeContents { get; set; } + public string LowestLongNoteModify { get; set; } public string LowestWantBPMContents { get; set; } public string LowestWantInputCountContents { get; set; } public string LowestWantLevelTextValue { get; set; } @@ -678,6 +678,7 @@ public string Power13 { get; set; } public string PutCopyNotesContents { get; set; } public string PutNoteSetAssist { get; set; } + public string PutNoteSetFaultText { get; set; } public string PutSetNoteModeContents { get; set; } public string QuitComputingSituationContents { get; set; } public string QuitContents { get; set; } diff --git a/Qwilight/View/LongNoteModifyWindow.xaml b/Qwilight/View/LongNoteModifyWindow.xaml index 2ae868e..a469709 100644 --- a/Qwilight/View/LongNoteModifyWindow.xaml +++ b/Qwilight/View/LongNoteModifyWindow.xaml @@ -26,8 +26,8 @@ - - + + @@ -40,8 +40,8 @@ - - + + diff --git a/Qwilight/View/PutNoteSetWindow.xaml b/Qwilight/View/PutNoteSetWindow.xaml index 653ad78..669a066 100644 --- a/Qwilight/View/PutNoteSetWindow.xaml +++ b/Qwilight/View/PutNoteSetWindow.xaml @@ -19,32 +19,42 @@ - - - - + + + + - + - - - - - - - - + + + + + + + + + + + + + + + + + + diff --git a/Qwilight/ViewModel/LongNoteModifyViewModel.cs b/Qwilight/ViewModel/LongNoteModifyViewModel.cs index 8197046..7b3005b 100644 --- a/Qwilight/ViewModel/LongNoteModifyViewModel.cs +++ b/Qwilight/ViewModel/LongNoteModifyViewModel.cs @@ -15,7 +15,9 @@ get { var modeComponentValue = ViewModels.Instance.MainValue.ModeComponentValue; - if (modeComponentValue.ConfigureLowestLongNoteModify > modeComponentValue.ConfigureHighestLongNoteModify) + var lowestLongNoteModify = modeComponentValue.LowestLongNoteModify; + var highestLongNoteModify = modeComponentValue.HighestLongNoteModify; + if (lowestLongNoteModify == 0.0 || highestLongNoteModify == 0.0 || lowestLongNoteModify > highestLongNoteModify) { NotifySystem.Instance.Notify(NotifySystem.NotifyVariety.Warning, NotifySystem.NotifyConfigure.Default, LanguageSystem.Instance.LongNoteModifyFaultText); return false; diff --git a/Qwilight/ViewModel/PutNoteSetViewModel.cs b/Qwilight/ViewModel/PutNoteSetViewModel.cs index c600974..2be5d91 100644 --- a/Qwilight/ViewModel/PutNoteSetViewModel.cs +++ b/Qwilight/ViewModel/PutNoteSetViewModel.cs @@ -11,5 +11,21 @@ public override VerticalAlignment HeightSystem => VerticalAlignment.Bottom; public void OnMeterModified() => ViewModels.Instance.MainValue.ModeComponentValue.SetAutoPutNoteSetMillis(); + + public override bool ClosingCondition + { + get + { + var modeComponentValue = ViewModels.Instance.MainValue.ModeComponentValue; + var putNoteSetMillis = modeComponentValue.PutNoteSetMillis; + if (putNoteSetMillis == 0.0) + { + NotifySystem.Instance.Notify(NotifySystem.NotifyVariety.Warning, NotifySystem.NotifyConfigure.Default, LanguageSystem.Instance.PutNoteSetFaultText); + return false; + } + + return base.ClosingCondition; + } + } } } \ No newline at end of file diff --git a/Test/Test.csproj b/Test/Test.csproj index 86b155f..da0d9e4 100644 --- a/Test/Test.csproj +++ b/Test/Test.csproj @@ -25,8 +25,8 @@ - - + + runtime; build; native; contentfiles; analyzers; buildtransitive all