1
0
mirror of synced 2024-11-14 10:57:36 +01:00

(v0.4.1) Ura-only and no oni maps no longer crash on the song select menu (Issue #7), clean some code bloating, red star icon is no longer needed

This commit is contained in:
0aubsq 2021-10-12 03:12:12 +02:00
parent 7f5cc53780
commit 7c7c51947f
3 changed files with 108 additions and 107 deletions

View File

@ -3,7 +3,7 @@ TJAPlayer3-Develop-ReWrite-1のフォーク, 太鼓の達人 ニジイロVerを
(English version coming soon) (English version coming soon)
- 現在の版: v0.4.0 - 現在の版: v0.4.1
- スキンの最新版: v0.4.0 - スキンの最新版: v0.4.0
@ -11,9 +11,9 @@ TJAPlayer3-Develop-ReWrite-1のフォーク, 太鼓の達人 ニジイロVerを
このプログラムはまだスキンを含みません。 このプログラムはまだスキンを含みません。
訴えを全く避けるためにデフォルトスキンを作る予定でございます。 著作権を全く満ちるためにデフォルトスキンを作る予定でございます。
それまでニジイロスキンが希望なら僕のDiscordでご連絡ください それまでニジイロ系のスキンが希望なら僕のDiscordでご連絡ください
- 申しコミ#5734 (日本語・英語・仏語可) - 申しコミ#5734 (日本語・英語・仏語可)
@ -49,6 +49,13 @@ Discord以外で配布しておりません。
## 更新記録 ## 更新記録
<details>
<summary>v0.4.1</summary>
- 演奏選曲画面に複数のバグとクラッシュ場面を修正
</details>
<details> <details>
<summary>v0.4.0</summary> <summary>v0.4.0</summary>

View File

@ -931,12 +931,16 @@ namespace TJAPlayer3
if (stバー情報[index].nスコアランク == null) if (stバー情報[index].nスコアランク == null)
this.stバー情報[index].nスコアランク = new int[5]; this.stバー情報[index].nスコアランク = new int[5];
if (song.arスコア[3] != null) for (int i = 0; i <= (int)Difficulty.Edit; i++)
{ {
this.stバー情報[index].nクリア = song.arスコア[3]..nクリア; if (song.arスコア[i] != null)
this.stバー情報[index].nスコアランク = song.arスコア[3]..nスコアランク; {
this.stバー情報[index].nクリア = song.arスコア[i]..nクリア;
this.stバー情報[index].nスコアランク = song.arスコア[i]..nスコアランク;
}
} }
// stバー情報[] の内容を1行ずつずらす。 // stバー情報[] の内容を1行ずつずらす。
C曲リストード song2 = this.r現在選択中の曲; C曲リストード song2 = this.r現在選択中の曲;
@ -1013,10 +1017,13 @@ namespace TJAPlayer3
if (stバー情報[index].nスコアランク == null) if (stバー情報[index].nスコアランク == null)
this.stバー情報[index].nスコアランク = new int[5]; this.stバー情報[index].nスコアランク = new int[5];
if (song.arスコア[3] != null) for (int i = 0; i <= (int)Difficulty.Edit; i++)
{ {
this.stバー情報[index].nクリア = song.arスコア[3]..nクリア; if (song.arスコア[i] != null)
this.stバー情報[index].nスコアランク = song.arスコア[3]..nスコアランク; {
this.stバー情報[index].nクリア = song.arスコア[i]..nクリア;
this.stバー情報[index].nスコアランク = song.arスコア[i]..nスコアランク;
}
} }
// stバー情報[] の内容を1行ずつずらす。 // stバー情報[] の内容を1行ずつずらす。
@ -1341,24 +1348,35 @@ namespace TJAPlayer3
#region [ Crown and ScoreRank ] #region [ Crown and ScoreRank ]
if (this.r現在選択中の曲.arスコア[3] != null) if (this.r現在選択中の曲.arスコア[3] != null || this.r現在選択中の曲.arスコア[4] != null)
{ {
var = this.r現在選択中の曲.arスコア[3]..nクリア; int[] ;
var = this.r現在選択中の曲.arスコア[3]..nスコアランク; int[] ;
if (this.r現在選択中の曲.arスコア[3] != null)
{
= this.r現在選択中の曲.arスコア[3]..nクリア;
= this.r現在選択中の曲.arスコア[3]..nスコアランク;
}
else
{
= this.r現在選択中の曲.arスコア[4]..nクリア;
= this.r現在選択中の曲.arスコア[4]..nスコアランク;
}
TJAPlayer3.Tx.SongSelect_Crown.vc拡大縮小倍率.X = 0.8f + BarAnimeCount / 620f; TJAPlayer3.Tx.SongSelect_Crown.vc拡大縮小倍率.X = 0.8f + BarAnimeCount / 620f;
TJAPlayer3.Tx.SongSelect_Crown.vc拡大縮小倍率.Y = 0.8f + BarAnimeCount / 620f; TJAPlayer3.Tx.SongSelect_Crown.vc拡大縮小倍率.Y = 0.8f + BarAnimeCount / 620f;
TJAPlayer3.Tx.SongSelect_ScoreRank.vc拡大縮小倍率.X = 0.8f + BarAnimeCount / 620f; TJAPlayer3.Tx.SongSelect_ScoreRank.vc拡大縮小倍率.X = 0.8f + BarAnimeCount / 620f;
TJAPlayer3.Tx.SongSelect_ScoreRank.vc拡大縮小倍率.Y = 0.8f + BarAnimeCount / 620f; TJAPlayer3.Tx.SongSelect_ScoreRank.vc拡大縮小倍率.Y = 0.8f + BarAnimeCount / 620f;
if ([3] != 0) if ([3] > 0 && [4] == 0)
TJAPlayer3.Tx.SongSelect_Crown.t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, 354, 344 - BarAnimeCount / 1.1f, new RectangleF(9 * 43.2f + ([3] - 1) * 43.2f, 0, 43.2f, 39)); TJAPlayer3.Tx.SongSelect_Crown.t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, 354, 344 - BarAnimeCount / 1.1f, new RectangleF(9 * 43.2f + ([3] - 1) * 43.2f, 0, 43.2f, 39));
else if ([4] != 0) else if ([4] > 0)
TJAPlayer3.Tx.SongSelect_Crown.t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, 354, 344 - BarAnimeCount / 1.1f, new RectangleF(12 * 43.2f + ([4] - 1) * 43.2f, 0, 43.2f, 39)); TJAPlayer3.Tx.SongSelect_Crown.t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, 354, 344 - BarAnimeCount / 1.1f, new RectangleF(12 * 43.2f + ([4] - 1) * 43.2f, 0, 43.2f, 39));
if ([3] != 0) if ([3] > 0 && [4] == 0)
TJAPlayer3.Tx.SongSelect_ScoreRank.t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, 354, 374 - BarAnimeCount / 1.15f, new RectangleF(0, ([3] - 1) * 42.71f, 50, 42.71f)); TJAPlayer3.Tx.SongSelect_ScoreRank.t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, 354, 374 - BarAnimeCount / 1.15f, new RectangleF(0, ([3] - 1) * 42.71f, 50, 42.71f));
else if ([4] != 0) else if ([4] > 0)
TJAPlayer3.Tx.SongSelect_ScoreRank.t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, 354, 374 - BarAnimeCount / 1.15f, new RectangleF(0, ([4] - 1) * 42.71f, 50, 42.71f)); TJAPlayer3.Tx.SongSelect_ScoreRank.t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, 354, 374 - BarAnimeCount / 1.15f, new RectangleF(0, ([4] - 1) * 42.71f, 50, 42.71f));
} }
@ -1972,10 +1990,13 @@ namespace TJAPlayer3
if(this.stバー情報[i].eバー種別 == Eバー種別.Score) if(this.stバー情報[i].eバー種別 == Eバー種別.Score)
{ {
if (song.arスコア[3] != null) for (int j = 0; j <= (int)Difficulty.Edit; j++)
{ {
this.stバー情報[i].nクリア = song.arスコア[3]..nクリア; if (song.arスコア[j] != null)
this.stバー情報[i].nスコアランク = song.arスコア[3]..nスコアランク; {
this.stバー情報[i].nクリア = song.arスコア[j]..nクリア;
this.stバー情報[i].nスコアランク = song.arスコア[j]..nスコアランク;
}
} }
} }
@ -2071,14 +2092,14 @@ namespace TJAPlayer3
TJAPlayer3.Tx.SongSelect_ScoreRank.vc拡大縮小倍率.X = 0.8f; TJAPlayer3.Tx.SongSelect_ScoreRank.vc拡大縮小倍率.X = 0.8f;
TJAPlayer3.Tx.SongSelect_ScoreRank.vc拡大縮小倍率.Y = 0.8f; TJAPlayer3.Tx.SongSelect_ScoreRank.vc拡大縮小倍率.Y = 0.8f;
if ([3] != 0 && [4] == 0) if ([3] > 0 && [4] == 0)
TJAPlayer3.Tx.SongSelect_Crown.t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, x + 30, y + 30, new RectangleF(9 * 43.2f + ([3] - 1) * 43.2f, 0, 43.2f, 39)); TJAPlayer3.Tx.SongSelect_Crown.t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, x + 30, y + 30, new RectangleF(9 * 43.2f + ([3] - 1) * 43.2f, 0, 43.2f, 39));
if ([4] != 0) else if ([4] > 0)
TJAPlayer3.Tx.SongSelect_Crown.t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, x + 30, y + 30, new RectangleF(12 * 43.2f + ([4] - 1) * 43.2f, 0, 43.2f, 39)); TJAPlayer3.Tx.SongSelect_Crown.t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, x + 30, y + 30, new RectangleF(12 * 43.2f + ([4] - 1) * 43.2f, 0, 43.2f, 39));
if ([3] != 0 && [4] == 0) if ([3] > 0 && [4] == 0)
TJAPlayer3.Tx.SongSelect_ScoreRank.t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, x + 30, y + 60, new RectangleF(0, ([3] - 1) * 42.71f, 50, 42.71f)); TJAPlayer3.Tx.SongSelect_ScoreRank.t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, x + 30, y + 60, new RectangleF(0, ([3] - 1) * 42.71f, 50, 42.71f));
if ([4] != 0) else if ([4] > 0)
TJAPlayer3.Tx.SongSelect_ScoreRank.t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, x + 30, y + 60, new RectangleF(0, ([4] - 1) * 42.71f, 50, 42.71f)); TJAPlayer3.Tx.SongSelect_ScoreRank.t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, x + 30, y + 60, new RectangleF(0, ([4] - 1) * 42.71f, 50, 42.71f));
} }
} }

