\r
public STDGBVALUE<bool> b新記録スキル;\r
public STDGBVALUE<bool> b新記録スコア;\r
- public STDGBVALUE<bool> b新記録ランク;\r
+ public STDGBVALUE<bool> b新記録ランク;\r
public STDGBVALUE<float> fPerfect率;\r
public STDGBVALUE<float> fGreat率;\r
public STDGBVALUE<float> fGood率;\r
public STDGBVALUE<float> fPoor率;\r
public STDGBVALUE<float> fMiss率;\r
- public STDGBVALUE<int> nオート; // #23596 10.11.16 add ikanick\r
+ public STDGBVALUE<bool> bオート; // #23596 10.11.16 add ikanick\r
+ // 10.11.17 change (int to bool) ikanick\r
public STDGBVALUE<int> nランク値;\r
public STDGBVALUE<int> n演奏回数;\r
public int n総合ランク値;\r
\r
public CStage結果()\r
{\r
- STDGBVALUE<CScoreIni.C演奏記録> stdgbvalue = new STDGBVALUE<CScoreIni.C演奏記録>();\r
- stdgbvalue.Drums = new CScoreIni.C演奏記録();\r
- stdgbvalue.Guitar = new CScoreIni.C演奏記録();\r
- stdgbvalue.Bass = new CScoreIni.C演奏記録();\r
- this.st演奏記録 = stdgbvalue;\r
+// STDGBVALUE<CScoreIni.C演奏記録> stdgbvalue = new STDGBVALUE<CScoreIni.C演奏記録>();\r
+ this.st演奏記録.Drums = new CScoreIni.C演奏記録();\r
+ this.st演奏記録.Guitar = new CScoreIni.C演奏記録();\r
+ this.st演奏記録.Bass = new CScoreIni.C演奏記録();\r
+// this.st演奏記録 = stdgbvalue;\r
this.r空うちドラムチップ = new CDTX.CChip[ 10 ];\r
this.n総合ランク値 = -1;\r
this.nチャンネル0Atoレーン07 = new int[] { 1, 2, 3, 4, 5, 7, 6, 1, 7, 0 };\r
for( int i = 0; i < 3; i++ )\r
{\r
this.b新記録スキル[ i ] = false;\r
- this.b新記録スコア[ i ] = false;\r
- this.b新記録ランク[ i ] = false;\r
+ this.b新記録スコア[ i ] = false;\r
+ this.b新記録ランク[ i ] = false;\r
}\r
//---------------------\r
#endregion\r
\r
#region [ 結果の計算 ]\r
//---------------------\r
- for( int j = 0; j < 3; j++ )\r
+ for( int i = 0; i < 3; i++ )\r
{\r
- this.nランク値[ j ] = -1;\r
- if( ( ( ( j != 0 ) || ( CDTXMania.DTX.bチップがある.Drums && !CDTXMania.ConfigIni.bギタレボモード ) ) && ( ( j != 1 ) || CDTXMania.DTX.bチップがある.Guitar ) ) && ( ( j != 2 ) || CDTXMania.DTX.bチップがある.Bass ) )\r
+ this.nランク値[ i ] = -1;\r
+ if ( ( ( ( i != 0 ) || ( CDTXMania.DTX.bチップがある.Drums && !CDTXMania.ConfigIni.bギタレボモード ) ) && ( ( i != 1 ) || CDTXMania.DTX.bチップがある.Guitar ) ) && ( ( i != 2 ) || CDTXMania.DTX.bチップがある.Bass ) )\r
{\r
- CScoreIni.C演奏記録 part = this.st演奏記録[ j ];\r
- bool guitar = true;\r
- switch( j )\r
+ CScoreIni.C演奏記録 part = this.st演奏記録[ i ];\r
+ bool bIsAutoPlay = true;\r
+ switch( i )\r
{\r
case 0:\r
- guitar = CDTXMania.ConfigIni.bドラムが全部オートプレイである;\r
+ bIsAutoPlay = CDTXMania.ConfigIni.bドラムが全部オートプレイである;\r
break;\r
\r
case 1:\r
- guitar = CDTXMania.ConfigIni.bAutoPlay.Guitar;\r
+ bIsAutoPlay = CDTXMania.ConfigIni.bAutoPlay.Guitar;\r
break;\r
\r
case 2:\r
- guitar = CDTXMania.ConfigIni.bAutoPlay.Bass;\r
+ bIsAutoPlay = CDTXMania.ConfigIni.bAutoPlay.Bass;\r
break;\r
}\r
- this.fPerfect率[ j ] = guitar ? 0f : ( ( 100f * part.nPerfect数 ) / ( (float) part.n全チップ数 ) );\r
- this.fGreat率[ j ] = guitar ? 0f : ( ( 100f * part.nGreat数 ) / ( (float) part.n全チップ数 ) );\r
- this.fGood率[ j ] = guitar ? 0f : ( ( 100f * part.nGood数 ) / ( (float) part.n全チップ数 ) );\r
- this.fPoor率[ j ] = guitar ? 0f : ( ( 100f * part.nPoor数 ) / ( (float) part.n全チップ数 ) );\r
- this.fMiss率[ j ] = guitar ? 0f : ( ( 100f * part.nMiss数 ) / ( (float) part.n全チップ数 ) );\r
- this.nオート[ j ] = guitar ? 1 : 0; // #23596 10.11.16 add ikanick そのパートがオートなら1\r
- this.nランク値[ j ] = CScoreIni.tランク値を計算して返す( part );\r
+ this.fPerfect率[ i ] = bIsAutoPlay ? 0f : ( ( 100f * part.nPerfect数 ) / ( (float) part.n全チップ数 ) );\r
+ this.fGreat率[ i ] = bIsAutoPlay ? 0f : ( ( 100f * part.nGreat数 ) / ( (float) part.n全チップ数 ) );\r
+ this.fGood率[ i ] = bIsAutoPlay ? 0f : ( ( 100f * part.nGood数 ) / ( (float) part.n全チップ数 ) );\r
+ this.fPoor率[ i ] = bIsAutoPlay ? 0f : ( ( 100f * part.nPoor数 ) / ( (float) part.n全チップ数 ) );\r
+ this.fMiss率[ i ] = bIsAutoPlay ? 0f : ( ( 100f * part.nMiss数 ) / ( (float) part.n全チップ数 ) );\r
+ this.bオート[ i ] = bIsAutoPlay; // #23596 10.11.16 add ikanick そのパートがオートなら1\r
+ // 10.11.17 change (int to bool) ikanick\r
+ this.nランク値[ i ] = CScoreIni.tランク値を計算して返す( part );\r
+//Debug.WriteLine( "rank[" + i + "]=" + this.nランク値[ i ] );\r
+//if ( this.nランク値[ i ] != -1 )\r
+//{\r
+// this.n総合ランク値 = Math.Min( this.n総合ランク値, this.nランク値[ i ] );\r
+//}\r
}\r
}\r
this.n総合ランク値 = CScoreIni.t総合ランク値を計算して返す( this.st演奏記録.Drums, this.st演奏記録.Guitar, this.st演奏記録.Bass );\r
\r
bool[] b今までにフルコンボしたことがある = new bool[] { false, false, false };\r
\r
- for( int k = 0; k < 3; k++ )\r
+ for( int i = 0; i < 3; i++ )\r
{\r
// フルコンボチェックならびに新記録ランクチェックは、ini.Record[] が、スコアチェックや演奏型スキルチェックの IF 内で書き直されてしまうよりも前に行う。(2010.9.10)\r
\r
- b今までにフルコンボしたことがある[ k ] = ini.stセクション[ k * 2 ].bフルコンボである | ini.stセクション[ k * 2 + 1 ].bフルコンボである;\r
-\r
- if( this.nランク値[ k ] <= CScoreIni.tランク値を計算して返す( ini.stセクション[ ( k * 2 ) + 1 ] ) )\r
+ b今までにフルコンボしたことがある[ i ] = ini.stセクション[ i * 2 ].bフルコンボである | ini.stセクション[ i * 2 + 1 ].bフルコンボである;\r
+\r
+ // if( this.nランク値[ i ] <= CScoreIni.tランク値を計算して返す( ini.stセクション[ ( i * 2 ) + 1 ] ) )\r
+ // {\r
+ // this.b新記録ランク[ i ] = true;\r
+ // }\r
+ // 上記の条件だと[HiSkill.***]でのランクしかチェックしていないので、BestRankと比較するよう変更\r
+ if ( this.nランク値[ i ] >= 0 && ini.stファイル.BestRank[ i ] > this.nランク値[ i ] ) // #24459 2011.3.1 yyagi update BestRank\r
{\r
- this.b新記録ランク[ k ] = true;\r
+ this.b新記録ランク[ i ] = true;\r
+ ini.stファイル.BestRank[ i ] = this.nランク値[ i ];\r
}\r
\r
// 新記録スコアチェック\r
- if( this.st演奏記録[ k ].nスコア > ini.stセクション[ k * 2 ].nスコア )\r
+ if( this.st演奏記録[ i ].nスコア > ini.stセクション[ i * 2 ].nスコア )\r
{\r
- this.b新記録スコア[ k ] = true;\r
- ini.stセクション[ k * 2 ] = this.st演奏記録[ k ];\r
+ this.b新記録スコア[ i ] = true;\r
+ ini.stセクション[ i * 2 ] = this.st演奏記録[ i ];\r
}\r
\r
- // 新記録スキルチェック\r
- if( this.st演奏記録[ k ].db演奏型スキル値 > ini.stセクション[ ( k * 2 ) + 1 ].db演奏型スキル値 )\r
- {\r
- this.b新記録スキル[ k ] = true;\r
- ini.stセクション[ ( k * 2 ) + 1 ] = this.st演奏記録[ k ];\r
- }\r
+ // 新記録スキルチェック\r
+ if (this.st演奏記録[i].db演奏型スキル値 > ini.stセクション[(i * 2) + 1].db演奏型スキル値)\r
+ {\r
+ this.b新記録スキル[ i ] = true;\r
+ ini.stセクション[(i * 2) + 1] = this.st演奏記録[ i ];\r
+ }\r
+ // ラストプレイ #23595 2011.1.9 ikanick\r
+ // オートじゃなければプレイ結果を書き込む\r
+ if (this.bオート[ i ] == false) {\r
+ ini.stセクション[i + 6] = this.st演奏記録[ i ];\r
+ }\r
+\r
// #23596 10.11.16 add ikanick オートじゃないならクリア回数を1増やす\r
- if (this.nオート[ k ] == 0)\r
+ // 11.02.05 bオート to t更新条件を取得する use ikanick\r
+ bool[] b更新が必要か否か = new bool[ 3 ];\r
+ CScoreIni.t更新条件を取得する( out b更新が必要か否か[ 0 ], out b更新が必要か否か[ 1 ], out b更新が必要か否か[ 2 ] );\r
+\r
+ if (b更新が必要か否か[ i ])\r
{\r
- switch ( k )\r
+ switch ( i )\r
{\r
case 0:\r
ini.stファイル.ClearCountDrums++;\r
case 2:\r
ini.stファイル.ClearCountBass++;\r
break;\r
+ default:\r
+ throw new Exception("クリア回数増加のk(0-2)が範囲外です。");\r
}\r
}\r
//---------------------------------------------------------------------/\r
//---------------------\r
#endregion\r
\r
+ #region [ リザルト画面への演奏回数の更新 #24281 2011.1.30 yyagi]\r
+ this.n演奏回数.Drums = ini.stファイル.PlayCountDrums;\r
+ this.n演奏回数.Guitar = ini.stファイル.PlayCountGuitar;\r
+ this.n演奏回数.Bass = ini.stファイル.PlayCountBass;\r
+ #endregion\r
#region [ 選曲画面の譜面情報の更新 ]\r
//---------------------\r
if( !CDTXMania.bコンパクトモード )\r
{\r
Cスコア cスコア = CDTXMania.stage選曲.r確定されたスコア;\r
- bool[] flagArray = new bool[ 3 ];\r
- CScoreIni.t更新条件を取得する( out flagArray[ 0 ], out flagArray[ 1 ], out flagArray[ 2 ] );\r
+ bool[] b更新が必要か否か = new bool[ 3 ];\r
+ CScoreIni.t更新条件を取得する( out b更新が必要か否か[ 0 ], out b更新が必要か否か[ 1 ], out b更新が必要か否か[ 2 ] );\r
for( int m = 0; m < 3; m++ )\r
{\r
- if( flagArray[ m ] )\r
+ if( b更新が必要か否か[ m ] )\r
{\r
// FullCombo した記録を FullCombo なしで超えた場合、FullCombo マークが消えてしまう。\r
// → FullCombo は、最新記録と関係なく、一度達成したらずっとつくようにする。(2010.9.11)\r
if( this.b新記録スキル[ m ] )\r
{\r
cスコア.譜面情報.最大スキル[ m ] = this.st演奏記録[ m ].db演奏型スキル値;\r
- }\r
+ }\r
\r
- if( this.b新記録ランク[ m ] )\r
- {\r
- cスコア.譜面情報.最大ランク[ m ] = this.nランク値[ m ];\r
- }\r
+ if (this.b新記録ランク[ m ])\r
+ {\r
+ cスコア.譜面情報.最大ランク[ m ] = this.nランク値[ m ];\r
+ }\r
}\r
}\r
}\r
}\r
}\r
}\r
- if( ( ( CDTXMania.Pad.b押されたDGB( Eパッド.CY ) || CDTXMania.Pad.b押された( E楽器パート.DRUMS, Eパッド.RD ) ) || ( CDTXMania.Pad.b押された( E楽器パート.DRUMS, Eパッド.LC ) || CDTXMania.Input管理.Keyboard.bキーが押された( 0x75 ) ) ) && !this.bアニメが完了 )\r
+ if( ( ( CDTXMania.Pad.b押されたDGB( Eパッド.CY ) || CDTXMania.Pad.b押された( E楽器パート.DRUMS, Eパッド.RD ) ) || ( CDTXMania.Pad.b押された( E楽器パート.DRUMS, Eパッド.LC ) || CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDX.DirectInput.Key.Return ) ) ) && !this.bアニメが完了 )\r
{\r
this.actResultImage.tアニメを完了させる();\r
this.actParameterPanel.tアニメを完了させる();\r
}\r
if( base.eフェーズID == CStage.Eフェーズ.共通_通常状態 )\r
{\r
- if( CDTXMania.Input管理.Keyboard.bキーが押された( 0x35 ) )\r
+ if ( CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDX.DirectInput.Key.Escape ) )\r
{\r
CDTXMania.Skin.sound取消音.t再生する();\r
this.actFO.tフェードアウト開始();\r
base.eフェーズID = CStage.Eフェーズ.共通_フェードアウト;\r
this.eフェードアウト完了時の戻り値 = E戻り値.完了;\r
}\r
- if( ( ( CDTXMania.Pad.b押されたDGB( Eパッド.CY ) || CDTXMania.Pad.b押された( E楽器パート.DRUMS, Eパッド.RD ) ) || ( CDTXMania.Pad.b押された( E楽器パート.DRUMS, Eパッド.LC ) || CDTXMania.Input管理.Keyboard.bキーが押された( 0x75 ) ) ) && this.bアニメが完了 )\r
+ if ( ( ( CDTXMania.Pad.b押されたDGB( Eパッド.CY ) || CDTXMania.Pad.b押された( E楽器パート.DRUMS, Eパッド.RD ) ) || ( CDTXMania.Pad.b押された( E楽器パート.DRUMS, Eパッド.LC ) || CDTXMania.Input管理.Keyboard.bキーが押された( (int) SlimDX.DirectInput.Key.Return ) ) ) && this.bアニメが完了 )\r
{\r
CDTXMania.Skin.sound取消音.t再生する();\r
this.actFO.tフェードアウト開始();\r