From 02ac8a8ccbde05840103e115a6006a6d0edfa0bf Mon Sep 17 00:00:00 2001 From: 0auBSQ <58159635+0auBSQ@users.noreply.github.com> Date: Sat, 8 Jun 2024 00:24:04 +0900 Subject: [PATCH] Parse the NOTESDESIGNER tag and defaults it to MAKER if missing --- .../Databases/UnlockablesDocumentation.txt | 18 ++++++++++++++++++ OpenTaiko/Saves.db3 | Bin 0 -> 81920 bytes OpenTaiko/src/Common/SaveFile.cs | 3 +++ OpenTaiko/src/Songs/CDTX.cs | 5 +++++ OpenTaiko/src/Songs/CSongListNode.cs | 3 ++- OpenTaiko/src/Songs/CSong管理.cs | 6 +++++- 6 files changed, 33 insertions(+), 2 deletions(-) create mode 100644 OpenTaiko/Databases/UnlockablesDocumentation.txt create mode 100644 OpenTaiko/Saves.db3 diff --git a/OpenTaiko/Databases/UnlockablesDocumentation.txt b/OpenTaiko/Databases/UnlockablesDocumentation.txt new file mode 100644 index 00000000..ed605d75 --- /dev/null +++ b/OpenTaiko/Databases/UnlockablesDocumentation.txt @@ -0,0 +1,18 @@ + == UnlockCondition == + +* ch : "Coins here", coin requirement, payable within the heya menu, 1 value : [Coin price] +* cs : "Coins shop", coin requirement, payable only within the Medal shop selection screen +* cm : "Coins menu", coin requirement, payable only within the song select screen (used only for songs) +* dp : "Difficulty pass", count of difficulties pass, unlock check during the results screen, condition 3 values : [Difficulty int (0~4), Clear status (0~2), Number of performances], input 1 value [Plays fitting the condition] +* lp : "Level pass", count of level pass, unlock check during the results screen, condition 3 values : [Star rating, Clear status (0~2), Number of performances], input 1 value [Plays fitting the condition] +* sp : "Song performance", count of a specific song pass, unlock check during the results screen, condition 2 x n values for n songs : [Difficulty int (0~4, if -1 : Any), Clear status (0~2), ...], input 1 value [Count of fullfiled songs], n references for n songs (Song ids) +* sg : "Song genre (performance)", count of any song pass within a specific genre folder, unlock check during the results screen, condition 3 x n values for n songs : [Song count, Difficulty int (0~4, if -1 : Any), Clear status (0~2), ...], input 1 value [Count of fullfiled genres], n references for n genres (Genre names) + + +== UnlockType == +* l : "Less than" +* le : "Less or equal" +* e : "Equal" +* me : "More or equal" (Default) +* m : "More than" +* d : "Different" \ No newline at end of file diff --git a/OpenTaiko/Saves.db3 b/OpenTaiko/Saves.db3 new file mode 100644 index 0000000000000000000000000000000000000000..a7a531acfe7e6176cc0f4da3999c4bcb97a6de5f GIT binary patch literal 81920 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 x.Equals("") ? c曲リストノード.strMaker : x).ToArray(); + c曲リストノード.nSide = dtx.SIDE; c曲リストノード.bExplicit = dtx.EXPLICIT; c曲リストノード.bMovie = !string.IsNullOrEmpty(dtx.strBGVIDEO_PATH); @@ -415,7 +418,8 @@ namespace TJAPlayer3 c曲リストノード.strタイトル = dtx.TITLE; c曲リストノード.strサブタイトル = dtx.SUBTITLE; c曲リストノード.strMaker = dtx.MAKER; - c曲リストノード.nSide = dtx.SIDE; + c曲リストノード.strNotesDesigner = dtx.NOTESDESIGNER.Select(x => x.Equals("") ? c曲リストノード.strMaker : x).ToArray(); + c曲リストノード.nSide = dtx.SIDE; c曲リストノード.bExplicit = dtx.EXPLICIT; c曲リストノード.bMovie = !string.IsNullOrEmpty(dtx.strBGVIDEO_PATH);