From 4a77eaa12cbef84bec78a2616e2b0844f6946e00 Mon Sep 17 00:00:00 2001 From: basketballsmash-yt <80083028+basketballsmash-yt@users.noreply.github.com> Date: Thu, 25 Nov 2021 17:07:02 +0900 Subject: [PATCH] =?UTF-8?q?Update=20CStage=E7=B5=90=E6=9E=9C.cs?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit remove block of legacy code --- TJAPlayer3/Stages/08.Result/CStage結果.cs | 1071 ++++++++++----------- 1 file changed, 530 insertions(+), 541 deletions(-) diff --git a/TJAPlayer3/Stages/08.Result/CStage結果.cs b/TJAPlayer3/Stages/08.Result/CStage結果.cs index bce2df61..3dba4a71 100644 --- a/TJAPlayer3/Stages/08.Result/CStage結果.cs +++ b/TJAPlayer3/Stages/08.Result/CStage結果.cs @@ -1,164 +1,164 @@ -using System; -using System.IO; -using System.Diagnostics; -using FDK; -using System.Drawing; -using System.Collections.Generic; -using static TJAPlayer3.CActSelect曲リスト; - -namespace TJAPlayer3 -{ - internal class CStage結果 : CStage - { - // プロパティ - - public STDGBVALUE b新記録スキル; - public STDGBVALUE b新記録スコア; - public STDGBVALUE b新記録ランク; - public STDGBVALUE fPerfect率; - public STDGBVALUE fGreat率; - public STDGBVALUE fGood率; - public STDGBVALUE fPoor率; - public STDGBVALUE fMiss率; - public STDGBVALUE bオート; // #23596 10.11.16 add ikanick - // 10.11.17 change (int to bool) ikanick - - public STDGBVALUE nランク値; - public STDGBVALUE n演奏回数; - public STDGBVALUE nScoreRank; - public int n総合ランク値; - public int nクリア; //0:未クリア 1:クリア 2:フルコンボ 3:ドンダフルコンボ - public int nスコアランク; //0:未取得 1:白粋 2:銅粋 3:銀粋 4:金雅 5:桃雅 6:紫雅 7:虹極 - public CDTX.CChip[] r空うちドラムチップ; - public STDGBVALUE st演奏記録; - - - // コンストラクタ - - public CStage結果() - { - this.st演奏記録.Drums = new CScoreIni.C演奏記録(); - this.st演奏記録.Guitar = new CScoreIni.C演奏記録(); - this.st演奏記録.Bass = new CScoreIni.C演奏記録(); - this.st演奏記録.Taiko = new CScoreIni.C演奏記録(); - this.r空うちドラムチップ = new CDTX.CChip[10]; - this.n総合ランク値 = -1; - this.nチャンネル0Atoレーン07 = new int[] { 1, 2, 3, 4, 5, 7, 6, 1, 7, 0 }; - base.eステージID = CStage.Eステージ.結果; - base.eフェーズID = CStage.Eフェーズ.共通_通常状態; - base.b活性化してない = true; - base.list子Activities.Add(this.actParameterPanel = new CActResultParameterPanel()); - base.list子Activities.Add(this.actSongBar = new CActResultSongBar()); - base.list子Activities.Add(this.actOption = new CActオプションパネル()); - base.list子Activities.Add(this.actFI = new CActFIFOResult()); - base.list子Activities.Add(this.actFO = new CActFIFOBlack()); - } - - - // CStage 実装 - - public override void On活性化() - { - +using System; +using System.IO; +using System.Diagnostics; +using FDK; +using System.Drawing; +using System.Collections.Generic; +using static TJAPlayer3.CActSelect曲リスト; + +namespace TJAPlayer3 +{ + internal class CStage結果 : CStage + { + // プロパティ + + public STDGBVALUE b新記録スキル; + public STDGBVALUE b新記録スコア; + public STDGBVALUE b新記録ランク; + public STDGBVALUE fPerfect率; + public STDGBVALUE fGreat率; + public STDGBVALUE fGood率; + public STDGBVALUE fPoor率; + public STDGBVALUE fMiss率; + public STDGBVALUE bオート; // #23596 10.11.16 add ikanick + // 10.11.17 change (int to bool) ikanick + + public STDGBVALUE nランク値; + public STDGBVALUE n演奏回数; + public STDGBVALUE nScoreRank; + public int n総合ランク値; + public int nクリア; //0:未クリア 1:クリア 2:フルコンボ 3:ドンダフルコンボ + public int nスコアランク; //0:未取得 1:白粋 2:銅粋 3:銀粋 4:金雅 5:桃雅 6:紫雅 7:虹極 + public CDTX.CChip[] r空うちドラムチップ; + public STDGBVALUE st演奏記録; + + + // コンストラクタ + + public CStage結果() + { + this.st演奏記録.Drums = new CScoreIni.C演奏記録(); + this.st演奏記録.Guitar = new CScoreIni.C演奏記録(); + this.st演奏記録.Bass = new CScoreIni.C演奏記録(); + this.st演奏記録.Taiko = new CScoreIni.C演奏記録(); + this.r空うちドラムチップ = new CDTX.CChip[10]; + this.n総合ランク値 = -1; + this.nチャンネル0Atoレーン07 = new int[] { 1, 2, 3, 4, 5, 7, 6, 1, 7, 0 }; + base.eステージID = CStage.Eステージ.結果; + base.eフェーズID = CStage.Eフェーズ.共通_通常状態; + base.b活性化してない = true; + base.list子Activities.Add(this.actParameterPanel = new CActResultParameterPanel()); + base.list子Activities.Add(this.actSongBar = new CActResultSongBar()); + base.list子Activities.Add(this.actOption = new CActオプションパネル()); + base.list子Activities.Add(this.actFI = new CActFIFOResult()); + base.list子Activities.Add(this.actFO = new CActFIFOBlack()); + } + + + // CStage 実装 + + public override void On活性化() + { + if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] != (int)Difficulty.Dan && TJAPlayer3.stage選曲.n確定された曲の難易度[0] != (int)Difficulty.Tower) - TJAPlayer3.Skin.bgmリザルトイン音.t再生する(); - - Trace.TraceInformation("結果ステージを活性化します。"); - Trace.Indent(); - b最近遊んだ曲追加済み = false; - try - { - { - #region [ 初期化 ] - //--------------------- - this.eフェードアウト完了時の戻り値 = E戻り値.継続; - this.bアニメが完了 = false; - this.bIsCheckedWhetherResultScreenShouldSaveOrNot = false; // #24609 2011.3.14 yyagi - this.n最後に再生したHHのWAV番号 = -1; - this.n最後に再生したHHのチャンネル番号 = 0; - - for (int i = 0; i < 3; i++) - { - this.b新記録スキル[i] = false; - this.b新記録スコア[i] = false; - this.b新記録ランク[i] = false; - } - //--------------------- - #endregion - - #region [ 結果の計算 ] - //--------------------- - for (int i = 0; i < 3; i++) - { - this.nランク値[i] = -1; - this.fPerfect率[i] = this.fGreat率[i] = this.fGood率[i] = this.fPoor率[i] = this.fMiss率[i] = 0.0f; // #28500 2011.5.24 yyagi - if ((((i != 0) || (TJAPlayer3.DTX.bチップがある.Drums)))) - { - CScoreIni.C演奏記録 part = this.st演奏記録[i]; - bool bIsAutoPlay = true; - switch (i) - { - case 0: - bIsAutoPlay = TJAPlayer3.ConfigIni.b太鼓パートAutoPlay; - break; - - case 1: - bIsAutoPlay = TJAPlayer3.ConfigIni.b太鼓パートAutoPlay; - break; - - case 2: - bIsAutoPlay = TJAPlayer3.ConfigIni.b太鼓パートAutoPlay; - break; - } - this.fPerfect率[i] = bIsAutoPlay ? 0f : ((100f * part.nPerfect数) / ((float)part.n全チップ数)); - this.fGreat率[i] = bIsAutoPlay ? 0f : ((100f * part.nGreat数) / ((float)part.n全チップ数)); - this.fGood率[i] = bIsAutoPlay ? 0f : ((100f * part.nGood数) / ((float)part.n全チップ数)); - this.fPoor率[i] = bIsAutoPlay ? 0f : ((100f * part.nPoor数) / ((float)part.n全チップ数)); - this.fMiss率[i] = bIsAutoPlay ? 0f : ((100f * part.nMiss数) / ((float)part.n全チップ数)); - this.bオート[i] = bIsAutoPlay; // #23596 10.11.16 add ikanick そのパートがオートなら1 - // 10.11.17 change (int to bool) ikanick - this.nランク値[i] = CScoreIni.tランク値を計算して返す(part); - } - } - this.n総合ランク値 = CScoreIni.t総合ランク値を計算して返す(this.st演奏記録.Drums, this.st演奏記録.Guitar, this.st演奏記録.Bass); - if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] != (int)Difficulty.Dan && TJAPlayer3.stage選曲.n確定された曲の難易度[0] != (int)Difficulty.Tower) - { - this.nクリア = (this.st演奏記録.Drums.nMiss数 == 0 && this.st演奏記録.Drums.fゲージ == 100) ? this.st演奏記録.Drums.nGreat数 == 0 ? 3 : 2 : this.st演奏記録.Drums.fゲージ >= 80 ? 1 : 0; - - if (this.st演奏記録.Drums.nスコア < 500000) - { - this.nスコアランク = 0; - } - else - { - for (int i = 0; i < 7; i++) - { - if (this.st演奏記録.Drums.nスコア >= TJAPlayer3.stage演奏ドラム画面.ScoreRank.ScoreRank[i]) - { - this.nスコアランク = i + 1; - } - } - } - } - //--------------------- - #endregion - - #region [ .score.ini の作成と出力 ] - //--------------------- - string str = TJAPlayer3.DTX.strファイル名の絶対パス + ".score.ini"; - CScoreIni ini = new CScoreIni(str); - - bool[] b今までにフルコンボしたことがある = new bool[] { false, false, false }; - - // フルコンボチェックならびに新記録ランクチェックは、ini.Record[] が、スコアチェックや演奏型スキルチェックの IF 内で書き直されてしまうよりも前に行う。(2010.9.10) - - b今までにフルコンボしたことがある[0] = ini.stセクション[0].bフルコンボである | ini.stセクション[0].bフルコンボである; - - // #24459 上記の条件だと[HiSkill.***]でのランクしかチェックしていないので、BestRankと比較するよう変更。 - if (this.nランク値[0] >= 0 && ini.stファイル.BestRank[0] > this.nランク値[0]) // #24459 2011.3.1 yyagi update BestRank - { - this.b新記録ランク[0] = true; - ini.stファイル.BestRank[0] = this.nランク値[0]; + TJAPlayer3.Skin.bgmリザルトイン音.t再生する(); + + Trace.TraceInformation("結果ステージを活性化します。"); + Trace.Indent(); + b最近遊んだ曲追加済み = false; + try + { + { + #region [ 初期化 ] + //--------------------- + this.eフェードアウト完了時の戻り値 = E戻り値.継続; + this.bアニメが完了 = false; + this.bIsCheckedWhetherResultScreenShouldSaveOrNot = false; // #24609 2011.3.14 yyagi + this.n最後に再生したHHのWAV番号 = -1; + this.n最後に再生したHHのチャンネル番号 = 0; + + for (int i = 0; i < 3; i++) + { + this.b新記録スキル[i] = false; + this.b新記録スコア[i] = false; + this.b新記録ランク[i] = false; + } + //--------------------- + #endregion + + #region [ 結果の計算 ] + //--------------------- + for (int i = 0; i < 3; i++) + { + this.nランク値[i] = -1; + this.fPerfect率[i] = this.fGreat率[i] = this.fGood率[i] = this.fPoor率[i] = this.fMiss率[i] = 0.0f; // #28500 2011.5.24 yyagi + if ((((i != 0) || (TJAPlayer3.DTX.bチップがある.Drums)))) + { + CScoreIni.C演奏記録 part = this.st演奏記録[i]; + bool bIsAutoPlay = true; + switch (i) + { + case 0: + bIsAutoPlay = TJAPlayer3.ConfigIni.b太鼓パートAutoPlay; + break; + + case 1: + bIsAutoPlay = TJAPlayer3.ConfigIni.b太鼓パートAutoPlay; + break; + + case 2: + bIsAutoPlay = TJAPlayer3.ConfigIni.b太鼓パートAutoPlay; + break; + } + this.fPerfect率[i] = bIsAutoPlay ? 0f : ((100f * part.nPerfect数) / ((float)part.n全チップ数)); + this.fGreat率[i] = bIsAutoPlay ? 0f : ((100f * part.nGreat数) / ((float)part.n全チップ数)); + this.fGood率[i] = bIsAutoPlay ? 0f : ((100f * part.nGood数) / ((float)part.n全チップ数)); + this.fPoor率[i] = bIsAutoPlay ? 0f : ((100f * part.nPoor数) / ((float)part.n全チップ数)); + this.fMiss率[i] = bIsAutoPlay ? 0f : ((100f * part.nMiss数) / ((float)part.n全チップ数)); + this.bオート[i] = bIsAutoPlay; // #23596 10.11.16 add ikanick そのパートがオートなら1 + // 10.11.17 change (int to bool) ikanick + this.nランク値[i] = CScoreIni.tランク値を計算して返す(part); + } + } + this.n総合ランク値 = CScoreIni.t総合ランク値を計算して返す(this.st演奏記録.Drums, this.st演奏記録.Guitar, this.st演奏記録.Bass); + if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] != (int)Difficulty.Dan && TJAPlayer3.stage選曲.n確定された曲の難易度[0] != (int)Difficulty.Tower) + { + this.nクリア = (this.st演奏記録.Drums.nMiss数 == 0 && this.st演奏記録.Drums.fゲージ == 100) ? this.st演奏記録.Drums.nGreat数 == 0 ? 3 : 2 : this.st演奏記録.Drums.fゲージ >= 80 ? 1 : 0; + + if (this.st演奏記録.Drums.nスコア < 500000) + { + this.nスコアランク = 0; + } + else + { + for (int i = 0; i < 7; i++) + { + if (this.st演奏記録.Drums.nスコア >= TJAPlayer3.stage演奏ドラム画面.ScoreRank.ScoreRank[i]) + { + this.nスコアランク = i + 1; + } + } + } + } + //--------------------- + #endregion + + #region [ .score.ini の作成と出力 ] + //--------------------- + string str = TJAPlayer3.DTX.strファイル名の絶対パス + ".score.ini"; + CScoreIni ini = new CScoreIni(str); + + bool[] b今までにフルコンボしたことがある = new bool[] { false, false, false }; + + // フルコンボチェックならびに新記録ランクチェックは、ini.Record[] が、スコアチェックや演奏型スキルチェックの IF 内で書き直されてしまうよりも前に行う。(2010.9.10) + + b今までにフルコンボしたことがある[0] = ini.stセクション[0].bフルコンボである | ini.stセクション[0].bフルコンボである; + + // #24459 上記の条件だと[HiSkill.***]でのランクしかチェックしていないので、BestRankと比較するよう変更。 + if (this.nランク値[0] >= 0 && ini.stファイル.BestRank[0] > this.nランク値[0]) // #24459 2011.3.1 yyagi update BestRank + { + this.b新記録ランク[0] = true; + ini.stファイル.BestRank[0] = this.nランク値[0]; } @@ -255,75 +255,64 @@ namespace TJAPlayer3 } // 新記録スコアチェック - if ((this.st演奏記録[0].nスコア > ini.stセクション[0].nスコア) && !TJAPlayer3.ConfigIni.b太鼓パートAutoPlay) - { - this.b新記録スコア[0] = true; - ini.stセクション[0] = this.st演奏記録[0]; - } - - // Header hi-score - if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] != (int)Difficulty.Dan && TJAPlayer3.stage選曲.n確定された曲の難易度[0] != (int)Difficulty.Tower) - if (this.st演奏記録[0].nスコア > ini.stセクション[0].nスコア) - this.st演奏記録[0].nハイスコア[TJAPlayer3.stage選曲.n確定された曲の難易度[0]] = (int)st演奏記録[0].nスコア; - - // 新記録スキルチェック - if (this.st演奏記録[0].db演奏型スキル値 > ini.stセクション[0].db演奏型スキル値) - { - this.b新記録スキル[0] = true; - ini.stセクション[0] = this.st演奏記録[0]; - } - - // Clear & Score rank (Legacy) - /* - if(TJAPlayer3.stage選曲.n確定された曲の難易度[0] != (int)Difficulty.Dan && TJAPlayer3.stage選曲.n確定された曲の難易度[0] != (int)Difficulty.Tower) - { - if (this.nクリア > ini.stセクション[0].nクリア[TJAPlayer3.stage選曲.n確定された曲の難易度[0]]) - ini.stセクション[0].nクリア[TJAPlayer3.stage選曲.n確定された曲の難易度[0]] = this.nクリア; - if (this.nスコアランク > ini.stセクション[0].nスコアランク[TJAPlayer3.stage選曲.n確定された曲の難易度[0]]) - ini.stセクション[0].nスコアランク[TJAPlayer3.stage選曲.n確定された曲の難易度[0]] = this.nスコアランク; - } - */ - - // ラストプレイ #23595 2011.1.9 ikanick - // オートじゃなければプレイ結果を書き込む - if (TJAPlayer3.ConfigIni.b太鼓パートAutoPlay == false) - { - ini.stセクション[0] = this.st演奏記録[0]; - } - - // #23596 10.11.16 add ikanick オートじゃないならクリア回数を1増やす - // 11.02.05 bオート to t更新条件を取得する use ikanick - bool[] b更新が必要か否か = new bool[3]; - CScoreIni.t更新条件を取得する(out b更新が必要か否か[0], out b更新が必要か否か[1], out b更新が必要か否か[2]); - - if (b更新が必要か否か[0]) - { - ini.stファイル.ClearCountDrums++; - } - //---------------------------------------------------------------------/ - if (TJAPlayer3.ConfigIni.bScoreIniを出力する) - ini.t書き出し(str); - - //--------------------- - #endregion - - #region [ リザルト画面への演奏回数の更新 #24281 2011.1.30 yyagi] - if (TJAPlayer3.ConfigIni.bScoreIniを出力する) - { - this.n演奏回数.Drums = ini.stファイル.PlayCountDrums; - this.n演奏回数.Guitar = ini.stファイル.PlayCountGuitar; - this.n演奏回数.Bass = ini.stファイル.PlayCountBass; - } - #endregion - } - - // Discord Presenseの更新 + if ((this.st演奏記録[0].nスコア > ini.stセクション[0].nスコア) && !TJAPlayer3.ConfigIni.b太鼓パートAutoPlay) + { + this.b新記録スコア[0] = true; + ini.stセクション[0] = this.st演奏記録[0]; + } + + // Header hi-score + if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] != (int)Difficulty.Dan && TJAPlayer3.stage選曲.n確定された曲の難易度[0] != (int)Difficulty.Tower) + if (this.st演奏記録[0].nスコア > ini.stセクション[0].nスコア) + this.st演奏記録[0].nハイスコア[TJAPlayer3.stage選曲.n確定された曲の難易度[0]] = (int)st演奏記録[0].nスコア; + + // 新記録スキルチェック + if (this.st演奏記録[0].db演奏型スキル値 > ini.stセクション[0].db演奏型スキル値) + { + this.b新記録スキル[0] = true; + ini.stセクション[0] = this.st演奏記録[0]; + } + + // ラストプレイ #23595 2011.1.9 ikanick + // オートじゃなければプレイ結果を書き込む + if (TJAPlayer3.ConfigIni.b太鼓パートAutoPlay == false) + { + ini.stセクション[0] = this.st演奏記録[0]; + } + + // #23596 10.11.16 add ikanick オートじゃないならクリア回数を1増やす + // 11.02.05 bオート to t更新条件を取得する use ikanick + bool[] b更新が必要か否か = new bool[3]; + CScoreIni.t更新条件を取得する(out b更新が必要か否か[0], out b更新が必要か否か[1], out b更新が必要か否か[2]); + + if (b更新が必要か否か[0]) + { + ini.stファイル.ClearCountDrums++; + } + //---------------------------------------------------------------------/ + if (TJAPlayer3.ConfigIni.bScoreIniを出力する) + ini.t書き出し(str); + + //--------------------- + #endregion + + #region [ リザルト画面への演奏回数の更新 #24281 2011.1.30 yyagi] + if (TJAPlayer3.ConfigIni.bScoreIniを出力する) + { + this.n演奏回数.Drums = ini.stファイル.PlayCountDrums; + this.n演奏回数.Guitar = ini.stファイル.PlayCountGuitar; + this.n演奏回数.Bass = ini.stファイル.PlayCountBass; + } + #endregion + } + + // Discord Presenseの更新 Discord.UpdatePresence(TJAPlayer3.DTX.TITLE + ".tja", Properties.Discord.Stage_Result + (TJAPlayer3.ConfigIni.b太鼓パートAutoPlay == true ? " (" + Properties.Discord.Info_IsAuto + ")" : ""), TJAPlayer3.StartupTime); - #region [Earned medals] + #region [Earned medals] - this.nEarnedMedalsCount[0] = 0; + this.nEarnedMedalsCount[0] = 0; this.nEarnedMedalsCount[1] = 0; // Medals (implement P2 later) @@ -492,44 +481,44 @@ namespace TJAPlayer3 TJAPlayer3.stage選曲.act曲リスト.bFirstCrownLoad = false; - base.On活性化(); - } - finally - { - Trace.TraceInformation("結果ステージの活性化を完了しました。"); - Trace.Unindent(); - } - } - public override void On非活性化() - { - if (this.rResultSound != null) - { - TJAPlayer3.Sound管理.tサウンドを破棄する(this.rResultSound); - this.rResultSound = null; - } - base.On非活性化(); - } - public override void OnManagedリソースの作成() - { - if (!base.b活性化してない) - { - b音声再生 = false; + base.On活性化(); + } + finally + { + Trace.TraceInformation("結果ステージの活性化を完了しました。"); + Trace.Unindent(); + } + } + public override void On非活性化() + { + if (this.rResultSound != null) + { + TJAPlayer3.Sound管理.tサウンドを破棄する(this.rResultSound); + this.rResultSound = null; + } + base.On非活性化(); + } + public override void OnManagedリソースの作成() + { + if (!base.b活性化してない) + { + b音声再生 = false; this.EndAnime = false; //this.tx背景 = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\8_background.png" ) ); //this.tx上部パネル = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\8_header.png" ) ); //this.tx下部パネル = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\8_footer panel.png" ), true ); //this.txオプションパネル = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\Screen option panels.png" ) ); - ctShine_Plate = new CCounter(0, 1000, 1, TJAPlayer3.Timer); - ctWork_Plate = new CCounter(0, 4000, 1, TJAPlayer3.Timer); - - if (TJAPlayer3.Tx.TowerResult_Background != null) - ctTower_Animation = new CCounter(0, TJAPlayer3.Tx.TowerResult_Background.szテクスチャサイズ.Height - 720, 25, TJAPlayer3.Timer); + ctShine_Plate = new CCounter(0, 1000, 1, TJAPlayer3.Timer); + ctWork_Plate = new CCounter(0, 4000, 1, TJAPlayer3.Timer); + + if (TJAPlayer3.Tx.TowerResult_Background != null) + ctTower_Animation = new CCounter(0, TJAPlayer3.Tx.TowerResult_Background.szテクスチャサイズ.Height - 720, 25, TJAPlayer3.Timer); else - ctTower_Animation = new CCounter(); - - Dan_Plate = TJAPlayer3.tテクスチャの生成(Path.GetDirectoryName(TJAPlayer3.DTX.strファイル名の絶対パス) + @"\Dan_Plate.png"); - + ctTower_Animation = new CCounter(); + + Dan_Plate = TJAPlayer3.tテクスチャの生成(Path.GetDirectoryName(TJAPlayer3.DTX.strファイル名の絶対パス) + @"\Dan_Plate.png"); + if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Tower) { if (!string.IsNullOrEmpty(TJAPlayer3.ConfigIni.FontName)) @@ -554,71 +543,71 @@ namespace TJAPlayer3 this.ttkScoreCount = new TitleTextureKey(TJAPlayer3.stage結果.st演奏記録.Drums.nスコア.ToString(), pfTowerText, Color.Black, Color.Transparent, 700); } - base.OnManagedリソースの作成(); - } - } - public override void OnManagedリソースの解放() - { - if (!base.b活性化してない) - { - if (this.ct登場用 != null) - { - this.ct登場用 = null; + base.OnManagedリソースの作成(); + } + } + public override void OnManagedリソースの解放() + { + if (!base.b活性化してない) + { + if (this.ct登場用 != null) + { + this.ct登場用 = null; } //CDTXMania.tテクスチャの解放( ref this.tx背景 ); //CDTXMania.tテクスチャの解放( ref this.tx上部パネル ); //CDTXMania.tテクスチャの解放( ref this.tx下部パネル ); //CDTXMania.tテクスチャの解放( ref this.txオプションパネル ); - Dan_Plate?.Dispose(); - + Dan_Plate?.Dispose(); + if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Tower) { TJAPlayer3.t安全にDisposeする(ref pfTowerText); TJAPlayer3.t安全にDisposeする(ref pfTowerText48); TJAPlayer3.t安全にDisposeする(ref pfTowerText72); - } - - base.OnManagedリソースの解放(); - } - } - public override int On進行描画() - { - if (!base.b活性化してない) - { - - ctShine_Plate.t進行Loop(); + } + + base.OnManagedリソースの解放(); + } + } + public override int On進行描画() + { + if (!base.b活性化してない) + { + + ctShine_Plate.t進行Loop(); + + int num; + if (base.b初めての進行描画) + { + this.ct登場用 = new CCounter(0, 100, 5, TJAPlayer3.Timer); + this.actFI.tフェードイン開始(); + base.eフェーズID = CStage.Eフェーズ.共通_フェードイン; + + if (this.rResultSound != null) + { + this.rResultSound.t再生を開始する(); + } + + base.b初めての進行描画 = false; + } + this.bアニメが完了 = true; + if (this.ct登場用.b進行中) + { + this.ct登場用.t進行(); + if (this.ct登場用.b終了値に達した) + { + this.ct登場用.t停止(); + } + else + { + this.bアニメが完了 = false; + } + } + + // 描画 - int num; - if (base.b初めての進行描画) - { - this.ct登場用 = new CCounter(0, 100, 5, TJAPlayer3.Timer); - this.actFI.tフェードイン開始(); - base.eフェーズID = CStage.Eフェーズ.共通_フェードイン; - if (this.rResultSound != null) - { - this.rResultSound.t再生を開始する(); - } - - base.b初めての進行描画 = false; - } - this.bアニメが完了 = true; - if (this.ct登場用.b進行中) - { - this.ct登場用.t進行(); - if (this.ct登場用.b終了値に達した) - { - this.ct登場用.t停止(); - } - else - { - this.bアニメが完了 = false; - } - } - - // 描画 - - if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] != (int)Difficulty.Dan && TJAPlayer3.stage選曲.n確定された曲の難易度[0] != (int)Difficulty.Tower) { #region [Ensou game result screen] @@ -639,7 +628,7 @@ namespace TJAPlayer3 if (this.actParameterPanel.ct全体進行.n現在の値 >= MountainAppearValue) { - #region [Mountain Bump] + #region [Mountain Bump] if (this.st演奏記録.Drums.fゲージ >= 80.0) { @@ -669,7 +658,7 @@ namespace TJAPlayer3 } } - #endregion + #endregion } else { @@ -838,7 +827,7 @@ namespace TJAPlayer3 TJAPlayer3.Tx.DanResult_Background.t2D描画(TJAPlayer3.app.Device, 0, 0); TJAPlayer3.Tx.DanResult_SongPanel_Base.t2D描画(TJAPlayer3.app.Device, 0, 0); - #region [DanPlate] + #region [DanPlate] // To add : Animation at 1 sec @@ -972,69 +961,69 @@ namespace TJAPlayer3 - if (this.actParameterPanel.On進行描画() == 0) - { - this.bアニメが完了 = false; - } - - if (this.actSongBar.On進行描画() == 0) - { - this.bアニメが完了 = false; - } - - #region ネームプレート - for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++) - { - // To change while implementing the 2P result screen - + if (this.actParameterPanel.On進行描画() == 0) + { + this.bアニメが完了 = false; + } + + if (this.actSongBar.On進行描画() == 0) + { + this.bアニメが完了 = false; + } + + #region ネームプレート + for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++) + { + // To change while implementing the 2P result screen + TJAPlayer3.NamePlate.tNamePlateDraw(28, 621, 0); // TJAPlayer3.NamePlate.tNamePlateDraw(28, 621, i); - } - #endregion - - if (base.eフェーズID == CStage.Eフェーズ.共通_フェードイン) - { - if (this.actFI.On進行描画() != 0) - { - base.eフェーズID = CStage.Eフェーズ.共通_通常状態; - } - } - else if ((base.eフェーズID == CStage.Eフェーズ.共通_フェードアウト)) //&& ( this.actFO.On進行描画() != 0 ) ) - { - return (int)this.eフェードアウト完了時の戻り値; - } - - #region [ #24609 2011.3.14 yyagi ランク更新or演奏型スキル更新時、リザルト画像をpngで保存する ] - if (this.bアニメが完了 == true && this.bIsCheckedWhetherResultScreenShouldSaveOrNot == false // #24609 2011.3.14 yyagi; to save result screen in case BestRank or HiSkill. - && TJAPlayer3.ConfigIni.bScoreIniを出力する - && TJAPlayer3.ConfigIni.bIsAutoResultCapture) // #25399 2011.6.9 yyagi - { - CheckAndSaveResultScreen(true); - this.bIsCheckedWhetherResultScreenShouldSaveOrNot = true; - } - #endregion - - // キー入力 - - if (TJAPlayer3.act現在入力を占有中のプラグイン == null) - { - if (base.eフェーズID == CStage.Eフェーズ.共通_通常状態) - { - if (TJAPlayer3.Input管理.Keyboard.bキーが押された((int)SlimDXKeys.Key.Escape)) - { - TJAPlayer3.Skin.bgmリザルト音.t停止する(); + } + #endregion + + if (base.eフェーズID == CStage.Eフェーズ.共通_フェードイン) + { + if (this.actFI.On進行描画() != 0) + { + base.eフェーズID = CStage.Eフェーズ.共通_通常状態; + } + } + else if ((base.eフェーズID == CStage.Eフェーズ.共通_フェードアウト)) //&& ( this.actFO.On進行描画() != 0 ) ) + { + return (int)this.eフェードアウト完了時の戻り値; + } + + #region [ #24609 2011.3.14 yyagi ランク更新or演奏型スキル更新時、リザルト画像をpngで保存する ] + if (this.bアニメが完了 == true && this.bIsCheckedWhetherResultScreenShouldSaveOrNot == false // #24609 2011.3.14 yyagi; to save result screen in case BestRank or HiSkill. + && TJAPlayer3.ConfigIni.bScoreIniを出力する + && TJAPlayer3.ConfigIni.bIsAutoResultCapture) // #25399 2011.6.9 yyagi + { + CheckAndSaveResultScreen(true); + this.bIsCheckedWhetherResultScreenShouldSaveOrNot = true; + } + #endregion + + // キー入力 + + if (TJAPlayer3.act現在入力を占有中のプラグイン == null) + { + if (base.eフェーズID == CStage.Eフェーズ.共通_通常状態) + { + if (TJAPlayer3.Input管理.Keyboard.bキーが押された((int)SlimDXKeys.Key.Escape)) + { + TJAPlayer3.Skin.bgmリザルト音.t停止する(); TJAPlayer3.Skin.bgmDanResult.t停止する(); - TJAPlayer3.Skin.bgmTowerResult.t停止する(); - TJAPlayer3.Skin.sound決定音.t再生する(); - actFI.tフェードアウト開始(); - t後処理(); - base.eフェーズID = CStage.Eフェーズ.共通_フェードアウト; - this.eフェードアウト完了時の戻り値 = E戻り値.完了; - } - if (((TJAPlayer3.Pad.b押されたDGB(Eパッド.CY) || TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.RD)) || (TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.LC) || (TJAPlayer3.Pad.b押されたDGB(Eパッド.LRed) || (TJAPlayer3.Pad.b押されたDGB(Eパッド.RRed) || TJAPlayer3.Input管理.Keyboard.bキーが押された((int)SlimDXKeys.Key.Return)))))) - { - TJAPlayer3.Skin.sound決定音.t再生する(); - + TJAPlayer3.Skin.bgmTowerResult.t停止する(); + TJAPlayer3.Skin.sound決定音.t再生する(); + actFI.tフェードアウト開始(); + t後処理(); + base.eフェーズID = CStage.Eフェーズ.共通_フェードアウト; + this.eフェードアウト完了時の戻り値 = E戻り値.完了; + } + if (((TJAPlayer3.Pad.b押されたDGB(Eパッド.CY) || TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.RD)) || (TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.LC) || (TJAPlayer3.Pad.b押されたDGB(Eパッド.LRed) || (TJAPlayer3.Pad.b押されたDGB(Eパッド.RRed) || TJAPlayer3.Input管理.Keyboard.bキーが押された((int)SlimDXKeys.Key.Return)))))) + { + TJAPlayer3.Skin.sound決定音.t再生する(); + if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] < (int)Difficulty.Tower && this.actParameterPanel.ct全体進行.n現在の値 < this.actParameterPanel.MountainAppearValue) { @@ -1059,33 +1048,33 @@ namespace TJAPlayer3 // TJAPlayer3.Skin.sound決定音.t再生する(); } } - - } - } - } - } - return 0; - } - - public void t後処理() - { - - if (!b最近遊んだ曲追加済み) - { - #region [ 選曲画面の譜面情報の更新 ] - //--------------------- - if (!TJAPlayer3.bコンパクトモード) - { - if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] != (int)Difficulty.Dan && TJAPlayer3.stage選曲.n確定された曲の難易度[0] != (int)Difficulty.Tower) - { - Cスコア cスコア = TJAPlayer3.stage選曲.r確定されたスコア; - - if (cスコア.譜面情報.nクリア[TJAPlayer3.stage選曲.n確定された曲の難易度[0]] < nクリア) - cスコア.譜面情報.nクリア[TJAPlayer3.stage選曲.n確定された曲の難易度[0]] = this.nクリア; - - if (cスコア.譜面情報.nスコアランク[TJAPlayer3.stage選曲.n確定された曲の難易度[0]] < nスコアランク) - cスコア.譜面情報.nスコアランク[TJAPlayer3.stage選曲.n確定された曲の難易度[0]] = this.nスコアランク; - } + + } + } + } + } + return 0; + } + + public void t後処理() + { + + if (!b最近遊んだ曲追加済み) + { + #region [ 選曲画面の譜面情報の更新 ] + //--------------------- + if (!TJAPlayer3.bコンパクトモード) + { + if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] != (int)Difficulty.Dan && TJAPlayer3.stage選曲.n確定された曲の難易度[0] != (int)Difficulty.Tower) + { + Cスコア cスコア = TJAPlayer3.stage選曲.r確定されたスコア; + + if (cスコア.譜面情報.nクリア[TJAPlayer3.stage選曲.n確定された曲の難易度[0]] < nクリア) + cスコア.譜面情報.nクリア[TJAPlayer3.stage選曲.n確定された曲の難易度[0]] = this.nクリア; + + if (cスコア.譜面情報.nスコアランク[TJAPlayer3.stage選曲.n確定された曲の難易度[0]] < nスコアランク) + cスコア.譜面情報.nスコアランク[TJAPlayer3.stage選曲.n確定された曲の難易度[0]] = this.nスコアランク; + } else if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Dan) { Cスコア cスコア = TJAPlayer3.stage選曲.r確定されたスコア; @@ -1112,31 +1101,31 @@ namespace TJAPlayer3 if (this.st演奏記録.Drums.nGreat数 == 0) clearValue += 2; } - } + } cスコア.譜面情報.nクリア[0] = Math.Max(cスコア.譜面情報.nクリア[0], clearValue); - } - } - //--------------------- - #endregion - - // Song added to recently added songs here - - foreach (var song in TJAPlayer3.Songs管理.list曲ルート) - { - if (song.strジャンル == "最近遊んだ曲" && song.eノード種別 == C曲リストノード.Eノード種別.BOX) - { - song.list子リスト.Add(TJAPlayer3.stage選曲.r確定された曲.Clone()); - - foreach (var song2 in song.list子リスト) - { - song2.r親ノード = song; - song2.strジャンル = "最近遊んだ曲"; - - song2.isChangedBgType = song.isChangedBgType; - song2.isChangedBgColor = song.isChangedBgColor; - song2.isChangedBoxType = song.isChangedBoxType; - song2.isChangedBoxColor = song.isChangedBoxColor; - + } + } + //--------------------- + #endregion + + // Song added to recently added songs here + + foreach (var song in TJAPlayer3.Songs管理.list曲ルート) + { + if (song.strジャンル == "最近遊んだ曲" && song.eノード種別 == C曲リストノード.Eノード種別.BOX) + { + song.list子リスト.Add(TJAPlayer3.stage選曲.r確定された曲.Clone()); + + foreach (var song2 in song.list子リスト) + { + song2.r親ノード = song; + song2.strジャンル = "最近遊んだ曲"; + + song2.isChangedBgType = song.isChangedBgType; + song2.isChangedBgColor = song.isChangedBgColor; + song2.isChangedBoxType = song.isChangedBoxType; + song2.isChangedBoxColor = song.isChangedBoxColor; + if (song2.eノード種別 != C曲リストノード.Eノード種別.BACKBOX) { song2.ForeColor = song.ForeColor; @@ -1144,69 +1133,69 @@ namespace TJAPlayer3 song2.BoxColor = song.BoxColor; song2.BgColor = song.BgColor; // song2.BackColor = ColorTranslator.FromHtml("#164748"); - } - - } - - if (song.list子リスト.Count >= 6) - { - song.list子リスト.RemoveAt(1); - } - } - } - - b最近遊んだ曲追加済み = true; - } - - } - - public enum E戻り値 : int - { - 継続, - 完了 - } - - // その他 - - #region [ private ] - //----------------- - - public bool b最近遊んだ曲追加済み; - public bool b音声再生; - public bool EndAnime; - - private CCounter ct登場用; - private E戻り値 eフェードアウト完了時の戻り値; - private CActFIFOResult actFI; - private CActFIFOBlack actFO; - private CActオプションパネル actOption; - private CActResultParameterPanel actParameterPanel; - - private CActResultRank actRank; - private CActResultImage actResultImage; - - private CActResultSongBar actSongBar; - private bool bアニメが完了; - private bool bIsCheckedWhetherResultScreenShouldSaveOrNot; // #24509 2011.3.14 yyagi - private readonly int[] nチャンネル0Atoレーン07; - private int n最後に再生したHHのWAV番号; - private int n最後に再生したHHのチャンネル番号; - private CSound rResultSound; - - // Cloud informations + } + + } + + if (song.list子リスト.Count >= 6) + { + song.list子リスト.RemoveAt(1); + } + } + } + + b最近遊んだ曲追加済み = true; + } + + } + + public enum E戻り値 : int + { + 継続, + 完了 + } + + // その他 + + #region [ private ] + //----------------- + + public bool b最近遊んだ曲追加済み; + public bool b音声再生; + public bool EndAnime; + + private CCounter ct登場用; + private E戻り値 eフェードアウト完了時の戻り値; + private CActFIFOResult actFI; + private CActFIFOBlack actFO; + private CActオプションパネル actOption; + private CActResultParameterPanel actParameterPanel; + + private CActResultRank actRank; + private CActResultImage actResultImage; + + private CActResultSongBar actSongBar; + private bool bアニメが完了; + private bool bIsCheckedWhetherResultScreenShouldSaveOrNot; // #24509 2011.3.14 yyagi + private readonly int[] nチャンネル0Atoレーン07; + private int n最後に再生したHHのWAV番号; + private int n最後に再生したHHのチャンネル番号; + private CSound rResultSound; + + // Cloud informations private int[] CloudXPos = { 642, 612, 652, 1148, 1180, 112, 8, 1088, 1100, 32, 412 }; private int[] CloudYPos = { 202, 424, 636, 530, 636, 636, 102, 52, 108, 326, 644 }; private int[] CloudMaxMove = { 150, 120, 180, 60, 90, 150, 120, 50, 45, 120, 180 }; // Shines informations - private CCounter ctShine_Plate; + private CCounter ctShine_Plate; private int[] ShinePXPos = { 805, 1175, 645, 810, 1078, 1060 }; private int[] ShinePYPos = { 650, 405, 645, 420, 202, 585 }; private float[] ShinePSize = { 0.44f, 0.6f, 0.4f, 0.15f, 0.35f, 0.6f }; private int ShinePFade = 100; // Fireworks informations - private CCounter ctWork_Plate; + private CCounter ctWork_Plate; private int[] WorksPosX = { 800, 900, 1160 }; private int[] WorksPosY = { 435, 185, 260 }; private int[] WorksTimeStamp = { 1000, 2000, 3000 }; @@ -1215,78 +1204,78 @@ namespace TJAPlayer3 private CTexture Dan_Plate; // Tower informations - private CCounter ctTower_Animation; - private TitleTextureKey ttkMaxFloors; - private TitleTextureKey ttkToutatsu; - private TitleTextureKey ttkTen; - private TitleTextureKey ttkReachedFloor; - private TitleTextureKey ttkScore; - private TitleTextureKey ttkRemaningLifes; - private TitleTextureKey ttkScoreCount; - private CPrivateFastFont pfTowerText; - private CPrivateFastFont pfTowerText48; + private CCounter ctTower_Animation; + private TitleTextureKey ttkMaxFloors; + private TitleTextureKey ttkToutatsu; + private TitleTextureKey ttkTen; + private TitleTextureKey ttkReachedFloor; + private TitleTextureKey ttkScore; + private TitleTextureKey ttkRemaningLifes; + private TitleTextureKey ttkScoreCount; + private CPrivateFastFont pfTowerText; + private CPrivateFastFont pfTowerText48; private CPrivateFastFont pfTowerText72; // Don medals information - private int[] nEarnedMedalsCount = { 0, 0 }; - + private int[] nEarnedMedalsCount = { 0, 0 }; + private CCounter ctAutoReturn; //private CTexture txオプションパネル; //private CTexture tx下部パネル; //private CTexture tx上部パネル; //private CTexture tx背景; - #region [ #24609 リザルト画像をpngで保存する ] // #24609 2011.3.14 yyagi; to save result screen in case BestRank or HiSkill. - /// - /// リザルト画像のキャプチャと保存。 - /// 自動保存モード時は、ランク更新or演奏型スキル更新時に自動保存。 - /// 手動保存モード時は、ランクに依らず保存。 - /// - /// true=自動保存モード, false=手動保存モード - private void CheckAndSaveResultScreen(bool bIsAutoSave) - { - string path = Path.GetDirectoryName(TJAPlayer3.DTX.strファイル名の絶対パス); - string datetime = DateTime.Now.ToString("yyyyMMddHHmmss"); - if (bIsAutoSave) - { - // リザルト画像を自動保存するときは、dtxファイル名.yyMMddHHmmss_DRUMS_SS.png という形式で保存。 - for (int i = 0; i < 3; i++) - { - if (this.b新記録ランク[i] == true || this.b新記録スキル[i] == true) - { - string strPart = ((E楽器パート)(i)).ToString(); - string strRank = ((CScoreIni.ERANK)(this.nランク値[i])).ToString(); - string strFullPath = TJAPlayer3.DTX.strファイル名の絶対パス + "." + datetime + "_" + strPart + "_" + strRank + ".png"; - //Surface.ToFile( pSurface, strFullPath, ImageFileFormat.Png ); - TJAPlayer3.app.SaveResultScreen(strFullPath); - } - } - } - #region [ #24609 2011.4.11 yyagi; リザルトの手動保存ロジックは、CDTXManiaに移管した。] - // else - // { - // // リザルト画像を手動保存するときは、dtxファイル名.yyMMddHHmmss_SS.png という形式で保存。(楽器名無し) - // string strRank = ( (CScoreIni.ERANK) ( CDTXMania.stage結果.n総合ランク値 ) ).ToString(); - // string strSavePath = CDTXMania.strEXEのあるフォルダ + "\\" + "Capture_img"; - // if ( !Directory.Exists( strSavePath ) ) - // { - // try - // { - // Directory.CreateDirectory( strSavePath ); - // } - // catch - // { - // } - // } - // string strFullPath = strSavePath + "\\" + CDTXMania.DTX.TITLE + - // "." + datetime + "_" + strRank + ".png"; - // // Surface.ToFile( pSurface, strFullPath, ImageFileFormat.Png ); - // CDTXMania.app.SaveResultScreen( strFullPath ); - // } - #endregion - } - #endregion - //----------------- - #endregion - } -} + #region [ #24609 リザルト画像をpngで保存する ] // #24609 2011.3.14 yyagi; to save result screen in case BestRank or HiSkill. + /// + /// リザルト画像のキャプチャと保存。 + /// 自動保存モード時は、ランク更新or演奏型スキル更新時に自動保存。 + /// 手動保存モード時は、ランクに依らず保存。 + /// + /// true=自動保存モード, false=手動保存モード + private void CheckAndSaveResultScreen(bool bIsAutoSave) + { + string path = Path.GetDirectoryName(TJAPlayer3.DTX.strファイル名の絶対パス); + string datetime = DateTime.Now.ToString("yyyyMMddHHmmss"); + if (bIsAutoSave) + { + // リザルト画像を自動保存するときは、dtxファイル名.yyMMddHHmmss_DRUMS_SS.png という形式で保存。 + for (int i = 0; i < 3; i++) + { + if (this.b新記録ランク[i] == true || this.b新記録スキル[i] == true) + { + string strPart = ((E楽器パート)(i)).ToString(); + string strRank = ((CScoreIni.ERANK)(this.nランク値[i])).ToString(); + string strFullPath = TJAPlayer3.DTX.strファイル名の絶対パス + "." + datetime + "_" + strPart + "_" + strRank + ".png"; + //Surface.ToFile( pSurface, strFullPath, ImageFileFormat.Png ); + TJAPlayer3.app.SaveResultScreen(strFullPath); + } + } + } + #region [ #24609 2011.4.11 yyagi; リザルトの手動保存ロジックは、CDTXManiaに移管した。] + // else + // { + // // リザルト画像を手動保存するときは、dtxファイル名.yyMMddHHmmss_SS.png という形式で保存。(楽器名無し) + // string strRank = ( (CScoreIni.ERANK) ( CDTXMania.stage結果.n総合ランク値 ) ).ToString(); + // string strSavePath = CDTXMania.strEXEのあるフォルダ + "\\" + "Capture_img"; + // if ( !Directory.Exists( strSavePath ) ) + // { + // try + // { + // Directory.CreateDirectory( strSavePath ); + // } + // catch + // { + // } + // } + // string strFullPath = strSavePath + "\\" + CDTXMania.DTX.TITLE + + // "." + datetime + "_" + strRank + ".png"; + // // Surface.ToFile( pSurface, strFullPath, ImageFileFormat.Png ); + // CDTXMania.app.SaveResultScreen( strFullPath ); + // } + #endregion + } + #endregion + //----------------- + #endregion + } +}