diff --git a/README.md b/README.md index 5eeb9807..6b761751 100644 --- a/README.md +++ b/README.md @@ -30,9 +30,9 @@ Discord以外で配布しておりません。 例: -旧: #NEXTSONG Calculator,M-O-T-U,ナムコオリジナル,Calculator.ogg,920,330 +旧: #NEXTSONG [TITLE],[SUBTITLE],[GENRE],[WAVE],[SCOREINIT],[SCOREDIFF] -新(簡単☆4): #NEXTSONG Calculator,M-O-T-U,ナムコオリジナル,Calculator.ogg,920,330,4,0 +新: #NEXTSONG [TITLE],[SUBTITLE],[GENRE],[WAVE],[SCOREINIT],[SCOREDIFF],[LEVEL],[COURSE] ``` - 「太鼓叩いてスタート」と言える画面を通り過ぎれません diff --git a/TJAPlayer3/Songs/CBoxDef.cs b/TJAPlayer3/Songs/CBoxDef.cs index a3155da8..d6ea8b30 100644 --- a/TJAPlayer3/Songs/CBoxDef.cs +++ b/TJAPlayer3/Songs/CBoxDef.cs @@ -21,6 +21,12 @@ namespace TJAPlayer3 public bool IsChangedBackColor; public Color BoxColor; public bool IsChangedBoxColor; + public Color BgColor; + public bool IsChangedBgColor; + public int BoxType; + public int BgType; + public bool IsChangedBoxType; + public bool IsChangedBgType; // コンストラクタ @@ -33,6 +39,9 @@ namespace TJAPlayer3 ForeColor = Color.White; BackColor = Color.Black; BoxColor = Color.White; + BoxType = 0; + BgType = 0; + BgColor = Color.White; } public CBoxDef( string boxdefファイル名 ) : this() @@ -89,9 +98,24 @@ namespace TJAPlayer3 } else if (str.StartsWith("#BOXCOLOR", StringComparison.OrdinalIgnoreCase)) { - this.BoxColor = ColorTranslator.FromHtml(str.Substring(10).Trim(ignoreChars)); + this.BoxColor = ColorTranslator.FromHtml(str.Substring(9).Trim(ignoreChars)); IsChangedBoxColor = true; } + else if (str.StartsWith("#BGCOLOR", StringComparison.OrdinalIgnoreCase)) + { + this.BgColor = ColorTranslator.FromHtml(str.Substring(8).Trim(ignoreChars)); + IsChangedBgColor = true; + } + else if (str.StartsWith("#BGTYPE", StringComparison.OrdinalIgnoreCase)) + { + this.BgType = int.Parse(str.Substring(7).Trim(ignoreChars)); + IsChangedBgType = true; + } + else if (str.StartsWith("#BOXTYPE", StringComparison.OrdinalIgnoreCase)) + { + this.BoxType = int.Parse(str.Substring(8).Trim(ignoreChars)); + IsChangedBoxType = true; + } else { for(int i = 0; i < 3; i++) @@ -114,6 +138,20 @@ namespace TJAPlayer3 } } reader.Close(); + + /* + if (!IsChangedBoxType) + { + this.BoxType = this.nStrジャンルtoNum(this.Genre); + } + if (!IsChangedBgType) + { + this.BgType = this.nStrジャンルtoNum(this.Genre); + } + */ } + + + } } diff --git a/TJAPlayer3/Songs/CSong管理.cs b/TJAPlayer3/Songs/CSong管理.cs index 30c79872..4fb2676f 100644 --- a/TJAPlayer3/Songs/CSong管理.cs +++ b/TJAPlayer3/Songs/CSong管理.cs @@ -381,7 +381,22 @@ namespace TJAPlayer3 c曲リストノード.BoxColor = c曲リストノード.r親ノード.BoxColor; c曲リストノード.isChangedBoxColor = true; } - } + if (c曲リストノード.r親ノード.isChangedBgColor) + { + c曲リストノード.BgColor = c曲リストノード.r親ノード.BgColor; + c曲リストノード.isChangedBgColor = true; + } + if (c曲リストノード.r親ノード.isChangedBgType) + { + c曲リストノード.BgType = c曲リストノード.r親ノード.BgType; + c曲リストノード.isChangedBgType = true; + } + if (c曲リストノード.r親ノード.isChangedBoxType) + { + c曲リストノード.BoxType = c曲リストノード.r親ノード.BoxType; + c曲リストノード.isChangedBoxType = true; + } + } switch (CStrジャンルtoNum.ForAC15(c曲リストノード.strジャンル)) @@ -543,7 +558,19 @@ namespace TJAPlayer3 { c曲リストノード.BoxColor = boxdef.BoxColor; } - } + if (boxdef.IsChangedBgColor) + { + c曲リストノード.BgColor = boxdef.BgColor; + } + if (boxdef.IsChangedBgType) + { + c曲リストノード.BgType = boxdef.BgType; + } + if (boxdef.IsChangedBoxType) + { + c曲リストノード.BoxType = boxdef.BoxType; + } + } switch (c曲リストノード.strジャンル) { @@ -632,6 +659,22 @@ namespace TJAPlayer3 c曲リストノード.BoxColor = boxdef.BoxColor; c曲リストノード.isChangedBoxColor = true; } + if (boxdef.IsChangedBgColor) + { + c曲リストノード.BgColor = boxdef.BgColor; + c曲リストノード.isChangedBgColor = true; + } + if (boxdef.IsChangedBgType) + { + c曲リストノード.BgType = boxdef.BgType; + c曲リストノード.isChangedBgType = true; + } + if (boxdef.IsChangedBoxType) + { + c曲リストノード.BoxType = boxdef.BoxType; + c曲リストノード.isChangedBoxType = true; + } + for (int i = 0; i < 3; i++) { @@ -726,7 +769,19 @@ namespace TJAPlayer3 { sb.Append(", BoxColor=" + c曲リストノード.BoxColor.ToString()); } - Trace.TraceInformation( sb.ToString() ); + if (c曲リストノード.isChangedBgColor) + { + sb.Append(", BgColor=" + c曲リストノード.BgColor.ToString()); + } + if (c曲リストノード.isChangedBoxType) + { + sb.Append(", BoxType=" + c曲リストノード.BoxType.ToString()); + } + if (c曲リストノード.isChangedBgType) + { + sb.Append(", BgType=" + c曲リストノード.BgType.ToString()); + } + Trace.TraceInformation( sb.ToString() ); } finally { @@ -1099,6 +1154,7 @@ namespace TJAPlayer3 crecentryplaysong.list子リスト = new List(); crecentryplaysong.BackColor = ColorTranslator.FromHtml("#164748"); crecentryplaysong.BoxColor = Color.White; + crecentryplaysong.BgColor = Color.White; crecentryplaysong.arスコア[0] = new Cスコア(); crecentryplaysong.arスコア[0].ファイル情報.フォルダの絶対パス = ""; @@ -1119,6 +1175,7 @@ namespace TJAPlayer3 { if(c曲リストノード.eノード種別 == C曲リストノード.Eノード種別.BOX) { + // Dojo node removed here if (c曲リストノード.strタイトル == "段位道場") { list曲ルート.Remove(c曲リストノード); @@ -1192,6 +1249,11 @@ namespace TJAPlayer3 itemBack.BackColor = ColorTranslator.FromHtml("#513009"); itemBack.BoxColor = Color.White; + itemBack.BgColor = c曲リストノード.BgColor; + itemBack.isChangedBgColor = c曲リストノード.isChangedBgColor; + itemBack.BgType = c曲リストノード.BgType; + itemBack.isChangedBgType = c曲リストノード.isChangedBgType; + itemBack.strジャンル = c曲リストノード.strジャンル; itemBack.nスコア数 = 1; itemBack.r親ノード = c曲リストノード; @@ -1846,15 +1908,16 @@ Debug.WriteLine( dBPM + ":" + c曲リストノード.strタイトル ); Trace.TraceError( e.ToString() ); Trace.TraceError( "例外が発生しましたが処理を継続します。 (801f823d-a952-4809-a1bb-cf6a56194f5c)" ); } - } - //----------------- + } + //----------------- #endregion - - // その他 - + + // その他 + + #region [ private ] - //----------------- - //private const string SONGSDB_VERSION = "SongsDB5"; + //----------------- + //private const string SONGSDB_VERSION = "SongsDB5"; private List listStrBoxDefSkinSubfolderFullName; /// diff --git a/TJAPlayer3/Songs/C曲リストノード.cs b/TJAPlayer3/Songs/C曲リストノード.cs index 385abb18..59663906 100644 --- a/TJAPlayer3/Songs/C曲リストノード.cs +++ b/TJAPlayer3/Songs/C曲リストノード.cs @@ -38,6 +38,14 @@ namespace TJAPlayer3 public Color ForeColor = Color.White; public Color BackColor = Color.Black; public Color BoxColor = Color.White; + + public Color BgColor = Color.White; + public bool isChangedBgColor; + public bool isChangedBgType; + public bool isChangedBoxType; + public int BoxType; + public int BgType; + public bool IsChangedForeColor; public bool IsChangedBackColor; public bool isChangedBoxColor; diff --git a/TJAPlayer3/Stages/05.SongSelect/CActSelect曲リスト.cs b/TJAPlayer3/Stages/05.SongSelect/CActSelect曲リスト.cs index ed362168..bbae641b 100644 --- a/TJAPlayer3/Stages/05.SongSelect/CActSelect曲リスト.cs +++ b/TJAPlayer3/Stages/05.SongSelect/CActSelect曲リスト.cs @@ -919,6 +919,15 @@ namespace TJAPlayer3 this.stバー情報[index].ForeColor = song.ForeColor; this.stバー情報[index].BackColor = song.BackColor; this.stバー情報[index].BoxColor = song.BoxColor; + this.stバー情報[index].BgColor = song.BgColor; + + // Set default if unchanged here + this.stバー情報[index].BoxType = song.BoxType; + this.stバー情報[index].BgType = song.BgType; + + this.stバー情報[index].BgTypeChanged = song.isChangedBgType; + this.stバー情報[index].BoxTypeChanged = song.isChangedBoxType; + this.stバー情報[index].strジャンル = song.strジャンル; this.stバー情報[index].strサブタイトル = song.strサブタイトル; this.stバー情報[index].ar難易度 = song.nLevel; @@ -977,7 +986,15 @@ namespace TJAPlayer3 { TJAPlayer3.stage選曲.t選択曲変更通知(); // スクロール完了=選択曲変更! ctBarOpen.t開始(0, 260, 2, TJAPlayer3.Timer); + TJAPlayer3.stage選曲.NowGenre = this.r現在選択中の曲.strジャンル; + + TJAPlayer3.stage選曲.NowBg = this.r現在選択中の曲.BgType; + + TJAPlayer3.stage選曲.NowBgColor = this.r現在選択中の曲.BgColor; + + TJAPlayer3.stage選曲.NowUseGenre = !this.r現在選択中の曲.isChangedBgType; + ctScoreFrameAnime.t開始(0, 6000, 1, TJAPlayer3.Timer); } @@ -1006,6 +1023,15 @@ namespace TJAPlayer3 this.stバー情報[index].ForeColor = song.ForeColor; this.stバー情報[index].BackColor = song.BackColor; this.stバー情報[index].BoxColor = song.BoxColor; + this.stバー情報[index].BgColor = song.BgColor; + + // Set default if unchanged here + this.stバー情報[index].BoxType = song.BoxType; + this.stバー情報[index].BgType = song.BgType; + + this.stバー情報[index].BgTypeChanged = song.isChangedBgType; + this.stバー情報[index].BoxTypeChanged = song.isChangedBoxType; + this.stバー情報[index].strサブタイトル = song.strサブタイトル; this.stバー情報[index].strジャンル = song.strジャンル; this.stバー情報[index].ar難易度 = song.nLevel; @@ -1065,6 +1091,9 @@ namespace TJAPlayer3 TJAPlayer3.stage選曲.t選択曲変更通知(); // スクロール完了=選択曲変更! ctBarOpen.t開始(0, 260, 2, TJAPlayer3.Timer); TJAPlayer3.stage選曲.NowGenre = this.r現在選択中の曲.strジャンル; + TJAPlayer3.stage選曲.NowBg = this.r現在選択中の曲.BgType; + TJAPlayer3.stage選曲.NowBgColor = this.r現在選択中の曲.BgColor; + TJAPlayer3.stage選曲.NowUseGenre = !this.r現在選択中の曲.isChangedBgType; ctScoreFrameAnime.t開始(0, 6000, 1, TJAPlayer3.Timer); } //----------------- @@ -1230,16 +1259,22 @@ namespace TJAPlayer3 #region [ バーテクスチャを描画。] //----------------- - TJAPlayer3.Tx.SongSelect_Bar_Genre[nStrジャンルtoNum(stバー情報[nパネル番号].strジャンル)].color4 = stバー情報[nパネル番号].BoxColor; + // int boxType = nStrジャンルtoNum(stバー情報[nパネル番号].strジャンル); + int boxType = stバー情報[nパネル番号].BoxType; + + if (!stバー情報[nパネル番号].BoxTypeChanged) + boxType = nStrジャンルtoNum(stバー情報[nパネル番号].strジャンル); + + TJAPlayer3.Tx.SongSelect_Bar_Genre[boxType].color4 = stバー情報[nパネル番号].BoxColor; - TJAPlayer3.Tx.SongSelect_Bar_Genre[nStrジャンルtoNum(stバー情報[nパネル番号].strジャンル)].vc拡大縮小倍率.X = 1.0f; + TJAPlayer3.Tx.SongSelect_Bar_Genre[boxType].vc拡大縮小倍率.X = 1.0f; TJAPlayer3.Tx.SongSelect_Bar_Genre_Overlay.vc拡大縮小倍率.X = 1.0f; TJAPlayer3.Tx.SongSelect_Bar_Genre_Back.vc拡大縮小倍率.X = 1.0f; if (n現在のスクロールカウンタ != 0) - this.tジャンル別選択されていない曲バーの描画(xAnime - (int)Box, y - ((int)Box * 3), this.stバー情報[nパネル番号].strジャンル, stバー情報[nパネル番号].eバー種別, stバー情報[nパネル番号].nクリア, stバー情報[nパネル番号].nスコアランク); + this.tジャンル別選択されていない曲バーの描画(xAnime - (int)Box, y - ((int)Box * 3), this.stバー情報[nパネル番号].strジャンル, stバー情報[nパネル番号].eバー種別, stバー情報[nパネル番号].nクリア, stバー情報[nパネル番号].nスコアランク, boxType); else if (n見た目の行番号 != 4) - this.tジャンル別選択されていない曲バーの描画(xAnime - (int)Box, y - ((int)Box * 3), this.stバー情報[nパネル番号].strジャンル, stバー情報[nパネル番号].eバー種別, stバー情報[nパネル番号].nクリア, stバー情報[nパネル番号].nスコアランク); + this.tジャンル別選択されていない曲バーの描画(xAnime - (int)Box, y - ((int)Box * 3), this.stバー情報[nパネル番号].strジャンル, stバー情報[nパネル番号].eバー種別, stバー情報[nパネル番号].nクリア, stバー情報[nパネル番号].nスコアランク, boxType); //----------------- #endregion @@ -1317,26 +1352,32 @@ namespace TJAPlayer3 #region [ Bar ] - TJAPlayer3.Tx.SongSelect_Bar_Genre[nStrジャンルtoNum(r現在選択中の曲.strジャンル)].color4 = r現在選択中の曲.BoxColor; + //int boxType = nStrジャンルtoNum(r現在選択中の曲.strジャンル); + int boxType = r現在選択中の曲.BoxType; + + if (!r現在選択中の曲.isChangedBoxType) + boxType = nStrジャンルtoNum(r現在選択中の曲.strジャンル); + + TJAPlayer3.Tx.SongSelect_Bar_Genre[boxType].color4 = r現在選択中の曲.BoxColor; if (ctBoxOpen.n現在の値 >= 1300 && ctBoxOpen.n現在の値 <= 1940) { TJAPlayer3.Tx.SongSelect_Bar_Genre_Overlay.vc拡大縮小倍率.X = 1.0f - (float)Math.Sin(((ctBoxOpen.n現在の値 - 1300) * 0.28125f) * (Math.PI / 180)) * 1.0f; - TJAPlayer3.Tx.SongSelect_Bar_Genre[nStrジャンルtoNum(r現在選択中の曲.strジャンル)].vc拡大縮小倍率.X = 1.0f - (float)Math.Sin(((ctBoxOpen.n現在の値 - 1300) * 0.28125f) * (Math.PI / 180)) * 1.0f; + TJAPlayer3.Tx.SongSelect_Bar_Genre[boxType].vc拡大縮小倍率.X = 1.0f - (float)Math.Sin(((ctBoxOpen.n現在の値 - 1300) * 0.28125f) * (Math.PI / 180)) * 1.0f; } else { TJAPlayer3.Tx.SongSelect_Bar_Genre_Overlay.vc拡大縮小倍率.X = 1.0f; - TJAPlayer3.Tx.SongSelect_Bar_Genre[nStrジャンルtoNum(r現在選択中の曲.strジャンル)].vc拡大縮小倍率.X = 1.0f; + TJAPlayer3.Tx.SongSelect_Bar_Genre[boxType].vc拡大縮小倍率.X = 1.0f; } - TJAPlayer3.Tx.SongSelect_Bar_Genre[nStrジャンルtoNum(r現在選択中の曲.strジャンル)].t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, 640, 326 - BarAnimeCount, new Rectangle(0, 0, 632, 21)); + TJAPlayer3.Tx.SongSelect_Bar_Genre[boxType].t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, 640, 326 - BarAnimeCount, new Rectangle(0, 0, 632, 21)); - TJAPlayer3.Tx.SongSelect_Bar_Genre[nStrジャンルtoNum(r現在選択中の曲.strジャンル)].vc拡大縮小倍率.Y = BarAnimeCount == 0 ? 1.0f : 1.0f + (float)(BarAnimeCount) / 23.6f; - TJAPlayer3.Tx.SongSelect_Bar_Genre[nStrジャンルtoNum(r現在選択中の曲.strジャンル)].t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, 640, 360, new Rectangle(0, 21, 632, 48)); - TJAPlayer3.Tx.SongSelect_Bar_Genre[nStrジャンルtoNum(r現在選択中の曲.strジャンル)].vc拡大縮小倍率.Y = 1.0f; + TJAPlayer3.Tx.SongSelect_Bar_Genre[boxType].vc拡大縮小倍率.Y = BarAnimeCount == 0 ? 1.0f : 1.0f + (float)(BarAnimeCount) / 23.6f; + TJAPlayer3.Tx.SongSelect_Bar_Genre[boxType].t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, 640, 360, new Rectangle(0, 21, 632, 48)); + TJAPlayer3.Tx.SongSelect_Bar_Genre[boxType].vc拡大縮小倍率.Y = 1.0f; - TJAPlayer3.Tx.SongSelect_Bar_Genre[nStrジャンルtoNum(r現在選択中の曲.strジャンル)].t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, 640, 394 + BarAnimeCount, new Rectangle(0, 69, 632, 23)); + TJAPlayer3.Tx.SongSelect_Bar_Genre[boxType].t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, 640, 394 + BarAnimeCount, new Rectangle(0, 69, 632, 23)); if (BarAnimeCount != 0) { @@ -1396,26 +1437,32 @@ namespace TJAPlayer3 { #region [ Box ] - TJAPlayer3.Tx.SongSelect_Bar_Genre[nStrジャンルtoNum(r現在選択中の曲.strジャンル)].color4 = r現在選択中の曲.BoxColor; + //int boxType = nStrジャンルtoNum(r現在選択中の曲.strジャンル); + int boxType = r現在選択中の曲.BoxType; + + if (!r現在選択中の曲.isChangedBoxType) + boxType = nStrジャンルtoNum(r現在選択中の曲.strジャンル); + + TJAPlayer3.Tx.SongSelect_Bar_Genre[boxType].color4 = r現在選択中の曲.BoxColor; if (ctBoxOpen.n現在の値 >= 1300 && ctBoxOpen.n現在の値 <= 1940) { TJAPlayer3.Tx.SongSelect_Bar_Genre_Overlay.vc拡大縮小倍率.X = 1.0f - (float)Math.Sin(((ctBoxOpen.n現在の値 - 1300) * 0.28125f) * (Math.PI / 180)) * 1.0f; - TJAPlayer3.Tx.SongSelect_Bar_Genre[nStrジャンルtoNum(r現在選択中の曲.strジャンル)].vc拡大縮小倍率.X = 1.0f - (float)Math.Sin(((ctBoxOpen.n現在の値 - 1300) * 0.28125f) * (Math.PI / 180)) * 1.0f; + TJAPlayer3.Tx.SongSelect_Bar_Genre[boxType].vc拡大縮小倍率.X = 1.0f - (float)Math.Sin(((ctBoxOpen.n現在の値 - 1300) * 0.28125f) * (Math.PI / 180)) * 1.0f; } else { TJAPlayer3.Tx.SongSelect_Bar_Genre_Overlay.vc拡大縮小倍率.X = 1.0f; - TJAPlayer3.Tx.SongSelect_Bar_Genre[nStrジャンルtoNum(r現在選択中の曲.strジャンル)].vc拡大縮小倍率.X = 1.0f; + TJAPlayer3.Tx.SongSelect_Bar_Genre[boxType].vc拡大縮小倍率.X = 1.0f; } - TJAPlayer3.Tx.SongSelect_Bar_Genre[nStrジャンルtoNum(r現在選択中の曲.strジャンル)].t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, 640, 326 - BarAnimeCount, new Rectangle(0, 0, 632, 21)); + TJAPlayer3.Tx.SongSelect_Bar_Genre[boxType].t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, 640, 326 - BarAnimeCount, new Rectangle(0, 0, 632, 21)); - TJAPlayer3.Tx.SongSelect_Bar_Genre[nStrジャンルtoNum(r現在選択中の曲.strジャンル)].vc拡大縮小倍率.Y = BarAnimeCount == 0 ? 1.0f : 1.0f + (float)(BarAnimeCount) / 23.6f; - TJAPlayer3.Tx.SongSelect_Bar_Genre[nStrジャンルtoNum(r現在選択中の曲.strジャンル)].t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, 640, 360, new Rectangle(0, 21, 632, 48)); - TJAPlayer3.Tx.SongSelect_Bar_Genre[nStrジャンルtoNum(r現在選択中の曲.strジャンル)].vc拡大縮小倍率.Y = 1.0f; + TJAPlayer3.Tx.SongSelect_Bar_Genre[boxType].vc拡大縮小倍率.Y = BarAnimeCount == 0 ? 1.0f : 1.0f + (float)(BarAnimeCount) / 23.6f; + TJAPlayer3.Tx.SongSelect_Bar_Genre[boxType].t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, 640, 360, new Rectangle(0, 21, 632, 48)); + TJAPlayer3.Tx.SongSelect_Bar_Genre[boxType].vc拡大縮小倍率.Y = 1.0f; - TJAPlayer3.Tx.SongSelect_Bar_Genre[nStrジャンルtoNum(r現在選択中の曲.strジャンル)].t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, 640, 394 + BarAnimeCount, new Rectangle(0, 69, 632, 23)); + TJAPlayer3.Tx.SongSelect_Bar_Genre[boxType].t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, 640, 394 + BarAnimeCount, new Rectangle(0, 69, 632, 23)); if (BarAnimeCount != 0) { @@ -1595,6 +1642,8 @@ namespace TJAPlayer3 this.txBoxText[j].t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, 640 + TJAPlayer3.Skin.SongSelect_BoxExplanation_X, 360 + j * TJAPlayer3.Skin.SongSelect_BoxExplanation_Interval + TJAPlayer3.Skin.SongSelect_BoxExplanation_Y); } + // Chara here + if (!ctBoxOpen.b終了値に達した) TJAPlayer3.Tx.SongSelect_Box_Chara[this.nStrジャンルtoNumBox(r現在選択中の曲.strジャンル)].Opacity = (int)(ctBoxOpen.n現在の値 >= 1200 && ctBoxOpen.n現在の値 <= 1620 ? 255 - (ctBoxOpen.n現在の値 - 1200) * 2.55f : ctBoxOpen.n現在の値 >= 2000 ? (ctBoxOpen.n現在の値 - 2000) * 2.55f : ctBoxOpen.n現在の値 <= 1200 ? 255 : 0); @@ -1809,7 +1858,16 @@ namespace TJAPlayer3 public Color ForeColor; public Color BackColor; public Color BoxColor; - public int[] ar難易度; + + public Color BgColor; + public int BoxType; + public int BgType; + + public bool BoxTypeChanged; + public bool BgTypeChanged; + + + public int[] ar難易度; public bool[] b分岐; public string strジャンル; public string strサブタイトル; @@ -1992,7 +2050,16 @@ namespace TJAPlayer3 this.stバー情報[ i ].col文字色 = song.col文字色; this.stバー情報[i].ForeColor = song.ForeColor; this.stバー情報[i].BackColor = song.BackColor; + this.stバー情報[i].BoxColor = song.BoxColor; + this.stバー情報[i].BgColor = song.BgColor; + + this.stバー情報[i].BoxType = song.BoxType; + this.stバー情報[i].BgType = song.BgType; + + this.stバー情報[i].BgTypeChanged = song.isChangedBgType; + this.stバー情報[i].BoxTypeChanged = song.isChangedBoxType; + this.stバー情報[ i ].eバー種別 = this.e曲のバー種別を返す( song ); this.stバー情報[ i ].strサブタイトル = song.strサブタイトル; this.stバー情報[ i ].ar難易度 = song.nLevel; @@ -2021,7 +2088,6 @@ namespace TJAPlayer3 } } - // To investigate for ( int j = 0; j < 3; j++ ) this.stバー情報[ i ].nスキル値[ j ] = (int) song.arスコア[ this.n現在のアンカ難易度レベルに最も近い難易度レベルを返す( song ) ].譜面情報.最大スキル[ j ]; @@ -2033,7 +2099,7 @@ namespace TJAPlayer3 this.n現在の選択行 = 4; } - private void tジャンル別選択されていない曲バーの描画(int x, int y, string strジャンル, Eバー種別 eバー種別, int[] クリア, int[] スコアランク) + private void tジャンル別選択されていない曲バーの描画(int x, int y, string strジャンル, Eバー種別 eバー種別, int[] クリア, int[] スコアランク, int boxType) { if (x >= SampleFramework.GameWindowSize.Width || y >= SampleFramework.GameWindowSize.Height) return; @@ -2072,6 +2138,8 @@ namespace TJAPlayer3 if (eバー種別 != Eバー種別.BackBox) { + TJAPlayer3.Tx.SongSelect_Bar_Genre[boxType]?.t2D描画(TJAPlayer3.app.Device, x, y); + /* if (this.nStrジャンルtoNum(strジャンル) == 0) { if (TJAPlayer3.Tx.SongSelect_Bar_Genre[0] != null) @@ -2097,8 +2165,10 @@ namespace TJAPlayer3 } } } - } + } + */ + if (TJAPlayer3.Tx.SongSelect_Bar_Genre_Overlay != null) TJAPlayer3.Tx.SongSelect_Bar_Genre_Overlay.t2D描画(TJAPlayer3.app.Device, x, y); } diff --git a/TJAPlayer3/Stages/05.SongSelect/CActSelect難易度選択画面.cs b/TJAPlayer3/Stages/05.SongSelect/CActSelect難易度選択画面.cs index df1364f2..7aac46e2 100644 --- a/TJAPlayer3/Stages/05.SongSelect/CActSelect難易度選択画面.cs +++ b/TJAPlayer3/Stages/05.SongSelect/CActSelect難易度選択画面.cs @@ -292,7 +292,12 @@ namespace TJAPlayer3 #region [ 画像描画 ] - TJAPlayer3.Tx.Difficulty_Back[nStrジャンルtoNum(TJAPlayer3.stage選曲.r現在選択中の曲.strジャンル)].Opacity = + + // int boxType = nStrジャンルtoNum(TJAPlayer3.stage選曲.r現在選択中の曲.strジャンル); + int boxType = TJAPlayer3.stage選曲.r現在選択中の曲.BoxType; + + + TJAPlayer3.Tx.Difficulty_Back[boxType].Opacity = (TJAPlayer3.stage選曲.act曲リスト.ctDifficultyIn.n現在の値 - 1255); TJAPlayer3.Tx.Difficulty_Bar.Opacity = (TJAPlayer3.stage選曲.act曲リスト.ctDifficultyIn.n現在の値 - 1255); TJAPlayer3.Tx.Difficulty_Number.Opacity = (TJAPlayer3.stage選曲.act曲リスト.ctDifficultyIn.n現在の値 - 1255); @@ -302,9 +307,9 @@ namespace TJAPlayer3 TJAPlayer3.Tx.SongSelect_ScoreRank.Opacity = (TJAPlayer3.stage選曲.act曲リスト.ctDifficultyIn.n現在の値 - 1255); TJAPlayer3.Tx.Difficulty_Star.Opacity = (TJAPlayer3.stage選曲.act曲リスト.ctDifficultyIn.n現在の値 - 1255); - TJAPlayer3.Tx.Difficulty_Back[nStrジャンルtoNum(TJAPlayer3.stage選曲.r現在選択中の曲.strジャンル)].color4 = TJAPlayer3.stage選曲.r現在選択中の曲.BoxColor; + TJAPlayer3.Tx.Difficulty_Back[boxType].color4 = TJAPlayer3.stage選曲.r現在選択中の曲.BoxColor; - TJAPlayer3.Tx.Difficulty_Back[nStrジャンルtoNum(TJAPlayer3.stage選曲.r現在選択中の曲.strジャンル)].t2D中心基準描画(TJAPlayer3.app.Device, 640, 290); + TJAPlayer3.Tx.Difficulty_Back[boxType].t2D中心基準描画(TJAPlayer3.app.Device, 640, 290); for(int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++) { diff --git a/TJAPlayer3/Stages/05.SongSelect/CStage選曲.cs b/TJAPlayer3/Stages/05.SongSelect/CStage選曲.cs index cbd238c8..4e7254f0 100644 --- a/TJAPlayer3/Stages/05.SongSelect/CStage選曲.cs +++ b/TJAPlayer3/Stages/05.SongSelect/CStage選曲.cs @@ -417,22 +417,31 @@ namespace TJAPlayer3 if (this.r現在選択中の曲 != null) { - if (this.nStrジャンルtoNum(this.r現在選択中の曲.strジャンル) != 0 || r現在選択中の曲.eノード種別 == C曲リストノード.Eノード種別.BOX || r現在選択中の曲.eノード種別 == C曲リストノード.Eノード種別.SCORE) - { - nGenreBack = this.nStrジャンルtoNum(this.NowGenre); - nOldGenreBack = this.nStrジャンルtoNum(this.OldGenre); - } + // if (this.nStrジャンルtoNum(this.r現在選択中の曲.strジャンル) != 0 || r現在選択中の曲.eノード種別 == C曲リストノード.Eノード種別.BOX || r現在選択中の曲.eノード種別 == C曲リストノード.Eノード種別.SCORE) + // { + if (this.NowUseGenre) + nGenreBack = this.nStrジャンルtoNum(this.NowGenre); + else + nGenreBack = this.NowBg; + + if (this.OldUseGenre) + nOldGenreBack = this.nStrジャンルtoNum(this.OldGenre); + else + nOldGenreBack = this.OldBg; + // } if (TJAPlayer3.Tx.SongSelect_GenreBack[nGenreBack] != null) { for (int i = 0; i < (1280 / TJAPlayer3.Tx.SongSelect_Background.szテクスチャサイズ.Width) + 2; i++) { if (TJAPlayer3.Tx.SongSelect_GenreBack[nGenreBack] != null) { + TJAPlayer3.Tx.SongSelect_GenreBack[nGenreBack].color4 = this.NowBgColor; TJAPlayer3.Tx.SongSelect_GenreBack[nGenreBack].Opacity = 255; TJAPlayer3.Tx.SongSelect_GenreBack[nGenreBack].t2D描画(TJAPlayer3.app.Device, -(int)ct背景スクロール用タイマー.n現在の値 + TJAPlayer3.Tx.SongSelect_Background.szテクスチャサイズ.Width * i, 0); } if (TJAPlayer3.Tx.SongSelect_GenreBack[nOldGenreBack] != null) { + TJAPlayer3.Tx.SongSelect_GenreBack[nOldGenreBack].color4 = this.OldBgColor; TJAPlayer3.Tx.SongSelect_GenreBack[nOldGenreBack].Opacity = 600 - ctBackgroundFade.n現在の値; TJAPlayer3.Tx.SongSelect_GenreBack[nOldGenreBack].t2D描画(TJAPlayer3.app.Device, -(int)ct背景スクロール用タイマー.n現在の値 + TJAPlayer3.Tx.SongSelect_Background.szテクスチャサイズ.Width * i, 0); } @@ -666,6 +675,8 @@ namespace TJAPlayer3 { case C曲リストノード.Eノード種別.SCORE: { + // Maybe auxilliary don select here too ? + if (this.n現在選択中の曲の難易度 == (int)Difficulty.Tower) { if (TJAPlayer3.ConfigIni.nPlayerCount == 1) @@ -986,6 +997,12 @@ namespace TJAPlayer3 public CCounter ctBackgroundFade; public string NowGenre; public string OldGenre; + public int NowBg; + public int OldBg; + public Color NowBgColor = Color.White; + public Color OldBgColor = Color.White; + public bool NowUseGenre; + public bool OldUseGenre; private CActSelectArtistComment actArtistComment; private CActFIFOBlack actFIFO; private CActFIFOBlack actFIfrom結果画面; @@ -1215,8 +1232,14 @@ namespace TJAPlayer3 CSongSelectSongManager.playSongIfPossible(); } this.ctBackgroundFade.t開始(0, 600, 1, TJAPlayer3.Timer); - if (this.act曲リスト.ctBarOpen.n現在の値 >= 200 || this.ctBackgroundFade.n現在の値 >= 600 - 255) - TJAPlayer3.stage選曲.OldGenre = this.r現在選択中の曲.strジャンル; + if (this.act曲リスト.ctBarOpen.n現在の値 >= 200 || this.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; + } + this.act曲リスト.t次に移動(); TJAPlayer3.Skin.soundカーソル移動音.t再生する(); } @@ -1247,16 +1270,28 @@ namespace TJAPlayer3 } this.ctBackgroundFade.t開始(0, 600, 1, TJAPlayer3.Timer); - if (this.act曲リスト.ctBarOpen.n現在の値 >= 200 || this.ctBackgroundFade.n現在の値 >= 600 - 255) - TJAPlayer3.stage選曲.OldGenre = this.r現在選択中の曲.strジャンル; + if (this.act曲リスト.ctBarOpen.n現在の値 >= 200 || this.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; + } + this.act曲リスト.t前に移動(); TJAPlayer3.Skin.soundカーソル移動音.t再生する(); } private void tカーソルスキップ(bool Up) { this.ctBackgroundFade.t開始(0, 600, 1, TJAPlayer3.Timer); - if (this.act曲リスト.ctBarOpen.n現在の値 >= 200 || this.ctBackgroundFade.n現在の値 >= 600 - 255) - TJAPlayer3.stage選曲.OldGenre = this.r現在選択中の曲.strジャンル; + if (this.act曲リスト.ctBarOpen.n現在の値 >= 200 || this.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 (Up) this.act曲リスト.t前に移動(); else this.act曲リスト.t次に移動();