diff --git a/TJAPlayer3/Stages/05.SongSelect/CActSelect曲リスト.cs b/TJAPlayer3/Stages/05.SongSelect/CActSelect曲リスト.cs index 01d8fff4..aef59493 100644 --- a/TJAPlayer3/Stages/05.SongSelect/CActSelect曲リスト.cs +++ b/TJAPlayer3/Stages/05.SongSelect/CActSelect曲リスト.cs @@ -1019,30 +1019,31 @@ namespace TJAPlayer3 { if (song.arスコア[f] != null) this.stバー情報[index].b分岐 = song.arスコア[f].譜面情報.b譜面分岐; - } - - if (stバー情報[index].nクリア == null) - this.stバー情報[index].nクリア = new int[5]; - if (stバー情報[index].nスコアランク == null) - this.stバー情報[index].nスコアランク = new int[5]; - - this.stバー情報[index].nクリア = song.arスコア[n現在のアンカ難易度レベルに最も近い難易度レベルを返す(song)].譜面情報.nクリア; - this.stバー情報[index].nスコアランク = song.arスコア[n現在のアンカ難易度レベルに最も近い難易度レベルを返す(song)].譜面情報.nスコアランク; - - /* - for (int i = 0; i <= (int)Difficulty.Edit; i++) - { + } - if (song.arスコア[i] != null) - { - this.stバー情報[index].nクリア = song.arスコア[i].譜面情報.nクリア; - this.stバー情報[index].nスコアランク = song.arスコア[i].譜面情報.nスコアランク; - } - } - */ + #region [Reroll cases] - // stバー情報[] の内容を1行ずつずらす。 + if (stバー情報[index].nクリア == null) + this.stバー情報[index].nクリア = new int[2][]; + if (stバー情報[index].nスコアランク == null) + this.stバー情報[index].nスコアランク = new int[2][]; + for (int i = 0; i < 2; i++) + { + this.stバー情報[index].nクリア[i] = new int[5]; + this.stバー情報[index].nスコアランク[i] = new int[5]; + + int ap = TJAPlayer3.GetActualPlayer(i); + var sr = song.arスコア[n現在のアンカ難易度レベルに最も近い難易度レベルを返す(song)]; + + this.stバー情報[index].nクリア[i] = sr.GPInfo[ap].nClear; + this.stバー情報[index].nスコアランク[i] = sr.GPInfo[ap].nScoreRank; + } + + #endregion + + // stバー情報[] の内容を1行ずつずらす。 + C曲リストノード song2 = this.r現在選択中の曲; for (int i = 0; i < 4; i++) song2 = this.r前の曲(song2); @@ -1133,6 +1134,7 @@ namespace TJAPlayer3 this.stバー情報[index].b分岐 = song.arスコア[f].譜面情報.b譜面分岐; } + /* if (stバー情報[index].nクリア == null) this.stバー情報[index].nクリア = new int[5]; if (stバー情報[index].nスコアランク == null) @@ -1146,6 +1148,28 @@ namespace TJAPlayer3 this.stバー情報[index].nスコアランク = song.arスコア[i].譜面情報.nスコアランク; } } + */ + + #region [Reroll cases] + + if (stバー情報[index].nクリア == null) + this.stバー情報[index].nクリア = new int[2][]; + if (stバー情報[index].nスコアランク == null) + this.stバー情報[index].nスコアランク = new int[2][]; + + for (int i = 0; i < 2; i++) + { + this.stバー情報[index].nクリア[i] = new int[5]; + this.stバー情報[index].nスコアランク[i] = new int[5]; + + int ap = TJAPlayer3.GetActualPlayer(i); + var sr = song.arスコア[n現在のアンカ難易度レベルに最も近い難易度レベルを返す(song)]; + + this.stバー情報[index].nクリア[i] = sr.GPInfo[ap].nClear; + this.stバー情報[index].nスコアランク[i] = sr.GPInfo[ap].nScoreRank; + } + + #endregion // stバー情報[] の内容を1行ずつずらす。 @@ -1561,12 +1585,20 @@ namespace TJAPlayer3 } else if (this.r現在選択中の曲.arスコア[3] != null || this.r現在選択中の曲.arスコア[4] != null) { - int[] クリア = this.r現在選択中の曲.arスコア[n現在のアンカ難易度レベルに最も近い難易度レベルを返す(this.r現在選択中の曲)].譜面情報.nクリア; - - int[] スコアランク = this.r現在選択中の曲.arスコア[n現在のアンカ難易度レベルに最も近い難易度レベルを返す(this.r現在選択中の曲)].譜面情報.nスコアランク; - - displayRegularCrowns(354, (int)(344 - BarAnimeCount / 1.1f), クリア, スコアランク, 0.8f + BarAnimeCount / 620f); + var sr = this.r現在選択中の曲.arスコア[n現在のアンカ難易度レベルに最も近い難易度レベルを返す(this.r現在選択中の曲)]; + for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++) + { + int diff = 640 - 354; + int shift = 640 + ((i == 1) ? diff : -diff); + int ap = TJAPlayer3.GetActualPlayer(i); + + int[] クリア = sr.GPInfo[ap].nClear; + + int[] スコアランク = sr.GPInfo[ap].nScoreRank; + + displayRegularCrowns(shift, (int)(344 - BarAnimeCount / 1.1f), クリア, スコアランク, 0.8f + BarAnimeCount / 620f); + } } #endregion @@ -2057,8 +2089,9 @@ namespace TJAPlayer3 public string strジャンル; public string strサブタイトル; public TitleTextureKey ttkタイトル; - public int[] nクリア; - public int[] nスコアランク; + + public int[][] nクリア; + public int[][] nスコアランク; } public bool bFirstCrownLoad; @@ -2206,7 +2239,7 @@ namespace TJAPlayer3 this.stバー情報[ i ].b分岐 = song.arスコア[ f ].譜面情報.b譜面分岐; } - + /* if (stバー情報[i].nクリア == null) this.stバー情報[i].nクリア = new int[5]; if (stバー情報[i].nスコアランク == null) @@ -2214,23 +2247,40 @@ namespace TJAPlayer3 - if(this.stバー情報[i].eバー種別 == Eバー種別.Score) - { + if(this.stバー情報[i].eバー種別 == Eバー種別.Score) + { this.stバー情報[i].nクリア = song.arスコア[n現在のアンカ難易度レベルに最も近い難易度レベルを返す(song)].譜面情報.nクリア; this.stバー情報[i].nスコアランク = song.arスコア[n現在のアンカ難易度レベルに最も近い難易度レベルを返す(song)].譜面情報.nスコアランク; - /* - for (int j = 0; j <= (int)Difficulty.Edit; j++) + } + */ + + #region [Reroll cases] + + if (stバー情報[i].nクリア == null) + this.stバー情報[i].nクリア = new int[2][]; + if (stバー情報[i].nスコアランク == null) + this.stバー情報[i].nスコアランク = new int[2][]; + + for (int d = 0; d < 2; d++) + { + this.stバー情報[i].nクリア[d] = new int[5]; + this.stバー情報[i].nスコアランク[d] = new int[5]; + + if (this.stバー情報[i].eバー種別 == Eバー種別.Score) { - if (song.arスコア[j] != null) - { - this.stバー情報[i].nクリア = song.arスコア[j].譜面情報.nクリア; - this.stバー情報[i].nスコアランク = song.arスコア[j].譜面情報.nスコアランク; - } - } - */ - } - + int ap = TJAPlayer3.GetActualPlayer(d); + var sr = song.arスコア[n現在のアンカ難易度レベルに最も近い難易度レベルを返す(song)]; + + this.stバー情報[i].nクリア[d] = sr.GPInfo[ap].nClear; + this.stバー情報[i].nスコアランク[d] = sr.GPInfo[ap].nScoreRank; + } + } + + #endregion + + + for ( int j = 0; j < 3; j++ ) this.stバー情報[ i ].nスキル値[ j ] = (int) song.arスコア[ this.n現在のアンカ難易度レベルに最も近い難易度レベルを返す( song ) ].譜面情報.最大スキル[ j ]; @@ -2243,7 +2293,7 @@ namespace TJAPlayer3 } // Song type : 0 - Ensou, 1 - Dan, 2 - Tower - private void tジャンル別選択されていない曲バーの描画(int x, int y, string strジャンル, Eバー種別 eバー種別, int[] クリア, int[] スコアランク, int boxType, int _songType = 0) + private void tジャンル別選択されていない曲バーの描画(int x, int y, string strジャンル, Eバー種別 eバー種別, int[][] クリア, int[][] スコアランク, int boxType, int _songType = 0) { if (x >= SampleFramework.GameWindowSize.Width || y >= SampleFramework.GameWindowSize.Height) return; @@ -2281,17 +2331,19 @@ namespace TJAPlayer3 if (eバー種別 == Eバー種別.Score) { - switch (_songType) + if (_songType == 1) + displayDanStatus(x + 30, y + 30, Math.Min(クリア[0][0], 6) - 1, 0.2f); + else { - case 0: - displayRegularCrowns(x + 30, y + 30, クリア, スコアランク, 0.8f); - break; - case 1: - displayDanStatus(x + 30, y + 30, Math.Min(クリア[0], 6) - 1, 0.2f); - break; - default: - displayRegularCrowns(x + 30, y + 30, クリア, スコアランク, 0.8f); - break; + var sr = this.r現在選択中の曲.arスコア[n現在のアンカ難易度レベルに最も近い難易度レベルを返す(this.r現在選択中の曲)]; + + for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++) + { + int diff = 640 - 354; + int shift = 640 + ((i == 1) ? diff : -diff) - 354; + + displayRegularCrowns(x + 30 + shift, y + 30, クリア[i], スコアランク[i], 0.8f); + } } } diff --git a/TJAPlayer3/Stages/08.Result/CStage結果.cs b/TJAPlayer3/Stages/08.Result/CStage結果.cs index c51b1765..f54a763a 100644 --- a/TJAPlayer3/Stages/08.Result/CStage結果.cs +++ b/TJAPlayer3/Stages/08.Result/CStage結果.cs @@ -1244,11 +1244,13 @@ namespace TJAPlayer3 || (i == 1 && TJAPlayer3.ConfigIni.b太鼓パートAutoPlay2P)) continue; - if (cScore.GPInfo[i].nClear[TJAPlayer3.stage選曲.n確定された曲の難易度[i]] < nクリア[i]) - cScore.GPInfo[i].nClear[TJAPlayer3.stage選曲.n確定された曲の難易度[i]] = nクリア[i]; + int actualPlayer = TJAPlayer3.GetActualPlayer(i); - if (cScore.GPInfo[i].nScoreRank[TJAPlayer3.stage選曲.n確定された曲の難易度[i]] < nスコアランク[i]) - cScore.GPInfo[i].nScoreRank[TJAPlayer3.stage選曲.n確定された曲の難易度[i]] = nスコアランク[i]; + if (cScore.GPInfo[actualPlayer].nClear[TJAPlayer3.stage選曲.n確定された曲の難易度[i]] < nクリア[i]) + cScore.GPInfo[actualPlayer].nClear[TJAPlayer3.stage選曲.n確定された曲の難易度[i]] = nクリア[i]; + + if (cScore.GPInfo[actualPlayer].nScoreRank[TJAPlayer3.stage選曲.n確定された曲の難易度[i]] < nスコアランク[i]) + cScore.GPInfo[actualPlayer].nScoreRank[TJAPlayer3.stage選曲.n確定された曲の難易度[i]] = nスコアランク[i]; /* if (cスコア.譜面情報.nクリア[TJAPlayer3.stage選曲.n確定された曲の難易度[0]] < nクリア)