View File

@ -58,13 +58,16 @@ namespace TJAPlayer3
} }
else if (n現在の選択行[player] >= 5) else if (n現在の選択行[player] >= 5)
{ {
if (nスイッチカウント < 0 && TJAPlayer3.stage選曲.r現在選択中のスコア..nレベル[4] >= 0) if (TJAPlayer3.stage選曲.r現在選択中のスコア..nレベル[4] < 0 || TJAPlayer3.stage選曲.r現在選択中のスコア..nレベル[3] < 0)
return;
if (nスイッチカウント < 0)
{ {
nスイッチカウント++; nスイッチカウント++;
} }
else if (nスイッチカウント == 0 && TJAPlayer3.stage選曲.r現在選択中のスコア..nレベル[4] >= 0) else if (nスイッチカウント == 0)
{ {
for(int i = 0; i < 2; i++) for (int i = 0; i < 2; i++)
{ {
if(!bSelect[i]) if(!bSelect[i])
{ {
@ -117,7 +120,8 @@ namespace TJAPlayer3
this.n現在の選択行 = new int[2]; this.n現在の選択行 = new int[2];
this.bSelect[0] = false; this.bSelect[0] = false;
this.bSelect[1] = false; this.bSelect[1] = false;
this.b裏譜面 = false;
this.b裏譜面 = (TJAPlayer3.stage選曲.r現在選択中のスコア..nレベル[(int)Difficulty.Edit] >= 0 && TJAPlayer3.stage選曲.r現在選択中のスコア..nレベル[(int)Difficulty.Oni] < 0);
this.b初めての進行描画 = true; this.b初めての進行描画 = true;
} }
@ -182,6 +186,9 @@ namespace TJAPlayer3
ctBarAnime[0].t進行(); ctBarAnime[0].t進行();
ctBarAnime[1].t進行(); ctBarAnime[1].t進行();
bool uraExists = TJAPlayer3.stage選曲.r現在選択中のスコア..nレベル[(int)Difficulty.Edit] >= 0;
bool omoteExists = TJAPlayer3.stage選曲.r現在選択中のスコア..nレベル[(int)Difficulty.Oni] >= 0;
#region [ ] #region [ ]
if (this.ctBarAnimeIn.b終了値に達した) if (this.ctBarAnimeIn.b終了値に達した)
@ -306,83 +313,49 @@ namespace TJAPlayer3
TJAPlayer3.Tx.Difficulty_Bar.color4 = new Color4(1.0f, 1.0f, 1.0f); TJAPlayer3.Tx.Difficulty_Bar.color4 = new Color4(1.0f, 1.0f, 1.0f);
TJAPlayer3.Tx.Difficulty_Bar.t2D描画(TJAPlayer3.app.Device, 255, 270, new RectangleF(0, 0, 171, 236)); //閉じる、演奏オプション TJAPlayer3.Tx.Difficulty_Bar.t2D描画(TJAPlayer3.app.Device, 255, 270, new RectangleF(0, 0, 171, 236)); //閉じる、演奏オプション
for (int i = 0; i < 3; i++)
for (int i = 0; i <= (int)Difficulty.Edit; i++)
{ {
if(TJAPlayer3.stage選曲.r現在選択中のスコア..nレベル[i] > 0) if (i == (int)Difficulty.Edit && (!uraExists || !b裏譜面))
break;
else if (i == (int)Difficulty.Oni && (!omoteExists && uraExists || b裏譜面))
continue;
int screenPos = Math.Min((int)Difficulty.Oni, i);
int level = TJAPlayer3.stage選曲.r現在選択中のスコア..nレベル[i];
bool avaliable = TJAPlayer3.stage選曲.r現在選択中のスコア..nレベル[i] > 0;
if (avaliable)
TJAPlayer3.Tx.Difficulty_Bar.color4 = new Color4(1.0f, 1.0f, 1.0f); TJAPlayer3.Tx.Difficulty_Bar.color4 = new Color4(1.0f, 1.0f, 1.0f);
else else
TJAPlayer3.Tx.Difficulty_Bar.color4 = new Color4(0.5f, 0.5f, 0.5f); TJAPlayer3.Tx.Difficulty_Bar.color4 = new Color4(0.5f, 0.5f, 0.5f);
TJAPlayer3.Tx.Difficulty_Bar.t2D描画(TJAPlayer3.app.Device, 255 + 171 + 143 * i, 270, new RectangleF(171 + 143 * i, 0, 143, 236)); //閉じる~難しいまで TJAPlayer3.Tx.Difficulty_Bar.t2D描画(TJAPlayer3.app.Device, 255 + 171 + 143 * screenPos, 270, new RectangleF(171 + 143 * i, 0, 138, 236));
TJAPlayer3.Tx.Difficulty_Crown.t2D描画(TJAPlayer3.app.Device, 445 + i * 144, 284, new RectangleF(TJAPlayer3.stage選曲.r現在選択中の曲.arスコア[3]..nクリア[i] * 24.5f, 0, 24.5f, 26)); if (!avaliable)
continue;
if(TJAPlayer3.stage選曲.r現在選択中の曲.arスコア[3]..nスコアランク[i] != 0) TJAPlayer3.Tx.Difficulty_Crown.t2D描画(TJAPlayer3.app.Device, 445 + screenPos * 144, 284, new RectangleF(TJAPlayer3.stage選曲.r現在選択中の曲.arスコア[i]..nクリア[i] * 24.5f, 0, 24.5f, 26));
TJAPlayer3.Tx.SongSelect_ScoreRank.t2D描画(TJAPlayer3.app.Device, 467 + i * 144, 281, new RectangleF(0, (TJAPlayer3.stage選曲.r現在選択中の曲.arスコア[3]..nスコアランク[i] - 1) * 42.71f, 50, 42.71f));
if (TJAPlayer3.stage選曲.r現在選択中のスコア..nレベル[i] > 0)
t小文字表示(TJAPlayer3.stage選曲.r現在選択中のスコア..nレベル[i].ToString(), 498 + i * 144, 434.5f);
if (TJAPlayer3.stage選曲.r現在選択中の曲.arスコア[i]..nスコアランク[i] != 0)
TJAPlayer3.Tx.SongSelect_ScoreRank.t2D描画(TJAPlayer3.app.Device, 467 + screenPos * 144, 281, new RectangleF(0, (TJAPlayer3.stage選曲.r現在選択中の曲.arスコア[i]..nスコアランク[i] - 1) * 42.71f, 50, 42.71f));
if (level > 0)
t小文字表示(TJAPlayer3.stage選曲.r現在選択中のスコア..nレベル[i].ToString(), 498 + screenPos * 143, 434.5f);
for (int g = 0; g < 10; g++) for (int g = 0; g < 10; g++)
{ {
if (TJAPlayer3.stage選曲.r現在選択中のスコア..nレベル[i] > g + 10) if (level > g + 10)
TJAPlayer3.Tx.Difficulty_Star_Red.t2D描画(TJAPlayer3.app.Device, 444 + i * 143 + g * 10, 459); {
else if (TJAPlayer3.stage選曲.r現在選択中のスコア..nレベル[i] > g) TJAPlayer3.Tx.Difficulty_Star.color4 = new Color4(1f, 0.2f, 0.2f);
TJAPlayer3.Tx.Difficulty_Star.t2D描画(TJAPlayer3.app.Device, 444 + i * 143 + g * 10, 459); TJAPlayer3.Tx.Difficulty_Star?.t2D描画(TJAPlayer3.app.Device, 444 + screenPos * 143 + g * 10, 459);
} }
} else if (level > g)
{
TJAPlayer3.Tx.Difficulty_Star.color4 = new Color4(1f, 1f, 1f);
TJAPlayer3.Tx.Difficulty_Star?.t2D描画(TJAPlayer3.app.Device, 444 + screenPos * 143 + g * 10, 459);
}
if (b裏譜面)
{
if (TJAPlayer3.stage選曲.r現在選択中のスコア..nレベル[4] > 0)
TJAPlayer3.Tx.Difficulty_Bar.color4 = new Color4(1.0f, 1.0f, 1.0f);
else
TJAPlayer3.Tx.Difficulty_Bar.color4 = new Color4(0.5f, 0.5f, 0.5f);
TJAPlayer3.Tx.Difficulty_Bar.t2D描画(TJAPlayer3.app.Device, 855, 270, new RectangleF(743, 0, 138, 236));
TJAPlayer3.Tx.Difficulty_Crown.t2D描画(TJAPlayer3.app.Device, 445 + 3 * 144, 284, new RectangleF(TJAPlayer3.stage選曲.r現在選択中の曲.arスコア[3]..nクリア[4] * 24.5f, 0, 24.5f, 26));
if (TJAPlayer3.stage選曲.r現在選択中の曲.arスコア[3]..nスコアランク[4] != 0)
TJAPlayer3.Tx.SongSelect_ScoreRank.t2D描画(TJAPlayer3.app.Device, 467 + 3 * 144, 281, new RectangleF(0, (TJAPlayer3.stage選曲.r現在選択中の曲.arスコア[3]..nスコアランク[4] - 1) * 42.71f, 50, 42.71f));
if (TJAPlayer3.stage選曲.r現在選択中のスコア..nレベル[4] > 0)
t小文字表示(TJAPlayer3.stage選曲.r現在選択中のスコア..nレベル[4].ToString(), 498 + 3 * 143, 434.5f);
for (int g = 0; g < 10; g++)
{
if (TJAPlayer3.stage選曲.r現在選択中のスコア..nレベル[4] > g + 10)
TJAPlayer3.Tx.Difficulty_Star_Red.t2D描画(TJAPlayer3.app.Device, 444 + 3 * 143 + g * 10, 459);
else if (TJAPlayer3.stage選曲.r現在選択中のスコア..nレベル[4] > g)
TJAPlayer3.Tx.Difficulty_Star.t2D描画(TJAPlayer3.app.Device, 444 + 3 * 143 + g * 10, 459);
}
}
else
{
if (TJAPlayer3.stage選曲.r現在選択中のスコア..nレベル[3] > 0)
TJAPlayer3.Tx.Difficulty_Bar.color4 = new Color4(1.0f, 1.0f, 1.0f);
else
TJAPlayer3.Tx.Difficulty_Bar.color4 = new Color4(0.5f, 0.5f, 0.5f);
TJAPlayer3.Tx.Difficulty_Bar.t2D描画(TJAPlayer3.app.Device, 855, 270, new RectangleF(600, 0, 143, 236));
TJAPlayer3.Tx.Difficulty_Crown.t2D描画(TJAPlayer3.app.Device, 445 + 3 * 144, 284, new RectangleF(TJAPlayer3.stage選曲.r現在選択中の曲.arスコア[3]..nクリア[3] * 24.5f, 0, 24.5f, 26));
if (TJAPlayer3.stage選曲.r現在選択中の曲.arスコア[3]..nスコアランク[3] != 0)
TJAPlayer3.Tx.SongSelect_ScoreRank.t2D描画(TJAPlayer3.app.Device, 467 + 3 * 144, 281, new RectangleF(0, (TJAPlayer3.stage選曲.r現在選択中の曲.arスコア[3]..nスコアランク[3] - 1) * 42.71f, 50, 42.71f));
if (TJAPlayer3.stage選曲.r現在選択中のスコア..nレベル[3] > 0)
t小文字表示(TJAPlayer3.stage選曲.r現在選択中のスコア..nレベル[3].ToString(), 498 + 3 * 143, 434.5f);
for (int g = 0; g < 10; g++)
{
if (TJAPlayer3.stage選曲.r現在選択中のスコア..nレベル[3] > g + 10)
TJAPlayer3.Tx.Difficulty_Star_Red.t2D描画(TJAPlayer3.app.Device, 444 + 3 * 143 + g * 10, 459);
else if (TJAPlayer3.stage選曲.r現在選択中のスコア..nレベル[3] > g)
TJAPlayer3.Tx.Difficulty_Star.t2D描画(TJAPlayer3.app.Device, 444 + 3 * 143 + g * 10, 459);
} }
} }