From 50c614125e9ce2ff496bb394dc3e6368eeb0b464 Mon Sep 17 00:00:00 2001 From: Takkkom <76614532+Takkkom@users.noreply.github.com> Date: Fri, 17 Feb 2023 12:32:29 +0900 Subject: [PATCH] =?UTF-8?q?=E3=82=BD=E3=83=BC=E3=83=88=E3=82=92=E5=A4=89?= =?UTF-8?q?=E6=9B=B4=E3=81=99=E3=82=8B=E3=81=A8=E9=96=89=E3=81=98=E3=82=8B?= =?UTF-8?q?=E3=81=8C=E7=A7=BB=E5=8B=95=E3=81=99=E3=82=8B=E5=95=8F=E9=A1=8C?= =?UTF-8?q?=E3=81=AE=E4=BF=AE=E6=AD=A3=20(#385)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- TJAPlayer3/Common/CSongDict.cs | 2 +- TJAPlayer3/Songs/CSong管理.cs | 6 ++- .../05.SongSelect/CActSelect曲リスト.cs | 52 ++++++++++++++++++- 3 files changed, 56 insertions(+), 4 deletions(-) diff --git a/TJAPlayer3/Common/CSongDict.cs b/TJAPlayer3/Common/CSongDict.cs index e9d142aa..89ae0675 100644 --- a/TJAPlayer3/Common/CSongDict.cs +++ b/TJAPlayer3/Common/CSongDict.cs @@ -145,7 +145,7 @@ namespace TJAPlayer3 public static List tReinsertBackButtons(C曲リストノード parent, List songList, string path = "/", List listStrBoxDef = null) { // Remove all the existing back boxes currently existing - songList.RemoveAll(e => e.eノード種別 == C曲リストノード.Eノード種別.BACKBOX); + songList.RemoveAll(e => e.eノード種別 == C曲リストノード.Eノード種別.BACKBOX || e.eノード種別 == C曲リストノード.Eノード種別.RANDOM); int songCount = songList.Count; diff --git a/TJAPlayer3/Songs/CSong管理.cs b/TJAPlayer3/Songs/CSong管理.cs index 4b7d7f49..e18df1f4 100644 --- a/TJAPlayer3/Songs/CSong管理.cs +++ b/TJAPlayer3/Songs/CSong管理.cs @@ -1899,7 +1899,11 @@ Debug.WriteLine( dBPM + ":" + c曲リストノード.strタイトル ); #region [ private ] //----------------- //private const string SONGSDB_VERSION = "SongsDB5"; - private List listStrBoxDefSkinSubfolderFullName; + public List listStrBoxDefSkinSubfolderFullName + { + get; + private set; + } /// /// 検索を中断_スローダウンする diff --git a/TJAPlayer3/Stages/05.SongSelect/CActSelect曲リスト.cs b/TJAPlayer3/Stages/05.SongSelect/CActSelect曲リスト.cs index 68b5464b..f4d56679 100644 --- a/TJAPlayer3/Stages/05.SongSelect/CActSelect曲リスト.cs +++ b/TJAPlayer3/Stages/05.SongSelect/CActSelect曲リスト.cs @@ -246,9 +246,25 @@ namespace TJAPlayer3 else { // CDTXMania.Songs管理.t曲リストのソート3_演奏回数の多い順( songList, eInst, order ); - sf( songList, eInst, order, p ); -// this.r現在選択中の曲 = CDTXMania + sf( songList, eInst, order, p ); + // this.r現在選択中の曲 = CDTXMania + void addBackBox(List list, string parentName = "/") + { + foreach (C曲リストノード node in list) + { + if (node.eノード種別 != C曲リストノード.Eノード種別.BOX) continue; + string newPath = parentName + node.strタイトル + "/"; + CSongDict.tReinsertBackButtons(node, node.list子リスト, newPath, TJAPlayer3.Songs管理.listStrBoxDefSkinSubfolderFullName); + + addBackBox(node.list子リスト, newPath); + } + } + addBackBox(TJAPlayer3.Songs管理.list曲ルート); this.t現在選択中の曲を元に曲バーを再構成する(); + tChangeSong(0); + this.t選択曲が変更された(false); + tUpdateCurSong(); + TJAPlayer3.stage選曲.t選択曲変更通知(); } } @@ -404,6 +420,38 @@ namespace TJAPlayer3 } this.b選択曲が変更された = true; } + public void tUpdateCurSong() + { + if ((this.rGetSideSong(0).eノード種別 == C曲リストノード.Eノード種別.SCORE) || this.rGetSideSong(0).eノード種別 == C曲リストノード.Eノード種別.BACKBOX) + { + TJAPlayer3.stage選曲.bBGMIn再生した = false; + + CSongSelectSongManager.disable(); + } + else + { + CSongSelectSongManager.enable(); + CSongSelectSongManager.playSongIfPossible(); + } + + TJAPlayer3.stage選曲.ctBackgroundFade.t開始(0, 600, 1, TJAPlayer3.Timer); + if (this.ctBarOpen.n現在の値 >= 200 || TJAPlayer3.stage選曲.ctBackgroundFade.n現在の値 >= 600 - 255) + { + TJAPlayer3.stage選曲.OldGenre = this.r現在選択中の曲.strジャンル; + TJAPlayer3.stage選曲.OldUseGenre = !this.r現在選択中の曲.isChangedBgType; + TJAPlayer3.stage選曲.OldBg = this.r現在選択中の曲.BgType; + TJAPlayer3.stage選曲.OldBgColor = this.r現在選択中の曲.BgColor; + } + + if (this.r現在選択中の曲 != null) + { + ctScoreFrameAnime.t停止(); + ctScoreFrameAnime.n現在の値 = 0; + ctBarOpen.t停止(); + ctBarOpen.n現在の値 = 0; + } + this.b選択曲が変更された = true; + } public void t難易度レベルをひとつ進める() { if( ( this.r現在選択中の曲 == null ) || ( this.r現在選択中の曲.nスコア数 <= 1 ) )