\r
public CStage演奏ドラム画面()\r
{\r
- this.eチャンネルtoパッド = new Eパッド[ 12 ];\r
- this.eチャンネルtoパッド[ 1 ] = Eパッド.SD;\r
- this.eチャンネルtoパッド[ 2 ] = Eパッド.BD;\r
- this.eチャンネルtoパッド[ 3 ] = Eパッド.HT;\r
- this.eチャンネルtoパッド[ 4 ] = Eパッド.LT;\r
- this.eチャンネルtoパッド[ 5 ] = Eパッド.CY;\r
- this.eチャンネルtoパッド[ 6 ] = Eパッド.FT;\r
- this.eチャンネルtoパッド[ 7 ] = Eパッド.HHO;\r
- this.eチャンネルtoパッド[ 8 ] = Eパッド.RD;\r
- this.eチャンネルtoパッド[ 9 ] = Eパッド.UNKNOWN;\r
- this.eチャンネルtoパッド[ 10 ] = Eパッド.UNKNOWN;\r
- this.eチャンネルtoパッド[ 11 ] = Eパッド.LC;\r
//this.nBGAスコープチャンネルマップ = new int[ , ] { { 0xc4, 0xc7, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xe0 }, { 4, 7, 0x55, 0x56, 0x57, 0x58, 0x59, 0x60 } };\r
base.eステージID = CStage.Eステージ.演奏;\r
base.eフェーズID = CStage.Eフェーズ.共通_通常状態;\r
\r
public void t演奏結果を格納する( out CScoreIni.C演奏記録 Drums, out CScoreIni.C演奏記録 Guitar, out CScoreIni.C演奏記録 Bass, out CDTX.CChip[] r空打ちドラムチップ )\r
{\r
- r空打ちドラムチップ = new CDTX.CChip[ 10 ];\r
+ //Drums = new CScoreIni.C演奏記録();\r
+ //Guitar = new CScoreIni.C演奏記録();\r
+ //Bass = new CScoreIni.C演奏記録();\r
\r
- Drums = new CScoreIni.C演奏記録();\r
- Guitar = new CScoreIni.C演奏記録();\r
- Bass = new CScoreIni.C演奏記録();\r
- if( CDTXMania.DTX.bチップがある.Drums && !CDTXMania.ConfigIni.bギタレボモード )\r
- {\r
- Drums.nスコア = this.actScore.Get( E楽器パート.DRUMS );\r
- Drums.dbゲーム型スキル値 = CScoreIni.tゲーム型スキルを計算して返す( CDTXMania.DTX.LEVEL.Drums, CDTXMania.DTX.n可視チップ数.Drums, this.nヒット数・Auto含まない.Drums.Perfect, this.actCombo.n現在のコンボ数.Drums最高値 );\r
- Drums.db演奏型スキル値 = CScoreIni.t演奏型スキルを計算して返す( CDTXMania.DTX.n可視チップ数.Drums, this.nヒット数・Auto含まない.Drums.Perfect, this.nヒット数・Auto含まない.Drums.Great, this.nヒット数・Auto含まない.Drums.Good, this.nヒット数・Auto含まない.Drums.Poor, this.nヒット数・Auto含まない.Drums.Miss );\r
- Drums.nPerfect数 = CDTXMania.ConfigIni.bドラムが全部オートプレイである ? this.nヒット数・Auto含む.Drums.Perfect : this.nヒット数・Auto含まない.Drums.Perfect;\r
- Drums.nGreat数 = CDTXMania.ConfigIni.bドラムが全部オートプレイである ? this.nヒット数・Auto含む.Drums.Great : this.nヒット数・Auto含まない.Drums.Great;\r
- Drums.nGood数 = CDTXMania.ConfigIni.bドラムが全部オートプレイである ? this.nヒット数・Auto含む.Drums.Good : this.nヒット数・Auto含まない.Drums.Good;\r
- Drums.nPoor数 = CDTXMania.ConfigIni.bドラムが全部オートプレイである ? this.nヒット数・Auto含む.Drums.Poor : this.nヒット数・Auto含まない.Drums.Poor;\r
- Drums.nMiss数 = CDTXMania.ConfigIni.bドラムが全部オートプレイである ? this.nヒット数・Auto含む.Drums.Miss : this.nヒット数・Auto含まない.Drums.Miss;\r
- Drums.n最大コンボ数 = this.actCombo.n現在のコンボ数.Drums最高値;\r
- Drums.n全チップ数 = CDTXMania.DTX.n可視チップ数.Drums;\r
- for( int i = 0; i < 10; i++ )\r
- {\r
- Drums.bAutoPlay[ i ] = CDTXMania.ConfigIni.bAutoPlay[ i ];\r
- }\r
- Drums.bTight = CDTXMania.ConfigIni.bTight;\r
- for( int i = 0; i < 3; i++ )\r
- {\r
- Drums.bSudden[ i ] = CDTXMania.ConfigIni.bSudden[ i ];\r
- Drums.bHidden[ i ] = CDTXMania.ConfigIni.bHidden[ i ];\r
- Drums.bReverse[ i ] = CDTXMania.ConfigIni.bReverse[ i ];\r
- Drums.eRandom[ i ] = CDTXMania.ConfigIni.eRandom[ i ];\r
- Drums.bLight[ i ] = CDTXMania.ConfigIni.bLight[ i ];\r
- Drums.bLeft[ i ] = CDTXMania.ConfigIni.bLeft[ i ];\r
- Drums.f譜面スクロール速度[ i ] = ( (float) ( CDTXMania.ConfigIni.n譜面スクロール速度[ i ] + 1 ) ) * 0.5f;\r
- }\r
- Drums.eDark = CDTXMania.ConfigIni.eDark;\r
- Drums.n演奏速度分子 = CDTXMania.ConfigIni.n演奏速度;\r
- Drums.n演奏速度分母 = 20;\r
- Drums.eHHGroup = CDTXMania.ConfigIni.eHHGroup;\r
- Drums.eFTGroup = CDTXMania.ConfigIni.eFTGroup;\r
- Drums.eCYGroup = CDTXMania.ConfigIni.eCYGroup;\r
- Drums.eHitSoundPriorityHH = CDTXMania.ConfigIni.eHitSoundPriorityHH;\r
- Drums.eHitSoundPriorityFT = CDTXMania.ConfigIni.eHitSoundPriorityFT;\r
- Drums.eHitSoundPriorityCY = CDTXMania.ConfigIni.eHitSoundPriorityCY;\r
- Drums.bGuitar有効 = CDTXMania.ConfigIni.bGuitar有効;\r
- Drums.bDrums有効 = CDTXMania.ConfigIni.bDrums有効;\r
- Drums.bSTAGEFAILED有効 = CDTXMania.ConfigIni.bSTAGEFAILED有効;\r
- Drums.eダメージレベル = CDTXMania.ConfigIni.eダメージレベル;\r
- Drums.b演奏にキーボードを使用した = this.b演奏にキーボードを使った.Drums;\r
- Drums.b演奏にMIDI入力を使用した = this.b演奏にMIDI入力を使った.Drums;\r
- Drums.b演奏にジョイパッドを使用した = this.b演奏にジョイパッドを使った.Drums;\r
- Drums.b演奏にマウスを使用した = this.b演奏にマウスを使った.Drums;\r
- Drums.nPerfectになる範囲ms = CDTXMania.nPerfect範囲ms;\r
- Drums.nGreatになる範囲ms = CDTXMania.nGreat範囲ms;\r
- Drums.nGoodになる範囲ms = CDTXMania.nGood範囲ms;\r
- Drums.nPoorになる範囲ms = CDTXMania.nPoor範囲ms;\r
- Drums.strDTXManiaのバージョン = CDTXMania.VERSION;\r
- Drums.最終更新日時 = DateTime.Now.ToString();\r
- Drums.Hash = CScoreIni.t演奏セクションのMD5を求めて返す( Drums );\r
- }\r
- if( CDTXMania.DTX.bチップがある.Guitar )\r
- {\r
- Guitar.nスコア = this.actScore.Get( E楽器パート.GUITAR );\r
- Guitar.dbゲーム型スキル値 = CScoreIni.tゲーム型スキルを計算して返す( CDTXMania.DTX.LEVEL.Guitar, CDTXMania.DTX.n可視チップ数.Guitar, this.nヒット数・Auto含まない.Guitar.Perfect, this.actCombo.n現在のコンボ数.Guitar最高値 );\r
- Guitar.db演奏型スキル値 = CScoreIni.t演奏型スキルを計算して返す( CDTXMania.DTX.n可視チップ数.Guitar, this.nヒット数・Auto含まない.Guitar.Perfect, this.nヒット数・Auto含まない.Guitar.Great, this.nヒット数・Auto含まない.Guitar.Good, this.nヒット数・Auto含まない.Guitar.Poor, this.nヒット数・Auto含まない.Guitar.Miss );\r
- Guitar.nPerfect数 = CDTXMania.ConfigIni.bAutoPlay.Guitar ? this.nヒット数・Auto含む.Guitar.Perfect : this.nヒット数・Auto含まない.Guitar.Perfect;\r
- Guitar.nGreat数 = CDTXMania.ConfigIni.bAutoPlay.Guitar ? this.nヒット数・Auto含む.Guitar.Great : this.nヒット数・Auto含まない.Guitar.Great;\r
- Guitar.nGood数 = CDTXMania.ConfigIni.bAutoPlay.Guitar ? this.nヒット数・Auto含む.Guitar.Good : this.nヒット数・Auto含まない.Guitar.Good;\r
- Guitar.nPoor数 = CDTXMania.ConfigIni.bAutoPlay.Guitar ? this.nヒット数・Auto含む.Guitar.Poor : this.nヒット数・Auto含まない.Guitar.Poor;\r
- Guitar.nMiss数 = CDTXMania.ConfigIni.bAutoPlay.Guitar ? this.nヒット数・Auto含む.Guitar.Miss : this.nヒット数・Auto含まない.Guitar.Miss;\r
- Guitar.n最大コンボ数 = this.actCombo.n現在のコンボ数.Guitar最高値;\r
- Guitar.n全チップ数 = CDTXMania.DTX.n可視チップ数.Guitar;\r
- for( int i = 0; i < 10; i++ )\r
- {\r
- Guitar.bAutoPlay[ i ] = CDTXMania.ConfigIni.bAutoPlay[ i ];\r
- }\r
- Guitar.bTight = CDTXMania.ConfigIni.bTight;\r
- for( int i = 0; i < 3; i++ )\r
- {\r
- Guitar.bSudden[ i ] = CDTXMania.ConfigIni.bSudden[ i ];\r
- Guitar.bHidden[ i ] = CDTXMania.ConfigIni.bHidden[ i ];\r
- Guitar.bReverse[ i ] = CDTXMania.ConfigIni.bReverse[ i ];\r
- Guitar.eRandom[ i ] = CDTXMania.ConfigIni.eRandom[ i ];\r
- Guitar.bLight[ i ] = CDTXMania.ConfigIni.bLight[ i ];\r
- Guitar.bLeft[ i ] = CDTXMania.ConfigIni.bLeft[ i ];\r
- Guitar.f譜面スクロール速度[ i ] = ( (float) ( CDTXMania.ConfigIni.n譜面スクロール速度[ i ] + 1 ) ) * 0.5f;\r
- }\r
- Guitar.eDark = CDTXMania.ConfigIni.eDark;\r
- Guitar.n演奏速度分子 = CDTXMania.ConfigIni.n演奏速度;\r
- Guitar.n演奏速度分母 = 20;\r
- Guitar.eHHGroup = CDTXMania.ConfigIni.eHHGroup;\r
- Guitar.eFTGroup = CDTXMania.ConfigIni.eFTGroup;\r
- Guitar.eCYGroup = CDTXMania.ConfigIni.eCYGroup;\r
- Guitar.eHitSoundPriorityHH = CDTXMania.ConfigIni.eHitSoundPriorityHH;\r
- Guitar.eHitSoundPriorityFT = CDTXMania.ConfigIni.eHitSoundPriorityFT;\r
- Guitar.eHitSoundPriorityCY = CDTXMania.ConfigIni.eHitSoundPriorityCY;\r
- Guitar.bGuitar有効 = CDTXMania.ConfigIni.bGuitar有効;\r
- Guitar.bDrums有効 = CDTXMania.ConfigIni.bDrums有効;\r
- Guitar.bSTAGEFAILED有効 = CDTXMania.ConfigIni.bSTAGEFAILED有効;\r
- Guitar.eダメージレベル = CDTXMania.ConfigIni.eダメージレベル;\r
- Guitar.b演奏にキーボードを使用した = this.b演奏にキーボードを使った.Guitar;\r
- Guitar.b演奏にMIDI入力を使用した = this.b演奏にMIDI入力を使った.Guitar;\r
- Guitar.b演奏にジョイパッドを使用した = this.b演奏にジョイパッドを使った.Guitar;\r
- Guitar.b演奏にマウスを使用した = this.b演奏にマウスを使った.Guitar;\r
- Guitar.nPerfectになる範囲ms = CDTXMania.nPerfect範囲ms;\r
- Guitar.nGreatになる範囲ms = CDTXMania.nGreat範囲ms;\r
- Guitar.nGoodになる範囲ms = CDTXMania.nGood範囲ms;\r
- Guitar.nPoorになる範囲ms = CDTXMania.nPoor範囲ms;\r
- Guitar.strDTXManiaのバージョン = CDTXMania.VERSION;\r
- Guitar.最終更新日時 = DateTime.Now.ToString();\r
- Guitar.Hash = CScoreIni.t演奏セクションのMD5を求めて返す( Guitar );\r
- }\r
- if( CDTXMania.DTX.bチップがある.Bass )\r
- {\r
- Bass.nスコア = this.actScore.Get( E楽器パート.BASS );\r
- Bass.dbゲーム型スキル値 = CScoreIni.tゲーム型スキルを計算して返す( CDTXMania.DTX.LEVEL.Bass, CDTXMania.DTX.n可視チップ数.Bass, this.nヒット数・Auto含まない.Bass.Perfect, this.actCombo.n現在のコンボ数.Bass最高値 );\r
- Bass.db演奏型スキル値 = CScoreIni.t演奏型スキルを計算して返す( CDTXMania.DTX.n可視チップ数.Bass, this.nヒット数・Auto含まない.Bass.Perfect, this.nヒット数・Auto含まない.Bass.Great, this.nヒット数・Auto含まない.Bass.Good, this.nヒット数・Auto含まない.Bass.Poor, this.nヒット数・Auto含まない.Bass.Miss );\r
- Bass.nPerfect数 = CDTXMania.ConfigIni.bAutoPlay.Bass ? this.nヒット数・Auto含む.Bass.Perfect : this.nヒット数・Auto含まない.Bass.Perfect;\r
- Bass.nGreat数 = CDTXMania.ConfigIni.bAutoPlay.Bass ? this.nヒット数・Auto含む.Bass.Great : this.nヒット数・Auto含まない.Bass.Great;\r
- Bass.nGood数 = CDTXMania.ConfigIni.bAutoPlay.Bass ? this.nヒット数・Auto含む.Bass.Good : this.nヒット数・Auto含まない.Bass.Good;\r
- Bass.nPoor数 = CDTXMania.ConfigIni.bAutoPlay.Bass ? this.nヒット数・Auto含む.Bass.Poor : this.nヒット数・Auto含まない.Bass.Poor;\r
- Bass.nMiss数 = CDTXMania.ConfigIni.bAutoPlay.Bass ? this.nヒット数・Auto含む.Bass.Miss : this.nヒット数・Auto含まない.Bass.Miss;\r
- Bass.n最大コンボ数 = this.actCombo.n現在のコンボ数.Bass最高値;\r
- Bass.n全チップ数 = CDTXMania.DTX.n可視チップ数.Bass;\r
- for( int i = 0; i < 10; i++ )\r
- {\r
- Bass.bAutoPlay[ i ] = CDTXMania.ConfigIni.bAutoPlay[ i ];\r
- }\r
- Bass.bTight = CDTXMania.ConfigIni.bTight;\r
- for( int i = 0; i < 3; i++ )\r
- {\r
- Bass.bSudden[ i ] = CDTXMania.ConfigIni.bSudden[ i ];\r
- Bass.bHidden[ i ] = CDTXMania.ConfigIni.bHidden[ i ];\r
- Bass.bReverse[ i ] = CDTXMania.ConfigIni.bReverse[ i ];\r
- Bass.eRandom[ i ] = CDTXMania.ConfigIni.eRandom[ i ];\r
- Bass.bLight[ i ] = CDTXMania.ConfigIni.bLight[ i ];\r
- Bass.bLeft[ i ] = CDTXMania.ConfigIni.bLeft[ i ];\r
- Bass.f譜面スクロール速度[ i ] = ( (float) ( CDTXMania.ConfigIni.n譜面スクロール速度[ i ] + 1 ) ) * 0.5f;\r
- }\r
- Bass.eDark = CDTXMania.ConfigIni.eDark;\r
- Bass.n演奏速度分子 = CDTXMania.ConfigIni.n演奏速度;\r
- Bass.n演奏速度分母 = 20;\r
- Bass.eHHGroup = CDTXMania.ConfigIni.eHHGroup;\r
- Bass.eFTGroup = CDTXMania.ConfigIni.eFTGroup;\r
- Bass.eCYGroup = CDTXMania.ConfigIni.eCYGroup;\r
- Bass.eHitSoundPriorityHH = CDTXMania.ConfigIni.eHitSoundPriorityHH;\r
- Bass.eHitSoundPriorityFT = CDTXMania.ConfigIni.eHitSoundPriorityFT;\r
- Bass.eHitSoundPriorityCY = CDTXMania.ConfigIni.eHitSoundPriorityCY;\r
- Bass.bGuitar有効 = CDTXMania.ConfigIni.bGuitar有効;\r
- Bass.bDrums有効 = CDTXMania.ConfigIni.bDrums有効;\r
- Bass.bSTAGEFAILED有効 = CDTXMania.ConfigIni.bSTAGEFAILED有効;\r
- Bass.eダメージレベル = CDTXMania.ConfigIni.eダメージレベル;\r
- Bass.b演奏にキーボードを使用した = this.b演奏にキーボードを使った.Bass; // #24280 2011.1.29 yyagi\r
- Bass.b演奏にMIDI入力を使用した = this.b演奏にMIDI入力を使った.Bass; //\r
- Bass.b演奏にジョイパッドを使用した = this.b演奏にジョイパッドを使った.Bass; //\r
- Bass.b演奏にマウスを使用した = this.b演奏にマウスを使った.Bass; //\r
- Bass.nPerfectになる範囲ms = CDTXMania.nPerfect範囲ms;\r
- Bass.nGreatになる範囲ms = CDTXMania.nGreat範囲ms;\r
- Bass.nGoodになる範囲ms = CDTXMania.nGood範囲ms;\r
- Bass.nPoorになる範囲ms = CDTXMania.nPoor範囲ms;\r
- Bass.strDTXManiaのバージョン = CDTXMania.VERSION;\r
- Bass.最終更新日時 = DateTime.Now.ToString();\r
- Bass.Hash = CScoreIni.t演奏セクションのMD5を求めて返す( Bass );\r
- }\r
- for( int i = 0; i < 10; i++ )\r
+ base.t演奏結果を格納する・ドラム( out Drums );\r
+ base.t演奏結果を格納する・ギター( out Guitar );\r
+ base.t演奏結果を格納する・ベース( out Bass );\r
+\r
+ #region [Drums処理(注釈化)]\r
+ //if( CDTXMania.DTX.bチップがある.Drums && !CDTXMania.ConfigIni.bギタレボモード )\r
+ //{\r
+ // Drums.nスコア = this.actScore.Get( E楽器パート.DRUMS );\r
+ // Drums.dbゲーム型スキル値 = CScoreIni.tゲーム型スキルを計算して返す( CDTXMania.DTX.LEVEL.Drums, CDTXMania.DTX.n可視チップ数.Drums, this.nヒット数・Auto含まない.Drums.Perfect, this.actCombo.n現在のコンボ数.Drums最高値 );\r
+ // Drums.db演奏型スキル値 = CScoreIni.t演奏型スキルを計算して返す( CDTXMania.DTX.n可視チップ数.Drums, this.nヒット数・Auto含まない.Drums.Perfect, this.nヒット数・Auto含まない.Drums.Great, this.nヒット数・Auto含まない.Drums.Good, this.nヒット数・Auto含まない.Drums.Poor, this.nヒット数・Auto含まない.Drums.Miss );\r
+ // Drums.nPerfect数 = CDTXMania.ConfigIni.bドラムが全部オートプレイである ? this.nヒット数・Auto含む.Drums.Perfect : this.nヒット数・Auto含まない.Drums.Perfect;\r
+ // Drums.nGreat数 = CDTXMania.ConfigIni.bドラムが全部オートプレイである ? this.nヒット数・Auto含む.Drums.Great : this.nヒット数・Auto含まない.Drums.Great;\r
+ // Drums.nGood数 = CDTXMania.ConfigIni.bドラムが全部オートプレイである ? this.nヒット数・Auto含む.Drums.Good : this.nヒット数・Auto含まない.Drums.Good;\r
+ // Drums.nPoor数 = CDTXMania.ConfigIni.bドラムが全部オートプレイである ? this.nヒット数・Auto含む.Drums.Poor : this.nヒット数・Auto含まない.Drums.Poor;\r
+ // Drums.nMiss数 = CDTXMania.ConfigIni.bドラムが全部オートプレイである ? this.nヒット数・Auto含む.Drums.Miss : this.nヒット数・Auto含まない.Drums.Miss;\r
+ // Drums.n最大コンボ数 = this.actCombo.n現在のコンボ数.Drums最高値;\r
+ // Drums.n全チップ数 = CDTXMania.DTX.n可視チップ数.Drums;\r
+ // for( int i = 0; i < 10; i++ )\r
+ // {\r
+ // Drums.bAutoPlay[ i ] = CDTXMania.ConfigIni.bAutoPlay[ i ];\r
+ // }\r
+ // Drums.bTight = CDTXMania.ConfigIni.bTight;\r
+ // for( int i = 0; i < 3; i++ )\r
+ // {\r
+ // Drums.bSudden[ i ] = CDTXMania.ConfigIni.bSudden[ i ];\r
+ // Drums.bHidden[ i ] = CDTXMania.ConfigIni.bHidden[ i ];\r
+ // Drums.bReverse[ i ] = CDTXMania.ConfigIni.bReverse[ i ];\r
+ // Drums.eRandom[ i ] = CDTXMania.ConfigIni.eRandom[ i ];\r
+ // Drums.bLight[ i ] = CDTXMania.ConfigIni.bLight[ i ];\r
+ // Drums.bLeft[ i ] = CDTXMania.ConfigIni.bLeft[ i ];\r
+ // Drums.f譜面スクロール速度[ i ] = ( (float) ( CDTXMania.ConfigIni.n譜面スクロール速度[ i ] + 1 ) ) * 0.5f;\r
+ // }\r
+ // Drums.eDark = CDTXMania.ConfigIni.eDark;\r
+ // Drums.n演奏速度分子 = CDTXMania.ConfigIni.n演奏速度;\r
+ // Drums.n演奏速度分母 = 20;\r
+ // Drums.eHHGroup = CDTXMania.ConfigIni.eHHGroup;\r
+ // Drums.eFTGroup = CDTXMania.ConfigIni.eFTGroup;\r
+ // Drums.eCYGroup = CDTXMania.ConfigIni.eCYGroup;\r
+ // Drums.eHitSoundPriorityHH = CDTXMania.ConfigIni.eHitSoundPriorityHH;\r
+ // Drums.eHitSoundPriorityFT = CDTXMania.ConfigIni.eHitSoundPriorityFT;\r
+ // Drums.eHitSoundPriorityCY = CDTXMania.ConfigIni.eHitSoundPriorityCY;\r
+ // Drums.bGuitar有効 = CDTXMania.ConfigIni.bGuitar有効;\r
+ // Drums.bDrums有効 = CDTXMania.ConfigIni.bDrums有効;\r
+ // Drums.bSTAGEFAILED有効 = CDTXMania.ConfigIni.bSTAGEFAILED有効;\r
+ // Drums.eダメージレベル = CDTXMania.ConfigIni.eダメージレベル;\r
+ // Drums.b演奏にキーボードを使用した = this.b演奏にキーボードを使った.Drums;\r
+ // Drums.b演奏にMIDI入力を使用した = this.b演奏にMIDI入力を使った.Drums;\r
+ // Drums.b演奏にジョイパッドを使用した = this.b演奏にジョイパッドを使った.Drums;\r
+ // Drums.b演奏にマウスを使用した = this.b演奏にマウスを使った.Drums;\r
+ // Drums.nPerfectになる範囲ms = CDTXMania.nPerfect範囲ms;\r
+ // Drums.nGreatになる範囲ms = CDTXMania.nGreat範囲ms;\r
+ // Drums.nGoodになる範囲ms = CDTXMania.nGood範囲ms;\r
+ // Drums.nPoorになる範囲ms = CDTXMania.nPoor範囲ms;\r
+ // Drums.strDTXManiaのバージョン = CDTXMania.VERSION;\r
+ // Drums.最終更新日時 = DateTime.Now.ToString();\r
+ // Drums.Hash = CScoreIni.t演奏セクションのMD5を求めて返す( Drums );\r
+ //}\r
+ #endregion\r
+ #region [Guitar処理(注釈化)]\r
+ //if( CDTXMania.DTX.bチップがある.Guitar )\r
+ //{\r
+ // Guitar.nスコア = this.actScore.Get( E楽器パート.GUITAR );\r
+ // Guitar.dbゲーム型スキル値 = CScoreIni.tゲーム型スキルを計算して返す( CDTXMania.DTX.LEVEL.Guitar, CDTXMania.DTX.n可視チップ数.Guitar, this.nヒット数・Auto含まない.Guitar.Perfect, this.actCombo.n現在のコンボ数.Guitar最高値 );\r
+ // Guitar.db演奏型スキル値 = CScoreIni.t演奏型スキルを計算して返す( CDTXMania.DTX.n可視チップ数.Guitar, this.nヒット数・Auto含まない.Guitar.Perfect, this.nヒット数・Auto含まない.Guitar.Great, this.nヒット数・Auto含まない.Guitar.Good, this.nヒット数・Auto含まない.Guitar.Poor, this.nヒット数・Auto含まない.Guitar.Miss );\r
+ // Guitar.nPerfect数 = CDTXMania.ConfigIni.bAutoPlay.Guitar ? this.nヒット数・Auto含む.Guitar.Perfect : this.nヒット数・Auto含まない.Guitar.Perfect;\r
+ // Guitar.nGreat数 = CDTXMania.ConfigIni.bAutoPlay.Guitar ? this.nヒット数・Auto含む.Guitar.Great : this.nヒット数・Auto含まない.Guitar.Great;\r
+ // Guitar.nGood数 = CDTXMania.ConfigIni.bAutoPlay.Guitar ? this.nヒット数・Auto含む.Guitar.Good : this.nヒット数・Auto含まない.Guitar.Good;\r
+ // Guitar.nPoor数 = CDTXMania.ConfigIni.bAutoPlay.Guitar ? this.nヒット数・Auto含む.Guitar.Poor : this.nヒット数・Auto含まない.Guitar.Poor;\r
+ // Guitar.nMiss数 = CDTXMania.ConfigIni.bAutoPlay.Guitar ? this.nヒット数・Auto含む.Guitar.Miss : this.nヒット数・Auto含まない.Guitar.Miss;\r
+ // Guitar.n最大コンボ数 = this.actCombo.n現在のコンボ数.Guitar最高値;\r
+ // Guitar.n全チップ数 = CDTXMania.DTX.n可視チップ数.Guitar;\r
+ // for( int i = 0; i < 10; i++ )\r
+ // {\r
+ // Guitar.bAutoPlay[ i ] = CDTXMania.ConfigIni.bAutoPlay[ i ];\r
+ // }\r
+ // Guitar.bTight = CDTXMania.ConfigIni.bTight;\r
+ // for( int i = 0; i < 3; i++ )\r
+ // {\r
+ // Guitar.bSudden[ i ] = CDTXMania.ConfigIni.bSudden[ i ];\r
+ // Guitar.bHidden[ i ] = CDTXMania.ConfigIni.bHidden[ i ];\r
+ // Guitar.bReverse[ i ] = CDTXMania.ConfigIni.bReverse[ i ];\r
+ // Guitar.eRandom[ i ] = CDTXMania.ConfigIni.eRandom[ i ];\r
+ // Guitar.bLight[ i ] = CDTXMania.ConfigIni.bLight[ i ];\r
+ // Guitar.bLeft[ i ] = CDTXMania.ConfigIni.bLeft[ i ];\r
+ // Guitar.f譜面スクロール速度[ i ] = ( (float) ( CDTXMania.ConfigIni.n譜面スクロール速度[ i ] + 1 ) ) * 0.5f;\r
+ // }\r
+ // Guitar.eDark = CDTXMania.ConfigIni.eDark;\r
+ // Guitar.n演奏速度分子 = CDTXMania.ConfigIni.n演奏速度;\r
+ // Guitar.n演奏速度分母 = 20;\r
+ // Guitar.eHHGroup = CDTXMania.ConfigIni.eHHGroup;\r
+ // Guitar.eFTGroup = CDTXMania.ConfigIni.eFTGroup;\r
+ // Guitar.eCYGroup = CDTXMania.ConfigIni.eCYGroup;\r
+ // Guitar.eHitSoundPriorityHH = CDTXMania.ConfigIni.eHitSoundPriorityHH;\r
+ // Guitar.eHitSoundPriorityFT = CDTXMania.ConfigIni.eHitSoundPriorityFT;\r
+ // Guitar.eHitSoundPriorityCY = CDTXMania.ConfigIni.eHitSoundPriorityCY;\r
+ // Guitar.bGuitar有効 = CDTXMania.ConfigIni.bGuitar有効;\r
+ // Guitar.bDrums有効 = CDTXMania.ConfigIni.bDrums有効;\r
+ // Guitar.bSTAGEFAILED有効 = CDTXMania.ConfigIni.bSTAGEFAILED有効;\r
+ // Guitar.eダメージレベル = CDTXMania.ConfigIni.eダメージレベル;\r
+ // Guitar.b演奏にキーボードを使用した = this.b演奏にキーボードを使った.Guitar;\r
+ // Guitar.b演奏にMIDI入力を使用した = this.b演奏にMIDI入力を使った.Guitar;\r
+ // Guitar.b演奏にジョイパッドを使用した = this.b演奏にジョイパッドを使った.Guitar;\r
+ // Guitar.b演奏にマウスを使用した = this.b演奏にマウスを使った.Guitar;\r
+ // Guitar.nPerfectになる範囲ms = CDTXMania.nPerfect範囲ms;\r
+ // Guitar.nGreatになる範囲ms = CDTXMania.nGreat範囲ms;\r
+ // Guitar.nGoodになる範囲ms = CDTXMania.nGood範囲ms;\r
+ // Guitar.nPoorになる範囲ms = CDTXMania.nPoor範囲ms;\r
+ // Guitar.strDTXManiaのバージョン = CDTXMania.VERSION;\r
+ // Guitar.最終更新日時 = DateTime.Now.ToString();\r
+ // Guitar.Hash = CScoreIni.t演奏セクションのMD5を求めて返す( Guitar );\r
+ //}\r
+ #endregion\r
+ #region [Bass処理(注釈化)]\r
+ //if( CDTXMania.DTX.bチップがある.Bass )\r
+ //{\r
+ // Bass.nスコア = this.actScore.Get( E楽器パート.BASS );\r
+ // Bass.dbゲーム型スキル値 = CScoreIni.tゲーム型スキルを計算して返す( CDTXMania.DTX.LEVEL.Bass, CDTXMania.DTX.n可視チップ数.Bass, this.nヒット数・Auto含まない.Bass.Perfect, this.actCombo.n現在のコンボ数.Bass最高値 );\r
+ // Bass.db演奏型スキル値 = CScoreIni.t演奏型スキルを計算して返す( CDTXMania.DTX.n可視チップ数.Bass, this.nヒット数・Auto含まない.Bass.Perfect, this.nヒット数・Auto含まない.Bass.Great, this.nヒット数・Auto含まない.Bass.Good, this.nヒット数・Auto含まない.Bass.Poor, this.nヒット数・Auto含まない.Bass.Miss );\r
+ // Bass.nPerfect数 = CDTXMania.ConfigIni.bAutoPlay.Bass ? this.nヒット数・Auto含む.Bass.Perfect : this.nヒット数・Auto含まない.Bass.Perfect;\r
+ // Bass.nGreat数 = CDTXMania.ConfigIni.bAutoPlay.Bass ? this.nヒット数・Auto含む.Bass.Great : this.nヒット数・Auto含まない.Bass.Great;\r
+ // Bass.nGood数 = CDTXMania.ConfigIni.bAutoPlay.Bass ? this.nヒット数・Auto含む.Bass.Good : this.nヒット数・Auto含まない.Bass.Good;\r
+ // Bass.nPoor数 = CDTXMania.ConfigIni.bAutoPlay.Bass ? this.nヒット数・Auto含む.Bass.Poor : this.nヒット数・Auto含まない.Bass.Poor;\r
+ // Bass.nMiss数 = CDTXMania.ConfigIni.bAutoPlay.Bass ? this.nヒット数・Auto含む.Bass.Miss : this.nヒット数・Auto含まない.Bass.Miss;\r
+ // Bass.n最大コンボ数 = this.actCombo.n現在のコンボ数.Bass最高値;\r
+ // Bass.n全チップ数 = CDTXMania.DTX.n可視チップ数.Bass;\r
+ // for( int i = 0; i < 10; i++ )\r
+ // {\r
+ // Bass.bAutoPlay[ i ] = CDTXMania.ConfigIni.bAutoPlay[ i ];\r
+ // }\r
+ // Bass.bTight = CDTXMania.ConfigIni.bTight;\r
+ // for( int i = 0; i < 3; i++ )\r
+ // {\r
+ // Bass.bSudden[ i ] = CDTXMania.ConfigIni.bSudden[ i ];\r
+ // Bass.bHidden[ i ] = CDTXMania.ConfigIni.bHidden[ i ];\r
+ // Bass.bReverse[ i ] = CDTXMania.ConfigIni.bReverse[ i ];\r
+ // Bass.eRandom[ i ] = CDTXMania.ConfigIni.eRandom[ i ];\r
+ // Bass.bLight[ i ] = CDTXMania.ConfigIni.bLight[ i ];\r
+ // Bass.bLeft[ i ] = CDTXMania.ConfigIni.bLeft[ i ];\r
+ // Bass.f譜面スクロール速度[ i ] = ( (float) ( CDTXMania.ConfigIni.n譜面スクロール速度[ i ] + 1 ) ) * 0.5f;\r
+ // }\r
+ // Bass.eDark = CDTXMania.ConfigIni.eDark;\r
+ // Bass.n演奏速度分子 = CDTXMania.ConfigIni.n演奏速度;\r
+ // Bass.n演奏速度分母 = 20;\r
+ // Bass.eHHGroup = CDTXMania.ConfigIni.eHHGroup;\r
+ // Bass.eFTGroup = CDTXMania.ConfigIni.eFTGroup;\r
+ // Bass.eCYGroup = CDTXMania.ConfigIni.eCYGroup;\r
+ // Bass.eHitSoundPriorityHH = CDTXMania.ConfigIni.eHitSoundPriorityHH;\r
+ // Bass.eHitSoundPriorityFT = CDTXMania.ConfigIni.eHitSoundPriorityFT;\r
+ // Bass.eHitSoundPriorityCY = CDTXMania.ConfigIni.eHitSoundPriorityCY;\r
+ // Bass.bGuitar有効 = CDTXMania.ConfigIni.bGuitar有効;\r
+ // Bass.bDrums有効 = CDTXMania.ConfigIni.bDrums有効;\r
+ // Bass.bSTAGEFAILED有効 = CDTXMania.ConfigIni.bSTAGEFAILED有効;\r
+ // Bass.eダメージレベル = CDTXMania.ConfigIni.eダメージレベル;\r
+ // Bass.b演奏にキーボードを使用した = this.b演奏にキーボードを使った.Bass; // #24280 2011.1.29 yyagi\r
+ // Bass.b演奏にMIDI入力を使用した = this.b演奏にMIDI入力を使った.Bass; //\r
+ // Bass.b演奏にジョイパッドを使用した = this.b演奏にジョイパッドを使った.Bass; //\r
+ // Bass.b演奏にマウスを使用した = this.b演奏にマウスを使った.Bass; //\r
+ // Bass.nPerfectになる範囲ms = CDTXMania.nPerfect範囲ms;\r
+ // Bass.nGreatになる範囲ms = CDTXMania.nGreat範囲ms;\r
+ // Bass.nGoodになる範囲ms = CDTXMania.nGood範囲ms;\r
+ // Bass.nPoorになる範囲ms = CDTXMania.nPoor範囲ms;\r
+ // Bass.strDTXManiaのバージョン = CDTXMania.VERSION;\r
+ // Bass.最終更新日時 = DateTime.Now.ToString();\r
+ // Bass.Hash = CScoreIni.t演奏セクションのMD5を求めて返す( Bass );\r
+ //}\r
+ #endregion\r
+\r
+ r空打ちドラムチップ = new CDTX.CChip[ 10 ];\r
+ for ( int i = 0; i < 10; i++ )\r
{\r
r空打ちドラムチップ[ i ] = this.r空うちChip( E楽器パート.DRUMS, (Eパッド) i );\r
if( r空打ちドラムチップ[ i ] == null )\r
r空打ちドラムチップ[ i ] = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( CDTXMania.Timer.n現在時刻, this.nパッド0Atoチャンネル0A[ i ], this.nInputAdjustTimeMs.Drums );\r
}\r
}\r
- if ( CDTXMania.ConfigIni.bIsSwappedGuitarBass ) // #24063 2011.1.24 yyagi Gt/Bsを入れ替えていたなら、演奏結果も入れ替える\r
- {\r
- CScoreIni.C演奏記録 t;\r
- t = Guitar;\r
- Guitar = Bass;\r
- Bass = t;\r
\r
- CDTXMania.DTX.SwapGuitarBassInfos(); // 譜面情報も元に戻す\r
- }\r
+// if ( CDTXMania.ConfigIni.bIsSwappedGuitarBass ) // #24063 2011.1.24 yyagi Gt/Bsを入れ替えていたなら、演奏結果も入れ替える\r
+// {\r
+// CScoreIni.C演奏記録 t;\r
+// t = Guitar;\r
+// Guitar = Bass;\r
+// Bass = t;\r
+// \r
+// CDTXMania.DTX.SwapGuitarBassInfos(); // 譜面情報も元に戻す\r
+// }\r
}\r
\r
\r
this.bフィルイン中 = false;\r
//this.n現在のトップChip = ( CDTXMania.DTX.listChip.Count > 0 ) ? 0 : -1;\r
// this.n最後に再生したHHの実WAV番号 = -1; // #23921 2011.1.4 yyagi\r
- this.L最後に再生したHHの実WAV番号 = new List<int>(16);\r
+ //this.L最後に再生したHHの実WAV番号 = new List<int>(16);\r
\r
//this.n最後に再生したHHのチャンネル番号 = 0;\r
//this.n最後に再生したギターの実WAV番号 = -1;\r
}\r
public override void On非活性化()\r
{\r
- this.L最後に再生したHHの実WAV番号.Clear(); // #23921 2011.1.4 yyagi\r
- this.L最後に再生したHHの実WAV番号 = null; //\r
+ //this.L最後に再生したHHの実WAV番号.Clear(); // #23921 2011.1.4 yyagi\r
+ //this.L最後に再生したHHの実WAV番号 = null; //\r
//for( int i = 0; i < 3; i++ )\r
//{\r
// this.queWailing[ i ] = null;\r
//}\r
- this.ctWailingチップ模様アニメ = null;\r
- this.ctチップ模様アニメ.Drums = null;\r
- this.ctチップ模様アニメ.Guitar = null;\r
- this.ctチップ模様アニメ.Bass = null;\r
+ //this.ctWailingチップ模様アニメ = null;\r
+ //this.ctチップ模様アニメ.Drums = null;\r
+ //this.ctチップ模様アニメ.Guitar = null;\r
+ //this.ctチップ模様アニメ.Bass = null;\r
base.On非活性化();\r
}\r
public override void OnManagedリソースの作成()\r
if( !base.b活性化してない )\r
{\r
//CDTXMania.tテクスチャの解放( ref this.tx背景 );\r
- //CDTXMania.tテクスチャの解放( ref this.txヒットバー );\r
+ CDTXMania.tテクスチャの解放( ref this.txヒットバー );\r
CDTXMania.tテクスチャの解放( ref this.txヒットバーGB );\r
CDTXMania.tテクスチャの解放( ref this.txチップ );\r
CDTXMania.tテクスチャの解放( ref this.txレーンフレームGB );\r
this.t進行描画・WailingBonus();\r
this.t進行描画・譜面スクロール速度();\r
this.t進行描画・チップアニメ();\r
- flag = this.t進行描画・チップ();\r
+ flag = this.t進行描画・チップ(E楽器パート.DRUMS);\r
this.t進行描画・演奏情報();\r
this.t進行描画・ドラムパッド();\r
this.t進行描画・判定文字列2・判定ライン上指定の場合();\r
//private CAct演奏AVI actAVI;\r
//private CAct演奏BGA actBGA;\r
private CAct演奏DrumsチップファイアD actChipFireD;\r
- private CAct演奏DrumsチップファイアGB actChipFireGB;\r
+ //private CAct演奏DrumsチップファイアGB actChipFireGB;\r
//private CAct演奏DrumsコンボDGB actCombo;\r
- private CAct演奏DrumsDanger actDANGER;\r
+ //private CAct演奏DrumsDanger actDANGER;\r
//private CActFIFOBlack actFI;\r
//private CActFIFOBlack actFO;\r
//private CActFIFOWhite actFOClear;\r
//private CAct演奏Drumsゲージ actGauge;\r
private CAct演奏Drumsグラフ actGraph; // #24074 2011.01.23 add ikanick\r
//private CAct演奏Drums判定文字列 actJudgeString;\r
- private CAct演奏DrumsレーンフラッシュD actLaneFlushD;\r
- private CAct演奏DrumsレーンフラッシュGB actLaneFlushGB;\r
+ //private CAct演奏DrumsレーンフラッシュD actLaneFlushD;\r
+ //private CAct演奏DrumsレーンフラッシュGB actLaneFlushGB;\r
private CAct演奏Drumsパッド actPad;\r
//private CAct演奏パネル文字列 actPanel;\r
//private CAct演奏演奏情報 actPlayInfo;\r
- private CAct演奏DrumsRGB actRGB;\r
+ //private CAct演奏DrumsRGB actRGB;\r
//private CAct演奏Drumsスコア actScore;\r
//private CAct演奏ステージ失敗 actStageFailed;\r
//private CAct演奏Drumsステータスパネル actStatusPanels;\r
//private STDGBVALUE<bool> b演奏にマウスを使った;\r
//private CCounter ctWailingチップ模様アニメ;\r
//private STDGBVALUE<CCounter> ctチップ模様アニメ;\r
- private readonly Eパッド[] eチャンネルtoパッド;\r
+ private readonly Eパッド[] eチャンネルtoパッド = new Eパッド[]\r
+ {\r
+ Eパッド.HH, Eパッド.SD, Eパッド.BD, Eパッド.HT,\r
+ Eパッド.LT, Eパッド.CY, Eパッド.FT, Eパッド.HHO,\r
+ Eパッド.RD, Eパッド.UNKNOWN, Eパッド.UNKNOWN, Eパッド.LC\r
+ };\r
//private E演奏画面の戻り値 eフェードアウト完了時の戻り値;\r
//private readonly int[,] nBGAスコープチャンネルマップ;\r
//private readonly int[,] nBGAスコープチャンネルマップ = new int[ , ] { { 0xc4, 0xc7, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xe0 }, { 4, 7, 0x55, 0x56, 0x57, 0x58, 0x59, 0x60 } };\r
// private int n現在のトップChip = -1;\r
//private int[] n最後に再生したBGMの実WAV番号 = new int[ 50 ];\r
//private int n最後に再生したHHのチャンネル番号;\r
- private List<int> L最後に再生したHHの実WAV番号; // #23921 2011.1.4 yyagi: change "int" to "List<int>", for recording multiple wav No.\r
+ //private List<int> L最後に再生したHHの実WAV番号; // #23921 2011.1.4 yyagi: change "int" to "List<int>", for recording multiple wav No.\r
//private int n最後に再生したギターの実WAV番号;\r
//private int n最後に再生したベースの実WAV番号;\r
//private STDGBVALUE<Queue<CDTX.CChip>> queWailing;\r
//private CDTX.CChip r次にくるギターChip;\r
//private CDTX.CChip r次にくるベースChip;\r
//private CTexture txWailing枠;\r
- private CTexture txチップ;\r
+ //private CTexture txチップ;\r
//private CTexture txヒットバー;\r
private CTexture txヒットバーGB;\r
private CTexture txレーンフレームGB;\r
// }\r
// return E判定.Miss;\r
// }\r
- private CDTX.CChip r空うちChip( E楽器パート part, Eパッド pad )\r
- {\r
- switch( part )\r
- {\r
- case E楽器パート.DRUMS:\r
- switch( pad )\r
- {\r
- case Eパッド.HH:\r
- if( this.r現在の空うちドラムChip.HH != null )\r
- {\r
- return this.r現在の空うちドラムChip.HH;\r
- }\r
- if( CDTXMania.ConfigIni.eHHGroup != EHHGroup.ハイハットのみ打ち分ける )\r
- {\r
- if( CDTXMania.ConfigIni.eHHGroup == EHHGroup.左シンバルのみ打ち分ける )\r
- {\r
- return this.r現在の空うちドラムChip.HHO;\r
- }\r
- if( this.r現在の空うちドラムChip.HHO != null )\r
- {\r
- return this.r現在の空うちドラムChip.HHO;\r
- }\r
- }\r
- return this.r現在の空うちドラムChip.LC;\r
+ //private CDTX.CChip r空うちChip( E楽器パート part, Eパッド pad )\r
+ //{\r
+ // switch( part )\r
+ // {\r
+ // case E楽器パート.DRUMS:\r
+ // switch( pad )\r
+ // {\r
+ // case Eパッド.HH:\r
+ // if( this.r現在の空うちドラムChip.HH != null )\r
+ // {\r
+ // return this.r現在の空うちドラムChip.HH;\r
+ // }\r
+ // if( CDTXMania.ConfigIni.eHHGroup != EHHGroup.ハイハットのみ打ち分ける )\r
+ // {\r
+ // if( CDTXMania.ConfigIni.eHHGroup == EHHGroup.左シンバルのみ打ち分ける )\r
+ // {\r
+ // return this.r現在の空うちドラムChip.HHO;\r
+ // }\r
+ // if( this.r現在の空うちドラムChip.HHO != null )\r
+ // {\r
+ // return this.r現在の空うちドラムChip.HHO;\r
+ // }\r
+ // }\r
+ // return this.r現在の空うちドラムChip.LC;\r
\r
- case Eパッド.SD:\r
- return this.r現在の空うちドラムChip.SD;\r
+ // case Eパッド.SD:\r
+ // return this.r現在の空うちドラムChip.SD;\r
\r
- case Eパッド.BD:\r
- return this.r現在の空うちドラムChip.BD;\r
+ // case Eパッド.BD:\r
+ // return this.r現在の空うちドラムChip.BD;\r
\r
- case Eパッド.HT:\r
- return this.r現在の空うちドラムChip.HT;\r
+ // case Eパッド.HT:\r
+ // return this.r現在の空うちドラムChip.HT;\r
\r
- case Eパッド.LT:\r
- if( this.r現在の空うちドラムChip.LT != null )\r
- {\r
- return this.r現在の空うちドラムChip.LT;\r
- }\r
- if( CDTXMania.ConfigIni.eFTGroup == EFTGroup.共通 )\r
- {\r
- return this.r現在の空うちドラムChip.FT;\r
- }\r
- return null;\r
+ // case Eパッド.LT:\r
+ // if( this.r現在の空うちドラムChip.LT != null )\r
+ // {\r
+ // return this.r現在の空うちドラムChip.LT;\r
+ // }\r
+ // if( CDTXMania.ConfigIni.eFTGroup == EFTGroup.共通 )\r
+ // {\r
+ // return this.r現在の空うちドラムChip.FT;\r
+ // }\r
+ // return null;\r
\r
- case Eパッド.FT:\r
- if( this.r現在の空うちドラムChip.FT != null )\r
- {\r
- return this.r現在の空うちドラムChip.FT;\r
- }\r
- if( CDTXMania.ConfigIni.eFTGroup == EFTGroup.共通 )\r
- {\r
- return this.r現在の空うちドラムChip.LT;\r
- }\r
- return null;\r
+ // case Eパッド.FT:\r
+ // if( this.r現在の空うちドラムChip.FT != null )\r
+ // {\r
+ // return this.r現在の空うちドラムChip.FT;\r
+ // }\r
+ // if( CDTXMania.ConfigIni.eFTGroup == EFTGroup.共通 )\r
+ // {\r
+ // return this.r現在の空うちドラムChip.LT;\r
+ // }\r
+ // return null;\r
\r
- case Eパッド.CY:\r
- if( this.r現在の空うちドラムChip.CY != null )\r
- {\r
- return this.r現在の空うちドラムChip.CY;\r
- }\r
- if( CDTXMania.ConfigIni.eCYGroup == ECYGroup.共通 )\r
- {\r
- return this.r現在の空うちドラムChip.RD;\r
- }\r
- return null;\r
+ // case Eパッド.CY:\r
+ // if( this.r現在の空うちドラムChip.CY != null )\r
+ // {\r
+ // return this.r現在の空うちドラムChip.CY;\r
+ // }\r
+ // if( CDTXMania.ConfigIni.eCYGroup == ECYGroup.共通 )\r
+ // {\r
+ // return this.r現在の空うちドラムChip.RD;\r
+ // }\r
+ // return null;\r
\r
- case Eパッド.HHO:\r
- if( this.r現在の空うちドラムChip.HHO != null )\r
- {\r
- return this.r現在の空うちドラムChip.HHO;\r
- }\r
- if( CDTXMania.ConfigIni.eHHGroup != EHHGroup.ハイハットのみ打ち分ける )\r
- {\r
- if( CDTXMania.ConfigIni.eHHGroup == EHHGroup.左シンバルのみ打ち分ける )\r
- {\r
- return this.r現在の空うちドラムChip.HH;\r
- }\r
- if( this.r現在の空うちドラムChip.HH != null )\r
- {\r
- return this.r現在の空うちドラムChip.HH;\r
- }\r
- }\r
- return this.r現在の空うちドラムChip.LC;\r
+ // case Eパッド.HHO:\r
+ // if( this.r現在の空うちドラムChip.HHO != null )\r
+ // {\r
+ // return this.r現在の空うちドラムChip.HHO;\r
+ // }\r
+ // if( CDTXMania.ConfigIni.eHHGroup != EHHGroup.ハイハットのみ打ち分ける )\r
+ // {\r
+ // if( CDTXMania.ConfigIni.eHHGroup == EHHGroup.左シンバルのみ打ち分ける )\r
+ // {\r
+ // return this.r現在の空うちドラムChip.HH;\r
+ // }\r
+ // if( this.r現在の空うちドラムChip.HH != null )\r
+ // {\r
+ // return this.r現在の空うちドラムChip.HH;\r
+ // }\r
+ // }\r
+ // return this.r現在の空うちドラムChip.LC;\r
\r
- case Eパッド.RD:\r
- if( this.r現在の空うちドラムChip.RD != null )\r
- {\r
- return this.r現在の空うちドラムChip.RD;\r
- }\r
- if( CDTXMania.ConfigIni.eCYGroup == ECYGroup.共通 )\r
- {\r
- return this.r現在の空うちドラムChip.CY;\r
- }\r
- return null;\r
+ // case Eパッド.RD:\r
+ // if( this.r現在の空うちドラムChip.RD != null )\r
+ // {\r
+ // return this.r現在の空うちドラムChip.RD;\r
+ // }\r
+ // if( CDTXMania.ConfigIni.eCYGroup == ECYGroup.共通 )\r
+ // {\r
+ // return this.r現在の空うちドラムChip.CY;\r
+ // }\r
+ // return null;\r
\r
- case Eパッド.LC:\r
- if( this.r現在の空うちドラムChip.LC != null )\r
- {\r
- return this.r現在の空うちドラムChip.LC;\r
- }\r
- if( ( CDTXMania.ConfigIni.eHHGroup != EHHGroup.ハイハットのみ打ち分ける ) && ( CDTXMania.ConfigIni.eHHGroup != EHHGroup.全部共通 ) )\r
- {\r
- return null;\r
- }\r
- if( this.r現在の空うちドラムChip.HH != null )\r
- {\r
- return this.r現在の空うちドラムChip.HH;\r
- }\r
- return this.r現在の空うちドラムChip.HHO;\r
- }\r
- break;\r
+ // case Eパッド.LC:\r
+ // if( this.r現在の空うちドラムChip.LC != null )\r
+ // {\r
+ // return this.r現在の空うちドラムChip.LC;\r
+ // }\r
+ // if( ( CDTXMania.ConfigIni.eHHGroup != EHHGroup.ハイハットのみ打ち分ける ) && ( CDTXMania.ConfigIni.eHHGroup != EHHGroup.全部共通 ) )\r
+ // {\r
+ // return null;\r
+ // }\r
+ // if( this.r現在の空うちドラムChip.HH != null )\r
+ // {\r
+ // return this.r現在の空うちドラムChip.HH;\r
+ // }\r
+ // return this.r現在の空うちドラムChip.HHO;\r
+ // }\r
+ // break;\r
\r
- case E楽器パート.GUITAR:\r
- return this.r現在の空うちギターChip;\r
+ // case E楽器パート.GUITAR:\r
+ // return this.r現在の空うちギターChip;\r
\r
- case E楽器パート.BASS:\r
- return this.r現在の空うちベースChip;\r
- }\r
- return null;\r
- }\r
+ // case E楽器パート.BASS:\r
+ // return this.r現在の空うちベースChip;\r
+ // }\r
+ // return null;\r
+ //}\r
//private CDTX.CChip r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( long nTime, int nChannelFlag, int nInputAdjustTime )\r
//{\r
// nTime += nInputAdjustTime; // #24239 2011.1.23 yyagi InputAdjust\r
// }\r
// return chip3;\r
//}\r
- private CDTX.CChip r指定時刻に一番近い未ヒットChip( long nTime, int nChannelFlag, int nInputAdjustTime )\r
- {\r
- return this.r指定時刻に一番近い未ヒットChip( nTime, nChannelFlag, nInputAdjustTime, 0 );\r
- }\r
+ //private CDTX.CChip r指定時刻に一番近い未ヒットChip( long nTime, int nChannelFlag, int nInputAdjustTime )\r
+ //{\r
+ // return this.r指定時刻に一番近い未ヒットChip( nTime, nChannelFlag, nInputAdjustTime, 0 );\r
+ //}\r
//private CDTX.CChip r指定時刻に一番近い未ヒットChip( long nTime, int nChannelFlag, int nInputAdjustTime, int n検索範囲時間ms )\r
//{\r
// nTime += nInputAdjustTime;\r
// this.r次にくるベースChip = this.r指定時刻に一番近い未ヒットChip( CDTXMania.Timer.n現在時刻, 0xaf, nInputAdjustTime, 500 );\r
// return this.r次にくるベースChip;\r
//}\r
- private void tサウンド再生( CDTX.CChip rChip, long n再生開始システム時刻ms, E楽器パート part )\r
- {\r
- this.tサウンド再生( rChip, n再生開始システム時刻ms, part, CDTXMania.ConfigIni.n手動再生音量, false, false );\r
- }\r
- private void tサウンド再生( CDTX.CChip rChip, long n再生開始システム時刻ms, E楽器パート part, int n音量 )\r
- {\r
- this.tサウンド再生( rChip, n再生開始システム時刻ms, part, n音量, false, false );\r
- }\r
- private void tサウンド再生( CDTX.CChip rChip, long n再生開始システム時刻ms, E楽器パート part, int n音量, bool bモニタ )\r
- {\r
- this.tサウンド再生( rChip, n再生開始システム時刻ms, part, n音量, bモニタ, false );\r
- }\r
- private void tサウンド再生( CDTX.CChip pChip, long n再生開始システム時刻ms, E楽器パート part, int n音量, bool bモニタ, bool b音程をずらして再生 )\r
- {\r
- if( pChip != null )\r
- {\r
- switch( part )\r
- {\r
- case E楽器パート.DRUMS:\r
- {\r
- int index = pChip.nチャンネル番号;\r
- if ( ( index >= 0x11 ) && ( index <= 0x1a ) )\r
- {\r
- index -= 0x11;\r
- }\r
- else\r
- {\r
- if ( ( index < 0x31 ) || ( index > 0x3a ) )\r
- {\r
- return;\r
- }\r
- index -= 0x31;\r
- }\r
- int nLane = this.nチャンネル0Atoレーン07[ index ];\r
- if( ( nLane == 1 ) && // 今回演奏するのがHC or HO\r
- ( index == 0 || ( index == 7 && this.n最後に再生したHHのチャンネル番号 != 0x18 && this.n最後に再生したHHのチャンネル番号 != 0x38 ) )\r
- // HCを演奏するか、またはHO演奏&以前HO演奏でない&以前不可視HO演奏でない\r
- )\r
- {\r
- // #23921 2011.1.4 yyagi: 2種類以上のオープンハイハットが発音済みだと、最後のHHOしか消せない問題に対応。\r
-#if TEST_NOTEOFFMODE // 2011.1.1 yyagi test\r
- if (CDTXMania.DTX.bHH演奏で直前のHHを消音する)\r
- {\r
-#endif\r
- for (int i = 0; i < this.L最後に再生したHHの実WAV番号.Count; i++) // #23921 2011.1.4 yyagi\r
- {\r
- // CDTXMania.DTX.tWavの再生停止(this.L最後に再生したHHの実WAV番号);\r
- CDTXMania.DTX.tWavの再生停止(this.L最後に再生したHHの実WAV番号[i]); // #23921 yyagi ストック分全て消音する\r
- }\r
- this.L最後に再生したHHの実WAV番号.Clear();\r
-#if TEST_NOTEOFFMODE // 2011.1.1 yyagi test\r
- }\r
-#endif\r
- //this.n最後に再生したHHの実WAV番号 = pChip.n整数値・内部番号;\r
- this.n最後に再生したHHのチャンネル番号 = pChip.nチャンネル番号;\r
- }\r
-#if TEST_NOTEOFFMODE // 2011.1.4 yyagi test\r
- if (CDTXMania.DTX.bHH演奏で直前のHHを消音する)\r
- {\r
-#endif\r
- if (index == 7 || index == 0x27) // #23921 HOまたは不可視HO演奏時はそのチップ番号をストックしておく\r
- {\r
- if (this.L最後に再生したHHの実WAV番号.Count >= 16) // #23921 ただしストック数が16以上になるようなら、頭の1個を削って常に16未満に抑える\r
- { // (ストックが増えてList<>のrealloc()が発生するのを予防する)\r
- this.L最後に再生したHHの実WAV番号.RemoveAt(0);\r
- }\r
- if (this.L最後に再生したHHの実WAV番号.IndexOf(pChip.n整数値・内部番号) < 0) // チップ音がまだストックされてなければ\r
- {\r
- this.L最後に再生したHHの実WAV番号.Add(pChip.n整数値・内部番号); // ストックする\r
- }\r
- }\r
-#if TEST_NOTEOFFMODE // 2011.1.4 yyagi test\r
- }\r
-#endif\r
- CDTXMania.DTX.tチップの再生( pChip, n再生開始システム時刻ms, nLane, n音量, bモニタ );\r
- return;\r
- }\r
- case E楽器パート.GUITAR:\r
-#if TEST_NOTEOFFMODE // 2011.1.1 yyagi test\r
- if (CDTXMania.DTX.bGUITAR演奏で直前のGUITARを消音する) {\r
-#endif\r
- CDTXMania.DTX.tWavの再生停止(this.n最後に再生したギターの実WAV番号);\r
-#if TEST_NOTEOFFMODE\r
- }\r
-#endif\r
- CDTXMania.DTX.tチップの再生(pChip, n再生開始システム時刻ms, 8, n音量, bモニタ, b音程をずらして再生);\r
- this.n最後に再生したギターの実WAV番号 = pChip.n整数値・内部番号;\r
- return;\r
+ //private void tサウンド再生( CDTX.CChip rChip, long n再生開始システム時刻ms, E楽器パート part )\r
+ //{\r
+ // this.tサウンド再生( rChip, n再生開始システム時刻ms, part, CDTXMania.ConfigIni.n手動再生音量, false, false );\r
+ //}\r
+ //private void tサウンド再生( CDTX.CChip rChip, long n再生開始システム時刻ms, E楽器パート part, int n音量 )\r
+ //{\r
+ // this.tサウンド再生( rChip, n再生開始システム時刻ms, part, n音量, false, false );\r
+ //}\r
+ //private void tサウンド再生( CDTX.CChip rChip, long n再生開始システム時刻ms, E楽器パート part, int n音量, bool bモニタ )\r
+ //{\r
+ // this.tサウンド再生( rChip, n再生開始システム時刻ms, part, n音量, bモニタ, false );\r
+ //}\r
+// private void tサウンド再生( CDTX.CChip pChip, long n再生開始システム時刻ms, E楽器パート part, int n音量, bool bモニタ, bool b音程をずらして再生 )\r
+// {\r
+// if( pChip != null )\r
+// {\r
+// switch( part )\r
+// {\r
+// case E楽器パート.DRUMS:\r
+// {\r
+// int index = pChip.nチャンネル番号;\r
+// if ( ( index >= 0x11 ) && ( index <= 0x1a ) )\r
+// {\r
+// index -= 0x11;\r
+// }\r
+// else\r
+// {\r
+// if ( ( index < 0x31 ) || ( index > 0x3a ) )\r
+// {\r
+// return;\r
+// }\r
+// index -= 0x31;\r
+// }\r
+// int nLane = this.nチャンネル0Atoレーン07[ index ];\r
+// if( ( nLane == 1 ) && // 今回演奏するのがHC or HO\r
+// ( index == 0 || ( index == 7 && this.n最後に再生したHHのチャンネル番号 != 0x18 && this.n最後に再生したHHのチャンネル番号 != 0x38 ) )\r
+// // HCを演奏するか、またはHO演奏&以前HO演奏でない&以前不可視HO演奏でない\r
+// )\r
+// {\r
+// // #23921 2011.1.4 yyagi: 2種類以上のオープンハイハットが発音済みだと、最後のHHOしか消せない問題に対応。\r
+//#if TEST_NOTEOFFMODE // 2011.1.1 yyagi test\r
+// if (CDTXMania.DTX.bHH演奏で直前のHHを消音する)\r
+// {\r
+//#endif\r
+// for (int i = 0; i < this.L最後に再生したHHの実WAV番号.Count; i++) // #23921 2011.1.4 yyagi\r
+// {\r
+// // CDTXMania.DTX.tWavの再生停止(this.L最後に再生したHHの実WAV番号);\r
+// CDTXMania.DTX.tWavの再生停止(this.L最後に再生したHHの実WAV番号[i]); // #23921 yyagi ストック分全て消音する\r
+// }\r
+// this.L最後に再生したHHの実WAV番号.Clear();\r
+//#if TEST_NOTEOFFMODE // 2011.1.1 yyagi test\r
+// }\r
+//#endif\r
+// //this.n最後に再生したHHの実WAV番号 = pChip.n整数値・内部番号;\r
+// this.n最後に再生したHHのチャンネル番号 = pChip.nチャンネル番号;\r
+// }\r
+//#if TEST_NOTEOFFMODE // 2011.1.4 yyagi test\r
+// if (CDTXMania.DTX.bHH演奏で直前のHHを消音する)\r
+// {\r
+//#endif\r
+// if (index == 7 || index == 0x27) // #23921 HOまたは不可視HO演奏時はそのチップ番号をストックしておく\r
+// {\r
+// if (this.L最後に再生したHHの実WAV番号.Count >= 16) // #23921 ただしストック数が16以上になるようなら、頭の1個を削って常に16未満に抑える\r
+// { // (ストックが増えてList<>のrealloc()が発生するのを予防する)\r
+// this.L最後に再生したHHの実WAV番号.RemoveAt(0);\r
+// }\r
+// if (this.L最後に再生したHHの実WAV番号.IndexOf(pChip.n整数値・内部番号) < 0) // チップ音がまだストックされてなければ\r
+// {\r
+// this.L最後に再生したHHの実WAV番号.Add(pChip.n整数値・内部番号); // ストックする\r
+// }\r
+// }\r
+//#if TEST_NOTEOFFMODE // 2011.1.4 yyagi test\r
+// }\r
+//#endif\r
+// CDTXMania.DTX.tチップの再生( pChip, n再生開始システム時刻ms, nLane, n音量, bモニタ );\r
+// return;\r
+// }\r
+// case E楽器パート.GUITAR:\r
+//#if TEST_NOTEOFFMODE // 2011.1.1 yyagi test\r
+// if (CDTXMania.DTX.bGUITAR演奏で直前のGUITARを消音する) {\r
+//#endif\r
+// CDTXMania.DTX.tWavの再生停止(this.n最後に再生したギターの実WAV番号);\r
+//#if TEST_NOTEOFFMODE\r
+// }\r
+//#endif\r
+// CDTXMania.DTX.tチップの再生(pChip, n再生開始システム時刻ms, 8, n音量, bモニタ, b音程をずらして再生);\r
+// this.n最後に再生したギターの実WAV番号 = pChip.n整数値・内部番号;\r
+// return;\r
\r
- case E楽器パート.BASS:\r
-#if TEST_NOTEOFFMODE\r
- if (CDTXMania.DTX.bBASS演奏で直前のBASSを消音する) {\r
-#endif\r
- CDTXMania.DTX.tWavの再生停止(this.n最後に再生したベースの実WAV番号);\r
-#if TEST_NOTEOFFMODE\r
- }\r
-#endif\r
- CDTXMania.DTX.tチップの再生( pChip, n再生開始システム時刻ms, 9, n音量, bモニタ, b音程をずらして再生 );\r
- this.n最後に再生したベースの実WAV番号 = pChip.n整数値・内部番号;\r
- return;\r
- }\r
- }\r
- }\r
+// case E楽器パート.BASS:\r
+//#if TEST_NOTEOFFMODE\r
+// if (CDTXMania.DTX.bBASS演奏で直前のBASSを消音する) {\r
+//#endif\r
+// CDTXMania.DTX.tWavの再生停止(this.n最後に再生したベースの実WAV番号);\r
+//#if TEST_NOTEOFFMODE\r
+// }\r
+//#endif\r
+// CDTXMania.DTX.tチップの再生( pChip, n再生開始システム時刻ms, 9, n音量, bモニタ, b音程をずらして再生 );\r
+// this.n最後に再生したベースの実WAV番号 = pChip.n整数値・内部番号;\r
+// return;\r
+// }\r
+// }\r
+// }\r
//private void tステータスパネルの選択()\r
//{\r
// if( CDTXMania.bコンパクトモード )\r
// this.actStatusPanels.tラベル名からステータスパネルを決定する( CDTXMania.stage選曲.r確定された曲.ar難易度ラベル[ CDTXMania.stage選曲.n確定された曲の難易度 ] );\r
// }\r
//}\r
- private E判定 tチップのヒット処理( long nHitTime, CDTX.CChip pChip )\r
+ protected override E判定 tチップのヒット処理( long nHitTime, CDTX.CChip pChip )\r
{\r
- pChip.bHit = true;\r
- bool bPChipIsAutoPlay = false;\r
- if( (\r
- ( ( pChip.e楽器パート == E楽器パート.DRUMS ) && CDTXMania.ConfigIni.bAutoPlay[ this.nチャンネル0Atoレーン07[ pChip.nチャンネル番号 - 0x11 ] ] ) ||\r
- ( ( pChip.e楽器パート == E楽器パート.GUITAR ) && CDTXMania.ConfigIni.bAutoPlay.Guitar )\r
- ) ||\r
- ( ( pChip.e楽器パート == E楽器パート.BASS ) && CDTXMania.ConfigIni.bAutoPlay.Bass )\r
- )\r
- {\r
- bPChipIsAutoPlay = true;\r
- }\r
- else\r
- {\r
- this.bAUTOでないチップが1つでもバーを通過した = true;\r
- }\r
- E判定 eJudgeResult = E判定.Auto;\r
- switch (pChip.e楽器パート)\r
- {\r
- case E楽器パート.DRUMS:\r
- {\r
- int nInputAdjustTime = bIsAutoPlay[ this.nチャンネル0Atoレーン07[ pChip.nチャンネル番号 - 0x11 ] ] ? 0 : this.nInputAdjustTimeMs.Drums;\r
- eJudgeResult = this.e指定時刻からChipのJUDGEを返す( nHitTime, pChip, nInputAdjustTime );\r
- this.actJudgeString.Start( this.nチャンネル0Atoレーン07[ pChip.nチャンネル番号 - 0x11 ], bIsAutoPlay[ this.nチャンネル0Atoレーン07[ pChip.nチャンネル番号 - 0x11 ] ] ? E判定.Auto : eJudgeResult, pChip.nLag );\r
- }\r
- break;\r
+ E判定 eJudgeResult = tチップのヒット処理( nHitTime, pChip, E楽器パート.DRUMS );\r
+ // #24074 2011.01.23 add ikanick\r
+ this.actGraph.dbグラフ値現在_渡 = CScoreIni.t演奏型スキルを計算して返す( CDTXMania.DTX.n可視チップ数.Drums, this.nヒット数・Auto含まない.Drums.Perfect, this.nヒット数・Auto含まない.Drums.Great, this.nヒット数・Auto含まない.Drums.Good, this.nヒット数・Auto含まない.Drums.Poor, this.nヒット数・Auto含まない.Drums.Miss );\r
+ return eJudgeResult;\r
+ }\r
+ //private E判定 tチップのヒット処理( long nHitTime, CDTX.CChip pChip )\r
+ //{\r
+ // pChip.bHit = true;\r
+ // bool bPChipIsAutoPlay = false;\r
+ // if ( (\r
+ // ( ( pChip.e楽器パート == E楽器パート.DRUMS ) && CDTXMania.ConfigIni.bAutoPlay[ this.nチャンネル0Atoレーン07[ pChip.nチャンネル番号 - 0x11 ] ] ) ||\r
+ // ( ( pChip.e楽器パート == E楽器パート.GUITAR ) && CDTXMania.ConfigIni.bAutoPlay.Guitar )\r
+ // ) ||\r
+ // ( ( pChip.e楽器パート == E楽器パート.BASS ) && CDTXMania.ConfigIni.bAutoPlay.Bass )\r
+ // )\r
+ // {\r
+ // bPChipIsAutoPlay = true;\r
+ // }\r
+ // else\r
+ // {\r
+ // this.bAUTOでないチップが1つでもバーを通過した = true;\r
+ // }\r
+ // E判定 eJudgeResult = E判定.Auto;\r
+ // switch (pChip.e楽器パート)\r
+ // {\r
+ // case E楽器パート.DRUMS:\r
+ // {\r
+ // int nInputAdjustTime = bIsAutoPlay[ this.nチャンネル0Atoレーン07[ pChip.nチャンネル番号 - 0x11 ] ] ? 0 : this.nInputAdjustTimeMs.Drums;\r
+ // eJudgeResult = this.e指定時刻からChipのJUDGEを返す( nHitTime, pChip, nInputAdjustTime );\r
+ // this.actJudgeString.Start( this.nチャンネル0Atoレーン07[ pChip.nチャンネル番号 - 0x11 ], bIsAutoPlay[ this.nチャンネル0Atoレーン07[ pChip.nチャンネル番号 - 0x11 ] ] ? E判定.Auto : eJudgeResult, pChip.nLag );\r
+ // }\r
+ // break;\r
\r
- case E楽器パート.GUITAR:\r
- {\r
- int nInputAdjustTime = bIsAutoPlay.Guitar ? 0 : this.nInputAdjustTimeMs.Guitar;\r
- eJudgeResult = this.e指定時刻からChipのJUDGEを返す( nHitTime, pChip, nInputAdjustTime );\r
- this.actJudgeString.Start( 10, bIsAutoPlay.Guitar ? E判定.Auto : eJudgeResult, pChip.nLag );\r
- }\r
- break;\r
+ // case E楽器パート.GUITAR:\r
+ // {\r
+ // int nInputAdjustTime = bIsAutoPlay.Guitar ? 0 : this.nInputAdjustTimeMs.Guitar;\r
+ // eJudgeResult = this.e指定時刻からChipのJUDGEを返す( nHitTime, pChip, nInputAdjustTime );\r
+ // this.actJudgeString.Start( 10, bIsAutoPlay.Guitar ? E判定.Auto : eJudgeResult, pChip.nLag );\r
+ // }\r
+ // break;\r
\r
- case E楽器パート.BASS:\r
- {\r
- int nInputAdjustTime = bIsAutoPlay.Bass ? 0 : this.nInputAdjustTimeMs.Bass;\r
- eJudgeResult = this.e指定時刻からChipのJUDGEを返す( nHitTime, pChip, nInputAdjustTime );\r
- this.actJudgeString.Start( 11, bIsAutoPlay.Bass ? E判定.Auto : eJudgeResult, pChip.nLag );\r
- }\r
- break;\r
- }\r
- if( !bPChipIsAutoPlay && ( pChip.e楽器パート != E楽器パート.UNKNOWN ) )\r
- {\r
- this.t判定にあわせてゲージを増減する( E楽器パート.DRUMS, pChip.e楽器パート, eJudgeResult );\r
- }\r
- switch( pChip.e楽器パート )\r
- {\r
- case E楽器パート.DRUMS:\r
- switch ( eJudgeResult )\r
- {\r
- case E判定.Miss:\r
- case E判定.Bad:\r
- this.nヒット数・Auto含む.Drums.Miss++;\r
- if ( !bPChipIsAutoPlay )\r
- {\r
- this.nヒット数・Auto含まない.Drums.Miss++;\r
- }\r
- break;\r
- default:\r
- this.nヒット数・Auto含む.Drums[ (int) eJudgeResult ]++;\r
- if ( !bPChipIsAutoPlay )\r
- {\r
- this.nヒット数・Auto含まない.Drums[ (int) eJudgeResult ]++;\r
- }\r
- break;\r
- }\r
+ // case E楽器パート.BASS:\r
+ // {\r
+ // int nInputAdjustTime = bIsAutoPlay.Bass ? 0 : this.nInputAdjustTimeMs.Bass;\r
+ // eJudgeResult = this.e指定時刻からChipのJUDGEを返す( nHitTime, pChip, nInputAdjustTime );\r
+ // this.actJudgeString.Start( 11, bIsAutoPlay.Bass ? E判定.Auto : eJudgeResult, pChip.nLag );\r
+ // }\r
+ // break;\r
+ // }\r
+ // if( !bPChipIsAutoPlay && ( pChip.e楽器パート != E楽器パート.UNKNOWN ) )\r
+ // {\r
+ // this.t判定にあわせてゲージを増減する( E楽器パート.DRUMS, pChip.e楽器パート, eJudgeResult );\r
+ // }\r
+ // switch( pChip.e楽器パート )\r
+ // {\r
+ // case E楽器パート.DRUMS:\r
+ // switch ( eJudgeResult )\r
+ // {\r
+ // case E判定.Miss:\r
+ // case E判定.Bad:\r
+ // this.nヒット数・Auto含む.Drums.Miss++;\r
+ // if ( !bPChipIsAutoPlay )\r
+ // {\r
+ // this.nヒット数・Auto含まない.Drums.Miss++;\r
+ // }\r
+ // break;\r
+ // default:\r
+ // this.nヒット数・Auto含む.Drums[ (int) eJudgeResult ]++;\r
+ // if ( !bPChipIsAutoPlay )\r
+ // {\r
+ // this.nヒット数・Auto含まない.Drums[ (int) eJudgeResult ]++;\r
+ // }\r
+ // break;\r
+ // }\r
\r
- if (CDTXMania.ConfigIni.bドラムが全部オートプレイである || !bPChipIsAutoPlay)\r
- {\r
- switch (eJudgeResult)\r
- {\r
- case E判定.Perfect:\r
- case E判定.Great:\r
- case E判定.Good:\r
- this.actCombo.n現在のコンボ数.Drums++;\r
- break;\r
+ // if (CDTXMania.ConfigIni.bドラムが全部オートプレイである || !bPChipIsAutoPlay)\r
+ // {\r
+ // switch (eJudgeResult)\r
+ // {\r
+ // case E判定.Perfect:\r
+ // case E判定.Great:\r
+ // case E判定.Good:\r
+ // this.actCombo.n現在のコンボ数.Drums++;\r
+ // break;\r
+\r
+ // default:\r
+ // this.actCombo.n現在のコンボ数.Drums = 0;\r
+ // break;\r
+ // }\r
+ // }\r
+ // break;\r
\r
- default:\r
- this.actCombo.n現在のコンボ数.Drums = 0;\r
- break;\r
- }\r
- }\r
- break;\r
-\r
- case E楽器パート.GUITAR:\r
- switch( eJudgeResult )\r
- {\r
- case E判定.Miss:\r
- case E判定.Bad:\r
- this.nヒット数・Auto含む.Guitar.Miss++;\r
- if ( !bIsAutoPlay.Guitar )\r
- {\r
- this.nヒット数・Auto含まない.Guitar.Miss++;\r
- }\r
- break;\r
- default: // #24068 2011.1.10 ikanick changed\r
- this.nヒット数・Auto含む.Guitar[ (int) eJudgeResult ]++;\r
- if ( !bIsAutoPlay.Guitar )\r
- {\r
- this.nヒット数・Auto含まない.Guitar[ (int) eJudgeResult ]++;\r
- }\r
- break;\r
- }\r
- switch (eJudgeResult)\r
- {\r
- case E判定.Perfect:\r
- case E判定.Great:\r
- case E判定.Good:\r
- this.actCombo.n現在のコンボ数.Guitar++;\r
- break;\r
+ // case E楽器パート.GUITAR:\r
+ // switch( eJudgeResult )\r
+ // {\r
+ // case E判定.Miss:\r
+ // case E判定.Bad:\r
+ // this.nヒット数・Auto含む.Guitar.Miss++;\r
+ // if ( !bIsAutoPlay.Guitar )\r
+ // {\r
+ // this.nヒット数・Auto含まない.Guitar.Miss++;\r
+ // }\r
+ // break;\r
+ // default: // #24068 2011.1.10 ikanick changed\r
+ // this.nヒット数・Auto含む.Guitar[ (int) eJudgeResult ]++;\r
+ // if ( !bIsAutoPlay.Guitar )\r
+ // {\r
+ // this.nヒット数・Auto含まない.Guitar[ (int) eJudgeResult ]++;\r
+ // }\r
+ // break;\r
+ // }\r
+ // switch (eJudgeResult)\r
+ // {\r
+ // case E判定.Perfect:\r
+ // case E判定.Great:\r
+ // case E判定.Good:\r
+ // this.actCombo.n現在のコンボ数.Guitar++;\r
+ // break;\r
\r
- default:\r
- this.actCombo.n現在のコンボ数.Guitar = 0;\r
- break;\r
- }\r
- break;\r
+ // default:\r
+ // this.actCombo.n現在のコンボ数.Guitar = 0;\r
+ // break;\r
+ // }\r
+ // break;\r
\r
- case E楽器パート.BASS:\r
- switch( eJudgeResult )\r
- {\r
- case E判定.Miss:\r
- case E判定.Bad:\r
- this.nヒット数・Auto含む.Bass.Miss++;\r
- if ( !bIsAutoPlay.Bass )\r
- {\r
- this.nヒット数・Auto含まない.Bass.Miss++;\r
- }\r
- break;\r
- default: // #24068 2011.1.10 ikanick changed\r
- this.nヒット数・Auto含む.Bass[ (int) eJudgeResult ]++;\r
- if ( !bIsAutoPlay.Bass )\r
- {\r
- this.nヒット数・Auto含まない.Bass[ (int) eJudgeResult ]++;\r
- }\r
- break;\r
- }\r
+ // case E楽器パート.BASS:\r
+ // switch( eJudgeResult )\r
+ // {\r
+ // case E判定.Miss:\r
+ // case E判定.Bad:\r
+ // this.nヒット数・Auto含む.Bass.Miss++;\r
+ // if ( !bIsAutoPlay.Bass )\r
+ // {\r
+ // this.nヒット数・Auto含まない.Bass.Miss++;\r
+ // }\r
+ // break;\r
+ // default: // #24068 2011.1.10 ikanick changed\r
+ // this.nヒット数・Auto含む.Bass[ (int) eJudgeResult ]++;\r
+ // if ( !bIsAutoPlay.Bass )\r
+ // {\r
+ // this.nヒット数・Auto含まない.Bass[ (int) eJudgeResult ]++;\r
+ // }\r
+ // break;\r
+ // }\r
\r
- switch( eJudgeResult )\r
- {\r
- case E判定.Perfect:\r
- case E判定.Great:\r
- case E判定.Good:\r
- this.actCombo.n現在のコンボ数.Bass++;\r
- break;\r
+ // switch( eJudgeResult )\r
+ // {\r
+ // case E判定.Perfect:\r
+ // case E判定.Great:\r
+ // case E判定.Good:\r
+ // this.actCombo.n現在のコンボ数.Bass++;\r
+ // break;\r
\r
- default:\r
- this.actCombo.n現在のコンボ数.Bass = 0;\r
- break;\r
- }\r
- break;\r
+ // default:\r
+ // this.actCombo.n現在のコンボ数.Bass = 0;\r
+ // break;\r
+ // }\r
+ // break;\r
\r
- default:\r
- break;\r
- }\r
- if( ( !bPChipIsAutoPlay && ( pChip.e楽器パート != E楽器パート.UNKNOWN ) ) && ( ( eJudgeResult != E判定.Miss ) && ( eJudgeResult != E判定.Bad ) ) )\r
- {\r
- int nCombos = 0;\r
- switch (pChip.e楽器パート) {\r
- case E楽器パート.DRUMS:\r
- nCombos = this.actCombo.n現在のコンボ数.Drums;\r
- break;\r
- case E楽器パート.GUITAR:\r
- nCombos = this.actCombo.n現在のコンボ数.Guitar;\r
- break;\r
- case E楽器パート.BASS:\r
- nCombos = this.actCombo.n現在のコンボ数.Bass;\r
- break;\r
- }\r
- long nScore = this.actScore.Get( pChip.e楽器パート );\r
- long[] numArray = new long[] { 350L, 200L, 50L, 0L };\r
- if( ( nCombos <= 500 ) || ( eJudgeResult == E判定.Good ) )\r
- {\r
- nScore += numArray[ (int) eJudgeResult ] * nCombos;\r
- }\r
- else if( ( eJudgeResult == E判定.Perfect ) || ( eJudgeResult == E判定.Great ) )\r
- {\r
- nScore += numArray[ (int) eJudgeResult ] * 500L;\r
- }\r
- this.actScore.Set( pChip.e楽器パート, nScore );\r
- }\r
- // #24074 2011.01.23 add ikanick\r
- this.actGraph.dbグラフ値現在_渡 = CScoreIni.t演奏型スキルを計算して返す( CDTXMania.DTX.n可視チップ数.Drums, this.nヒット数・Auto含まない.Drums.Perfect, this.nヒット数・Auto含まない.Drums.Great, this.nヒット数・Auto含まない.Drums.Good, this.nヒット数・Auto含まない.Drums.Poor, this.nヒット数・Auto含まない.Drums.Miss );\r
+ // default:\r
+ // break;\r
+ // }\r
+ // if( ( !bPChipIsAutoPlay && ( pChip.e楽器パート != E楽器パート.UNKNOWN ) ) && ( ( eJudgeResult != E判定.Miss ) && ( eJudgeResult != E判定.Bad ) ) )\r
+ // {\r
+ // int nCombos = 0;\r
+ // switch (pChip.e楽器パート) {\r
+ // case E楽器パート.DRUMS:\r
+ // nCombos = this.actCombo.n現在のコンボ数.Drums;\r
+ // break;\r
+ // case E楽器パート.GUITAR:\r
+ // nCombos = this.actCombo.n現在のコンボ数.Guitar;\r
+ // break;\r
+ // case E楽器パート.BASS:\r
+ // nCombos = this.actCombo.n現在のコンボ数.Bass;\r
+ // break;\r
+ // }\r
+ // long nScore = this.actScore.Get( pChip.e楽器パート );\r
+ // long[] numArray = new long[] { 350L, 200L, 50L, 0L };\r
+ // if( ( nCombos <= 500 ) || ( eJudgeResult == E判定.Good ) )\r
+ // {\r
+ // nScore += numArray[ (int) eJudgeResult ] * nCombos;\r
+ // }\r
+ // else if( ( eJudgeResult == E判定.Perfect ) || ( eJudgeResult == E判定.Great ) )\r
+ // {\r
+ // nScore += numArray[ (int) eJudgeResult ] * 500L;\r
+ // }\r
+ // this.actScore.Set( pChip.e楽器パート, nScore );\r
+ // }\r
+ // // #24074 2011.01.23 add ikanick\r
+ // this.actGraph.dbグラフ値現在_渡 = CScoreIni.t演奏型スキルを計算して返す( CDTXMania.DTX.n可視チップ数.Drums, this.nヒット数・Auto含まない.Drums.Perfect, this.nヒット数・Auto含まない.Drums.Great, this.nヒット数・Auto含まない.Drums.Good, this.nヒット数・Auto含まない.Drums.Poor, this.nヒット数・Auto含まない.Drums.Miss );\r
\r
- return eJudgeResult;\r
- }\r
- private void tチップのヒット処理・BadならびにTight時のMiss( E楽器パート part )\r
+ // return eJudgeResult;\r
+ //}\r
+ protected override void tチップのヒット処理・BadならびにTight時のMiss( E楽器パート part )\r
{\r
- this.tチップのヒット処理・BadならびにTight時のMiss( part, 0 );\r
+ this.tチップのヒット処理・BadならびにTight時のMiss( part, 0, E楽器パート.DRUMS );\r
}\r
- private void tチップのヒット処理・BadならびにTight時のMiss( E楽器パート part, int nLane )\r
+ protected override void tチップのヒット処理・BadならびにTight時のMiss( E楽器パート part, int nLane )\r
{\r
- this.bAUTOでないチップが1つでもバーを通過した = true;\r
- this.t判定にあわせてゲージを増減する( E楽器パート.DRUMS, part, E判定.Miss );\r
- switch( part )\r
- {\r
- case E楽器パート.DRUMS:\r
- if( ( nLane >= 0 ) && ( nLane <= 7 ) )\r
- {\r
- this.actJudgeString.Start( nLane, CDTXMania.ConfigIni.bAutoPlay[ nLane ] ? E判定.Auto : E判定.Miss, 999 );\r
- }\r
- this.actCombo.n現在のコンボ数.Drums = 0;\r
- return;\r
-\r
- case E楽器パート.GUITAR:\r
- this.actJudgeString.Start( 10, E判定.Bad, 999 );\r
- this.actCombo.n現在のコンボ数.Guitar = 0;\r
- return;\r
-\r
- case E楽器パート.BASS:\r
- this.actJudgeString.Start( 11, E判定.Bad, 999 );\r
- this.actCombo.n現在のコンボ数.Bass = 0;\r
- return;\r
- }\r
+ this.tチップのヒット処理・BadならびにTight時のMiss( part, nLane, E楽器パート.DRUMS );\r
}\r
+ //private void tチップのヒット処理・BadならびにTight時のMiss( E楽器パート part, int nLane )\r
+ //{\r
+ // this.bAUTOでないチップが1つでもバーを通過した = true;\r
+ // this.t判定にあわせてゲージを増減する( E楽器パート.DRUMS, part, E判定.Miss );\r
+ // switch( part )\r
+ // {\r
+ // case E楽器パート.DRUMS:\r
+ // if( ( nLane >= 0 ) && ( nLane <= 7 ) )\r
+ // {\r
+ // this.actJudgeString.Start( nLane, CDTXMania.ConfigIni.bAutoPlay[ nLane ] ? E判定.Auto : E判定.Miss, 999 );\r
+ // }\r
+ // this.actCombo.n現在のコンボ数.Drums = 0;\r
+ // return;\r
+\r
+ // case E楽器パート.GUITAR:\r
+ // this.actJudgeString.Start( 10, E判定.Bad, 999 );\r
+ // this.actCombo.n現在のコンボ数.Guitar = 0;\r
+ // return;\r
+\r
+ // case E楽器パート.BASS:\r
+ // this.actJudgeString.Start( 11, E判定.Bad, 999 );\r
+ // this.actCombo.n現在のコンボ数.Bass = 0;\r
+ // return;\r
+ // }\r
+ //}\r
private bool tドラムヒット処理( long nHitTime, Eパッド type, CDTX.CChip pChip, int n強弱度合い0to127 )\r
{\r
if( pChip == null )\r
{\r
return false;\r
}\r
- bool bPChipIsAutoPlay = bIsAutoPlay[ this.nチャンネル0Atoレーン07[ pChip.nチャンネル番号 - 0x11 ] ];\r
- int nInputAdjustTime = bPChipIsAutoPlay ? 0 : this.nInputAdjustTimeMs.Drums;\r
- E判定 e判定 = this.e指定時刻からChipのJUDGEを返す( nHitTime, pChip, nInputAdjustTime );\r
- if( e判定 == E判定.Miss )\r
- {\r
- return false;\r
- }\r
- this.tチップのヒット処理( nHitTime, pChip );\r
int index = pChip.nチャンネル番号;\r
- if( ( index >= 0x11 ) && ( index <= 0x1a ) )\r
+ if ( ( index >= 0x11 ) && ( index <= 0x1a ) )\r
{\r
index -= 0x11;\r
}\r
- else if( ( index >= 0x31 ) && ( index <= 0x3a ) )\r
+ else if ( ( index >= 0x31 ) && ( index <= 0x3a ) )\r
{\r
index -= 0x31;\r
}\r
int num2 = this.nチャンネル0Atoレーン07[ index ];\r
int nLane = this.nチャンネル0Atoパッド08[ index ];\r
+ bool bPChipIsAutoPlay = bIsAutoPlay[ num2 ];\r
+ int nInputAdjustTime = bPChipIsAutoPlay ? 0 : this.nInputAdjustTimeMs.Drums;\r
+ E判定 e判定 = this.e指定時刻からChipのJUDGEを返す( nHitTime, pChip, nInputAdjustTime );\r
+ if( e判定 == E判定.Miss )\r
+ {\r
+ return false;\r
+ }\r
+ this.tチップのヒット処理( nHitTime, pChip );\r
this.actLaneFlushD.Start( (Eドラムレーン) num2, ( (float) n強弱度合い0to127 ) / 127f );\r
this.actPad.Hit( nLane );\r
if( ( e判定 != E判定.Poor ) && ( e判定 != E判定.Miss ) )\r
{\r
base.t進行描画・BGA( 0x152, 0x39 );\r
}\r
- private void t進行描画・DANGER()\r
+ protected override void t進行描画・DANGER()\r
{\r
- this.actDANGER.t進行描画( this.actGauge.db現在のゲージ値.Drums < 0.3 );\r
+ this.actDANGER.t進行描画( this.actGauge.db現在のゲージ値.Drums < 0.3 );\r
}\r
//private void t進行描画・MIDIBGM()\r
//{\r
// CStage.Eフェーズ eフェーズid1 = base.eフェーズID;\r
// }\r
//}\r
- private void t進行描画・RGBボタン()\r
- {\r
- if( CDTXMania.ConfigIni.eDark != Eダークモード.FULL )\r
- {\r
- this.actRGB.On進行描画();\r
- }\r
- }\r
+ //private void t進行描画・RGBボタン()\r
+ //{\r
+ // if( CDTXMania.ConfigIni.eDark != Eダークモード.FULL )\r
+ // {\r
+ // this.actRGB.On進行描画();\r
+ // }\r
+ //}\r
//private void t進行描画・STAGEFAILED()\r
//{\r
// if( ( ( base.eフェーズID == CStage.Eフェーズ.演奏_STAGE_FAILED ) || ( base.eフェーズID == CStage.Eフェーズ.演奏_STAGE_FAILED_フェードアウト ) ) && ( ( this.actStageFailed.On進行描画() != 0 ) && ( base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED_フェードアウト ) ) )\r
}\r
}\r
}\r
- private void t進行描画・ギターベース判定ライン()\r
+ private void t進行描画・ギターベース判定ライン() // yyagi: ギタレボモードとは座標が違うだけですが、まとめづらかったのでそのまま放置してます。\r
{\r
if ( ( CDTXMania.ConfigIni.eDark != Eダークモード.FULL ) && CDTXMania.ConfigIni.bGuitar有効 )\r
{\r
}\r
if ( CDTXMania.DTX.bチップがある.Bass )\r
{\r
- int num3 = ( CDTXMania.ConfigIni.bReverse.Bass ? 0x176 : 0x5f ) - 3;\r
+ int y = ( CDTXMania.ConfigIni.bReverse.Bass ? 0x176 : 0x5f ) - 3;\r
for ( int j = 0; j < 3; j++ )\r
{\r
if ( this.txヒットバーGB != null )\r
{\r
- this.txヒットバーGB.t2D描画( CDTXMania.app.Device, 400 + ( 0x1a * j ), num3 );\r
- this.txヒットバーGB.t2D描画( CDTXMania.app.Device, ( 400 + ( 0x1a * j ) ) + 0x10, num3, new Rectangle( 0, 0, 10, 0x10 ) );\r
+ this.txヒットバーGB.t2D描画( CDTXMania.app.Device, 400 + ( 0x1a * j ), y );\r
+ this.txヒットバーGB.t2D描画( CDTXMania.app.Device, ( 400 + ( 0x1a * j ) ) + 0x10, y, new Rectangle( 0, 0, 10, 0x10 ) );\r
}\r
}\r
}\r
//{\r
// this.actScore.On進行描画();\r
//}\r
- private void t進行描画・ステータスパネル()\r
- {\r
- this.actStatusPanels.On進行描画();\r
- }\r
- private bool t進行描画・チップ()\r
- {\r
- if( ( base.eフェーズID == CStage.Eフェーズ.演奏_STAGE_FAILED ) || ( base.eフェーズID == CStage.Eフェーズ.演奏_STAGE_FAILED_フェードアウト ) )\r
- {\r
- return true;\r
- }\r
- if( ( this.n現在のトップChip == -1 ) || ( this.n現在のトップChip >= CDTXMania.DTX.listChip.Count ) )\r
- {\r
- return true;\r
- }\r
-\r
- //double speed = 264.0; // BPM150の時の1小節の長さ[dot]\r
- double speed = 234.0; // BPM150の時の1小節の長さ[dot]\r
-\r
- double num = ( ( ( ( this.act譜面スクロール速度.db現在の譜面スクロール速度.Drums + 1.0 ) * 0.5 ) * 37.5 ) * speed ) / 60000.0;\r
- double num2 = ( ( ( ( ( this.act譜面スクロール速度.db現在の譜面スクロール速度.Guitar + 1.0 ) * 0.5 ) * 0.5 ) * 37.5 ) * speed ) / 60000.0;\r
- double num3 = ( ( ( ( ( this.act譜面スクロール速度.db現在の譜面スクロール速度.Bass + 1.0 ) * 0.5 ) * 0.5 ) * 37.5 ) * speed ) / 60000.0;\r
- int num4 = this.n現在のトップChip;\r
- if( num4 == -1 )\r
- {\r
- return true;\r
- }\r
- CDTX dTX = CDTXMania.DTX;\r
- CConfigIni configIni = CDTXMania.ConfigIni;\r
- while( num4 < dTX.listChip.Count )\r
- {\r
- int num6;\r
- CDTX.CChip pChip = dTX.listChip[ num4 ];\r
- pChip.nバーからの距離dot.Drums = (int) ( ( pChip.n発声時刻ms - CDTXMania.Timer.n現在時刻 ) * num );\r
- pChip.nバーからの距離dot.Guitar = (int) ( ( pChip.n発声時刻ms - CDTXMania.Timer.n現在時刻 ) * num2 );\r
- pChip.nバーからの距離dot.Bass = (int) ( ( pChip.n発声時刻ms - CDTXMania.Timer.n現在時刻 ) * num3 );\r
- if( Math.Min( Math.Min( pChip.nバーからの距離dot.Drums, pChip.nバーからの距離dot.Guitar ), pChip.nバーからの距離dot.Bass ) > 450 )\r
- {\r
- break;\r
- }\r
- if( ( ( num4 == this.n現在のトップChip ) && ( pChip.nバーからの距離dot.Drums < -65 ) ) && pChip.bHit )\r
- {\r
- this.n現在のトップChip++;\r
- num4 = this.n現在のトップChip;\r
- continue;\r
- }\r
+ //private void t進行描画・ステータスパネル()\r
+ //{\r
+ // this.actStatusPanels.On進行描画();\r
+ //}\r
+// private bool t進行描画・チップ(E楽器パート ePlayMode)\r
+// {\r
+// if( ( base.eフェーズID == CStage.Eフェーズ.演奏_STAGE_FAILED ) || ( base.eフェーズID == CStage.Eフェーズ.演奏_STAGE_FAILED_フェードアウト ) )\r
+// {\r
+// return true;\r
+// }\r
+// if( ( this.n現在のトップChip == -1 ) || ( this.n現在のトップChip >= CDTXMania.DTX.listChip.Count ) )\r
+// {\r
+// return true;\r
+// }\r
+// int nCurrentTopChip = this.n現在のトップChip;\r
+// if( nCurrentTopChip == -1 )\r
+// {\r
+// return true;\r
+// }\r
\r
- bool bPChipIsAutoPlay = false;\r
- if ((\r
- ((pChip.e楽器パート == E楽器パート.DRUMS) && CDTXMania.ConfigIni.bAutoPlay[this.nチャンネル0Atoレーン07[pChip.nチャンネル番号 - 0x11]]) ||\r
- ((pChip.e楽器パート == E楽器パート.GUITAR) && CDTXMania.ConfigIni.bAutoPlay.Guitar)\r
- ) ||\r
- ((pChip.e楽器パート == E楽器パート.BASS) && CDTXMania.ConfigIni.bAutoPlay.Bass)\r
- )\r
-// if ((pChip.e楽器パート == E楽器パート.DRUMS) && CDTXMania.ConfigIni.bAutoPlay[this.nチャンネル0Atoレーン07[pChip.nチャンネル番号 - 0x11]])\r
- {\r
- bPChipIsAutoPlay = true;\r
- }\r
+// //double speed = 264.0; // BPM150の時の1小節の長さ[dot]\r
+// double speed = 234.0; // BPM150の時の1小節の長さ[dot]\r
\r
- int nInputAdjustTime = 0;\r
- if (bPChipIsAutoPlay)\r
- {\r
- //nInputAdjustTime = 0;\r
- }\r
- else if (pChip.e楽器パート == E楽器パート.UNKNOWN)\r
- {\r
- //nInputAdjustTime = 0;\r
- }\r
- else\r
- {\r
- // int[] nInputAdjustTimes = new int[] { this.nInputAdjustTimeMs_Drums, this.nInputAdjustTimeMs_Guitar, this.nInputAdjustTimeMs_Bass };\r
- // nInputAdjustTime = nInputAdjustTimes[(int)pChip.e楽器パート];\r
- nInputAdjustTime = this.nInputAdjustTimeMs[(int)pChip.e楽器パート];\r
- }\r
- if( ( ( pChip.e楽器パート != E楽器パート.UNKNOWN ) && !pChip.bHit ) &&\r
- ( ( pChip.nバーからの距離dot.Drums < 0 ) && ( this.e指定時刻からChipのJUDGEを返す( CDTXMania.Timer.n現在時刻, pChip, nInputAdjustTime ) == E判定.Miss ) ) )\r
- {\r
- this.tチップのヒット処理( CDTXMania.Timer.n現在時刻, pChip );\r
- }\r
- switch( pChip.nチャンネル番号 )\r
- {\r
- case 0x01: // BGM\r
- if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
- {\r
- pChip.bHit = true;\r
- if( configIni.bBGM音を発声する )\r
- {\r
- dTX.tチップの再生( pChip, CDTXMania.Timer.n前回リセットした時のシステム時刻 + pChip.n発声時刻ms, 10, dTX.nモニタを考慮した音量( E楽器パート.UNKNOWN ) );\r
- }\r
- }\r
- break;\r
+// double ScrollSpeedDrums = ( this.act譜面スクロール速度.db現在の譜面スクロール速度.Drums + 1.0 ) * 0.5 * 37.5 * speed / 60000.0;\r
+// double ScrollSpeedGuitar = ( this.act譜面スクロール速度.db現在の譜面スクロール速度.Guitar + 1.0 ) * 0.5 * 0.5 * 37.5 * speed / 60000.0;\r
+// double ScrollSpeedBass = ( this.act譜面スクロール速度.db現在の譜面スクロール速度.Bass + 1.0 ) * 0.5 * 0.5 * 37.5 * speed / 60000.0;\r
\r
- case 0x03: // BPM変更\r
- if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
- {\r
- pChip.bHit = true;\r
- this.actPlayInfo.dbBPM = ( pChip.n整数値 * ( ( (double) configIni.n演奏速度 ) / 20.0 ) ) + dTX.BASEBPM;\r
- }\r
- break;\r
+// CDTX dTX = CDTXMania.DTX;\r
+// CConfigIni configIni = CDTXMania.ConfigIni;\r
+// while( nCurrentTopChip < dTX.listChip.Count )\r
+// {\r
+// CDTX.CChip pChip = dTX.listChip[ nCurrentTopChip ];\r
+// pChip.nバーからの距離dot.Drums = (int) ( ( pChip.n発声時刻ms - CDTXMania.Timer.n現在時刻 ) * ScrollSpeedDrums );\r
+// pChip.nバーからの距離dot.Guitar = (int) ( ( pChip.n発声時刻ms - CDTXMania.Timer.n現在時刻 ) * ScrollSpeedGuitar );\r
+// pChip.nバーからの距離dot.Bass = (int) ( ( pChip.n発声時刻ms - CDTXMania.Timer.n現在時刻 ) * ScrollSpeedBass );\r
+// if( Math.Min( Math.Min( pChip.nバーからの距離dot.Drums, pChip.nバーからの距離dot.Guitar ), pChip.nバーからの距離dot.Bass ) > 450 )\r
+// {\r
+// break;\r
+// }\r
+// if( ( ( nCurrentTopChip == this.n現在のトップChip ) && ( pChip.nバーからの距離dot.Drums < -65 ) ) && pChip.bHit )\r
+// {\r
+// this.n現在のトップChip++;\r
+// nCurrentTopChip = this.n現在のトップChip;\r
+// continue;\r
+// }\r
\r
- case 0x04: // レイヤーBGA\r
- case 0x07:\r
- case 0x55:\r
- case 0x56:\r
- case 0x57:\r
- case 0x58:\r
- case 0x59:\r
- case 0x60:\r
- if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
- {\r
- pChip.bHit = true;\r
- if( configIni.bBGA有効 )\r
- {\r
- switch( pChip.eBGA種別 )\r
- {\r
- case EBGA種別.BMPTEX:\r
- if( pChip.rBMPTEX != null )\r
- {\r
- this.actBGA.Start( pChip.nチャンネル番号, null, pChip.rBMPTEX, pChip.rBMPTEX.tx画像.sz画像サイズ.Width, pChip.rBMPTEX.tx画像.sz画像サイズ.Height, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 );\r
- }\r
- break;\r
+// bool bPChipIsAutoPlay = false;\r
+// if ((\r
+// ((pChip.e楽器パート == E楽器パート.DRUMS) && CDTXMania.ConfigIni.bAutoPlay[this.nチャンネル0Atoレーン07[pChip.nチャンネル番号 - 0x11]]) ||\r
+// ((pChip.e楽器パート == E楽器パート.GUITAR) && CDTXMania.ConfigIni.bAutoPlay.Guitar)\r
+// ) ||\r
+// ((pChip.e楽器パート == E楽器パート.BASS) && CDTXMania.ConfigIni.bAutoPlay.Bass)\r
+// )\r
+//// if ((pChip.e楽器パート == E楽器パート.DRUMS) && CDTXMania.ConfigIni.bAutoPlay[this.nチャンネル0Atoレーン07[pChip.nチャンネル番号 - 0x11]])\r
+// {\r
+// bPChipIsAutoPlay = true;\r
+// }\r
\r
- case EBGA種別.BGA:\r
- if( ( pChip.rBGA != null ) && ( ( pChip.rBMP != null ) || ( pChip.rBMPTEX != null ) ) )\r
- {\r
- this.actBGA.Start( pChip.nチャンネル番号, pChip.rBMP, pChip.rBMPTEX, pChip.rBGA.pt画像側右下座標.X - pChip.rBGA.pt画像側左上座標.X, pChip.rBGA.pt画像側右下座標.Y - pChip.rBGA.pt画像側左上座標.Y, 0, 0, pChip.rBGA.pt画像側左上座標.X, pChip.rBGA.pt画像側左上座標.Y, 0, 0, pChip.rBGA.pt表示座標.X, pChip.rBGA.pt表示座標.Y, 0, 0, 0 );\r
- }\r
- break;\r
+// int nInputAdjustTime = 0;\r
+// if (bPChipIsAutoPlay)\r
+// {\r
+// //nInputAdjustTime = 0;\r
+// }\r
+// else if (pChip.e楽器パート == E楽器パート.UNKNOWN)\r
+// {\r
+// //nInputAdjustTime = 0;\r
+// }\r
+// else\r
+// {\r
+// nInputAdjustTime = this.nInputAdjustTimeMs[(int)pChip.e楽器パート];\r
+// }\r
\r
- case EBGA種別.BGAPAN:\r
- if( ( pChip.rBGAPan != null ) && ( ( pChip.rBMP != null ) || ( pChip.rBMPTEX != null ) ) )\r
- {\r
- this.actBGA.Start( pChip.nチャンネル番号, pChip.rBMP, pChip.rBMPTEX, pChip.rBGAPan.sz開始サイズ.Width, pChip.rBGAPan.sz開始サイズ.Height, pChip.rBGAPan.sz終了サイズ.Width, pChip.rBGAPan.sz終了サイズ.Height, pChip.rBGAPan.pt画像側開始位置.X, pChip.rBGAPan.pt画像側開始位置.Y, pChip.rBGAPan.pt画像側終了位置.X, pChip.rBGAPan.pt画像側終了位置.Y, pChip.rBGAPan.pt表示側開始位置.X, pChip.rBGAPan.pt表示側開始位置.Y, pChip.rBGAPan.pt表示側終了位置.X, pChip.rBGAPan.pt表示側終了位置.Y, pChip.n総移動時間 );\r
- }\r
- break;\r
+// if( ( ( pChip.e楽器パート != E楽器パート.UNKNOWN ) && !pChip.bHit ) &&\r
+// ( ( pChip.nバーからの距離dot.Drums < 0 ) && ( this.e指定時刻からChipのJUDGEを返す( CDTXMania.Timer.n現在時刻, pChip, nInputAdjustTime ) == E判定.Miss ) ) )\r
+// {\r
+// this.tチップのヒット処理( CDTXMania.Timer.n現在時刻, pChip );\r
+// }\r
+// switch( pChip.nチャンネル番号 )\r
+// {\r
+// case 0x01: // BGM\r
+// if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
+// {\r
+// pChip.bHit = true;\r
+// if( configIni.bBGM音を発声する )\r
+// {\r
+// dTX.tチップの再生( pChip, CDTXMania.Timer.n前回リセットした時のシステム時刻 + pChip.n発声時刻ms, 10, dTX.nモニタを考慮した音量( E楽器パート.UNKNOWN ) );\r
+// }\r
+// }\r
+// break;\r
+\r
+// case 0x03: // BPM変更\r
+// if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
+// {\r
+// pChip.bHit = true;\r
+// this.actPlayInfo.dbBPM = ( pChip.n整数値 * ( ( (double) configIni.n演奏速度 ) / 20.0 ) ) + dTX.BASEBPM;\r
+// }\r
+// break;\r
+\r
+// case 0x04: // レイヤーBGA\r
+// case 0x07:\r
+// case 0x55:\r
+// case 0x56:\r
+// case 0x57:\r
+// case 0x58:\r
+// case 0x59:\r
+// case 0x60:\r
+// if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
+// {\r
+// pChip.bHit = true;\r
+// if( configIni.bBGA有効 )\r
+// {\r
+// switch( pChip.eBGA種別 )\r
+// {\r
+// case EBGA種別.BMPTEX:\r
+// if( pChip.rBMPTEX != null )\r
+// {\r
+// this.actBGA.Start( pChip.nチャンネル番号, null, pChip.rBMPTEX, pChip.rBMPTEX.tx画像.sz画像サイズ.Width, pChip.rBMPTEX.tx画像.sz画像サイズ.Height, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 );\r
+// }\r
+// break;\r
+\r
+// case EBGA種別.BGA:\r
+// if( ( pChip.rBGA != null ) && ( ( pChip.rBMP != null ) || ( pChip.rBMPTEX != null ) ) )\r
+// {\r
+// this.actBGA.Start( pChip.nチャンネル番号, pChip.rBMP, pChip.rBMPTEX, pChip.rBGA.pt画像側右下座標.X - pChip.rBGA.pt画像側左上座標.X, pChip.rBGA.pt画像側右下座標.Y - pChip.rBGA.pt画像側左上座標.Y, 0, 0, pChip.rBGA.pt画像側左上座標.X, pChip.rBGA.pt画像側左上座標.Y, 0, 0, pChip.rBGA.pt表示座標.X, pChip.rBGA.pt表示座標.Y, 0, 0, 0 );\r
+// }\r
+// break;\r
+\r
+// case EBGA種別.BGAPAN:\r
+// if( ( pChip.rBGAPan != null ) && ( ( pChip.rBMP != null ) || ( pChip.rBMPTEX != null ) ) )\r
+// {\r
+// this.actBGA.Start( pChip.nチャンネル番号, pChip.rBMP, pChip.rBMPTEX, pChip.rBGAPan.sz開始サイズ.Width, pChip.rBGAPan.sz開始サイズ.Height, pChip.rBGAPan.sz終了サイズ.Width, pChip.rBGAPan.sz終了サイズ.Height, pChip.rBGAPan.pt画像側開始位置.X, pChip.rBGAPan.pt画像側開始位置.Y, pChip.rBGAPan.pt画像側終了位置.X, pChip.rBGAPan.pt画像側終了位置.Y, pChip.rBGAPan.pt表示側開始位置.X, pChip.rBGAPan.pt表示側開始位置.Y, pChip.rBGAPan.pt表示側終了位置.X, pChip.rBGAPan.pt表示側終了位置.Y, pChip.n総移動時間 );\r
+// }\r
+// break;\r
+\r
+// default:\r
+// if( pChip.rBMP != null )\r
+// {\r
+// this.actBGA.Start( pChip.nチャンネル番号, pChip.rBMP, null, pChip.rBMP.n幅, pChip.rBMP.n高さ, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 );\r
+// }\r
+// break;\r
+// }\r
+// }\r
+// }\r
+// break;\r
+\r
+// case 0x08: // BPM変更(拡張)\r
+// if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
+// {\r
+// pChip.bHit = true;\r
+// if( dTX.listBPM.ContainsKey( pChip.n整数値・内部番号 ) )\r
+// {\r
+// this.actPlayInfo.dbBPM = ( dTX.listBPM[ pChip.n整数値・内部番号 ].dbBPM値 * ( ( (double) configIni.n演奏速度 ) / 20.0 ) ) + dTX.BASEBPM;\r
+// }\r
+// }\r
+// break;\r
+\r
+// case 0x11: // ドラム演奏\r
+// case 0x12:\r
+// case 0x13:\r
+// case 0x14:\r
+// case 0x15:\r
+// case 0x16:\r
+// case 0x17:\r
+// case 0x18:\r
+// case 0x19:\r
+// case 0x1a:\r
+// this.t進行描画・チップ・ドラムス( configIni, ref dTX, ref pChip );\r
+// break;\r
+\r
+// case 0x1f: // フィルインサウンド(ドラム)\r
+// if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
+// {\r
+// pChip.bHit = true;\r
+// this.r現在の歓声Chip.Drums = pChip;\r
+// }\r
+// break;\r
+\r
+// case 0x20: // ギター演奏\r
+// case 0x21:\r
+// case 0x22:\r
+// case 0x23:\r
+// case 0x24:\r
+// case 0x25:\r
+// case 0x26:\r
+// case 0x27:\r
+// this.t進行描画・チップ・ギター( configIni, ref dTX, ref pChip );\r
+// break;\r
+\r
+// case 0x28: // ウェイリング(ギター)\r
+// this.t進行描画・チップ・ギター・ウェイリング( configIni, ref dTX, ref pChip );\r
+// break;\r
+\r
+// case 0x2f: // ウェイリングサウンド(ギター)\r
+// if( !pChip.bHit && ( pChip.nバーからの距離dot.Guitar < 0 ) )\r
+// {\r
+// pChip.bHit = true;\r
+// this.r現在の歓声Chip.Guitar = pChip;\r
+// }\r
+// break;\r
+\r
+// case 0x31: // 不可視チップ配置(ドラム)\r
+// case 0x32:\r
+// case 0x33:\r
+// case 0x34:\r
+// case 0x35:\r
+// case 0x36:\r
+// case 0x37:\r
+// case 0x38:\r
+// case 0x39:\r
+// case 0x3a:\r
+// if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
+// {\r
+// pChip.bHit = true;\r
+// }\r
+// break;\r
+\r
+// case 0x50: // 小節線\r
+// {\r
+// int n小節番号plus1 = pChip.n発声位置 / 384;\r
+// if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
+// {\r
+// pChip.bHit = true;\r
+// this.actPlayInfo.n小節番号 = n小節番号plus1 - 1;\r
+// if( configIni.bWave再生位置自動調整機能有効 )\r
+// {\r
+// dTX.tWave再生位置自動補正();\r
+// }\r
+// }\r
+// if( configIni.bDrums有効 && ePlayMode == E楽器パート.DRUMS) // Drumsでのみ表示\r
+// {\r
+// if( configIni.b演奏情報を表示する && ( configIni.eDark == Eダークモード.OFF ) )\r
+// {\r
+// int n小節番号 = n小節番号plus1 - 1;\r
+// CDTXMania.act文字コンソール.tPrint( 0x14d, configIni.bReverse.Drums ? ( ( 0x38 + pChip.nバーからの距離dot.Drums ) - 0x11 ) : ( ( 0x1a6 - pChip.nバーからの距離dot.Drums ) - 0x11 ), C文字コンソール.Eフォント種別.白, n小節番号.ToString() );\r
+// }\r
+// if( ( ( configIni.eDark != Eダークモード.FULL ) && pChip.b可視 ) && ( this.txチップ != null ) )\r
+// {\r
+// this.txチップ.t2D描画( CDTXMania.app.Device, 0x23, configIni.bReverse.Drums ? ( ( 0x38 + pChip.nバーからの距離dot.Drums ) - 1 ) : ( ( 0x1a6 - pChip.nバーからの距離dot.Drums ) - 1 ), new Rectangle( 0, 0x1bc, 0x128, 2 ) );\r
+// }\r
+// }\r
+// if( ( pChip.b可視 && configIni.bGuitar有効 ) && ( configIni.eDark != Eダークモード.FULL ) )\r
+// {\r
+// int y = configIni.bReverse.Guitar ? ( ( 0x176 - pChip.nバーからの距離dot.Guitar ) - 1 ) : ( ( 0x5f + pChip.nバーからの距離dot.Guitar ) - 1 );\r
+// if( ( dTX.bチップがある.Guitar && ( y > 0x39 ) ) && ( ( y < 0x19c ) && ( this.txチップ != null ) ) )\r
+// {\r
+// this.txチップ.t2D描画( CDTXMania.app.Device, 0x1fb, y, new Rectangle( 0, 450, 0x4e, 1 ) );\r
+// }\r
+// y = configIni.bReverse.Bass ? ( ( 0x176 - pChip.nバーからの距離dot.Bass ) - 1 ) : ( ( 0x5f + pChip.nバーからの距離dot.Bass ) - 1 );\r
+// if( ( dTX.bチップがある.Bass && ( y > 0x39 ) ) && ( ( y < 0x19c ) && ( this.txチップ != null ) ) )\r
+// {\r
+// this.txチップ.t2D描画( CDTXMania.app.Device, 0x18e, y, new Rectangle( 0, 450, 0x4e, 1 ) );\r
+// }\r
+// }\r
+// break;\r
+// }\r
+// case 0x51: // 拍線\r
+// if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
+// {\r
+// pChip.bHit = true;\r
+// }\r
+// if( ( ePlayMode == E楽器パート.DRUMS ) && ( configIni.eDark != Eダークモード.FULL ) && pChip.b可視 && ( this.txチップ != null ) )\r
+// {\r
+// this.txチップ.t2D描画( CDTXMania.app.Device, 0x23, configIni.bReverse.Drums ? ( ( 0x38 + pChip.nバーからの距離dot.Drums ) - 1 ) : ( ( 0x1a6 - pChip.nバーからの距離dot.Drums ) - 1 ), new Rectangle( 0, 0x1bf, 0x128, 1 ) );\r
+// }\r
+// break;\r
+\r
+// case 0x52: // MIDIコーラス\r
+// if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
+// {\r
+// pChip.bHit = true;\r
+// }\r
+// break;\r
+\r
+// case 0x53: // フィルイン\r
+// this.t進行描画・チップ・フィルイン( configIni, ref dTX, ref pChip );\r
+// break;\r
+\r
+// case 0x54: // 動画再生\r
+// if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
+// {\r
+// pChip.bHit = true;\r
+// if( configIni.bAVI有効 )\r
+// {\r
+// switch( pChip.eAVI種別 )\r
+// {\r
+// case EAVI種別.AVI:\r
+// if( pChip.rAVI != null )\r
+// {\r
+// this.actAVI.Start( pChip.nチャンネル番号, pChip.rAVI, 0x116, 0x163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, pChip.n発声時刻ms );\r
+// }\r
+// break;\r
+\r
+// case EAVI種別.AVIPAN:\r
+// if( pChip.rAVIPan != null )\r
+// {\r
+// this.actAVI.Start( pChip.nチャンネル番号, pChip.rAVI, pChip.rAVIPan.sz開始サイズ.Width, pChip.rAVIPan.sz開始サイズ.Height, pChip.rAVIPan.sz終了サイズ.Width, pChip.rAVIPan.sz終了サイズ.Height, pChip.rAVIPan.pt動画側開始位置.X, pChip.rAVIPan.pt動画側開始位置.Y, pChip.rAVIPan.pt動画側終了位置.X, pChip.rAVIPan.pt動画側終了位置.Y, pChip.rAVIPan.pt表示側開始位置.X, pChip.rAVIPan.pt表示側開始位置.Y, pChip.rAVIPan.pt表示側終了位置.X, pChip.rAVIPan.pt表示側終了位置.Y, pChip.n総移動時間, pChip.n発声時刻ms );\r
+// }\r
+// break;\r
+// }\r
+// }\r
+// }\r
+// break;\r
+\r
+// case 0x61: case 0x62: case 0x63: case 0x64: // 自動再生(BGM, SE)\r
+// case 0x65: case 0x66: case 0x67: case 0x68:\r
+// case 0x69: case 0x70: case 0x71: case 0x72:\r
+// case 0x73: case 0x74: case 0x75: case 0x76:\r
+// case 0x77: case 0x78: case 0x79: case 0x80:\r
+// case 0x81: case 0x82: case 0x83: case 0x84:\r
+// case 0x85: case 0x86: case 0x87: case 0x88:\r
+// case 0x89: case 0x90: case 0x91: case 0x92:\r
+// if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
+// {\r
+// pChip.bHit = true;\r
+// if( configIni.bBGM音を発声する )\r
+// {\r
+// dTX.tWavの再生停止( this.n最後に再生したBGMの実WAV番号[ pChip.nチャンネル番号 - 0x61 ] );\r
+// dTX.tチップの再生( pChip, CDTXMania.Timer.n前回リセットした時のシステム時刻 + pChip.n発声時刻ms, 10, dTX.nモニタを考慮した音量( E楽器パート.UNKNOWN ) );\r
+// this.n最後に再生したBGMの実WAV番号[ pChip.nチャンネル番号 - 0x61 ] = pChip.n整数値・内部番号;\r
+// }\r
+// }\r
+// break;\r
+\r
+// case 0xa0: // ベース演奏\r
+// case 0xa1:\r
+// case 0xa2:\r
+// case 0xa3:\r
+// case 0xa4:\r
+// case 0xa5:\r
+// case 0xa6:\r
+// case 0xa7:\r
+// this.t進行描画・チップ・ベース( configIni, ref dTX, ref pChip );\r
+// break;\r
+\r
+// case 0xa8: // ウェイリング(ベース)\r
+// this.t進行描画・チップ・ベース・ウェイリング( configIni, ref dTX, ref pChip );\r
+// break;\r
+\r
+// case 0xaf: // ウェイリングサウンド(ベース)\r
+// if( !pChip.bHit && ( pChip.nバーからの距離dot.Bass < 0 ) )\r
+// {\r
+// pChip.bHit = true;\r
+// this.r現在の歓声Chip.Bass = pChip;\r
+// }\r
+// break;\r
+\r
+// case 0xb1: // 空打ち音設定(ドラム)\r
+// case 0xb2:\r
+// case 0xb3:\r
+// case 0xb4:\r
+// case 0xb5:\r
+// case 0xb6:\r
+// case 0xb7:\r
+// case 0xb8:\r
+// case 0xb9:\r
+// case 0xbc:\r
+// this.t進行描画・チップ・空打ち音設定・ドラム( configIni, ref dTX, ref pChip );\r
+// break;\r
+\r
+// case 0xba: // 空打ち音設定(ギター)\r
+// if( !pChip.bHit && ( pChip.nバーからの距離dot.Guitar < 0 ) )\r
+// {\r
+// pChip.bHit = true;\r
+// this.r現在の空うちギターChip = pChip;\r
+// pChip.nチャンネル番号 = 0x20;\r
+// }\r
+// break;\r
+\r
+// case 0xbb: // 空打ち音設定(ベース)\r
+// if( !pChip.bHit && ( pChip.nバーからの距離dot.Bass < 0 ) )\r
+// {\r
+// pChip.bHit = true;\r
+// this.r現在の空うちベースChip = pChip;\r
+// pChip.nチャンネル番号 = 0xA0;\r
+// }\r
+// break;\r
+\r
+// case 0xc4: case 0xc7: case 0xd5: case 0xd6: // BGA画像入れ替え\r
+// case 0xd7: case 0xd8: case 0xd9: case 0xe0:\r
+// if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
+// {\r
+// pChip.bHit = true;\r
+// if( ( configIni.bBGA有効 && ( pChip.eBGA種別 == EBGA種別.BMP ) ) || ( pChip.eBGA種別 == EBGA種別.BMPTEX ) )\r
+// {\r
+// for( int i = 0; i < 8; i++ )\r
+// {\r
+// if( this.nBGAスコープチャンネルマップ[ 0, i ] == pChip.nチャンネル番号 )\r
+// {\r
+// this.actBGA.ChangeScope( this.nBGAスコープチャンネルマップ[ 1, i ], pChip.rBMP, pChip.rBMPTEX );\r
+// }\r
+// }\r
+// }\r
+// }\r
+// break;\r
+\r
+// default:\r
+// if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
+// {\r
+// pChip.bHit = true;\r
+// }\r
+// break;\r
+// }\r
\r
- default:\r
- if( pChip.rBMP != null )\r
- {\r
- this.actBGA.Start( pChip.nチャンネル番号, pChip.rBMP, null, pChip.rBMP.n幅, pChip.rBMP.n高さ, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 );\r
- }\r
- break;\r
- }\r
- }\r
- }\r
- break;\r
+// nCurrentTopChip++;\r
+// }\r
+// return false;\r
+// }\r
+ //private void t進行描画・チップアニメ()\r
+ //{\r
+ // for ( int i = 0; i < 3; i++ )\r
+ // {\r
+ // this.ctチップ模様アニメ[ i ].t進行Loop();\r
+ // }\r
+ // this.ctWailingチップ模様アニメ.t進行Loop();\r
+ //}\r
+ private void t進行描画・チップファイアD()\r
+ {\r
+ this.actChipFireD.On進行描画();\r
+ }\r
+ //private void t進行描画・チップファイアGB()\r
+ //{\r
+ // this.actChipFireGB.On進行描画();\r
+ //}\r
+ private void t進行描画・ドラムパッド()\r
+ {\r
+ if( CDTXMania.ConfigIni.eDark != Eダークモード.FULL )\r
+ {\r
+ this.actPad.On進行描画();\r
+ }\r
+ }\r
+ protected override void t進行描画・パネル文字列()\r
+ {\r
+ base.t進行描画・パネル文字列( 0x150, 0x1ab );\r
+ }\r
+ //private bool t進行描画・フェードイン・アウト()\r
+ //{\r
+ // switch( base.eフェーズID )\r
+ // {\r
+ // case CStage.Eフェーズ.共通_フェードイン:\r
+ // if( this.actFI.On進行描画() != 0 )\r
+ // {\r
+ // base.eフェーズID = CStage.Eフェーズ.共通_通常状態;\r
+ // }\r
+ // break;\r
\r
- case 0x08: // BPM変更(拡張)\r
- if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
- {\r
- pChip.bHit = true;\r
- if( dTX.listBPM.ContainsKey( pChip.n整数値・内部番号 ) )\r
- {\r
- this.actPlayInfo.dbBPM = ( dTX.listBPM[ pChip.n整数値・内部番号 ].dbBPM値 * ( ( (double) configIni.n演奏速度 ) / 20.0 ) ) + dTX.BASEBPM;\r
- }\r
- }\r
- break;\r
+ // case CStage.Eフェーズ.共通_フェードアウト:\r
+ // case CStage.Eフェーズ.演奏_STAGE_FAILED_フェードアウト:\r
+ // if( this.actFO.On進行描画() != 0 )\r
+ // {\r
+ // return true;\r
+ // }\r
+ // break;\r
\r
- case 0x11: // ドラム演奏\r
- case 0x12:\r
- case 0x13:\r
- case 0x14:\r
- case 0x15:\r
- case 0x16:\r
- case 0x17:\r
- case 0x18:\r
- case 0x19:\r
- case 0x1a:\r
- num6 = this.nチャンネル0Atoレーン07[ pChip.nチャンネル番号 - 0x11 ];\r
- if( configIni.bDrums有効 )\r
- {\r
- if( configIni.bSudden.Drums )\r
- {\r
- if( pChip.nバーからの距離dot.Drums < 200 )\r
- {\r
- pChip.b可視 = true;\r
- pChip.n透明度 = 0xff;\r
- }\r
- else if( pChip.nバーからの距離dot.Drums < 250 )\r
- {\r
- pChip.b可視 = true;\r
- pChip.n透明度 = 0xff - ( (int) ( ( ( (double) ( pChip.nバーからの距離dot.Drums - 200 ) ) * 255.0 ) / 50.0 ) );\r
- }\r
- else\r
- {\r
- pChip.b可視 = false;\r
- pChip.n透明度 = 0;\r
- }\r
- }\r
- if( configIni.bHidden.Drums )\r
- {\r
- if( pChip.nバーからの距離dot.Drums < 100 )\r
- {\r
- pChip.b可視 = false;\r
- }\r
- else if( pChip.nバーからの距離dot.Drums < 150 )\r
- {\r
- pChip.b可視 = true;\r
- pChip.n透明度 = (int) ( ( ( (double) ( pChip.nバーからの距離dot.Drums - 100 ) ) * 255.0 ) / 50.0 );\r
- }\r
- }\r
- if( !pChip.bHit && pChip.b可視 )\r
- {\r
- if( this.txチップ != null )\r
- {\r
- this.txチップ.n透明度 = pChip.n透明度;\r
- }\r
- int x = this.nチャンネルtoX座標[ pChip.nチャンネル番号 - 0x11 ];\r
- int num8 = configIni.bReverse.Drums ? ( 0x38 + pChip.nバーからの距離dot.Drums ) : ( 0x1a6 - pChip.nバーからの距離dot.Drums );\r
- if( this.txチップ != null )\r
- {\r
- this.txチップ.vc拡大縮小倍率 = new Vector3( (float) pChip.dbチップサイズ倍率, (float) pChip.dbチップサイズ倍率, 1f );\r
- }\r
- int num9 = this.ctチップ模様アニメ.Drums.n現在の値;\r
- switch( pChip.nチャンネル番号 )\r
- {\r
- case 0x11:\r
- x = ( x + 0x10 ) - ( (int) ( ( 32.0 * pChip.dbチップサイズ倍率 ) / 2.0 ) );\r
- if( this.txチップ != null )\r
- {\r
- this.txチップ.t2D描画( CDTXMania.app.Device, x, num8 - 4, new Rectangle( 0x2c, num9 * 7, 0x20, 8 ) );\r
- }\r
- break;\r
-\r
- case 0x12:\r
- x = ( x + 0x10 ) - ( (int) ( ( 32.0 * pChip.dbチップサイズ倍率 ) / 2.0 ) );\r
- if( this.txチップ != null )\r
- {\r
- this.txチップ.t2D描画( CDTXMania.app.Device, x, num8 - 4, new Rectangle( 0x4c, num9 * 7, 0x20, 8 ) );\r
- }\r
- break;\r
+ // case CStage.Eフェーズ.演奏_STAGE_CLEAR_フェードアウト:\r
+ // if( this.actFOClear.On進行描画() == 0 )\r
+ // {\r
+ // break;\r
+ // }\r
+ // return true;\r
+ // }\r
+ // return false;\r
+ //}\r
+ //private void t進行描画・レーンフラッシュD()\r
+ //{\r
+ // if( ( ( CDTXMania.ConfigIni.eDark != Eダークモード.HALF ) && ( CDTXMania.ConfigIni.eDark != Eダークモード.FULL ) ) && ( ( base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED ) && ( base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED_フェードアウト ) ) )\r
+ // {\r
+ // this.actLaneFlushD.On進行描画();\r
+ // }\r
+ //}\r
+ //private void t進行描画・レーンフラッシュGB()\r
+ //{\r
+ // if( ( ( CDTXMania.ConfigIni.eDark != Eダークモード.HALF ) && ( CDTXMania.ConfigIni.eDark != Eダークモード.FULL ) ) && CDTXMania.ConfigIni.bGuitar有効 )\r
+ // {\r
+ // this.actLaneFlushGB.On進行描画();\r
+ // }\r
+ //}\r
+ protected override void t進行描画・演奏情報()\r
+ {\r
+ base.t進行描画・演奏情報( 0x152, 0x39 );\r
+ }\r
+ //private void t進行描画・背景()\r
+ //{\r
+ // if( CDTXMania.ConfigIni.eDark == Eダークモード.OFF )\r
+ // {\r
+ // if( this.tx背景 != null )\r
+ // {\r
+ // this.tx背景.t2D描画( CDTXMania.app.Device, 0, 0 );\r
+ // }\r
+ // }\r
+ // else\r
+ // {\r
+ // CDTXMania.app.Device.Clear( ClearFlags.ZBuffer | ClearFlags.Target, Color.Black, 0f, 0 );\r
+ // }\r
+ //}\r
+ //private void t進行描画・判定ライン()\r
+ //{\r
+ // if( CDTXMania.ConfigIni.eDark != Eダークモード.FULL )\r
+ // {\r
+ // int y = CDTXMania.ConfigIni.bReverse.Drums ? 0x35 : 0x1a3;\r
+ // for( int i = 0x20; i < 0x14f; i += 8 )\r
+ // {\r
+ // if( this.txヒットバー != null )\r
+ // {\r
+ // this.txヒットバー.t2D描画( CDTXMania.app.Device, i, y, new Rectangle( 0, 0, ( ( i + 8 ) >= 0x14f ) ? ( 7 - ( ( i + 8 ) - 0x14f ) ) : 8, 8 ) );\r
+ // }\r
+ // }\r
+ // }\r
+ //}\r
+ //private void t進行描画・判定文字列1・通常位置指定の場合()\r
+ //{\r
+ // if( ( (E判定文字表示位置) CDTXMania.ConfigIni.判定文字表示位置.Drums ) != E判定文字表示位置.判定ライン上または横 )\r
+ // {\r
+ // this.actJudgeString.On進行描画();\r
+ // }\r
+ //}\r
+ //private void t進行描画・判定文字列2・判定ライン上指定の場合()\r
+ //{\r
+ // if( ( (E判定文字表示位置) CDTXMania.ConfigIni.判定文字表示位置.Drums ) == E判定文字表示位置.判定ライン上または横 )\r
+ // {\r
+ // this.actJudgeString.On進行描画();\r
+ // }\r
+ //}\r
+ //private void t進行描画・譜面スクロール速度()\r
+ //{\r
+ // this.act譜面スクロール速度.On進行描画();\r
+ //}\r
+ //private void t入力メソッド記憶( E楽器パート part )\r
+ //{\r
+ // if( CDTXMania.Pad.st検知したデバイス.Keyboard )\r
+ // {\r
+ // this.b演奏にキーボードを使った[ (int) part ] = true;\r
+ // }\r
+ // if( CDTXMania.Pad.st検知したデバイス.Joypad )\r
+ // {\r
+ // this.b演奏にジョイパッドを使った[ (int) part ] = true;\r
+ // }\r
+ // if( CDTXMania.Pad.st検知したデバイス.MIDIIN )\r
+ // {\r
+ // this.b演奏にMIDI入力を使った[ (int) part ] = true;\r
+ // }\r
+ // if( CDTXMania.Pad.st検知したデバイス.Mouse )\r
+ // {\r
+ // this.b演奏にマウスを使った[ (int) part ] = true;\r
+ // }\r
+ //}\r
+ //protected override void t入力処理・ギター()\r
+ //{\r
+ // if ( CDTXMania.Pad.b押されている( E楽器パート.GUITAR, Eパッド.Decide ) && CDTXMania.Pad.b押された( E楽器パート.GUITAR, Eパッド.B ) )\r
+ // {\r
+ // CDTXMania.ConfigIni.n譜面スクロール速度.Guitar = Math.Min( CDTXMania.ConfigIni.n譜面スクロール速度.Guitar + 1, 0x7cf );\r
+ // }\r
+ // if ( CDTXMania.Pad.b押されている( E楽器パート.GUITAR, Eパッド.Decide ) && CDTXMania.Pad.b押された( E楽器パート.GUITAR, Eパッド.R ) )\r
+ // {\r
+ // CDTXMania.ConfigIni.n譜面スクロール速度.Guitar = Math.Max( CDTXMania.ConfigIni.n譜面スクロール速度.Guitar - 1, 0 );\r
+ // }\r
\r
- case 0x13:\r
- x = ( x + 0x16 ) - ( (int) ( ( 44.0 * pChip.dbチップサイズ倍率 ) / 2.0 ) );\r
- if( this.txチップ != null )\r
- {\r
- this.txチップ.t2D描画( CDTXMania.app.Device, x, num8 - 5, new Rectangle( 0, num9 * 9, 0x2c, 10 ) );\r
- }\r
- break;\r
+ // if ( CDTXMania.ConfigIni.bGuitar有効 && CDTXMania.DTX.bチップがある.Guitar )\r
+ // {\r
+ // if ( bIsAutoPlay.Guitar )\r
+ // {\r
+ // CDTX.CChip chip = this.r次にくるギターChipを更新して返す();\r
+ // if( chip != null )\r
+ // {\r
+ // if( ( chip.nチャンネル番号 & 4 ) != 0 )\r
+ // {\r
+ // this.actLaneFlushGB.Start( 0 );\r
+ // this.actRGB.Push( 0 );\r
+ // }\r
+ // if( ( chip.nチャンネル番号 & 2 ) != 0 )\r
+ // {\r
+ // this.actLaneFlushGB.Start( 1 );\r
+ // this.actRGB.Push( 1 );\r
+ // }\r
+ // if( ( chip.nチャンネル番号 & 1 ) != 0 )\r
+ // {\r
+ // this.actLaneFlushGB.Start( 2 );\r
+ // this.actRGB.Push( 2 );\r
+ // }\r
+ // }\r
+ // }\r
+ // else\r
+ // {\r
+ // int flagR = CDTXMania.Pad.b押されている( E楽器パート.GUITAR, Eパッド.R) ? 4 : 0;\r
+ // this.t入力メソッド記憶( E楽器パート.GUITAR );\r
+ // int flagG = CDTXMania.Pad.b押されている( E楽器パート.GUITAR, Eパッド.G ) ? 2 : 0;\r
+ // this.t入力メソッド記憶( E楽器パート.GUITAR );\r
+ // int flagB = CDTXMania.Pad.b押されている( E楽器パート.GUITAR, Eパッド.B ) ? 1 : 0;\r
+ // this.t入力メソッド記憶( E楽器パート.GUITAR );\r
+ // int flagRGB = flagR | flagG | flagB;\r
+ // if( flagR != 0 )\r
+ // {\r
+ // this.actLaneFlushGB.Start( 0 );\r
+ // this.actRGB.Push( 0 );\r
+ // }\r
+ // if( flagG != 0 )\r
+ // {\r
+ // this.actLaneFlushGB.Start( 1 );\r
+ // this.actRGB.Push( 1 );\r
+ // }\r
+ // if( flagB != 0 )\r
+ // {\r
+ // this.actLaneFlushGB.Start( 2 );\r
+ // this.actRGB.Push( 2 );\r
+ // }\r
+ // List<STInputEvent> events = CDTXMania.Pad.GetEvents( E楽器パート.GUITAR, Eパッド.Pick );\r
+ // if( ( events != null ) && ( events.Count > 0 ) )\r
+ // {\r
+ // this.t入力メソッド記憶( E楽器パート.GUITAR );\r
+ // foreach( STInputEvent event2 in events )\r
+ // {\r
+ // CDTX.CChip chip4;\r
+ // if( !event2.b押された )\r
+ // {\r
+ // continue;\r
+ // }\r
+ // long nTime = event2.nTimeStamp - CDTXMania.Timer.n前回リセットした時のシステム時刻;\r
+ // CDTX.CChip pChip = this.r指定時刻に一番近い未ヒットChip( nTime, 0x2f, this.nInputAdjustTimeMs.Guitar );\r
+ // E判定 e判定 = this.e指定時刻からChipのJUDGEを返す( nTime, pChip, this.nInputAdjustTimeMs.Guitar );\r
+ // if( ( ( pChip != null ) && ( ( pChip.nチャンネル番号 & 15 ) == flagRGB ) ) && ( e判定 != E判定.Miss ) )\r
+ // {\r
+ // if( ( flagR != 0 ) || ( flagRGB == 0 ) )\r
+ // {\r
+ // this.actChipFireGB.Start( 0 );\r
+ // }\r
+ // if( ( flagG != 0 ) || ( flagRGB == 0 ) )\r
+ // {\r
+ // this.actChipFireGB.Start( 1 );\r
+ // }\r
+ // if( ( flagB != 0 ) || ( flagRGB == 0 ) )\r
+ // {\r
+ // this.actChipFireGB.Start( 2 );\r
+ // }\r
+ // this.tチップのヒット処理( nTime, pChip );\r
+ // this.tサウンド再生( pChip, CDTXMania.Timer.nシステム時刻, E楽器パート.GUITAR, CDTXMania.ConfigIni.n手動再生音量, CDTXMania.ConfigIni.b演奏音を強調する.Guitar, e判定 == E判定.Poor );\r
+ // CDTX.CChip item = this.r指定時刻に一番近い未ヒットChip( nTime, 40, this.nInputAdjustTimeMs.Guitar, 140 );\r
+ // if( item != null )\r
+ // {\r
+ // this.queWailing.Guitar.Enqueue( item );\r
+ // }\r
+ // continue;\r
+ // }\r
+ // if( ( ( chip4 = this.r現在の空うちギターChip ) != null ) || ( ( chip4 = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( nTime, 0x2f, this.nInputAdjustTimeMs.Guitar ) ) != null ) )\r
+ // {\r
+ // this.tサウンド再生( chip4, CDTXMania.Timer.nシステム時刻, E楽器パート.GUITAR, CDTXMania.ConfigIni.n手動再生音量, CDTXMania.ConfigIni.b演奏音を強調する.Guitar, true );\r
+ // }\r
+ // if( !CDTXMania.ConfigIni.bLight.Guitar )\r
+ // {\r
+ // this.tチップのヒット処理・BadならびにTight時のMiss( E楽器パート.GUITAR );\r
+ // }\r
+ // }\r
+ // }\r
+ // List<STInputEvent> list2 = CDTXMania.Pad.GetEvents( E楽器パート.GUITAR, Eパッド.Wail );\r
+ // if( ( list2 != null ) && ( list2.Count > 0 ) )\r
+ // {\r
+ // foreach( STInputEvent event3 in list2 )\r
+ // {\r
+ // CDTX.CChip chip5;\r
+ // if( !event3.b押された )\r
+ // {\r
+ // continue;\r
+ // }\r
+ // long num6 = event3.nTimeStamp - CDTXMania.Timer.n前回リセットした時のシステム時刻;\r
+ // while( ( this.queWailing.Guitar.Count > 0 ) && ( ( chip5 = this.queWailing.Guitar.Dequeue() ) != null ) )\r
+ // {\r
+ // if( ( num6 - chip5.n発声時刻ms ) <= 800 ) // #24245 2011.1.26 yyagi: 800 -> 1000\r
+ // {\r
+ // chip5.bHit = true;\r
+ // this.actWailingBonus.Start( E楽器パート.GUITAR, this.r現在の歓声Chip.Guitar );\r
+ // if( !bIsAutoPlay.Guitar )\r
+ // {\r
+ // int nCombo = ( this.actCombo.n現在のコンボ数.Guitar < 500 ) ? this.actCombo.n現在のコンボ数.Guitar : 500;\r
+ // this.actScore.Set( E楽器パート.GUITAR, this.actScore.Get( E楽器パート.GUITAR ) + ( nCombo * 3000L ) ); // #24245 2011.1.26 yyagi changed DRUMS->GUITAR, add nCombo conditions\r
+ // }\r
+ // }\r
+ // }\r
+ // }\r
+ // }\r
+ // }\r
+ // }\r
+ //}\r
+ protected override void t入力処理・ドラム()\r
+ {\r
+ for( int nPad = 0; nPad < 10; nPad++ )\r
+ {\r
+ List<STInputEvent> events = CDTXMania.Pad.GetEvents( E楽器パート.DRUMS, (Eパッド) nPad );\r
\r
- case 0x14:\r
- x = ( x + 0x10 ) - ( (int) ( ( 32.0 * pChip.dbチップサイズ倍率 ) / 2.0 ) );\r
- if( this.txチップ != null )\r
- {\r
- this.txチップ.t2D描画( CDTXMania.app.Device, x, num8 - 4, new Rectangle( 0x6c, num9 * 7, 0x20, 8 ) );\r
- }\r
- break;\r
+ if( ( events != null ) && ( events.Count != 0 ) )\r
+ {\r
+ this.t入力メソッド記憶( E楽器パート.DRUMS );\r
\r
- case 0x15:\r
- x = ( x + 0x10 ) - ( (int) ( ( 32.0 * pChip.dbチップサイズ倍率 ) / 2.0 ) );\r
- if( this.txチップ != null )\r
- {\r
- this.txチップ.t2D描画( CDTXMania.app.Device, x, num8 - 4, new Rectangle( 140, num9 * 7, 0x20, 8 ) );\r
- }\r
- break;\r
+ #region [ 打ち分けグループ調整 ]\r
+ //-----------------------------\r
+ EHHGroup eHHGroup = CDTXMania.ConfigIni.eHHGroup;\r
+ EFTGroup eFTGroup = CDTXMania.ConfigIni.eFTGroup;\r
+ ECYGroup eCYGroup = CDTXMania.ConfigIni.eCYGroup;\r
+ if( !CDTXMania.DTX.bチップがある.Ride && ( eCYGroup == ECYGroup.打ち分ける ) )\r
+ {\r
+ eCYGroup = ECYGroup.共通;\r
+ }\r
+ if( !CDTXMania.DTX.bチップがある.HHOpen && ( eHHGroup == EHHGroup.全部打ち分ける ) )\r
+ {\r
+ eHHGroup = EHHGroup.左シンバルのみ打ち分ける;\r
+ }\r
+ if( !CDTXMania.DTX.bチップがある.HHOpen && ( eHHGroup == EHHGroup.ハイハットのみ打ち分ける ) )\r
+ {\r
+ eHHGroup = EHHGroup.全部共通;\r
+ }\r
+ if( !CDTXMania.DTX.bチップがある.LeftCymbal && ( eHHGroup == EHHGroup.全部打ち分ける ) )\r
+ {\r
+ eHHGroup = EHHGroup.ハイハットのみ打ち分ける;\r
+ }\r
+ if( !CDTXMania.DTX.bチップがある.LeftCymbal && ( eHHGroup == EHHGroup.左シンバルのみ打ち分ける ) )\r
+ {\r
+ eHHGroup = EHHGroup.全部共通;\r
+ }\r
+ //-----------------------------\r
+ #endregion\r
\r
- case 0x16:\r
- x = ( x + 0x13 ) - ( (int) ( ( 38.0 * pChip.dbチップサイズ倍率 ) / 2.0 ) );\r
- if( this.txチップ != null )\r
- {\r
- this.txチップ.t2D描画( CDTXMania.app.Device, x, num8 - 0x15, new Rectangle( 0xcc, 0x158, 0x26, 0x24 ) );\r
- this.txチップ.t2D描画( CDTXMania.app.Device, x, num8 - 4, new Rectangle( 0xcc, num9 * 7, 0x26, 8 ) );\r
- }\r
- break;\r
+ foreach( STInputEvent event2 in events )\r
+ {\r
+ #region [ 変数宣言 ]\r
+ //-----------------------------\r
+ int num3;\r
+ int num4;\r
+ int num5;\r
+ int num6;\r
+ int num7;\r
+ int num8;\r
+ int num9;\r
+ int num10;\r
+ int num11;\r
+ int num12;\r
+ int num13;\r
+ int num14;\r
+ int num15;\r
+ int num16;\r
+ //-----------------------------\r
+ #endregion\r
\r
- case 0x17:\r
- x = ( x + 0x10 ) - ( (int) ( ( 32.0 * pChip.dbチップサイズ倍率 ) / 2.0 ) );\r
- if( this.txチップ != null )\r
- {\r
- this.txチップ.t2D描画( CDTXMania.app.Device, x, num8 - 4, new Rectangle( 0xac, num9 * 7, 0x20, 8 ) );\r
- }\r
- break;\r
+ if( !event2.b押された )\r
+ continue;\r
\r
- case 0x18:\r
- x = ( x + 13 ) - ( (int) ( ( 26.0 * pChip.dbチップサイズ倍率 ) / 2.0 ) );\r
- if( this.txチップ != null )\r
- {\r
- this.txチップ.t2D描画( CDTXMania.app.Device, x, num8 - 4, new Rectangle( 0xf2, num9 * 7, 0x1a, 8 ) );\r
- this.txチップ.t2D描画( CDTXMania.app.Device, x, num8 - 9, new Rectangle( 0xf2, 0x158, 0x1a, 0x12 ) );\r
- }\r
- break;\r
+ long nTime = event2.nTimeStamp - CDTXMania.Timer.n前回リセットした時のシステム時刻;\r
+ int nInputAdjustTime = bIsAutoPlay[ this.nチャンネル0Atoレーン07[ (int)nPad ] ] ? 0 : nInputAdjustTimeMs.Drums;\r
\r
- case 0x19:\r
- x = ( x + 13 ) - ( (int) ( ( 26.0 * pChip.dbチップサイズ倍率 ) / 2.0 ) );\r
- if( this.txチップ != null )\r
- {\r
- this.txチップ.t2D描画( CDTXMania.app.Device, x, num8 - 4, new Rectangle( 0xf2, num9 * 7, 0x1a, 8 ) );\r
- this.txチップ.t2D描画( CDTXMania.app.Device, x, num8 - 9, new Rectangle( 0xf2, 0x158, 0x1a, 0x12 ) );\r
- }\r
- break;\r
+ bool flag = false;\r
\r
- case 0x1a:\r
- x = ( x + 0x13 ) - ( (int) ( ( 38.0 * pChip.dbチップサイズ倍率 ) / 2.0 ) );\r
- if( this.txチップ != null )\r
- {\r
- this.txチップ.t2D描画( CDTXMania.app.Device, x, num8 - 0x15, new Rectangle( 0xcc, 0x158, 0x26, 0x24 ) );\r
- this.txチップ.t2D描画( CDTXMania.app.Device, x, num8 - 4, new Rectangle( 0xcc, num9 * 7, 0x26, 8 ) );\r
- }\r
- break;\r
- }\r
- if( this.txチップ != null )\r
- {\r
- this.txチップ.vc拡大縮小倍率 = new Vector3( 1f, 1f, 1f );\r
- this.txチップ.n透明度 = 0xff;\r
- }\r
- }\r
- if( ( configIni.bAutoPlay[ num6 ] && !pChip.bHit ) && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
- {\r
- pChip.bHit = true;\r
- this.actLaneFlushD.Start( (Eドラムレーン) num6, ( (float) CInput管理.n通常音量 ) / 127f );\r
- bool flag = this.bフィルイン中;\r
- bool flag2 = this.bフィルイン中 && this.bフィルイン区間の最後のChipである( pChip );\r
- bool flag3 = flag2;\r
- this.actChipFireD.Start( (Eドラムレーン) num6, flag, flag2, flag3 );\r
- this.actPad.Hit( this.nチャンネル0Atoパッド08[ pChip.nチャンネル番号 - 0x11 ] );\r
- this.tサウンド再生( pChip, CDTXMania.Timer.n前回リセットした時のシステム時刻 + pChip.n発声時刻ms, E楽器パート.DRUMS, dTX.nモニタを考慮した音量( E楽器パート.DRUMS ) );\r
- this.tチップのヒット処理( pChip.n発声時刻ms, pChip );\r
- }\r
- break;\r
- }\r
- if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
- {\r
- this.tサウンド再生( pChip, CDTXMania.Timer.n前回リセットした時のシステム時刻 + pChip.n発声時刻ms, E楽器パート.DRUMS, dTX.nモニタを考慮した音量( E楽器パート.DRUMS ) );\r
- pChip.bHit = true;\r
- }\r
- break;\r
\r
- case 0x1f: // フィルインサウンド(ドラム)\r
- if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
+ #region [ switch( ( (Eパッド) nPad ) ) ]\r
+ //-----------------------------\r
+ switch( ( (Eパッド) nPad ) )\r
{\r
- pChip.bHit = true;\r
- this.r現在の歓声Chip.Drums = pChip;\r
- }\r
- break;\r
-\r
- case 0x20: // ギター演奏\r
- case 0x21:\r
- case 0x22:\r
- case 0x23:\r
- case 0x24:\r
- case 0x25:\r
- case 0x26:\r
- case 0x27:\r
- if( configIni.bGuitar有効 )\r
- {\r
- if( configIni.bSudden.Guitar )\r
- {\r
- pChip.b可視 = pChip.nバーからの距離dot.Guitar < 200;\r
- }\r
- if( configIni.bHidden.Guitar && ( pChip.nバーからの距離dot.Guitar < 100 ) )\r
- {\r
- pChip.b可視 = false;\r
- }\r
- if( !pChip.bHit && pChip.b可視 )\r
- {\r
- int num10 = configIni.bReverse.Guitar ? ( 0x176 - pChip.nバーからの距離dot.Guitar ) : ( 0x5f + pChip.nバーからの距離dot.Guitar );\r
- if( ( num10 > 0x39 ) && ( num10 < 0x19c ) )\r
- {\r
- int num11 = this.ctチップ模様アニメ.Guitar.n現在の値;\r
- if( pChip.nチャンネル番号 == 0x20 )\r
- {\r
- if( this.txチップ != null )\r
- {\r
- this.txチップ.t2D描画( CDTXMania.app.Device, 0x1fd, num10 - 2, new Rectangle( 0x10c, 0x90 + ( ( num11 % 5 ) * 6 ), 0x4c, 6 ) );\r
- }\r
- }\r
- else if( !configIni.bLeft.Guitar )\r
- {\r
- Rectangle rectangle = new Rectangle( 0x10c, num11 * 6, 0x18, 6 );\r
- if( ( ( pChip.nチャンネル番号 & 4 ) != 0 ) && ( this.txチップ != null ) )\r
- {\r
- this.txチップ.t2D描画( CDTXMania.app.Device, 0x1fd, num10 - 3, rectangle );\r
- }\r
- rectangle.X += 0x18;\r
- if( ( ( pChip.nチャンネル番号 & 2 ) != 0 ) && ( this.txチップ != null ) )\r
- {\r
- this.txチップ.t2D描画( CDTXMania.app.Device, 0x217, num10 - 3, rectangle );\r
- }\r
- rectangle.X += 0x18;\r
- if( ( ( pChip.nチャンネル番号 & 1 ) != 0 ) && ( this.txチップ != null ) )\r
- {\r
- this.txチップ.t2D描画( CDTXMania.app.Device, 0x231, num10 - 3, rectangle );\r
- }\r
- }\r
- else\r
- {\r
- Rectangle rectangle2 = new Rectangle( 0x10c, num11 * 6, 0x18, 6 );\r
- if( ( ( pChip.nチャンネル番号 & 4 ) != 0 ) && ( this.txチップ != null ) )\r
- {\r
- this.txチップ.t2D描画( CDTXMania.app.Device, 0x231, num10 - 3, rectangle2 );\r
- }\r
- rectangle2.X += 0x18;\r
- if( ( ( pChip.nチャンネル番号 & 2 ) != 0 ) && ( this.txチップ != null ) )\r
- {\r
- this.txチップ.t2D描画( CDTXMania.app.Device, 0x217, num10 - 3, rectangle2 );\r
- }\r
- rectangle2.X += 0x18;\r
- if( ( ( pChip.nチャンネル番号 & 1 ) != 0 ) && ( this.txチップ != null ) )\r
- {\r
- this.txチップ.t2D描画( CDTXMania.app.Device, 0x1fd, num10 - 3, rectangle2 );\r
- }\r
- }\r
- }\r
- }\r
- if( ( configIni.bAutoPlay.Guitar && !pChip.bHit ) && ( pChip.nバーからの距離dot.Guitar < 0 ) )\r
- {\r
- pChip.bHit = true;\r
- if( ( ( pChip.nチャンネル番号 & 4 ) != 0 ) || ( pChip.nチャンネル番号 == 0x20 ) )\r
- {\r
- this.actChipFireGB.Start( 0 );\r
- }\r
- if( ( ( pChip.nチャンネル番号 & 2 ) != 0 ) || ( pChip.nチャンネル番号 == 0x20 ) )\r
- {\r
- this.actChipFireGB.Start( 1 );\r
- }\r
- if( ( ( pChip.nチャンネル番号 & 1 ) != 0 ) || ( pChip.nチャンネル番号 == 0x20 ) )\r
- {\r
- this.actChipFireGB.Start( 2 );\r
- }\r
- this.tサウンド再生( pChip, CDTXMania.Timer.n前回リセットした時のシステム時刻 + pChip.n発声時刻ms, E楽器パート.GUITAR, dTX.nモニタを考慮した音量( E楽器パート.GUITAR ) );\r
- this.r次にくるギターChip = null;\r
- this.tチップのヒット処理( pChip.n発声時刻ms, pChip );\r
- }\r
- break;\r
- }\r
- if( !pChip.bHit && ( pChip.nバーからの距離dot.Guitar < 0 ) )\r
- {\r
- pChip.bHit = true;\r
- this.tサウンド再生( pChip, CDTXMania.Timer.n前回リセットした時のシステム時刻 + pChip.n発声時刻ms, E楽器パート.GUITAR, dTX.nモニタを考慮した音量( E楽器パート.GUITAR ) );\r
- }\r
- break;\r
-\r
- case 0x28: // ウェイリング(ギター)\r
- if( configIni.bGuitar有効 )\r
- {\r
- if( configIni.bSudden.Guitar )\r
- {\r
- pChip.b可視 = pChip.nバーからの距離dot.Guitar < 200;\r
- }\r
- if( configIni.bHidden.Guitar && ( pChip.nバーからの距離dot.Guitar < 100 ) )\r
- {\r
- pChip.b可視 = false;\r
- }\r
- if( !pChip.bHit && pChip.b可視 )\r
- {\r
- int num14 = 0x19;\r
- int num15 = configIni.bReverse.Guitar ? ( 0x176 - pChip.nバーからの距離dot.Guitar ) : ( 0x5f + pChip.nバーからの距離dot.Guitar );\r
- int num16 = num15 - 0x39;\r
- int num17 = 0;\r
- if( ( num16 < ( 0x163 + num14 ) ) && ( num16 > -num14 ) )\r
- {\r
- int num18 = this.ctWailingチップ模様アニメ.n現在の値;\r
- Rectangle rectangle5 = new Rectangle( 0x10c + ( num18 * 20 ), 0xae, 20, 50 );\r
- if( num16 < num14 )\r
- {\r
- rectangle5.Y += num14 - num16;\r
- rectangle5.Height -= num14 - num16;\r
- num17 = num14 - num16;\r
- }\r
- if( num16 > ( 0x163 - num14 ) )\r
- {\r
- rectangle5.Height -= num16 - ( 0x163 - num14 );\r
- }\r
- if( ( rectangle5.Bottom > rectangle5.Top ) && ( this.txチップ != null ) )\r
- {\r
- this.txチップ.t2D描画( CDTXMania.app.Device, 0x24c, ( num15 - num14 ) + num17, rectangle5 );\r
- }\r
- }\r
- }\r
- if( !pChip.bHit && ( pChip.nバーからの距離dot.Guitar < 0 ) )\r
- {\r
- pChip.bHit = true;\r
- if( configIni.bAutoPlay.Guitar )\r
- {\r
- this.actWailingBonus.Start( E楽器パート.GUITAR, this.r現在の歓声Chip.Guitar );\r
- }\r
- }\r
- break;\r
- }\r
- pChip.bHit = true;\r
- break;\r
-\r
- case 0x2f: // ウェイリングサウンド(ギター)\r
- if( !pChip.bHit && ( pChip.nバーからの距離dot.Guitar < 0 ) )\r
- {\r
- pChip.bHit = true;\r
- this.r現在の歓声Chip.Guitar = pChip;\r
- }\r
- break;\r
-\r
- case 0x31: // 不可視チップ配置(ドラム)\r
- case 0x32:\r
- case 0x33:\r
- case 0x34:\r
- case 0x35:\r
- case 0x36:\r
- case 0x37:\r
- case 0x38:\r
- case 0x39:\r
- case 0x3a:\r
- if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
- {\r
- pChip.bHit = true;\r
- }\r
- break;\r
-\r
- case 0x50: // 小節線\r
- {\r
- int num24 = pChip.n発声位置 / 0x180;\r
- if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
- {\r
- pChip.bHit = true;\r
- this.actPlayInfo.n小節番号 = num24 - 1;\r
- if( configIni.bWave再生位置自動調整機能有効 )\r
- {\r
- dTX.tWave再生位置自動補正();\r
- }\r
- }\r
- if( configIni.bDrums有効 )\r
- {\r
- if( configIni.b演奏情報を表示する && ( configIni.eDark == Eダークモード.OFF ) )\r
- {\r
- int num28 = num24 - 1;\r
- CDTXMania.act文字コンソール.tPrint( 0x14d, configIni.bReverse.Drums ? ( ( 0x38 + pChip.nバーからの距離dot.Drums ) - 0x11 ) : ( ( 0x1a6 - pChip.nバーからの距離dot.Drums ) - 0x11 ), C文字コンソール.Eフォント種別.白, num28.ToString() );\r
- }\r
- if( ( ( configIni.eDark != Eダークモード.FULL ) && pChip.b可視 ) && ( this.txチップ != null ) )\r
- {\r
- this.txチップ.t2D描画( CDTXMania.app.Device, 0x23, configIni.bReverse.Drums ? ( ( 0x38 + pChip.nバーからの距離dot.Drums ) - 1 ) : ( ( 0x1a6 - pChip.nバーからの距離dot.Drums ) - 1 ), new Rectangle( 0, 0x1bc, 0x128, 2 ) );\r
- }\r
- }\r
- if( ( pChip.b可視 && configIni.bGuitar有効 ) && ( configIni.eDark != Eダークモード.FULL ) )\r
- {\r
- int y = configIni.bReverse.Guitar ? ( ( 0x176 - pChip.nバーからの距離dot.Guitar ) - 1 ) : ( ( 0x5f + pChip.nバーからの距離dot.Guitar ) - 1 );\r
- if( ( dTX.bチップがある.Guitar && ( y > 0x39 ) ) && ( ( y < 0x19c ) && ( this.txチップ != null ) ) )\r
- {\r
- this.txチップ.t2D描画( CDTXMania.app.Device, 0x1fb, y, new Rectangle( 0, 450, 0x4e, 1 ) );\r
- }\r
- y = configIni.bReverse.Bass ? ( ( 0x176 - pChip.nバーからの距離dot.Bass ) - 1 ) : ( ( 0x5f + pChip.nバーからの距離dot.Bass ) - 1 );\r
- if( ( dTX.bチップがある.Bass && ( y > 0x39 ) ) && ( ( y < 0x19c ) && ( this.txチップ != null ) ) )\r
+ case Eパッド.HH:\r
+ #region [ *** ]\r
+ //-----------------------------\r
{\r
- this.txチップ.t2D描画( CDTXMania.app.Device, 0x18e, y, new Rectangle( 0, 450, 0x4e, 1 ) );\r
- }\r
- }\r
- break;\r
- }\r
- case 0x51: // 拍線\r
- if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
- {\r
- pChip.bHit = true;\r
- }\r
- if( ( ( configIni.eDark != Eダークモード.FULL ) && pChip.b可視 ) && ( this.txチップ != null ) )\r
- {\r
- this.txチップ.t2D描画( CDTXMania.app.Device, 0x23, configIni.bReverse.Drums ? ( ( 0x38 + pChip.nバーからの距離dot.Drums ) - 1 ) : ( ( 0x1a6 - pChip.nバーからの距離dot.Drums ) - 1 ), new Rectangle( 0, 0x1bf, 0x128, 1 ) );\r
- }\r
- break;\r
-\r
- case 0x52: // MIDIコーラス\r
- if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
- {\r
- pChip.bHit = true;\r
- }\r
- break;\r
-\r
- case 0x53: // フィルイン\r
- if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
- {\r
- pChip.bHit = true;\r
- switch( pChip.n整数値 )\r
- {\r
- case 0x01: // フィルイン開始\r
- if( configIni.bフィルイン有効 )\r
- {\r
- this.bフィルイン中 = true;\r
- }\r
- break;\r
+ if ( event2.nVelocity <= CDTXMania.ConfigIni.nVelocityMin.HH )\r
+ continue; // 電子ドラムによる意図的なクロストークを無効にする\r
\r
- case 0x02: // フィルイン終了\r
- if( configIni.bフィルイン有効 )\r
- {\r
- this.bフィルイン中 = false;\r
- }\r
- if( ( ( this.actCombo.n現在のコンボ数.Drums > 0 ) || configIni.bドラムが全部オートプレイである ) && configIni.b歓声を発声する )\r
+ CDTX.CChip chipHC = this.r指定時刻に一番近い未ヒットChip( nTime, 0x11, nInputAdjustTime ); // HiHat Close\r
+ CDTX.CChip chipHO = this.r指定時刻に一番近い未ヒットChip( nTime, 0x18, nInputAdjustTime ); // HiHat Open\r
+ CDTX.CChip chipLC = this.r指定時刻に一番近い未ヒットChip( nTime, 0x1a, nInputAdjustTime ); // LC\r
+ E判定 e判定HC = ( chipHC != null ) ? this.e指定時刻からChipのJUDGEを返す( nTime, chipHC, nInputAdjustTime ) : E判定.Miss;\r
+ E判定 e判定HO = ( chipHO != null ) ? this.e指定時刻からChipのJUDGEを返す( nTime, chipHO, nInputAdjustTime ) : E判定.Miss;\r
+ E判定 e判定LC = ( chipLC != null ) ? this.e指定時刻からChipのJUDGEを返す( nTime, chipLC, nInputAdjustTime ) : E判定.Miss;\r
+ switch ( eHHGroup )\r
{\r
- if( this.r現在の歓声Chip.Drums != null )\r
- {\r
- dTX.tチップの再生( this.r現在の歓声Chip.Drums, CDTXMania.Timer.nシステム時刻, 10, dTX.nモニタを考慮した音量( E楽器パート.UNKNOWN ) );\r
- }\r
- else\r
- {\r
- CDTXMania.Skin.sound歓声音.n位置・次に鳴るサウンド = 0;\r
- CDTXMania.Skin.sound歓声音.t再生する();\r
- }\r
- }\r
- break;\r
-#if TEST_NOTEOFFMODE // 2011.1.1 yyagi TEST\r
- case 0x04: // HH消音あり(従来同等)\r
- CDTXMania.DTX.bHH演奏で直前のHHを消音する = true;\r
- break;\r
- case 0x05: // HH消音無し\r
- CDTXMania.DTX.bHH演奏で直前のHHを消音する = false;\r
- break;\r
- case 0x06: // ギター消音あり(従来同等)\r
- CDTXMania.DTX.bGUITAR演奏で直前のGUITARを消音する = true;\r
- break;\r
- case 0x07: // ギター消音無し\r
- CDTXMania.DTX.bGUITAR演奏で直前のGUITARを消音する = false;\r
- break;\r
- case 0x08: // ベース消音あり(従来同等)\r
- CDTXMania.DTX.bBASS演奏で直前のBASSを消音する = true;\r
- break;\r
- case 0x09: // ベース消音無し\r
- CDTXMania.DTX.bBASS演奏で直前のBASSを消音する = false;\r
- break;\r
-#endif\r
- }\r
- }\r
- break;\r
-\r
- case 0x54: // 動画再生\r
- if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
- {\r
- pChip.bHit = true;\r
- if( configIni.bAVI有効 )\r
- {\r
- switch( pChip.eAVI種別 )\r
- {\r
- case EAVI種別.AVI:\r
- if( pChip.rAVI != null )\r
- {\r
- this.actAVI.Start( pChip.nチャンネル番号, pChip.rAVI, 0x116, 0x163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, pChip.n発声時刻ms );\r
- }\r
- break;\r
-\r
- case EAVI種別.AVIPAN:\r
- if( pChip.rAVIPan != null )\r
- {\r
- this.actAVI.Start( pChip.nチャンネル番号, pChip.rAVI, pChip.rAVIPan.sz開始サイズ.Width, pChip.rAVIPan.sz開始サイズ.Height, pChip.rAVIPan.sz終了サイズ.Width, pChip.rAVIPan.sz終了サイズ.Height, pChip.rAVIPan.pt動画側開始位置.X, pChip.rAVIPan.pt動画側開始位置.Y, pChip.rAVIPan.pt動画側終了位置.X, pChip.rAVIPan.pt動画側終了位置.Y, pChip.rAVIPan.pt表示側開始位置.X, pChip.rAVIPan.pt表示側開始位置.Y, pChip.rAVIPan.pt表示側終了位置.X, pChip.rAVIPan.pt表示側終了位置.Y, pChip.n総移動時間, pChip.n発声時刻ms );\r
- }\r
- break;\r
- }\r
- }\r
- }\r
- break;\r
+ case EHHGroup.ハイハットのみ打ち分ける:\r
+ #region [ *** ]\r
+ //-----------------------------\r
+ if ( ( e判定HC != E判定.Miss ) && ( e判定LC != E判定.Miss ) )\r
+ {\r
+ if ( chipHC.n発声位置 < chipLC.n発声位置 )\r
+ {\r
+ this.tドラムヒット処理( nTime, Eパッド.HH, chipHC, event2.nVelocity );\r
+ }\r
+ else if ( chipHC.n発声位置 > chipLC.n発声位置 )\r
+ {\r
+ this.tドラムヒット処理( nTime, Eパッド.HH, chipLC, event2.nVelocity );\r
+ }\r
+ else\r
+ {\r
+ this.tドラムヒット処理( nTime, Eパッド.HH, chipHC, event2.nVelocity );\r
+ this.tドラムヒット処理( nTime, Eパッド.HH, chipLC, event2.nVelocity );\r
+ }\r
+ flag = true;\r
+ }\r
+ else if ( e判定HC != E判定.Miss )\r
+ {\r
+ this.tドラムヒット処理( nTime, Eパッド.HH, chipHC, event2.nVelocity );\r
+ flag = true;\r
+ }\r
+ else if ( e判定LC != E判定.Miss )\r
+ {\r
+ this.tドラムヒット処理( nTime, Eパッド.HH, chipLC, event2.nVelocity );\r
+ flag = true;\r
+ }\r
+ if ( !flag )\r
+ break;\r
+ continue;\r
+ //-----------------------------\r
+ #endregion\r
\r
- case 0x61: // 自動再生(BGM, SE)\r
- case 0x62:\r
- case 0x63:\r
- case 0x64:\r
- case 0x65:\r
- case 0x66:\r
- case 0x67:\r
- case 0x68:\r
- case 0x69:\r
- case 0x70:\r
- case 0x71:\r
- case 0x72:\r
- case 0x73:\r
- case 0x74:\r
- case 0x75:\r
- case 0x76:\r
- case 0x77:\r
- case 0x78:\r
- case 0x79:\r
- case 0x80:\r
- case 0x81:\r
- case 0x82:\r
- case 0x83:\r
- case 0x84:\r
- case 0x85:\r
- case 0x86:\r
- case 0x87:\r
- case 0x88:\r
- case 0x89:\r
- case 0x90:\r
- case 0x91:\r
- case 0x92:\r
- if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
- {\r
- pChip.bHit = true;\r
- if( configIni.bBGM音を発声する )\r
- {\r
- dTX.tWavの再生停止( this.n最後に再生したBGMの実WAV番号[ pChip.nチャンネル番号 - 0x61 ] );\r
- dTX.tチップの再生( pChip, CDTXMania.Timer.n前回リセットした時のシステム時刻 + pChip.n発声時刻ms, 10, dTX.nモニタを考慮した音量( E楽器パート.UNKNOWN ) );\r
- this.n最後に再生したBGMの実WAV番号[ pChip.nチャンネル番号 - 0x61 ] = pChip.n整数値・内部番号;\r
- }\r
- }\r
- break;\r
+ case EHHGroup.左シンバルのみ打ち分ける:\r
+ #region [ *** ]\r
+ //-----------------------------\r
+ if ( ( e判定HC != E判定.Miss ) && ( e判定HO != E判定.Miss ) )\r
+ {\r
+ if ( chipHC.n発声位置 < chipHO.n発声位置 )\r
+ {\r
+ this.tドラムヒット処理( nTime, Eパッド.HH, chipHC, event2.nVelocity );\r
+ }\r
+ else if ( chipHC.n発声位置 > chipHO.n発声位置 )\r
+ {\r
+ this.tドラムヒット処理( nTime, Eパッド.HH, chipHO, event2.nVelocity );\r
+ }\r
+ else\r
+ {\r
+ this.tドラムヒット処理( nTime, Eパッド.HH, chipHC, event2.nVelocity );\r
+ this.tドラムヒット処理( nTime, Eパッド.HH, chipHO, event2.nVelocity );\r
+ }\r
+ flag = true;\r
+ }\r
+ else if ( e判定HC != E判定.Miss )\r
+ {\r
+ this.tドラムヒット処理( nTime, Eパッド.HH, chipHC, event2.nVelocity );\r
+ flag = true;\r
+ }\r
+ else if ( e判定HO != E判定.Miss )\r
+ {\r
+ this.tドラムヒット処理( nTime, Eパッド.HH, chipHO, event2.nVelocity );\r
+ flag = true;\r
+ }\r
+ if ( !flag )\r
+ break;\r
+ continue;\r
+ //-----------------------------\r
+ #endregion\r
\r
- case 0xa0: // ベース演奏\r
- case 0xa1:\r
- case 0xa2:\r
- case 0xa3:\r
- case 0xa4:\r
- case 0xa5:\r
- case 0xa6:\r
- case 0xa7:\r
- if( configIni.bGuitar有効 )\r
- {\r
- if( configIni.bSudden.Bass )\r
- {\r
- pChip.b可視 = pChip.nバーからの距離dot.Bass < 200;\r
- }\r
- if( configIni.bHidden.Bass && ( pChip.nバーからの距離dot.Bass < 100 ) )\r
- {\r
- pChip.b可視 = false;\r
- }\r
- if( !pChip.bHit && pChip.b可視 )\r
- {\r
- int num12 = configIni.bReverse.Bass ? ( 0x176 - pChip.nバーからの距離dot.Bass ) : ( 0x5f + pChip.nバーからの距離dot.Bass );\r
- if( ( num12 > 0x39 ) && ( num12 < 0x19c ) )\r
- {\r
- int num13 = this.ctチップ模様アニメ.Bass.n現在の値;\r
- if( pChip.nチャンネル番号 == 160 )\r
- {\r
- if( this.txチップ != null )\r
- {\r
- this.txチップ.t2D描画( CDTXMania.app.Device, 400, num12 - 2, new Rectangle( 0x10c, 0x90 + ( ( num13 % 5 ) * 6 ), 0x4c, 6 ) );\r
- }\r
- }\r
- else if( !configIni.bLeft.Bass )\r
- {\r
- Rectangle rectangle3 = new Rectangle( 0x10c, num13 * 6, 0x18, 6 );\r
- if( ( ( pChip.nチャンネル番号 & 4 ) != 0 ) && ( this.txチップ != null ) )\r
- {\r
- this.txチップ.t2D描画( CDTXMania.app.Device, 400, num12 - 3, rectangle3 );\r
- }\r
- rectangle3.X += 0x18;\r
- if( ( ( pChip.nチャンネル番号 & 2 ) != 0 ) && ( this.txチップ != null ) )\r
- {\r
- this.txチップ.t2D描画( CDTXMania.app.Device, 0x1aa, num12 - 3, rectangle3 );\r
- }\r
- rectangle3.X += 0x18;\r
- if( ( ( pChip.nチャンネル番号 & 1 ) != 0 ) && ( this.txチップ != null ) )\r
- {\r
- this.txチップ.t2D描画( CDTXMania.app.Device, 0x1c4, num12 - 3, rectangle3 );\r
- }\r
- }\r
- else\r
- {\r
- Rectangle rectangle4 = new Rectangle( 0x10c, num13 * 6, 0x18, 6 );\r
- if( ( ( pChip.nチャンネル番号 & 4 ) != 0 ) && ( this.txチップ != null ) )\r
- {\r
- this.txチップ.t2D描画( CDTXMania.app.Device, 0x1c4, num12 - 3, rectangle4 );\r
- }\r
- rectangle4.X += 0x18;\r
- if( ( ( pChip.nチャンネル番号 & 2 ) != 0 ) && ( this.txチップ != null ) )\r
- {\r
- this.txチップ.t2D描画( CDTXMania.app.Device, 0x1aa, num12 - 3, rectangle4 );\r
- }\r
- rectangle4.X += 0x18;\r
- if( ( ( pChip.nチャンネル番号 & 1 ) != 0 ) && ( this.txチップ != null ) )\r
- {\r
- this.txチップ.t2D描画( CDTXMania.app.Device, 400, num12 - 3, rectangle4 );\r
- }\r
- }\r
- }\r
- }\r
- if( ( configIni.bAutoPlay.Bass && !pChip.bHit ) && ( pChip.nバーからの距離dot.Bass < 0 ) )\r
- {\r
- pChip.bHit = true;\r
- if( ( ( pChip.nチャンネル番号 & 4 ) != 0 ) || ( pChip.nチャンネル番号 == 160 ) )\r
- {\r
- this.actChipFireGB.Start( 3 );\r
- }\r
- if( ( ( pChip.nチャンネル番号 & 2 ) != 0 ) || ( pChip.nチャンネル番号 == 160 ) )\r
- {\r
- this.actChipFireGB.Start( 4 );\r
- }\r
- if( ( ( pChip.nチャンネル番号 & 1 ) != 0 ) || ( pChip.nチャンネル番号 == 160 ) )\r
- {\r
- this.actChipFireGB.Start( 5 );\r
- }\r
- this.tサウンド再生( pChip, CDTXMania.Timer.n前回リセットした時のシステム時刻 + pChip.n発声時刻ms, E楽器パート.BASS, dTX.nモニタを考慮した音量( E楽器パート.BASS ) );\r
- this.r次にくるベースChip = null;\r
- this.tチップのヒット処理( pChip.n発声時刻ms, pChip );\r
- }\r
- break;\r
- }\r
- if( !pChip.bHit && ( pChip.nバーからの距離dot.Bass < 0 ) )\r
- {\r
- this.tサウンド再生( pChip, CDTXMania.Timer.n前回リセットした時のシステム時刻 + pChip.n発声時刻ms, E楽器パート.BASS, dTX.nモニタを考慮した音量( E楽器パート.BASS ) );\r
- pChip.bHit = true;\r
- }\r
- break;\r
-\r
- case 0xa8: // ウェイリング(ベース)\r
- if( configIni.bGuitar有効 )\r
- {\r
- if( configIni.bSudden.Bass )\r
- {\r
- pChip.b可視 = pChip.nバーからの距離dot.Bass < 200;\r
- }\r
- if( configIni.bHidden.Bass && ( pChip.nバーからの距離dot.Bass < 100 ) )\r
- {\r
- pChip.b可視 = false;\r
- }\r
- if( !pChip.bHit && pChip.b可視 )\r
- {\r
- int num19 = 0x19;\r
- int num20 = configIni.bReverse.Bass ? ( 0x176 - pChip.nバーからの距離dot.Bass ) : ( 0x5f + pChip.nバーからの距離dot.Bass );\r
- int num21 = num20 - 0x39;\r
- int num22 = 0;\r
- if( ( num21 < ( 0x163 + num19 ) ) && ( num21 > -num19 ) )\r
- {\r
- int num23 = this.ctWailingチップ模様アニメ.n現在の値;\r
- Rectangle rectangle6 = new Rectangle( 0x10c + ( num23 * 20 ), 0xae, 20, 50 );\r
- if( num21 < num19 )\r
- {\r
- rectangle6.Y += num19 - num21;\r
- rectangle6.Height -= num19 - num21;\r
- num22 = num19 - num21;\r
- }\r
- if( num21 > ( 0x163 - num19 ) )\r
- {\r
- rectangle6.Height -= num21 - ( 0x163 - num19 );\r
- }\r
- if( ( rectangle6.Bottom > rectangle6.Top ) && ( this.txチップ != null ) )\r
- {\r
- this.txチップ.t2D描画( CDTXMania.app.Device, 0x1df, ( num20 - num19 ) + num22, rectangle6 );\r
- }\r
- }\r
- }\r
- if( !pChip.bHit && ( pChip.nバーからの距離dot.Bass < 0 ) )\r
- {\r
- pChip.bHit = true;\r
- if( configIni.bAutoPlay.Bass )\r
- {\r
- this.actWailingBonus.Start( E楽器パート.BASS, this.r現在の歓声Chip.Bass );\r
- }\r
- }\r
- break;\r
- }\r
- pChip.bHit = true;\r
- break;\r
-\r
- case 0xaf: // ウェイリングサウンド(ベース)\r
- if( !pChip.bHit && ( pChip.nバーからの距離dot.Bass < 0 ) )\r
- {\r
- pChip.bHit = true;\r
- this.r現在の歓声Chip.Bass = pChip;\r
- }\r
- break;\r
-\r
- case 0xb1: // 空打ち音設定(ドラム)\r
- case 0xb2:\r
- case 0xb3:\r
- case 0xb4:\r
- case 0xb5:\r
- case 0xb6:\r
- case 0xb7:\r
- case 0xb8:\r
- case 0xb9:\r
- case 0xbc:\r
- if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
- {\r
- pChip.bHit = true;\r
- this.r現在の空うちドラムChip[ (int) this.eチャンネルtoパッド[ pChip.nチャンネル番号 - 0xb1 ] ] = pChip;\r
- pChip.nチャンネル番号 = ( pChip.nチャンネル番号 != 0xbc ) ? ( ( pChip.nチャンネル番号 - 0xb1 ) + 0x11 ) : 0x1a;\r
- }\r
- break;\r
-\r
- case 0xba: // 空打ち音設定(ギター)\r
- if( !pChip.bHit && ( pChip.nバーからの距離dot.Guitar < 0 ) )\r
- {\r
- pChip.bHit = true;\r
- this.r現在の空うちギターChip = pChip;\r
- pChip.nチャンネル番号 = 0x20;\r
- }\r
- break;\r
-\r
- case 0xbb: // 空打ち音設定(ベース)\r
- if( !pChip.bHit && ( pChip.nバーからの距離dot.Bass < 0 ) )\r
- {\r
- pChip.bHit = true;\r
- this.r現在の空うちベースChip = pChip;\r
- pChip.nチャンネル番号 = 160;\r
- }\r
- break;\r
-\r
- case 0xc4: // BGA画像入れ替え\r
- case 0xc7:\r
- case 0xd5:\r
- case 0xd6:\r
- case 0xd7:\r
- case 0xd8:\r
- case 0xd9:\r
- case 0xe0:\r
- if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
- {\r
- pChip.bHit = true;\r
- if( ( configIni.bBGA有効 && ( pChip.eBGA種別 == EBGA種別.BMP ) ) || ( pChip.eBGA種別 == EBGA種別.BMPTEX ) )\r
- {\r
- for( int i = 0; i < 8; i++ )\r
- {\r
- if( this.nBGAスコープチャンネルマップ[ 0, i ] == pChip.nチャンネル番号 )\r
- {\r
- this.actBGA.ChangeScope( this.nBGAスコープチャンネルマップ[ 1, i ], pChip.rBMP, pChip.rBMPTEX );\r
- }\r
- }\r
- }\r
- }\r
- break;\r
-\r
- default:\r
- if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
- {\r
- pChip.bHit = true;\r
- }\r
- break;\r
- }\r
-\r
- num4++;\r
- }\r
- return false;\r
- }\r
- //private void t進行描画・チップアニメ()\r
- //{\r
- // for ( int i = 0; i < 3; i++ )\r
- // {\r
- // this.ctチップ模様アニメ[ i ].t進行Loop();\r
- // }\r
- // this.ctWailingチップ模様アニメ.t進行Loop();\r
- //}\r
- private void t進行描画・チップファイアD()\r
- {\r
- this.actChipFireD.On進行描画();\r
- }\r
- private void t進行描画・チップファイアGB()\r
- {\r
- this.actChipFireGB.On進行描画();\r
- }\r
- private void t進行描画・ドラムパッド()\r
- {\r
- if( CDTXMania.ConfigIni.eDark != Eダークモード.FULL )\r
- {\r
- this.actPad.On進行描画();\r
- }\r
- }\r
- protected override void t進行描画・パネル文字列()\r
- {\r
- base.t進行描画・パネル文字列( 0x150, 0x1ab );\r
- }\r
- //private bool t進行描画・フェードイン・アウト()\r
- //{\r
- // switch( base.eフェーズID )\r
- // {\r
- // case CStage.Eフェーズ.共通_フェードイン:\r
- // if( this.actFI.On進行描画() != 0 )\r
- // {\r
- // base.eフェーズID = CStage.Eフェーズ.共通_通常状態;\r
- // }\r
- // break;\r
-\r
- // case CStage.Eフェーズ.共通_フェードアウト:\r
- // case CStage.Eフェーズ.演奏_STAGE_FAILED_フェードアウト:\r
- // if( this.actFO.On進行描画() != 0 )\r
- // {\r
- // return true;\r
- // }\r
- // break;\r
-\r
- // case CStage.Eフェーズ.演奏_STAGE_CLEAR_フェードアウト:\r
- // if( this.actFOClear.On進行描画() == 0 )\r
- // {\r
- // break;\r
- // }\r
- // return true;\r
- // }\r
- // return false;\r
- //}\r
- private void t進行描画・レーンフラッシュD()\r
- {\r
- if( ( ( CDTXMania.ConfigIni.eDark != Eダークモード.HALF ) && ( CDTXMania.ConfigIni.eDark != Eダークモード.FULL ) ) && ( ( base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED ) && ( base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED_フェードアウト ) ) )\r
- {\r
- this.actLaneFlushD.On進行描画();\r
- }\r
- }\r
- private void t進行描画・レーンフラッシュGB()\r
- {\r
- if( ( ( CDTXMania.ConfigIni.eDark != Eダークモード.HALF ) && ( CDTXMania.ConfigIni.eDark != Eダークモード.FULL ) ) && CDTXMania.ConfigIni.bGuitar有効 )\r
- {\r
- this.actLaneFlushGB.On進行描画();\r
- }\r
- }\r
- protected override void t進行描画・演奏情報()\r
- {\r
- base.t進行描画・演奏情報( 0x152, 0x39 );\r
- }\r
- //private void t進行描画・背景()\r
- //{\r
- // if( CDTXMania.ConfigIni.eDark == Eダークモード.OFF )\r
- // {\r
- // if( this.tx背景 != null )\r
- // {\r
- // this.tx背景.t2D描画( CDTXMania.app.Device, 0, 0 );\r
- // }\r
- // }\r
- // else\r
- // {\r
- // CDTXMania.app.Device.Clear( ClearFlags.ZBuffer | ClearFlags.Target, Color.Black, 0f, 0 );\r
- // }\r
- //}\r
- //private void t進行描画・判定ライン()\r
- //{\r
- // if( CDTXMania.ConfigIni.eDark != Eダークモード.FULL )\r
- // {\r
- // int y = CDTXMania.ConfigIni.bReverse.Drums ? 0x35 : 0x1a3;\r
- // for( int i = 0x20; i < 0x14f; i += 8 )\r
- // {\r
- // if( this.txヒットバー != null )\r
- // {\r
- // this.txヒットバー.t2D描画( CDTXMania.app.Device, i, y, new Rectangle( 0, 0, ( ( i + 8 ) >= 0x14f ) ? ( 7 - ( ( i + 8 ) - 0x14f ) ) : 8, 8 ) );\r
- // }\r
- // }\r
- // }\r
- //}\r
- //private void t進行描画・判定文字列1・通常位置指定の場合()\r
- //{\r
- // if( ( (E判定文字表示位置) CDTXMania.ConfigIni.判定文字表示位置.Drums ) != E判定文字表示位置.判定ライン上または横 )\r
- // {\r
- // this.actJudgeString.On進行描画();\r
- // }\r
- //}\r
- //private void t進行描画・判定文字列2・判定ライン上指定の場合()\r
- //{\r
- // if( ( (E判定文字表示位置) CDTXMania.ConfigIni.判定文字表示位置.Drums ) == E判定文字表示位置.判定ライン上または横 )\r
- // {\r
- // this.actJudgeString.On進行描画();\r
- // }\r
- //}\r
- //private void t進行描画・譜面スクロール速度()\r
- //{\r
- // this.act譜面スクロール速度.On進行描画();\r
- //}\r
- //private void t入力メソッド記憶( E楽器パート part )\r
- //{\r
- // if( CDTXMania.Pad.st検知したデバイス.Keyboard )\r
- // {\r
- // this.b演奏にキーボードを使った[ (int) part ] = true;\r
- // }\r
- // if( CDTXMania.Pad.st検知したデバイス.Joypad )\r
- // {\r
- // this.b演奏にジョイパッドを使った[ (int) part ] = true;\r
- // }\r
- // if( CDTXMania.Pad.st検知したデバイス.MIDIIN )\r
- // {\r
- // this.b演奏にMIDI入力を使った[ (int) part ] = true;\r
- // }\r
- // if( CDTXMania.Pad.st検知したデバイス.Mouse )\r
- // {\r
- // this.b演奏にマウスを使った[ (int) part ] = true;\r
- // }\r
- //}\r
- protected override void t入力処理・ギター()\r
- {\r
- if ( CDTXMania.Pad.b押されている( E楽器パート.GUITAR, Eパッド.Decide ) && CDTXMania.Pad.b押された( E楽器パート.GUITAR, Eパッド.B ) )\r
- {\r
- CDTXMania.ConfigIni.n譜面スクロール速度.Guitar = Math.Min( CDTXMania.ConfigIni.n譜面スクロール速度.Guitar + 1, 0x7cf );\r
- }\r
- if ( CDTXMania.Pad.b押されている( E楽器パート.GUITAR, Eパッド.Decide ) && CDTXMania.Pad.b押された( E楽器パート.GUITAR, Eパッド.R ) )\r
- {\r
- CDTXMania.ConfigIni.n譜面スクロール速度.Guitar = Math.Max( CDTXMania.ConfigIni.n譜面スクロール速度.Guitar - 1, 0 );\r
- }\r
+ case EHHGroup.全部共通:\r
+ #region [ *** ]\r
+ //-----------------------------\r
+ if ( ( ( e判定HC != E判定.Miss ) && ( e判定HO != E判定.Miss ) ) && ( e判定LC != E判定.Miss ) )\r
+ {\r
+ CDTX.CChip chip4;\r
+ CDTX.CChip[] chipArray = new CDTX.CChip[] { chipHC, chipHO, chipLC };\r
+ if ( chipArray[ 1 ].n発声位置 > chipArray[ 2 ].n発声位置 )\r
+ {\r
+ chip4 = chipArray[ 1 ];\r
+ chipArray[ 1 ] = chipArray[ 2 ];\r
+ chipArray[ 2 ] = chip4;\r
+ }\r
+ if ( chipArray[ 0 ].n発声位置 > chipArray[ 1 ].n発声位置 )\r
+ {\r
+ chip4 = chipArray[ 0 ];\r
+ chipArray[ 0 ] = chipArray[ 1 ];\r
+ chipArray[ 1 ] = chip4;\r
+ }\r
+ if ( chipArray[ 1 ].n発声位置 > chipArray[ 2 ].n発声位置 )\r
+ {\r
+ chip4 = chipArray[ 1 ];\r
+ chipArray[ 1 ] = chipArray[ 2 ];\r
+ chipArray[ 2 ] = chip4;\r
+ }\r
+ this.tドラムヒット処理( nTime, Eパッド.HH, chipArray[ 0 ], event2.nVelocity );\r
+ if ( chipArray[ 0 ].n発声位置 == chipArray[ 1 ].n発声位置 )\r
+ {\r
+ this.tドラムヒット処理( nTime, Eパッド.HH, chipArray[ 1 ], event2.nVelocity );\r
+ }\r
+ if ( chipArray[ 0 ].n発声位置 == chipArray[ 2 ].n発声位置 )\r
+ {\r
+ this.tドラムヒット処理( nTime, Eパッド.HH, chipArray[ 2 ], event2.nVelocity );\r
+ }\r
+ flag = true;\r
+ }\r
+ else if ( ( e判定HC != E判定.Miss ) && ( e判定HO != E判定.Miss ) )\r
+ {\r
+ if ( chipHC.n発声位置 < chipHO.n発声位置 )\r
+ {\r
+ this.tドラムヒット処理( nTime, Eパッド.HH, chipHC, event2.nVelocity );\r
+ }\r
+ else if ( chipHC.n発声位置 > chipHO.n発声位置 )\r
+ {\r
+ this.tドラムヒット処理( nTime, Eパッド.HH, chipHO, event2.nVelocity );\r
+ }\r
+ else\r
+ {\r
+ this.tドラムヒット処理( nTime, Eパッド.HH, chipHC, event2.nVelocity );\r
+ this.tドラムヒット処理( nTime, Eパッド.HH, chipHO, event2.nVelocity );\r
+ }\r
+ flag = true;\r
+ }\r
+ else if ( ( e判定HC != E判定.Miss ) && ( e判定LC != E判定.Miss ) )\r
+ {\r
+ if ( chipHC.n発声位置 < chipLC.n発声位置 )\r
+ {\r
+ this.tドラムヒット処理( nTime, Eパッド.HH, chipHC, event2.nVelocity );\r
+ }\r
+ else if ( chipHC.n発声位置 > chipLC.n発声位置 )\r
+ {\r
+ this.tドラムヒット処理( nTime, Eパッド.HH, chipLC, event2.nVelocity );\r
+ }\r
+ else\r
+ {\r
+ this.tドラムヒット処理( nTime, Eパッド.HH, chipHC, event2.nVelocity );\r
+ this.tドラムヒット処理( nTime, Eパッド.HH, chipLC, event2.nVelocity );\r
+ }\r
+ flag = true;\r
+ }\r
+ else if ( ( e判定HO != E判定.Miss ) && ( e判定LC != E判定.Miss ) )\r
+ {\r
+ if ( chipHO.n発声位置 < chipLC.n発声位置 )\r
+ {\r
+ this.tドラムヒット処理( nTime, Eパッド.HH, chipHO, event2.nVelocity );\r
+ }\r
+ else if ( chipHO.n発声位置 > chipLC.n発声位置 )\r
+ {\r
+ this.tドラムヒット処理( nTime, Eパッド.HH, chipLC, event2.nVelocity );\r
+ }\r
+ else\r
+ {\r
+ this.tドラムヒット処理( nTime, Eパッド.HH, chipHO, event2.nVelocity );\r
+ this.tドラムヒット処理( nTime, Eパッド.HH, chipLC, event2.nVelocity );\r
+ }\r
+ flag = true;\r
+ }\r
+ else if ( e判定HC != E判定.Miss )\r
+ {\r
+ this.tドラムヒット処理( nTime, Eパッド.HH, chipHC, event2.nVelocity );\r
+ flag = true;\r
+ }\r
+ else if ( e判定HO != E判定.Miss )\r
+ {\r
+ this.tドラムヒット処理( nTime, Eパッド.HH, chipHO, event2.nVelocity );\r
+ flag = true;\r
+ }\r
+ else if ( e判定LC != E判定.Miss )\r
+ {\r
+ this.tドラムヒット処理( nTime, Eパッド.HH, chipLC, event2.nVelocity );\r
+ flag = true;\r
+ }\r
+ if ( !flag )\r
+ break;\r
+ continue;\r
+ //-----------------------------\r
+ #endregion\r
\r
- if ( CDTXMania.ConfigIni.bGuitar有効 && CDTXMania.DTX.bチップがある.Guitar )\r
- {\r
- if ( bIsAutoPlay.Guitar )\r
- {\r
- CDTX.CChip chip = this.r次にくるギターChipを更新して返す();\r
- if( chip != null )\r
- {\r
- if( ( chip.nチャンネル番号 & 4 ) != 0 )\r
- {\r
- this.actLaneFlushGB.Start( 0 );\r
- this.actRGB.Push( 0 );\r
- }\r
- if( ( chip.nチャンネル番号 & 2 ) != 0 )\r
- {\r
- this.actLaneFlushGB.Start( 1 );\r
- this.actRGB.Push( 1 );\r
- }\r
- if( ( chip.nチャンネル番号 & 1 ) != 0 )\r
- {\r
- this.actLaneFlushGB.Start( 2 );\r
- this.actRGB.Push( 2 );\r
- }\r
- }\r
- }\r
- else\r
- {\r
- int flagR = CDTXMania.Pad.b押されている( E楽器パート.GUITAR, Eパッド.R) ? 4 : 0;\r
- this.t入力メソッド記憶( E楽器パート.GUITAR );\r
- int flagG = CDTXMania.Pad.b押されている( E楽器パート.GUITAR, Eパッド.G ) ? 2 : 0;\r
- this.t入力メソッド記憶( E楽器パート.GUITAR );\r
- int flagB = CDTXMania.Pad.b押されている( E楽器パート.GUITAR, Eパッド.B ) ? 1 : 0;\r
- this.t入力メソッド記憶( E楽器パート.GUITAR );\r
- int flagRGB = flagR | flagG | flagB;\r
- if( flagR != 0 )\r
- {\r
- this.actLaneFlushGB.Start( 0 );\r
- this.actRGB.Push( 0 );\r
- }\r
- if( flagG != 0 )\r
- {\r
- this.actLaneFlushGB.Start( 1 );\r
- this.actRGB.Push( 1 );\r
- }\r
- if( flagB != 0 )\r
- {\r
- this.actLaneFlushGB.Start( 2 );\r
- this.actRGB.Push( 2 );\r
- }\r
- List<STInputEvent> events = CDTXMania.Pad.GetEvents( E楽器パート.GUITAR, Eパッド.Pick );\r
- if( ( events != null ) && ( events.Count > 0 ) )\r
- {\r
- this.t入力メソッド記憶( E楽器パート.GUITAR );\r
- foreach( STInputEvent event2 in events )\r
- {\r
- CDTX.CChip chip4;\r
- if( !event2.b押された )\r
- {\r
- continue;\r
- }\r
- long nTime = event2.nTimeStamp - CDTXMania.Timer.n前回リセットした時のシステム時刻;\r
- CDTX.CChip pChip = this.r指定時刻に一番近い未ヒットChip( nTime, 0x2f, this.nInputAdjustTimeMs.Guitar );\r
- E判定 e判定 = this.e指定時刻からChipのJUDGEを返す( nTime, pChip, this.nInputAdjustTimeMs.Guitar );\r
- if( ( ( pChip != null ) && ( ( pChip.nチャンネル番号 & 15 ) == flagRGB ) ) && ( e判定 != E判定.Miss ) )\r
- {\r
- if( ( flagR != 0 ) || ( flagRGB == 0 ) )\r
- {\r
- this.actChipFireGB.Start( 0 );\r
- }\r
- if( ( flagG != 0 ) || ( flagRGB == 0 ) )\r
- {\r
- this.actChipFireGB.Start( 1 );\r
- }\r
- if( ( flagB != 0 ) || ( flagRGB == 0 ) )\r
- {\r
- this.actChipFireGB.Start( 2 );\r
- }\r
- this.tチップのヒット処理( nTime, pChip );\r
- this.tサウンド再生( pChip, CDTXMania.Timer.nシステム時刻, E楽器パート.GUITAR, CDTXMania.ConfigIni.n手動再生音量, CDTXMania.ConfigIni.b演奏音を強調する.Guitar, e判定 == E判定.Poor );\r
- CDTX.CChip item = this.r指定時刻に一番近い未ヒットChip( nTime, 40, this.nInputAdjustTimeMs.Guitar, 140 );\r
- if( item != null )\r
- {\r
- this.queWailing.Guitar.Enqueue( item );\r
+ default:\r
+ #region [ *** ]\r
+ //-----------------------------\r
+ if ( e判定HC != E判定.Miss )\r
+ {\r
+ this.tドラムヒット処理( nTime, Eパッド.HH, chipHC, event2.nVelocity );\r
+ flag = true;\r
+ }\r
+ if ( !flag )\r
+ break;\r
+ continue;\r
+ //-----------------------------\r
+ #endregion\r
+ }\r
+ if ( !flag )\r
+ break;\r
+ continue;\r
}\r
+ //-----------------------------\r
+ #endregion\r
+\r
+ case Eパッド.SD:\r
+ #region [ *** ]\r
+ //-----------------------------\r
+ if (event2.nVelocity <= CDTXMania.ConfigIni.nVelocityMin.SD) // #23857 2010.12.12 yyagi: to support VelocityMin\r
+ continue; // 電子ドラムによる意図的なクロストークを無効にする\r
+ if( !this.tドラムヒット処理(nTime, Eパッド.SD, this.r指定時刻に一番近い未ヒットChip(nTime, 0x12, nInputAdjustTime ), event2.nVelocity ) )\r
+ break;\r
continue;\r
- }\r
- if( ( ( chip4 = this.r現在の空うちギターChip ) != null ) || ( ( chip4 = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( nTime, 0x2f, this.nInputAdjustTimeMs.Guitar ) ) != null ) )\r
- {\r
- this.tサウンド再生( chip4, CDTXMania.Timer.nシステム時刻, E楽器パート.GUITAR, CDTXMania.ConfigIni.n手動再生音量, CDTXMania.ConfigIni.b演奏音を強調する.Guitar, true );\r
- }\r
- if( !CDTXMania.ConfigIni.bLight.Guitar )\r
- {\r
- this.tチップのヒット処理・BadならびにTight時のMiss( E楽器パート.GUITAR );\r
- }\r
- }\r
- }\r
- List<STInputEvent> list2 = CDTXMania.Pad.GetEvents( E楽器パート.GUITAR, Eパッド.Wail );\r
- if( ( list2 != null ) && ( list2.Count > 0 ) )\r
- {\r
- foreach( STInputEvent event3 in list2 )\r
- {\r
- CDTX.CChip chip5;\r
- if( !event3.b押された )\r
- {\r
+ //-----------------------------\r
+ #endregion\r
+\r
+ case Eパッド.BD:\r
+ #region [ *** ]\r
+ //-----------------------------\r
+ if (event2.nVelocity <= CDTXMania.ConfigIni.nVelocityMin.BD) // #23857 2010.12.12 yyagi: to support VelocityMin\r
+ continue; // 電子ドラムによる意図的なクロストークを無効にする\r
+ if ( !this.tドラムヒット処理( nTime, Eパッド.BD, this.r指定時刻に一番近い未ヒットChip( nTime, 0x13, nInputAdjustTime ), event2.nVelocity ) )\r
+ break;\r
continue;\r
- }\r
- long num6 = event3.nTimeStamp - CDTXMania.Timer.n前回リセットした時のシステム時刻;\r
- while( ( this.queWailing.Guitar.Count > 0 ) && ( ( chip5 = this.queWailing.Guitar.Dequeue() ) != null ) )\r
- {\r
- if( ( num6 - chip5.n発声時刻ms ) <= 800 ) // #24245 2011.1.26 yyagi: 800 -> 1000\r
+ //-----------------------------\r
+ #endregion\r
+\r
+ case Eパッド.HT:\r
+ #region [ *** ]\r
+ //-----------------------------\r
+ if (event2.nVelocity <= CDTXMania.ConfigIni.nVelocityMin.HT) // #23857 2010.12.12 yyagi: to support VelocityMin\r
+ continue; // 電子ドラムによる意図的なクロストークを無効にする\r
+ if ( this.tドラムヒット処理( nTime, Eパッド.HT, this.r指定時刻に一番近い未ヒットChip( nTime, 20, nInputAdjustTime ), event2.nVelocity ) )\r
+ continue;\r
+ break;\r
+ //-----------------------------\r
+ #endregion\r
+\r
+ case Eパッド.LT:\r
+ #region [ *** ]\r
+ //-----------------------------\r
{\r
- chip5.bHit = true;\r
- this.actWailingBonus.Start( E楽器パート.GUITAR, this.r現在の歓声Chip.Guitar );\r
- if( !bIsAutoPlay.Guitar )\r
+ if ( event2.nVelocity <= CDTXMania.ConfigIni.nVelocityMin.LT ) // #23857 2010.12.12 yyagi: to support VelocityMin\r
+ continue; // 電子ドラムによる意図的なクロストークを無効にする\r
+ CDTX.CChip chipLT = this.r指定時刻に一番近い未ヒットChip( nTime, 0x15, nInputAdjustTime ); // LT\r
+ CDTX.CChip chipFT = this.r指定時刻に一番近い未ヒットChip( nTime, 0x17, nInputAdjustTime ); // FT\r
+ E判定 e判定LT = ( chipLT != null ) ? this.e指定時刻からChipのJUDGEを返す( nTime, chipLT, nInputAdjustTime ) : E判定.Miss;\r
+ E判定 e判定FT = ( chipFT != null ) ? this.e指定時刻からChipのJUDGEを返す( nTime, chipFT, nInputAdjustTime ) : E判定.Miss;\r
+ switch ( eFTGroup )\r
{\r
- int nCombo = ( this.actCombo.n現在のコンボ数.Guitar < 500 ) ? this.actCombo.n現在のコンボ数.Guitar : 500;\r
- this.actScore.Set( E楽器パート.GUITAR, this.actScore.Get( E楽器パート.GUITAR ) + ( nCombo * 3000L ) ); // #24245 2011.1.26 yyagi changed DRUMS->GUITAR, add nCombo conditions\r
+ case EFTGroup.打ち分ける:\r
+ #region [ *** ]\r
+ //-----------------------------\r
+ if ( e判定LT != E判定.Miss )\r
+ {\r
+ this.tドラムヒット処理( nTime, Eパッド.LT, chipLT, event2.nVelocity );\r
+ flag = true;\r
+ }\r
+ break;\r
+ //-----------------------------\r
+ #endregion\r
+\r
+ case EFTGroup.共通:\r
+ #region [ *** ]\r
+ //-----------------------------\r
+ if ( ( e判定LT != E判定.Miss ) && ( e判定FT != E判定.Miss ) )\r
+ {\r
+ if ( chipLT.n発声位置 < chipFT.n発声位置 )\r
+ {\r
+ this.tドラムヒット処理( nTime, Eパッド.LT, chipLT, event2.nVelocity );\r
+ }\r
+ else if ( chipLT.n発声位置 > chipFT.n発声位置 )\r
+ {\r
+ this.tドラムヒット処理( nTime, Eパッド.LT, chipFT, event2.nVelocity );\r
+ }\r
+ else\r
+ {\r
+ this.tドラムヒット処理( nTime, Eパッド.LT, chipLT, event2.nVelocity );\r
+ this.tドラムヒット処理( nTime, Eパッド.LT, chipFT, event2.nVelocity );\r
+ }\r
+ flag = true;\r
+ }\r
+ else if ( e判定LT != E判定.Miss )\r
+ {\r
+ this.tドラムヒット処理( nTime, Eパッド.LT, chipLT, event2.nVelocity );\r
+ flag = true;\r
+ }\r
+ else if ( e判定FT != E判定.Miss )\r
+ {\r
+ this.tドラムヒット処理( nTime, Eパッド.LT, chipFT, event2.nVelocity );\r
+ flag = true;\r
+ }\r
+ break;\r
+ //-----------------------------\r
+ #endregion\r
}\r
+ if ( !flag )\r
+ break;\r
+ continue;\r
}\r
- }\r
- }\r
- }\r
- }\r
- }\r
- }\r
- protected override void t入力処理・ドラム()\r
- {\r
- for( int nPad = 0; nPad < 10; nPad++ )\r
- {\r
- List<STInputEvent> events = CDTXMania.Pad.GetEvents( E楽器パート.DRUMS, (Eパッド) nPad );\r
-\r
- if( ( events != null ) && ( events.Count != 0 ) )\r
- {\r
- this.t入力メソッド記憶( E楽器パート.DRUMS );\r
-\r
- #region [ 打ち分けグループ調整 ]\r
- //-----------------------------\r
- EHHGroup eHHGroup = CDTXMania.ConfigIni.eHHGroup;\r
- EFTGroup eFTGroup = CDTXMania.ConfigIni.eFTGroup;\r
- ECYGroup eCYGroup = CDTXMania.ConfigIni.eCYGroup;\r
- if( !CDTXMania.DTX.bチップがある.Ride && ( eCYGroup == ECYGroup.打ち分ける ) )\r
- {\r
- eCYGroup = ECYGroup.共通;\r
- }\r
- if( !CDTXMania.DTX.bチップがある.HHOpen && ( eHHGroup == EHHGroup.全部打ち分ける ) )\r
- {\r
- eHHGroup = EHHGroup.左シンバルのみ打ち分ける;\r
- }\r
- if( !CDTXMania.DTX.bチップがある.HHOpen && ( eHHGroup == EHHGroup.ハイハットのみ打ち分ける ) )\r
- {\r
- eHHGroup = EHHGroup.全部共通;\r
- }\r
- if( !CDTXMania.DTX.bチップがある.LeftCymbal && ( eHHGroup == EHHGroup.全部打ち分ける ) )\r
- {\r
- eHHGroup = EHHGroup.ハイハットのみ打ち分ける;\r
- }\r
- if( !CDTXMania.DTX.bチップがある.LeftCymbal && ( eHHGroup == EHHGroup.左シンバルのみ打ち分ける ) )\r
- {\r
- eHHGroup = EHHGroup.全部共通;\r
- }\r
- //-----------------------------\r
- #endregion\r
-\r
- foreach( STInputEvent event2 in events )\r
- {\r
- #region [ 変数宣言 ]\r
- //-----------------------------\r
- int num3;\r
- int num4;\r
- int num5;\r
- int num6;\r
- int num7;\r
- int num8;\r
- int num9;\r
- int num10;\r
- int num11;\r
- int num12;\r
- int num13;\r
- int num14;\r
- int num15;\r
- int num16;\r
- //-----------------------------\r
- #endregion\r
+ //-----------------------------\r
+ #endregion\r
\r
- if( !event2.b押された )\r
- continue;\r
+ case Eパッド.FT:\r
+ #region [ *** ]\r
+ //-----------------------------\r
+ {\r
+ if ( event2.nVelocity <= CDTXMania.ConfigIni.nVelocityMin.FT ) // #23857 2010.12.12 yyagi: to support VelocityMin\r
+ continue; // 電子ドラムによる意図的なクロストークを無効にする\r
+ CDTX.CChip chipLT = this.r指定時刻に一番近い未ヒットChip( nTime, 0x15, nInputAdjustTime ); // LT\r
+ CDTX.CChip chipFT = this.r指定時刻に一番近い未ヒットChip( nTime, 0x17, nInputAdjustTime ); // FT\r
+ E判定 e判定LT = ( chipLT != null ) ? this.e指定時刻からChipのJUDGEを返す( nTime, chipLT, nInputAdjustTime ) : E判定.Miss;\r
+ E判定 e判定FT = ( chipFT != null ) ? this.e指定時刻からChipのJUDGEを返す( nTime, chipFT, nInputAdjustTime ) : E判定.Miss;\r
+ switch ( eFTGroup )\r
+ {\r
+ case EFTGroup.打ち分ける:\r
+ #region [ *** ]\r
+ //-----------------------------\r
+ if ( e判定FT != E判定.Miss )\r
+ {\r
+ this.tドラムヒット処理( nTime, Eパッド.FT, chipFT, event2.nVelocity );\r
+ flag = true;\r
+ }\r
+ //-----------------------------\r
+ #endregion\r
+ break;\r
\r
- long nTime = event2.nTimeStamp - CDTXMania.Timer.n前回リセットした時のシステム時刻;\r
- int nInputAdjustTime = bIsAutoPlay[ this.nチャンネル0Atoレーン07[ (int)nPad ] ] ? 0 : nInputAdjustTimeMs.Drums;\r
+ case EFTGroup.共通:\r
+ #region [ *** ]\r
+ //-----------------------------\r
+ if ( ( e判定LT != E判定.Miss ) && ( e判定FT != E判定.Miss ) )\r
+ {\r
+ if ( chipLT.n発声位置 < chipFT.n発声位置 )\r
+ {\r
+ this.tドラムヒット処理( nTime, Eパッド.FT, chipLT, event2.nVelocity );\r
+ }\r
+ else if ( chipLT.n発声位置 > chipFT.n発声位置 )\r
+ {\r
+ this.tドラムヒット処理( nTime, Eパッド.FT, chipFT, event2.nVelocity );\r
+ }\r
+ else\r
+ {\r
+ this.tドラムヒット処理( nTime, Eパッド.FT, chipLT, event2.nVelocity );\r
+ this.tドラムヒット処理( nTime, Eパッド.FT, chipFT, event2.nVelocity );\r
+ }\r
+ flag = true;\r
+ }\r
+ else if ( e判定LT != E判定.Miss )\r
+ {\r
+ this.tドラムヒット処理( nTime, Eパッド.FT, chipLT, event2.nVelocity );\r
+ flag = true;\r
+ }\r
+ else if ( e判定FT != E判定.Miss )\r
+ {\r
+ this.tドラムヒット処理( nTime, Eパッド.FT, chipFT, event2.nVelocity );\r
+ flag = true;\r
+ }\r
+ //-----------------------------\r
+ #endregion\r
+ break;\r
+ }\r
+ if ( !flag )\r
+ break;\r
+ continue;\r
+ }\r
+ //-----------------------------\r
+ #endregion\r
\r
- bool flag = false;\r
+ case Eパッド.CY:\r
+ #region [ *** ]\r
+ //-----------------------------\r
+ {\r
+ if (event2.nVelocity <= CDTXMania.ConfigIni.nVelocityMin.CY) // #23857 2010.12.12 yyagi: to support VelocityMin\r
+ continue; // 電子ドラムによる意図的なクロストークを無効にする\r
+ CDTX.CChip chipCY = this.r指定時刻に一番近い未ヒットChip( nTime, 0x16, nInputAdjustTime ); // CY\r
+ CDTX.CChip chipRD = this.r指定時刻に一番近い未ヒットChip( nTime, 0x19, nInputAdjustTime ); // RD\r
+ CDTX.CChip chipLC = CDTXMania.ConfigIni.bシンバルフリー ? this.r指定時刻に一番近い未ヒットChip( nTime, 0x1a, nInputAdjustTime ) : null;\r
+ E判定 e判定CY = ( chipCY != null ) ? this.e指定時刻からChipのJUDGEを返す( nTime, chipCY, nInputAdjustTime ) : E判定.Miss;\r
+ E判定 e判定RD = ( chipRD != null ) ? this.e指定時刻からChipのJUDGEを返す( nTime, chipRD, nInputAdjustTime ) : E判定.Miss;\r
+ E判定 e判定LC = ( chipLC != null ) ? this.e指定時刻からChipのJUDGEを返す( nTime, chipLC, nInputAdjustTime ) : E判定.Miss;\r
+ CDTX.CChip[] chipArray4 = new CDTX.CChip[] { chipCY, chipRD, chipLC };\r
+ E判定[] e判定Array2 = new E判定[] { e判定CY, e判定RD, e判定LC };\r
+ num8 = 0;\r
+ while( num8 < 2 )\r
+ {\r
+ num9 = 2;\r
+ while( num9 > num8 )\r
+ {\r
+ if( ( chipArray4[ num9 - 1 ] == null ) || ( ( chipArray4[ num9 ] != null ) && ( chipArray4[ num9 - 1 ].n発声位置 > chipArray4[ num9 ].n発声位置 ) ) )\r
+ {\r
+ CDTX.CChip chip22 = chipArray4[ num9 - 1 ];\r
+ chipArray4[ num9 - 1 ] = chipArray4[ num9 ];\r
+ chipArray4[ num9 ] = chip22;\r
+ E判定 e判定20 = e判定Array2[ num9 - 1 ];\r
+ e判定Array2[ num9 - 1 ] = e判定Array2[ num9 ];\r
+ e判定Array2[ num9 ] = e判定20;\r
+ }\r
+ num9--;\r
+ }\r
+ num8++;\r
+ }\r
+ switch( eCYGroup )\r
+ {\r
+ case ECYGroup.打ち分ける:\r
+ if( !CDTXMania.ConfigIni.bシンバルフリー )\r
+ {\r
+ if( e判定CY != E判定.Miss )\r
+ {\r
+ this.tドラムヒット処理( nTime, Eパッド.CY, chipCY, event2.nVelocity );\r
+ flag = true;\r
+ }\r
+ if( !flag )\r
+ break;\r
+ continue;\r
+ }\r
+ num10 = 0;\r
+ while( num10 < 3 )\r
+ {\r
+ if( ( e判定Array2[ num10 ] != E判定.Miss ) && ( ( chipArray4[ num10 ] == chipCY ) || ( chipArray4[ num10 ] == chipLC ) ) )\r
+ {\r
+ this.tドラムヒット処理( nTime, Eパッド.CY, chipArray4[ num10 ], event2.nVelocity );\r
+ flag = true;\r
+ break;\r
+ }\r
+ num10++;\r
+ }\r
+ if( e判定CY != E判定.Miss )\r
+ {\r
+ this.tドラムヒット処理( nTime, Eパッド.CY, chipCY, event2.nVelocity );\r
+ flag = true;\r
+ }\r
+ if( !flag )\r
+ break;\r
+ continue;\r
\r
+ case ECYGroup.共通:\r
+ if( !CDTXMania.ConfigIni.bシンバルフリー )\r
+ {\r
+ num12 = 0;\r
+ while( num12 < 3 )\r
+ {\r
+ if( ( e判定Array2[ num12 ] != E判定.Miss ) && ( ( chipArray4[ num12 ] == chipCY ) || ( chipArray4[ num12 ] == chipRD ) ) )\r
+ {\r
+ this.tドラムヒット処理( nTime, Eパッド.CY, chipArray4[ num12 ], event2.nVelocity );\r
+ flag = true;\r
+ break;\r
+ }\r
+ num12++;\r
+ }\r
+ if( !flag )\r
+ break;\r
+ continue;\r
+ }\r
+ num11 = 0;\r
+ while( num11 < 3 )\r
+ {\r
+ if( e判定Array2[ num11 ] != E判定.Miss )\r
+ {\r
+ this.tドラムヒット処理( nTime, Eパッド.CY, chipArray4[ num11 ], event2.nVelocity );\r
+ flag = true;\r
+ break;\r
+ }\r
+ num11++;\r
+ }\r
+ if( !flag )\r
+ break;\r
+ continue;\r
+ }\r
+ if( !flag )\r
+ break;\r
+ continue;\r
+ }\r
+ //-----------------------------\r
+ #endregion\r
\r
- #region [ switch( ( (Eパッド) nPad ) ) ]\r
- //-----------------------------\r
- switch( ( (Eパッド) nPad ) )\r
- {\r
- case Eパッド.HH:\r
+ case Eパッド.HHO:\r
#region [ *** ]\r
//-----------------------------\r
{\r
if ( event2.nVelocity <= CDTXMania.ConfigIni.nVelocityMin.HH )\r
continue; // 電子ドラムによる意図的なクロストークを無効にする\r
\r
- CDTX.CChip chipHC = this.r指定時刻に一番近い未ヒットChip( nTime, 0x11, nInputAdjustTime ); // HiHat Close\r
- CDTX.CChip chipHO = this.r指定時刻に一番近い未ヒットChip( nTime, 0x18, nInputAdjustTime ); // HiHat Open\r
+ CDTX.CChip chipHC = this.r指定時刻に一番近い未ヒットChip( nTime, 0x11, nInputAdjustTime ); // HC\r
+ CDTX.CChip chipHO = this.r指定時刻に一番近い未ヒットChip( nTime, 0x18, nInputAdjustTime ); // HO\r
CDTX.CChip chipLC = this.r指定時刻に一番近い未ヒットChip( nTime, 0x1a, nInputAdjustTime ); // LC\r
E判定 e判定HC = ( chipHC != null ) ? this.e指定時刻からChipのJUDGEを返す( nTime, chipHC, nInputAdjustTime ) : E判定.Miss;\r
E判定 e判定HO = ( chipHO != null ) ? this.e指定時刻からChipのJUDGEを返す( nTime, chipHO, nInputAdjustTime ) : E判定.Miss;\r
E判定 e判定LC = ( chipLC != null ) ? this.e指定時刻からChipのJUDGEを返す( nTime, chipLC, nInputAdjustTime ) : E判定.Miss;\r
switch ( eHHGroup )\r
{\r
+ case EHHGroup.全部打ち分ける:\r
+ if ( e判定HO != E判定.Miss )\r
+ {\r
+ this.tドラムヒット処理( nTime, Eパッド.HHO, chipHO, event2.nVelocity );\r
+ flag = true;\r
+ }\r
+ if ( !flag )\r
+ break;\r
+ continue;\r
+\r
case EHHGroup.ハイハットのみ打ち分ける:\r
- #region [ *** ]\r
- //-----------------------------\r
- if ( ( e判定HC != E判定.Miss ) && ( e判定LC != E判定.Miss ) )\r
+ if ( ( e判定HO != E判定.Miss ) && ( e判定LC != E判定.Miss ) )\r
{\r
- if ( chipHC.n発声位置 < chipLC.n発声位置 )\r
+ if ( chipHO.n発声位置 < chipLC.n発声位置 )\r
{\r
- this.tドラムヒット処理( nTime, Eパッド.HH, chipHC, event2.nVelocity );\r
+ this.tドラムヒット処理( nTime, Eパッド.HHO, chipHO, event2.nVelocity );\r
}\r
- else if ( chipHC.n発声位置 > chipLC.n発声位置 )\r
+ else if ( chipHO.n発声位置 > chipLC.n発声位置 )\r
{\r
- this.tドラムヒット処理( nTime, Eパッド.HH, chipLC, event2.nVelocity );\r
+ this.tドラムヒット処理( nTime, Eパッド.HHO, chipLC, event2.nVelocity );\r
}\r
else\r
{\r
- this.tドラムヒット処理( nTime, Eパッド.HH, chipHC, event2.nVelocity );\r
- this.tドラムヒット処理( nTime, Eパッド.HH, chipLC, event2.nVelocity );\r
+ this.tドラムヒット処理( nTime, Eパッド.HHO, chipHO, event2.nVelocity );\r
+ this.tドラムヒット処理( nTime, Eパッド.HHO, chipLC, event2.nVelocity );\r
}\r
flag = true;\r
}\r
- else if ( e判定HC != E判定.Miss )\r
+ else if ( e判定HO != E判定.Miss )\r
{\r
- this.tドラムヒット処理( nTime, Eパッド.HH, chipHC, event2.nVelocity );\r
+ this.tドラムヒット処理( nTime, Eパッド.HHO, chipHO, event2.nVelocity );\r
flag = true;\r
}\r
else if ( e判定LC != E判定.Miss )\r
{\r
- this.tドラムヒット処理( nTime, Eパッド.HH, chipLC, event2.nVelocity );\r
+ this.tドラムヒット処理( nTime, Eパッド.HHO, chipLC, event2.nVelocity );\r
flag = true;\r
}\r
if ( !flag )\r
break;\r
continue;\r
- //-----------------------------\r
- #endregion\r
\r
case EHHGroup.左シンバルのみ打ち分ける:\r
- #region [ *** ]\r
- //-----------------------------\r
if ( ( e判定HC != E判定.Miss ) && ( e判定HO != E判定.Miss ) )\r
{\r
if ( chipHC.n発声位置 < chipHO.n発声位置 )\r
{\r
- this.tドラムヒット処理( nTime, Eパッド.HH, chipHC, event2.nVelocity );\r
+ this.tドラムヒット処理( nTime, Eパッド.HHO, chipHC, event2.nVelocity );\r
}\r
else if ( chipHC.n発声位置 > chipHO.n発声位置 )\r
{\r
- this.tドラムヒット処理( nTime, Eパッド.HH, chipHO, event2.nVelocity );\r
+ this.tドラムヒット処理( nTime, Eパッド.HHO, chipHO, event2.nVelocity );\r
}\r
else\r
{\r
- this.tドラムヒット処理( nTime, Eパッド.HH, chipHC, event2.nVelocity );\r
- this.tドラムヒット処理( nTime, Eパッド.HH, chipHO, event2.nVelocity );\r
+ this.tドラムヒット処理( nTime, Eパッド.HHO, chipHC, event2.nVelocity );\r
+ this.tドラムヒット処理( nTime, Eパッド.HHO, chipHO, event2.nVelocity );\r
}\r
flag = true;\r
}\r
else if ( e判定HC != E判定.Miss )\r
{\r
- this.tドラムヒット処理( nTime, Eパッド.HH, chipHC, event2.nVelocity );\r
+ this.tドラムヒット処理( nTime, Eパッド.HHO, chipHC, event2.nVelocity );\r
flag = true;\r
}\r
else if ( e判定HO != E判定.Miss )\r
{\r
- this.tドラムヒット処理( nTime, Eパッド.HH, chipHO, event2.nVelocity );\r
+ this.tドラムヒット処理( nTime, Eパッド.HHO, chipHO, event2.nVelocity );\r
flag = true;\r
}\r
if ( !flag )\r
break;\r
continue;\r
- //-----------------------------\r
- #endregion\r
\r
case EHHGroup.全部共通:\r
- #region [ *** ]\r
- //-----------------------------\r
if ( ( ( e判定HC != E判定.Miss ) && ( e判定HO != E判定.Miss ) ) && ( e判定LC != E判定.Miss ) )\r
{\r
- CDTX.CChip chip4;\r
- CDTX.CChip[] chipArray = new CDTX.CChip[] { chipHC, chipHO, chipLC };\r
- if ( chipArray[ 1 ].n発声位置 > chipArray[ 2 ].n発声位置 )\r
+ CDTX.CChip chip8;\r
+ CDTX.CChip[] chipArray2 = new CDTX.CChip[] { chipHC, chipHO, chipLC };\r
+ if ( chipArray2[ 1 ].n発声位置 > chipArray2[ 2 ].n発声位置 )\r
{\r
- chip4 = chipArray[ 1 ];\r
- chipArray[ 1 ] = chipArray[ 2 ];\r
- chipArray[ 2 ] = chip4;\r
+ chip8 = chipArray2[ 1 ];\r
+ chipArray2[ 1 ] = chipArray2[ 2 ];\r
+ chipArray2[ 2 ] = chip8;\r
}\r
- if ( chipArray[ 0 ].n発声位置 > chipArray[ 1 ].n発声位置 )\r
+ if ( chipArray2[ 0 ].n発声位置 > chipArray2[ 1 ].n発声位置 )\r
{\r
- chip4 = chipArray[ 0 ];\r
- chipArray[ 0 ] = chipArray[ 1 ];\r
- chipArray[ 1 ] = chip4;\r
+ chip8 = chipArray2[ 0 ];\r
+ chipArray2[ 0 ] = chipArray2[ 1 ];\r
+ chipArray2[ 1 ] = chip8;\r
}\r
- if ( chipArray[ 1 ].n発声位置 > chipArray[ 2 ].n発声位置 )\r
+ if ( chipArray2[ 1 ].n発声位置 > chipArray2[ 2 ].n発声位置 )\r
{\r
- chip4 = chipArray[ 1 ];\r
- chipArray[ 1 ] = chipArray[ 2 ];\r
- chipArray[ 2 ] = chip4;\r
+ chip8 = chipArray2[ 1 ];\r
+ chipArray2[ 1 ] = chipArray2[ 2 ];\r
+ chipArray2[ 2 ] = chip8;\r
}\r
- this.tドラムヒット処理( nTime, Eパッド.HH, chipArray[ 0 ], event2.nVelocity );\r
- if ( chipArray[ 0 ].n発声位置 == chipArray[ 1 ].n発声位置 )\r
+ this.tドラムヒット処理( nTime, Eパッド.HHO, chipArray2[ 0 ], event2.nVelocity );\r
+ if ( chipArray2[ 0 ].n発声位置 == chipArray2[ 1 ].n発声位置 )\r
{\r
- this.tドラムヒット処理( nTime, Eパッド.HH, chipArray[ 1 ], event2.nVelocity );\r
+ this.tドラムヒット処理( nTime, Eパッド.HHO, chipArray2[ 1 ], event2.nVelocity );\r
}\r
- if ( chipArray[ 0 ].n発声位置 == chipArray[ 2 ].n発声位置 )\r
+ if ( chipArray2[ 0 ].n発声位置 == chipArray2[ 2 ].n発声位置 )\r
{\r
- this.tドラムヒット処理( nTime, Eパッド.HH, chipArray[ 2 ], event2.nVelocity );\r
+ this.tドラムヒット処理( nTime, Eパッド.HHO, chipArray2[ 2 ], event2.nVelocity );\r
}\r
flag = true;\r
}\r
{\r
if ( chipHC.n発声位置 < chipHO.n発声位置 )\r
{\r
- this.tドラムヒット処理( nTime, Eパッド.HH, chipHC, event2.nVelocity );\r
+ this.tドラムヒット処理( nTime, Eパッド.HHO, chipHC, event2.nVelocity );\r
}\r
else if ( chipHC.n発声位置 > chipHO.n発声位置 )\r
{\r
- this.tドラムヒット処理( nTime, Eパッド.HH, chipHO, event2.nVelocity );\r
+ this.tドラムヒット処理( nTime, Eパッド.HHO, chipHO, event2.nVelocity );\r
}\r
else\r
{\r
- this.tドラムヒット処理( nTime, Eパッド.HH, chipHC, event2.nVelocity );\r
- this.tドラムヒット処理( nTime, Eパッド.HH, chipHO, event2.nVelocity );\r
+ this.tドラムヒット処理( nTime, Eパッド.HHO, chipHC, event2.nVelocity );\r
+ this.tドラムヒット処理( nTime, Eパッド.HHO, chipHO, event2.nVelocity );\r
}\r
flag = true;\r
}\r
{\r
if ( chipHC.n発声位置 < chipLC.n発声位置 )\r
{\r
- this.tドラムヒット処理( nTime, Eパッド.HH, chipHC, event2.nVelocity );\r
+ this.tドラムヒット処理( nTime, Eパッド.HHO, chipHC, event2.nVelocity );\r
}\r
else if ( chipHC.n発声位置 > chipLC.n発声位置 )\r
{\r
- this.tドラムヒット処理( nTime, Eパッド.HH, chipLC, event2.nVelocity );\r
+ this.tドラムヒット処理( nTime, Eパッド.HHO, chipLC, event2.nVelocity );\r
}\r
else\r
{\r
- this.tドラムヒット処理( nTime, Eパッド.HH, chipHC, event2.nVelocity );\r
- this.tドラムヒット処理( nTime, Eパッド.HH, chipLC, event2.nVelocity );\r
+ this.tドラムヒット処理( nTime, Eパッド.HHO, chipHC, event2.nVelocity );\r
+ this.tドラムヒット処理( nTime, Eパッド.HHO, chipLC, event2.nVelocity );\r
}\r
flag = true;\r
}\r
{\r
if ( chipHO.n発声位置 < chipLC.n発声位置 )\r
{\r
- this.tドラムヒット処理( nTime, Eパッド.HH, chipHO, event2.nVelocity );\r
+ this.tドラムヒット処理( nTime, Eパッド.HHO, chipHO, event2.nVelocity );\r
}\r
else if ( chipHO.n発声位置 > chipLC.n発声位置 )\r
{\r
- this.tドラムヒット処理( nTime, Eパッド.HH, chipLC, event2.nVelocity );\r
+ this.tドラムヒット処理( nTime, Eパッド.HHO, chipLC, event2.nVelocity );\r
}\r
else\r
{\r
- this.tドラムヒット処理( nTime, Eパッド.HH, chipHO, event2.nVelocity );\r
- this.tドラムヒット処理( nTime, Eパッド.HH, chipLC, event2.nVelocity );\r
+ this.tドラムヒット処理( nTime, Eパッド.HHO, chipHO, event2.nVelocity );\r
+ this.tドラムヒット処理( nTime, Eパッド.HHO, chipLC, event2.nVelocity );\r
}\r
flag = true;\r
}\r
else if ( e判定HC != E判定.Miss )\r
{\r
- this.tドラムヒット処理( nTime, Eパッド.HH, chipHC, event2.nVelocity );\r
+ this.tドラムヒット処理( nTime, Eパッド.HHO, chipHC, event2.nVelocity );\r
flag = true;\r
}\r
else if ( e判定HO != E判定.Miss )\r
{\r
- this.tドラムヒット処理( nTime, Eパッド.HH, chipHO, event2.nVelocity );\r
+ this.tドラムヒット処理( nTime, Eパッド.HHO, chipHO, event2.nVelocity );\r
flag = true;\r
}\r
else if ( e判定LC != E判定.Miss )\r
{\r
- this.tドラムヒット処理( nTime, Eパッド.HH, chipLC, event2.nVelocity );\r
- flag = true;\r
- }\r
- if ( !flag )\r
- break;\r
- continue;\r
- //-----------------------------\r
- #endregion\r
-\r
- default:\r
- #region [ *** ]\r
- //-----------------------------\r
- if ( e判定HC != E判定.Miss )\r
- {\r
- this.tドラムヒット処理( nTime, Eパッド.HH, chipHC, event2.nVelocity );\r
+ this.tドラムヒット処理( nTime, Eパッド.HHO, chipLC, event2.nVelocity );\r
flag = true;\r
}\r
if ( !flag )\r
break;\r
continue;\r
- //-----------------------------\r
- #endregion\r
}\r
if ( !flag )\r
break;\r
//-----------------------------\r
#endregion\r
\r
- case Eパッド.SD:\r
- #region [ *** ]\r
- //-----------------------------\r
- if (event2.nVelocity <= CDTXMania.ConfigIni.nVelocityMin.SD) // #23857 2010.12.12 yyagi: to support VelocityMin\r
- continue; // 電子ドラムによる意図的なクロストークを無効にする\r
- if( !this.tドラムヒット処理(nTime, Eパッド.SD, this.r指定時刻に一番近い未ヒットChip(nTime, 0x12, nInputAdjustTime ), event2.nVelocity ) )\r
- break;\r
- continue;\r
- //-----------------------------\r
- #endregion\r
-\r
- case Eパッド.BD:\r
- #region [ *** ]\r
- //-----------------------------\r
- if (event2.nVelocity <= CDTXMania.ConfigIni.nVelocityMin.BD) // #23857 2010.12.12 yyagi: to support VelocityMin\r
- continue; // 電子ドラムによる意図的なクロストークを無効にする\r
- if ( !this.tドラムヒット処理( nTime, Eパッド.BD, this.r指定時刻に一番近い未ヒットChip( nTime, 0x13, nInputAdjustTime ), event2.nVelocity ) )\r
- break;\r
- continue;\r
- //-----------------------------\r
- #endregion\r
-\r
- case Eパッド.HT:\r
- #region [ *** ]\r
- //-----------------------------\r
- if (event2.nVelocity <= CDTXMania.ConfigIni.nVelocityMin.HT) // #23857 2010.12.12 yyagi: to support VelocityMin\r
- continue; // 電子ドラムによる意図的なクロストークを無効にする\r
- if ( this.tドラムヒット処理( nTime, Eパッド.HT, this.r指定時刻に一番近い未ヒットChip( nTime, 20, nInputAdjustTime ), event2.nVelocity ) )\r
- continue;\r
- break;\r
- //-----------------------------\r
- #endregion\r
-\r
- case Eパッド.LT:\r
+ case Eパッド.RD:\r
#region [ *** ]\r
//-----------------------------\r
{\r
- if ( event2.nVelocity <= CDTXMania.ConfigIni.nVelocityMin.LT ) // #23857 2010.12.12 yyagi: to support VelocityMin\r
+ if (event2.nVelocity <= CDTXMania.ConfigIni.nVelocityMin.RD) // #23857 2010.12.12 yyagi: to support VelocityMin\r
continue; // 電子ドラムによる意図的なクロストークを無効にする\r
- CDTX.CChip chipLT = this.r指定時刻に一番近い未ヒットChip( nTime, 0x15, nInputAdjustTime ); // LT\r
- CDTX.CChip chipFT = this.r指定時刻に一番近い未ヒットChip( nTime, 0x17, nInputAdjustTime ); // FT\r
- E判定 e判定LT = ( chipLT != null ) ? this.e指定時刻からChipのJUDGEを返す( nTime, chipLT, nInputAdjustTime ) : E判定.Miss;\r
- E判定 e判定FT = ( chipFT != null ) ? this.e指定時刻からChipのJUDGEを返す( nTime, chipFT, nInputAdjustTime ) : E判定.Miss;\r
- switch ( eFTGroup )\r
+ CDTX.CChip chipCY = this.r指定時刻に一番近い未ヒットChip( nTime, 0x16, nInputAdjustTime ); // CY\r
+ CDTX.CChip chipRD = this.r指定時刻に一番近い未ヒットChip( nTime, 0x19, nInputAdjustTime ); // RD\r
+ CDTX.CChip chipLC = CDTXMania.ConfigIni.bシンバルフリー ? this.r指定時刻に一番近い未ヒットChip( nTime, 0x1a, nInputAdjustTime ) : null;\r
+ E判定 e判定CY = ( chipCY != null ) ? this.e指定時刻からChipのJUDGEを返す( nTime, chipCY, nInputAdjustTime ) : E判定.Miss;\r
+ E判定 e判定RD = ( chipRD != null ) ? this.e指定時刻からChipのJUDGEを返す( nTime, chipRD, nInputAdjustTime ) : E判定.Miss;\r
+ E判定 e判定LC = ( chipLC != null ) ? this.e指定時刻からChipのJUDGEを返す( nTime, chipLC, nInputAdjustTime ) : E判定.Miss;\r
+ CDTX.CChip[] chipArray5 = new CDTX.CChip[] { chipCY, chipRD, chipLC };\r
+ E判定[] e判定Array3 = new E判定[] { e判定CY, e判定RD, e判定LC };\r
+ num13 = 0;\r
+ while( num13 < 2 )\r
{\r
- case EFTGroup.打ち分ける:\r
- #region [ *** ]\r
- //-----------------------------\r
- if ( e判定LT != E判定.Miss )\r
- {\r
- this.tドラムヒット処理( nTime, Eパッド.LT, chipLT, event2.nVelocity );\r
- flag = true;\r
- }\r
- break;\r
- //-----------------------------\r
- #endregion\r
-\r
- case EFTGroup.共通:\r
- #region [ *** ]\r
- //-----------------------------\r
- if ( ( e判定LT != E判定.Miss ) && ( e判定FT != E判定.Miss ) )\r
- {\r
- if ( chipLT.n発声位置 < chipFT.n発声位置 )\r
- {\r
- this.tドラムヒット処理( nTime, Eパッド.LT, chipLT, event2.nVelocity );\r
- }\r
- else if ( chipLT.n発声位置 > chipFT.n発声位置 )\r
- {\r
- this.tドラムヒット処理( nTime, Eパッド.LT, chipFT, event2.nVelocity );\r
- }\r
- else\r
- {\r
- this.tドラムヒット処理( nTime, Eパッド.LT, chipLT, event2.nVelocity );\r
- this.tドラムヒット処理( nTime, Eパッド.LT, chipFT, event2.nVelocity );\r
- }\r
- flag = true;\r
- }\r
- else if ( e判定LT != E判定.Miss )\r
- {\r
- this.tドラムヒット処理( nTime, Eパッド.LT, chipLT, event2.nVelocity );\r
- flag = true;\r
- }\r
- else if ( e判定FT != E判定.Miss )\r
+ num14 = 2;\r
+ while( num14 > num13 )\r
+ {\r
+ if( ( chipArray5[ num14 - 1 ] == null ) || ( ( chipArray5[ num14 ] != null ) && ( chipArray5[ num14 - 1 ].n発声位置 > chipArray5[ num14 ].n発声位置 ) ) )\r
{\r
- this.tドラムヒット処理( nTime, Eパッド.LT, chipFT, event2.nVelocity );\r
- flag = true;\r
+ CDTX.CChip chip26 = chipArray5[ num14 - 1 ];\r
+ chipArray5[ num14 - 1 ] = chipArray5[ num14 ];\r
+ chipArray5[ num14 ] = chip26;\r
+ E判定 e判定24 = e判定Array3[ num14 - 1 ];\r
+ e判定Array3[ num14 - 1 ] = e判定Array3[ num14 ];\r
+ e判定Array3[ num14 ] = e判定24;\r
}\r
- break;\r
- //-----------------------------\r
- #endregion\r
+ num14--;\r
+ }\r
+ num13++;\r
}\r
- if ( !flag )\r
- break;\r
- continue;\r
- }\r
- //-----------------------------\r
- #endregion\r
-\r
- case Eパッド.FT:\r
- #region [ *** ]\r
- //-----------------------------\r
- {\r
- if ( event2.nVelocity <= CDTXMania.ConfigIni.nVelocityMin.FT ) // #23857 2010.12.12 yyagi: to support VelocityMin\r
- continue; // 電子ドラムによる意図的なクロストークを無効にする\r
- CDTX.CChip chipLT = this.r指定時刻に一番近い未ヒットChip( nTime, 0x15, nInputAdjustTime ); // LT\r
- CDTX.CChip chipFT = this.r指定時刻に一番近い未ヒットChip( nTime, 0x17, nInputAdjustTime ); // FT\r
- E判定 e判定LT = ( chipLT != null ) ? this.e指定時刻からChipのJUDGEを返す( nTime, chipLT, nInputAdjustTime ) : E判定.Miss;\r
- E判定 e判定FT = ( chipFT != null ) ? this.e指定時刻からChipのJUDGEを返す( nTime, chipFT, nInputAdjustTime ) : E判定.Miss;\r
- switch ( eFTGroup )\r
+ switch( eCYGroup )\r
{\r
- case EFTGroup.打ち分ける:\r
- #region [ *** ]\r
- //-----------------------------\r
- if ( e判定FT != E判定.Miss )\r
+ case ECYGroup.打ち分ける:\r
+ if( e判定RD != E判定.Miss )\r
{\r
- this.tドラムヒット処理( nTime, Eパッド.FT, chipFT, event2.nVelocity );\r
+ this.tドラムヒット処理( nTime, Eパッド.RD, chipRD, event2.nVelocity );\r
flag = true;\r
}\r
- //-----------------------------\r
- #endregion\r
break;\r
\r
- case EFTGroup.共通:\r
- #region [ *** ]\r
- //-----------------------------\r
- if ( ( e判定LT != E判定.Miss ) && ( e判定FT != E判定.Miss ) )\r
+ case ECYGroup.共通:\r
+ if( !CDTXMania.ConfigIni.bシンバルフリー )\r
{\r
- if ( chipLT.n発声位置 < chipFT.n発声位置 )\r
- {\r
- this.tドラムヒット処理( nTime, Eパッド.FT, chipLT, event2.nVelocity );\r
- }\r
- else if ( chipLT.n発声位置 > chipFT.n発声位置 )\r
- {\r
- this.tドラムヒット処理( nTime, Eパッド.FT, chipFT, event2.nVelocity );\r
- }\r
- else\r
+ num16 = 0;\r
+ while( num16 < 3 )\r
{\r
- this.tドラムヒット処理( nTime, Eパッド.FT, chipLT, event2.nVelocity );\r
- this.tドラムヒット処理( nTime, Eパッド.FT, chipFT, event2.nVelocity );\r
+ if( ( e判定Array3[ num16 ] != E判定.Miss ) && ( ( chipArray5[ num16 ] == chipCY ) || ( chipArray5[ num16 ] == chipRD ) ) )\r
+ {\r
+ this.tドラムヒット処理( nTime, Eパッド.CY, chipArray5[ num16 ], event2.nVelocity );\r
+ flag = true;\r
+ break;\r
+ }\r
+ num16++;\r
}\r
- flag = true;\r
- }\r
- else if ( e判定LT != E判定.Miss )\r
- {\r
- this.tドラムヒット処理( nTime, Eパッド.FT, chipLT, event2.nVelocity );\r
- flag = true;\r
+ break;\r
}\r
- else if ( e判定FT != E判定.Miss )\r
+ num15 = 0;\r
+ while( num15 < 3 )\r
{\r
- this.tドラムヒット処理( nTime, Eパッド.FT, chipFT, event2.nVelocity );\r
- flag = true;\r
+ if( e判定Array3[ num15 ] != E判定.Miss )\r
+ {\r
+ this.tドラムヒット処理( nTime, Eパッド.CY, chipArray5[ num15 ], event2.nVelocity );\r
+ flag = true;\r
+ break;\r
+ }\r
+ num15++;\r
}\r
- //-----------------------------\r
- #endregion\r
break;\r
}\r
- if ( !flag )\r
- break;\r
- continue;\r
+ if( flag )\r
+ {\r
+ continue;\r
+ }\r
+ break;\r
}\r
//-----------------------------\r
#endregion\r
\r
- case Eパッド.CY:\r
+ case Eパッド.LC:\r
#region [ *** ]\r
//-----------------------------\r
{\r
- if (event2.nVelocity <= CDTXMania.ConfigIni.nVelocityMin.CY) // #23857 2010.12.12 yyagi: to support VelocityMin\r
+ if (event2.nVelocity <= CDTXMania.ConfigIni.nVelocityMin.LC) // #23857 2010.12.12 yyagi: to support VelocityMin\r
continue; // 電子ドラムによる意図的なクロストークを無効にする\r
- CDTX.CChip chipCY = this.r指定時刻に一番近い未ヒットChip( nTime, 0x16, nInputAdjustTime ); // CY\r
- CDTX.CChip chipRD = this.r指定時刻に一番近い未ヒットChip( nTime, 0x19, nInputAdjustTime ); // RD\r
- CDTX.CChip chipLC = CDTXMania.ConfigIni.bシンバルフリー ? this.r指定時刻に一番近い未ヒットChip( nTime, 0x1a, nInputAdjustTime ) : null;\r
- E判定 e判定CY = ( chipCY != null ) ? this.e指定時刻からChipのJUDGEを返す( nTime, chipCY, nInputAdjustTime ) : E判定.Miss;\r
- E判定 e判定RD = ( chipRD != null ) ? this.e指定時刻からChipのJUDGEを返す( nTime, chipRD, nInputAdjustTime ) : E判定.Miss;\r
- E判定 e判定LC = ( chipLC != null ) ? this.e指定時刻からChipのJUDGEを返す( nTime, chipLC, nInputAdjustTime ) : E判定.Miss;\r
- CDTX.CChip[] chipArray4 = new CDTX.CChip[] { chipCY, chipRD, chipLC };\r
- E判定[] e判定Array2 = new E判定[] { e判定CY, e判定RD, e判定LC };\r
- num8 = 0;\r
- while( num8 < 2 )\r
+ CDTX.CChip chipHC = this.r指定時刻に一番近い未ヒットChip( nTime, 0x11, nInputAdjustTime ); // HC\r
+ CDTX.CChip chipHO = this.r指定時刻に一番近い未ヒットChip( nTime, 0x18, nInputAdjustTime ); // HO\r
+ CDTX.CChip chipLC = this.r指定時刻に一番近い未ヒットChip( nTime, 0x1a, nInputAdjustTime ); // LC\r
+ CDTX.CChip chipCY = CDTXMania.ConfigIni.bシンバルフリー ? this.r指定時刻に一番近い未ヒットChip( nTime, 0x16, nInputAdjustTime ) : null;\r
+ CDTX.CChip chipRD = CDTXMania.ConfigIni.bシンバルフリー ? this.r指定時刻に一番近い未ヒットChip( nTime, 0x19, nInputAdjustTime ) : null;\r
+ E判定 e判定HC = ( chipHC != null ) ? this.e指定時刻からChipのJUDGEを返す( nTime, chipHC, nInputAdjustTime ) : E判定.Miss;\r
+ E判定 e判定HO = ( chipHO != null ) ? this.e指定時刻からChipのJUDGEを返す( nTime, chipHO, nInputAdjustTime ) : E判定.Miss;\r
+ E判定 e判定LC = ( chipLC != null ) ? this.e指定時刻からChipのJUDGEを返す( nTime, chipLC, nInputAdjustTime ) : E判定.Miss;\r
+ E判定 e判定CY = ( chipCY != null ) ? this.e指定時刻からChipのJUDGEを返す( nTime, chipCY, nInputAdjustTime ) : E判定.Miss;\r
+ E判定 e判定RD = ( chipRD != null ) ? this.e指定時刻からChipのJUDGEを返す( nTime, chipRD, nInputAdjustTime ) : E判定.Miss;\r
+ CDTX.CChip[] chipArray3 = new CDTX.CChip[] { chipHC, chipHO, chipLC, chipCY, chipRD };\r
+ E判定[] e判定Array = new E判定[] { e判定HC, e判定HO, e判定LC, e判定CY, e判定RD };\r
+ num3 = 0;\r
+ while( num3 < 4 )\r
{\r
- num9 = 2;\r
- while( num9 > num8 )\r
+ num4 = 4;\r
+ while( num4 > num3 )\r
{\r
- if( ( chipArray4[ num9 - 1 ] == null ) || ( ( chipArray4[ num9 ] != null ) && ( chipArray4[ num9 - 1 ].n発声位置 > chipArray4[ num9 ].n発声位置 ) ) )\r
+ if( ( chipArray3[ num4 - 1 ] == null ) || ( ( chipArray3[ num4 ] != null ) && ( chipArray3[ num4 - 1 ].n発声位置 > chipArray3[ num4 ].n発声位置 ) ) )\r
{\r
- CDTX.CChip chip22 = chipArray4[ num9 - 1 ];\r
- chipArray4[ num9 - 1 ] = chipArray4[ num9 ];\r
- chipArray4[ num9 ] = chip22;\r
- E判定 e判定20 = e判定Array2[ num9 - 1 ];\r
- e判定Array2[ num9 - 1 ] = e判定Array2[ num9 ];\r
- e判定Array2[ num9 ] = e判定20;\r
+ CDTX.CChip chip14 = chipArray3[ num4 - 1 ];\r
+ chipArray3[ num4 - 1 ] = chipArray3[ num4 ];\r
+ chipArray3[ num4 ] = chip14;\r
+ E判定 e判定12 = e判定Array[ num4 - 1 ];\r
+ e判定Array[ num4 - 1 ] = e判定Array[ num4 ];\r
+ e判定Array[ num4 ] = e判定12;\r
}\r
- num9--;\r
+ num4--;\r
}\r
- num8++;\r
+ num3++;\r
}\r
- switch( eCYGroup )\r
+ switch( eHHGroup )\r
{\r
- case ECYGroup.打ち分ける:\r
+ case EHHGroup.全部打ち分ける:\r
+ case EHHGroup.左シンバルのみ打ち分ける:\r
if( !CDTXMania.ConfigIni.bシンバルフリー )\r
{\r
- if( e判定CY != E判定.Miss )\r
+ if( e判定LC != E判定.Miss )\r
{\r
- this.tドラムヒット処理( nTime, Eパッド.CY, chipCY, event2.nVelocity );\r
+ this.tドラムヒット処理( nTime, Eパッド.LC, chipLC, event2.nVelocity );\r
flag = true;\r
}\r
if( !flag )\r
break;\r
continue;\r
}\r
- num10 = 0;\r
- while( num10 < 3 )\r
+ num5 = 0;\r
+ while( num5 < 5 )\r
{\r
- if( ( e判定Array2[ num10 ] != E判定.Miss ) && ( ( chipArray4[ num10 ] == chipCY ) || ( chipArray4[ num10 ] == chipLC ) ) )\r
+ if( ( e判定Array[ num5 ] != E判定.Miss ) && ( ( ( chipArray3[ num5 ] == chipLC ) || ( chipArray3[ num5 ] == chipCY ) ) || ( ( chipArray3[ num5 ] == chipRD ) && ( CDTXMania.ConfigIni.eCYGroup == ECYGroup.共通 ) ) ) )\r
{\r
- this.tドラムヒット処理( nTime, Eパッド.CY, chipArray4[ num10 ], event2.nVelocity );\r
+ this.tドラムヒット処理( nTime, Eパッド.LC, chipArray3[ num5 ], event2.nVelocity );\r
flag = true;\r
break;\r
}\r
- num10++;\r
- }\r
- if( e判定CY != E判定.Miss )\r
- {\r
- this.tドラムヒット処理( nTime, Eパッド.CY, chipCY, event2.nVelocity );\r
- flag = true;\r
+ num5++;\r
}\r
if( !flag )\r
break;\r
continue;\r
\r
- case ECYGroup.共通:\r
+ case EHHGroup.ハイハットのみ打ち分ける:\r
+ case EHHGroup.全部共通:\r
if( !CDTXMania.ConfigIni.bシンバルフリー )\r
{\r
- num12 = 0;\r
- while( num12 < 3 )\r
+ num7 = 0;\r
+ while( num7 < 5 )\r
{\r
- if( ( e判定Array2[ num12 ] != E判定.Miss ) && ( ( chipArray4[ num12 ] == chipCY ) || ( chipArray4[ num12 ] == chipRD ) ) )\r
+ if( ( e判定Array[ num7 ] != E判定.Miss ) && ( ( ( chipArray3[ num7 ] == chipLC ) || ( chipArray3[ num7 ] == chipHC ) ) || ( chipArray3[ num7 ] == chipHO ) ) )\r
{\r
- this.tドラムヒット処理( nTime, Eパッド.CY, chipArray4[ num12 ], event2.nVelocity );\r
+ this.tドラムヒット処理( nTime, Eパッド.LC, chipArray3[ num7 ], event2.nVelocity );\r
flag = true;\r
break;\r
}\r
- num12++;\r
+ num7++;\r
}\r
if( !flag )\r
break;\r
continue;\r
}\r
- num11 = 0;\r
- while( num11 < 3 )\r
+ num6 = 0;\r
+ while( num6 < 5 )\r
{\r
- if( e判定Array2[ num11 ] != E判定.Miss )\r
+ if( ( e判定Array[ num6 ] != E判定.Miss ) && ( ( chipArray3[ num6 ] != chipRD ) || ( CDTXMania.ConfigIni.eCYGroup == ECYGroup.共通 ) ) )\r
{\r
- this.tドラムヒット処理( nTime, Eパッド.CY, chipArray4[ num11 ], event2.nVelocity );\r
+ this.tドラムヒット処理( nTime, Eパッド.LC, chipArray3[ num6 ], event2.nVelocity );\r
flag = true;\r
break;\r
}\r
- num11++;\r
+ num6++;\r
}\r
if( !flag )\r
break;\r
}\r
if( !flag )\r
break;\r
- continue;\r
+\r
+ break;\r
}\r
//-----------------------------\r
#endregion\r
+ }\r
+ //-----------------------------\r
+ #endregion\r
\r
- case Eパッド.HHO:\r
+ #region [ *** ]\r
+ //-----------------------------\r
+ this.actLaneFlushD.Start( (Eドラムレーン) this.nパッド0Atoレーン07[ nPad ], ( (float) event2.nVelocity ) / 127f );\r
+ this.actPad.Hit( this.nパッド0Atoパッド08[ nPad ] );\r
+ if( !CDTXMania.ConfigIni.bドラム打音を発声する )\r
+ {\r
+ if( CDTXMania.ConfigIni.bTight )\r
+ {\r
+ this.tチップのヒット処理・BadならびにTight時のMiss( E楽器パート.DRUMS, this.nパッド0Atoレーン07[ nPad ] );\r
+ }\r
+ continue;\r
+ }\r
+ CDTX.CChip rChip = null;\r
+ rChip = this.r空うちChip( E楽器パート.DRUMS, (Eパッド) nPad );\r
+ if( rChip != null )\r
+ {\r
+ this.tサウンド再生( rChip, CDTXMania.Timer.nシステム時刻, E楽器パート.DRUMS, CDTXMania.ConfigIni.n手動再生音量, CDTXMania.ConfigIni.b演奏音を強調する.Drums );\r
+\r
+ if( CDTXMania.ConfigIni.bTight )\r
+ {\r
+ this.tチップのヒット処理・BadならびにTight時のMiss( E楽器パート.DRUMS, this.nパッド0Atoレーン07[ nPad ] );\r
+ }\r
+ continue;\r
+ }\r
+ //-----------------------------\r
+ #endregion\r
+\r
+ #region [ switch( ( (Eパッド) i ) ) ]\r
+ //-----------------------------\r
+ switch( ( (Eパッド) nPad ) )\r
+ {\r
+ case Eパッド.HH:\r
#region [ *** ]\r
//-----------------------------\r
{\r
- if ( event2.nVelocity <= CDTXMania.ConfigIni.nVelocityMin.HH )\r
- continue; // 電子ドラムによる意図的なクロストークを無効にする\r
-\r
- CDTX.CChip chipHC = this.r指定時刻に一番近い未ヒットChip( nTime, 0x11, nInputAdjustTime ); // HC\r
- CDTX.CChip chipHO = this.r指定時刻に一番近い未ヒットChip( nTime, 0x18, nInputAdjustTime ); // HO\r
- CDTX.CChip chipLC = this.r指定時刻に一番近い未ヒットChip( nTime, 0x1a, nInputAdjustTime ); // LC\r
- E判定 e判定HC = ( chipHC != null ) ? this.e指定時刻からChipのJUDGEを返す( nTime, chipHC, nInputAdjustTime ) : E判定.Miss;\r
- E判定 e判定HO = ( chipHO != null ) ? this.e指定時刻からChipのJUDGEを返す( nTime, chipHO, nInputAdjustTime ) : E判定.Miss;\r
- E判定 e判定LC = ( chipLC != null ) ? this.e指定時刻からChipのJUDGEを返す( nTime, chipLC, nInputAdjustTime ) : E判定.Miss;\r
- switch ( eHHGroup )\r
+ CDTX.CChip chipHC = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( nTime, this.nパッド0Atoチャンネル0A[ 0 ], nInputAdjustTime );\r
+ CDTX.CChip chipHO = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( nTime, this.nパッド0Atoチャンネル0A[ 7 ], nInputAdjustTime );\r
+ CDTX.CChip chipLC = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( nTime, this.nパッド0Atoチャンネル0A[ 9 ], nInputAdjustTime );\r
+ switch ( CDTXMania.ConfigIni.eHHGroup )\r
{\r
- case EHHGroup.全部打ち分ける:\r
- if ( e判定HO != E判定.Miss )\r
- {\r
- this.tドラムヒット処理( nTime, Eパッド.HHO, chipHO, event2.nVelocity );\r
- flag = true;\r
- }\r
- if ( !flag )\r
- break;\r
- continue;\r
-\r
case EHHGroup.ハイハットのみ打ち分ける:\r
- if ( ( e判定HO != E判定.Miss ) && ( e判定LC != E判定.Miss ) )\r
- {\r
- if ( chipHO.n発声位置 < chipLC.n発声位置 )\r
- {\r
- this.tドラムヒット処理( nTime, Eパッド.HHO, chipHO, event2.nVelocity );\r
- }\r
- else if ( chipHO.n発声位置 > chipLC.n発声位置 )\r
- {\r
- this.tドラムヒット処理( nTime, Eパッド.HHO, chipLC, event2.nVelocity );\r
- }\r
- else\r
- {\r
- this.tドラムヒット処理( nTime, Eパッド.HHO, chipHO, event2.nVelocity );\r
- this.tドラムヒット処理( nTime, Eパッド.HHO, chipLC, event2.nVelocity );\r
- }\r
- flag = true;\r
- }\r
- else if ( e判定HO != E判定.Miss )\r
- {\r
- this.tドラムヒット処理( nTime, Eパッド.HHO, chipHO, event2.nVelocity );\r
- flag = true;\r
- }\r
- else if ( e判定LC != E判定.Miss )\r
- {\r
- this.tドラムヒット処理( nTime, Eパッド.HHO, chipLC, event2.nVelocity );\r
- flag = true;\r
- }\r
- if ( !flag )\r
- break;\r
- continue;\r
+ rChip = ( chipHC != null ) ? chipHC : chipLC;\r
+ break;\r
\r
case EHHGroup.左シンバルのみ打ち分ける:\r
- if ( ( e判定HC != E判定.Miss ) && ( e判定HO != E判定.Miss ) )\r
- {\r
- if ( chipHC.n発声位置 < chipHO.n発声位置 )\r
- {\r
- this.tドラムヒット処理( nTime, Eパッド.HHO, chipHC, event2.nVelocity );\r
- }\r
- else if ( chipHC.n発声位置 > chipHO.n発声位置 )\r
- {\r
- this.tドラムヒット処理( nTime, Eパッド.HHO, chipHO, event2.nVelocity );\r
- }\r
- else\r
- {\r
- this.tドラムヒット処理( nTime, Eパッド.HHO, chipHC, event2.nVelocity );\r
- this.tドラムヒット処理( nTime, Eパッド.HHO, chipHO, event2.nVelocity );\r
- }\r
- flag = true;\r
- }\r
- else if ( e判定HC != E判定.Miss )\r
- {\r
- this.tドラムヒット処理( nTime, Eパッド.HHO, chipHC, event2.nVelocity );\r
- flag = true;\r
- }\r
- else if ( e判定HO != E判定.Miss )\r
- {\r
- this.tドラムヒット処理( nTime, Eパッド.HHO, chipHO, event2.nVelocity );\r
- flag = true;\r
- }\r
- if ( !flag )\r
- break;\r
- continue;\r
+ rChip = ( chipHC != null ) ? chipHC : chipHO;\r
+ break;\r
\r
case EHHGroup.全部共通:\r
- if ( ( ( e判定HC != E判定.Miss ) && ( e判定HO != E判定.Miss ) ) && ( e判定LC != E判定.Miss ) )\r
- {\r
- CDTX.CChip chip8;\r
- CDTX.CChip[] chipArray2 = new CDTX.CChip[] { chipHC, chipHO, chipLC };\r
- if ( chipArray2[ 1 ].n発声位置 > chipArray2[ 2 ].n発声位置 )\r
- {\r
- chip8 = chipArray2[ 1 ];\r
- chipArray2[ 1 ] = chipArray2[ 2 ];\r
- chipArray2[ 2 ] = chip8;\r
- }\r
- if ( chipArray2[ 0 ].n発声位置 > chipArray2[ 1 ].n発声位置 )\r
- {\r
- chip8 = chipArray2[ 0 ];\r
- chipArray2[ 0 ] = chipArray2[ 1 ];\r
- chipArray2[ 1 ] = chip8;\r
- }\r
- if ( chipArray2[ 1 ].n発声位置 > chipArray2[ 2 ].n発声位置 )\r
- {\r
- chip8 = chipArray2[ 1 ];\r
- chipArray2[ 1 ] = chipArray2[ 2 ];\r
- chipArray2[ 2 ] = chip8;\r
- }\r
- this.tドラムヒット処理( nTime, Eパッド.HHO, chipArray2[ 0 ], event2.nVelocity );\r
- if ( chipArray2[ 0 ].n発声位置 == chipArray2[ 1 ].n発声位置 )\r
- {\r
- this.tドラムヒット処理( nTime, Eパッド.HHO, chipArray2[ 1 ], event2.nVelocity );\r
- }\r
- if ( chipArray2[ 0 ].n発声位置 == chipArray2[ 2 ].n発声位置 )\r
- {\r
- this.tドラムヒット処理( nTime, Eパッド.HHO, chipArray2[ 2 ], event2.nVelocity );\r
- }\r
- flag = true;\r
- }\r
- else if ( ( e判定HC != E判定.Miss ) && ( e判定HO != E判定.Miss ) )\r
- {\r
- if ( chipHC.n発声位置 < chipHO.n発声位置 )\r
- {\r
- this.tドラムヒット処理( nTime, Eパッド.HHO, chipHC, event2.nVelocity );\r
- }\r
- else if ( chipHC.n発声位置 > chipHO.n発声位置 )\r
- {\r
- this.tドラムヒット処理( nTime, Eパッド.HHO, chipHO, event2.nVelocity );\r
- }\r
- else\r
- {\r
- this.tドラムヒット処理( nTime, Eパッド.HHO, chipHC, event2.nVelocity );\r
- this.tドラムヒット処理( nTime, Eパッド.HHO, chipHO, event2.nVelocity );\r
- }\r
- flag = true;\r
- }\r
- else if ( ( e判定HC != E判定.Miss ) && ( e判定LC != E判定.Miss ) )\r
+ if ( chipHC != null )\r
{\r
- if ( chipHC.n発声位置 < chipLC.n発声位置 )\r
- {\r
- this.tドラムヒット処理( nTime, Eパッド.HHO, chipHC, event2.nVelocity );\r
- }\r
- else if ( chipHC.n発声位置 > chipLC.n発声位置 )\r
- {\r
- this.tドラムヒット処理( nTime, Eパッド.HHO, chipLC, event2.nVelocity );\r
- }\r
- else\r
- {\r
- this.tドラムヒット処理( nTime, Eパッド.HHO, chipHC, event2.nVelocity );\r
- this.tドラムヒット処理( nTime, Eパッド.HHO, chipLC, event2.nVelocity );\r
- }\r
- flag = true;\r
+ rChip = chipHC;\r
}\r
- else if ( ( e判定HO != E判定.Miss ) && ( e判定LC != E判定.Miss ) )\r
+ else if ( chipHO == null )\r
{\r
- if ( chipHO.n発声位置 < chipLC.n発声位置 )\r
- {\r
- this.tドラムヒット処理( nTime, Eパッド.HHO, chipHO, event2.nVelocity );\r
- }\r
- else if ( chipHO.n発声位置 > chipLC.n発声位置 )\r
- {\r
- this.tドラムヒット処理( nTime, Eパッド.HHO, chipLC, event2.nVelocity );\r
- }\r
- else\r
- {\r
- this.tドラムヒット処理( nTime, Eパッド.HHO, chipHO, event2.nVelocity );\r
- this.tドラムヒット処理( nTime, Eパッド.HHO, chipLC, event2.nVelocity );\r
- }\r
- flag = true;\r
+ rChip = chipLC;\r
}\r
- else if ( e判定HC != E判定.Miss )\r
+ else if ( chipLC == null )\r
{\r
- this.tドラムヒット処理( nTime, Eパッド.HHO, chipHC, event2.nVelocity );\r
- flag = true;\r
+ rChip = chipHO;\r
}\r
- else if ( e判定HO != E判定.Miss )\r
+ else if ( chipHO.n発声位置 < chipLC.n発声位置 )\r
{\r
- this.tドラムヒット処理( nTime, Eパッド.HHO, chipHO, event2.nVelocity );\r
- flag = true;\r
+ rChip = chipHO;\r
}\r
- else if ( e判定LC != E判定.Miss )\r
+ else\r
{\r
- this.tドラムヒット処理( nTime, Eパッド.HHO, chipLC, event2.nVelocity );\r
- flag = true;\r
+ rChip = chipLC;\r
}\r
- if ( !flag )\r
- break;\r
- continue;\r
+ break;\r
+\r
+ default:\r
+ rChip = chipHC;\r
+ break;\r
}\r
- if ( !flag )\r
- break;\r
- continue;\r
}\r
- //-----------------------------\r
+ //-----------------------------\r
#endregion\r
+ break;\r
\r
- case Eパッド.RD:\r
+ case Eパッド.LT:\r
#region [ *** ]\r
//-----------------------------\r
{\r
- if (event2.nVelocity <= CDTXMania.ConfigIni.nVelocityMin.RD) // #23857 2010.12.12 yyagi: to support VelocityMin\r
- continue; // 電子ドラムによる意図的なクロストークを無効にする\r
- CDTX.CChip chipCY = this.r指定時刻に一番近い未ヒットChip( nTime, 0x16, nInputAdjustTime ); // CY\r
- CDTX.CChip chipRD = this.r指定時刻に一番近い未ヒットChip( nTime, 0x19, nInputAdjustTime ); // RD\r
- CDTX.CChip chipLC = CDTXMania.ConfigIni.bシンバルフリー ? this.r指定時刻に一番近い未ヒットChip( nTime, 0x1a, nInputAdjustTime ) : null;\r
- E判定 e判定CY = ( chipCY != null ) ? this.e指定時刻からChipのJUDGEを返す( nTime, chipCY, nInputAdjustTime ) : E判定.Miss;\r
- E判定 e判定RD = ( chipRD != null ) ? this.e指定時刻からChipのJUDGEを返す( nTime, chipRD, nInputAdjustTime ) : E判定.Miss;\r
- E判定 e判定LC = ( chipLC != null ) ? this.e指定時刻からChipのJUDGEを返す( nTime, chipLC, nInputAdjustTime ) : E判定.Miss;\r
- CDTX.CChip[] chipArray5 = new CDTX.CChip[] { chipCY, chipRD, chipLC };\r
- E判定[] e判定Array3 = new E判定[] { e判定CY, e判定RD, e判定LC };\r
- num13 = 0;\r
- while( num13 < 2 )\r
+ CDTX.CChip chipLT = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( nTime, this.nパッド0Atoチャンネル0A[ 4 ], nInputAdjustTime );\r
+ CDTX.CChip chipFT = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( nTime, this.nパッド0Atoチャンネル0A[ 5 ], nInputAdjustTime );\r
+ if ( CDTXMania.ConfigIni.eFTGroup != EFTGroup.打ち分ける )\r
+ rChip = ( chipLT != null ) ? chipLT : chipFT;\r
+ else\r
+ rChip = chipLT;\r
+ }\r
+ //-----------------------------\r
+ #endregion\r
+ break;\r
+\r
+ case Eパッド.FT:\r
+ #region [ *** ]\r
+ //-----------------------------\r
+ {\r
+ CDTX.CChip chipLT = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( nTime, this.nパッド0Atoチャンネル0A[ 4 ], nInputAdjustTime );\r
+ CDTX.CChip chipFT = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( nTime, this.nパッド0Atoチャンネル0A[ 5 ], nInputAdjustTime );\r
+ if ( CDTXMania.ConfigIni.eFTGroup != EFTGroup.打ち分ける )\r
+ rChip = ( chipFT != null ) ? chipFT : chipLT;\r
+ else\r
+ rChip = chipFT;\r
+ }\r
+ //-----------------------------\r
+ #endregion\r
+ break;\r
+\r
+ case Eパッド.CY:\r
+ #region [ *** ]\r
+ //-----------------------------\r
+ {\r
+ CDTX.CChip chipCY = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( nTime, this.nパッド0Atoチャンネル0A[ 6 ], nInputAdjustTime );\r
+ CDTX.CChip chipRD = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( nTime, this.nパッド0Atoチャンネル0A[ 8 ], nInputAdjustTime );\r
+ if ( CDTXMania.ConfigIni.eCYGroup != ECYGroup.打ち分ける )\r
+ rChip = ( chipCY != null ) ? chipCY : chipRD;\r
+ else\r
+ rChip = chipCY;\r
+ }\r
+ //-----------------------------\r
+ #endregion\r
+ break;\r
+\r
+ case Eパッド.HHO:\r
+ #region [ *** ]\r
+ //-----------------------------\r
+ {\r
+ CDTX.CChip chipHC = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( nTime, this.nパッド0Atoチャンネル0A[ 0 ], nInputAdjustTime );\r
+ CDTX.CChip chipHO = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( nTime, this.nパッド0Atoチャンネル0A[ 7 ], nInputAdjustTime );\r
+ CDTX.CChip chipLC = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( nTime, this.nパッド0Atoチャンネル0A[ 9 ], nInputAdjustTime );\r
+ switch ( CDTXMania.ConfigIni.eHHGroup )\r
{\r
- num14 = 2;\r
- while( num14 > num13 )\r
- {\r
- if( ( chipArray5[ num14 - 1 ] == null ) || ( ( chipArray5[ num14 ] != null ) && ( chipArray5[ num14 - 1 ].n発声位置 > chipArray5[ num14 ].n発声位置 ) ) )\r
+ case EHHGroup.全部打ち分ける:\r
+ rChip = chipHO;\r
+ break;\r
+\r
+ case EHHGroup.ハイハットのみ打ち分ける:\r
+ rChip = ( chipHO != null ) ? chipHO : chipLC;\r
+ break;\r
+\r
+ case EHHGroup.左シンバルのみ打ち分ける:\r
+ rChip = ( chipHO != null ) ? chipHO : chipHC;\r
+ break;\r
+\r
+ case EHHGroup.全部共通:\r
+ if ( chipHO != null )\r
{\r
- CDTX.CChip chip26 = chipArray5[ num14 - 1 ];\r
- chipArray5[ num14 - 1 ] = chipArray5[ num14 ];\r
- chipArray5[ num14 ] = chip26;\r
- E判定 e判定24 = e判定Array3[ num14 - 1 ];\r
- e判定Array3[ num14 - 1 ] = e判定Array3[ num14 ];\r
- e判定Array3[ num14 ] = e判定24;\r
+ rChip = chipHO;\r
}\r
- num14--;\r
- }\r
- num13++;\r
- }\r
- switch( eCYGroup )\r
- {\r
- case ECYGroup.打ち分ける:\r
- if( e判定RD != E判定.Miss )\r
+ else if ( chipHC == null )\r
{\r
- this.tドラムヒット処理( nTime, Eパッド.RD, chipRD, event2.nVelocity );\r
- flag = true;\r
+ rChip = chipLC;\r
}\r
- break;\r
-\r
- case ECYGroup.共通:\r
- if( !CDTXMania.ConfigIni.bシンバルフリー )\r
+ else if ( chipLC == null )\r
{\r
- num16 = 0;\r
- while( num16 < 3 )\r
- {\r
- if( ( e判定Array3[ num16 ] != E判定.Miss ) && ( ( chipArray5[ num16 ] == chipCY ) || ( chipArray5[ num16 ] == chipRD ) ) )\r
- {\r
- this.tドラムヒット処理( nTime, Eパッド.CY, chipArray5[ num16 ], event2.nVelocity );\r
- flag = true;\r
- break;\r
- }\r
- num16++;\r
- }\r
- break;\r
+ rChip = chipHC;\r
}\r
- num15 = 0;\r
- while( num15 < 3 )\r
+ else if ( chipHC.n発声位置 < chipLC.n発声位置 )\r
{\r
- if( e判定Array3[ num15 ] != E判定.Miss )\r
- {\r
- this.tドラムヒット処理( nTime, Eパッド.CY, chipArray5[ num15 ], event2.nVelocity );\r
- flag = true;\r
- break;\r
- }\r
- num15++;\r
+ rChip = chipHC;\r
+ }\r
+ else\r
+ {\r
+ rChip = chipLC;\r
}\r
break;\r
}\r
- if( flag )\r
- {\r
- continue;\r
- }\r
- break;\r
}\r
- //-----------------------------\r
+ //-----------------------------\r
+ #endregion\r
+ break;\r
+\r
+ case Eパッド.RD:\r
+ #region [ *** ]\r
+ //-----------------------------\r
+ {\r
+ CDTX.CChip chipCY = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( nTime, this.nパッド0Atoチャンネル0A[ 6 ], nInputAdjustTime );\r
+ CDTX.CChip chipRD = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( nTime, this.nパッド0Atoチャンネル0A[ 8 ], nInputAdjustTime );\r
+ if ( CDTXMania.ConfigIni.eCYGroup != ECYGroup.打ち分ける )\r
+ rChip = ( chipRD != null ) ? chipRD : chipCY;\r
+ else\r
+ rChip = chipRD;\r
+ }\r
+ //-----------------------------\r
#endregion\r
+ break;\r
\r
case Eパッド.LC:\r
#region [ *** ]\r
//-----------------------------\r
{\r
- if (event2.nVelocity <= CDTXMania.ConfigIni.nVelocityMin.LC) // #23857 2010.12.12 yyagi: to support VelocityMin\r
- continue; // 電子ドラムによる意図的なクロストークを無効にする\r
- CDTX.CChip chipHC = this.r指定時刻に一番近い未ヒットChip( nTime, 0x11, nInputAdjustTime ); // HC\r
- CDTX.CChip chipHO = this.r指定時刻に一番近い未ヒットChip( nTime, 0x18, nInputAdjustTime ); // HO\r
- CDTX.CChip chipLC = this.r指定時刻に一番近い未ヒットChip( nTime, 0x1a, nInputAdjustTime ); // LC\r
- CDTX.CChip chipCY = CDTXMania.ConfigIni.bシンバルフリー ? this.r指定時刻に一番近い未ヒットChip( nTime, 0x16, nInputAdjustTime ) : null;\r
- CDTX.CChip chipRD = CDTXMania.ConfigIni.bシンバルフリー ? this.r指定時刻に一番近い未ヒットChip( nTime, 0x19, nInputAdjustTime ) : null;\r
- E判定 e判定HC = ( chipHC != null ) ? this.e指定時刻からChipのJUDGEを返す( nTime, chipHC, nInputAdjustTime ) : E判定.Miss;\r
- E判定 e判定HO = ( chipHO != null ) ? this.e指定時刻からChipのJUDGEを返す( nTime, chipHO, nInputAdjustTime ) : E判定.Miss;\r
- E判定 e判定LC = ( chipLC != null ) ? this.e指定時刻からChipのJUDGEを返す( nTime, chipLC, nInputAdjustTime ) : E判定.Miss;\r
- E判定 e判定CY = ( chipCY != null ) ? this.e指定時刻からChipのJUDGEを返す( nTime, chipCY, nInputAdjustTime ) : E判定.Miss;\r
- E判定 e判定RD = ( chipRD != null ) ? this.e指定時刻からChipのJUDGEを返す( nTime, chipRD, nInputAdjustTime ) : E判定.Miss;\r
- CDTX.CChip[] chipArray3 = new CDTX.CChip[] { chipHC, chipHO, chipLC, chipCY, chipRD };\r
- E判定[] e判定Array = new E判定[] { e判定HC, e判定HO, e判定LC, e判定CY, e判定RD };\r
- num3 = 0;\r
- while( num3 < 4 )\r
+ CDTX.CChip chipHC = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( nTime, this.nパッド0Atoチャンネル0A[ 0 ], nInputAdjustTime );\r
+ CDTX.CChip chipHO = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( nTime, this.nパッド0Atoチャンネル0A[ 7 ], nInputAdjustTime );\r
+ CDTX.CChip chipLC = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( nTime, this.nパッド0Atoチャンネル0A[ 9 ], nInputAdjustTime );\r
+ switch ( CDTXMania.ConfigIni.eHHGroup )\r
{\r
- num4 = 4;\r
- while( num4 > num3 )\r
- {\r
- if( ( chipArray3[ num4 - 1 ] == null ) || ( ( chipArray3[ num4 ] != null ) && ( chipArray3[ num4 - 1 ].n発声位置 > chipArray3[ num4 ].n発声位置 ) ) )\r
+ case EHHGroup.全部打ち分ける:\r
+ case EHHGroup.左シンバルのみ打ち分ける:\r
+ rChip = chipLC;\r
+ break;\r
+\r
+ case EHHGroup.ハイハットのみ打ち分ける:\r
+ case EHHGroup.全部共通:\r
+ if ( chipLC != null )\r
{\r
- CDTX.CChip chip14 = chipArray3[ num4 - 1 ];\r
- chipArray3[ num4 - 1 ] = chipArray3[ num4 ];\r
- chipArray3[ num4 ] = chip14;\r
- E判定 e判定12 = e判定Array[ num4 - 1 ];\r
- e判定Array[ num4 - 1 ] = e判定Array[ num4 ];\r
- e判定Array[ num4 ] = e判定12;\r
+ rChip = chipLC;\r
}\r
- num4--;\r
- }\r
- num3++;\r
- }\r
- switch( eHHGroup )\r
- {\r
- case EHHGroup.全部打ち分ける:\r
- case EHHGroup.左シンバルのみ打ち分ける:\r
- if( !CDTXMania.ConfigIni.bシンバルフリー )\r
+ else if ( chipHC == null )\r
{\r
- if( e判定LC != E判定.Miss )\r
- {\r
- this.tドラムヒット処理( nTime, Eパッド.LC, chipLC, event2.nVelocity );\r
- flag = true;\r
- }\r
- if( !flag )\r
- break;\r
- continue;\r
+ rChip = chipHO;\r
}\r
- num5 = 0;\r
- while( num5 < 5 )\r
+ else if ( chipHO == null )\r
{\r
- if( ( e判定Array[ num5 ] != E判定.Miss ) && ( ( ( chipArray3[ num5 ] == chipLC ) || ( chipArray3[ num5 ] == chipCY ) ) || ( ( chipArray3[ num5 ] == chipRD ) && ( CDTXMania.ConfigIni.eCYGroup == ECYGroup.共通 ) ) ) )\r
- {\r
- this.tドラムヒット処理( nTime, Eパッド.LC, chipArray3[ num5 ], event2.nVelocity );\r
- flag = true;\r
- break;\r
- }\r
- num5++;\r
+ rChip = chipHC;\r
}\r
- if( !flag )\r
- break;\r
- continue;\r
-\r
- case EHHGroup.ハイハットのみ打ち分ける:\r
- case EHHGroup.全部共通:\r
- if( !CDTXMania.ConfigIni.bシンバルフリー )\r
+ else if ( chipHC.n発声位置 < chipHO.n発声位置 )\r
{\r
- num7 = 0;\r
- while( num7 < 5 )\r
- {\r
- if( ( e判定Array[ num7 ] != E判定.Miss ) && ( ( ( chipArray3[ num7 ] == chipLC ) || ( chipArray3[ num7 ] == chipHC ) ) || ( chipArray3[ num7 ] == chipHO ) ) )\r
- {\r
- this.tドラムヒット処理( nTime, Eパッド.LC, chipArray3[ num7 ], event2.nVelocity );\r
- flag = true;\r
- break;\r
- }\r
- num7++;\r
- }\r
- if( !flag )\r
- break;\r
- continue;\r
+ rChip = chipHC;\r
}\r
- num6 = 0;\r
- while( num6 < 5 )\r
+ else\r
{\r
- if( ( e判定Array[ num6 ] != E判定.Miss ) && ( ( chipArray3[ num6 ] != chipRD ) || ( CDTXMania.ConfigIni.eCYGroup == ECYGroup.共通 ) ) )\r
- {\r
- this.tドラムヒット処理( nTime, Eパッド.LC, chipArray3[ num6 ], event2.nVelocity );\r
- flag = true;\r
- break;\r
- }\r
- num6++;\r
+ rChip = chipHO;\r
}\r
- if( !flag )\r
- break;\r
- continue;\r
+ break;\r
}\r
- if( !flag )\r
- break;\r
+ }\r
+ //-----------------------------\r
+ #endregion\r
+ break;\r
+\r
+ default:\r
+ #region [ *** ]\r
+ //-----------------------------\r
+ rChip = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( nTime, this.nパッド0Atoチャンネル0A[ nPad ], nInputAdjustTime );\r
+ //-----------------------------\r
+ #endregion\r
+ break;\r
+ }\r
+ //-----------------------------\r
+ #endregion\r
+\r
+ #region [ *** ]\r
+ //-----------------------------\r
+ if( rChip != null )\r
+ {\r
+ this.tサウンド再生( rChip, CDTXMania.Timer.nシステム時刻, E楽器パート.DRUMS, CDTXMania.ConfigIni.n手動再生音量, CDTXMania.ConfigIni.b演奏音を強調する.Drums );\r
+ }\r
+ if( CDTXMania.ConfigIni.bTight )\r
+ {\r
+ this.tチップのヒット処理・BadならびにTight時のMiss( E楽器パート.DRUMS, this.nパッド0Atoレーン07[ nPad ] );\r
+ }\r
+ //-----------------------------\r
+ #endregion\r
+ continue;\r
+ }\r
+ }\r
+ }\r
+ }\r
+ //protected override void t入力処理・ベース()\r
+ //{\r
+ // if ( CDTXMania.Pad.b押されている( E楽器パート.BASS, Eパッド.Decide ) && CDTXMania.Pad.b押された( E楽器パート.BASS, Eパッド.B ) )\r
+ // {\r
+ // CDTXMania.ConfigIni.n譜面スクロール速度.Bass = Math.Min( CDTXMania.ConfigIni.n譜面スクロール速度.Bass + 1, 0x7cf );\r
+ // }\r
+ // if ( CDTXMania.Pad.b押されている( E楽器パート.BASS, Eパッド.Decide ) && CDTXMania.Pad.b押された( E楽器パート.BASS, Eパッド.R ) )\r
+ // {\r
+ // CDTXMania.ConfigIni.n譜面スクロール速度.Bass = Math.Max( CDTXMania.ConfigIni.n譜面スクロール速度.Bass - 1, 0 );\r
+ // }\r
+\r
+ // if ( CDTXMania.ConfigIni.bGuitar有効 && CDTXMania.DTX.bチップがある.Bass )\r
+ // {\r
+ // if( bIsAutoPlay.Bass )\r
+ // {\r
+ // CDTX.CChip chip = this.r次にくるベースChipを更新して返す();\r
+ // if( chip != null )\r
+ // {\r
+ // if( ( chip.nチャンネル番号 & 4 ) != 0 )\r
+ // {\r
+ // this.actLaneFlushGB.Start( 3 );\r
+ // this.actRGB.Push( 3 );\r
+ // }\r
+ // if( ( chip.nチャンネル番号 & 2 ) != 0 )\r
+ // {\r
+ // this.actLaneFlushGB.Start( 4 );\r
+ // this.actRGB.Push( 4 );\r
+ // }\r
+ // if( ( chip.nチャンネル番号 & 1 ) != 0 )\r
+ // {\r
+ // this.actLaneFlushGB.Start( 5 );\r
+ // this.actRGB.Push( 5 );\r
+ // }\r
+ // }\r
+ // }\r
+ // else\r
+ // {\r
+ // int flagR = CDTXMania.Pad.b押されている( E楽器パート.BASS, Eパッド.R ) ? 4 : 0;\r
+ // this.t入力メソッド記憶( E楽器パート.BASS );\r
+ // int flagG = CDTXMania.Pad.b押されている( E楽器パート.BASS, Eパッド.G ) ? 2 : 0;\r
+ // this.t入力メソッド記憶( E楽器パート.BASS );\r
+ // int flagB = CDTXMania.Pad.b押されている( E楽器パート.BASS, Eパッド.B ) ? 1 : 0;\r
+ // this.t入力メソッド記憶( E楽器パート.BASS );\r
+ // int flagRGB = flagR | flagG | flagB;\r
+ // if( flagR != 0 )\r
+ // {\r
+ // this.actLaneFlushGB.Start( 3 );\r
+ // this.actRGB.Push( 3 );\r
+ // }\r
+ // if( flagG != 0 )\r
+ // {\r
+ // this.actLaneFlushGB.Start( 4 );\r
+ // this.actRGB.Push( 4 );\r
+ // }\r
+ // if( flagB != 0 )\r
+ // {\r
+ // this.actLaneFlushGB.Start( 5 );\r
+ // this.actRGB.Push( 5 );\r
+ // }\r
+ // List<STInputEvent> events = CDTXMania.Pad.GetEvents( E楽器パート.BASS, Eパッド.Pick );\r
+ // if( ( events != null ) && ( events.Count > 0 ) )\r
+ // {\r
+ // foreach( STInputEvent event2 in events )\r
+ // {\r
+ // CDTX.CChip chip4;\r
+ // if( !event2.b押された )\r
+ // {\r
+ // continue;\r
+ // }\r
+ // this.t入力メソッド記憶( E楽器パート.BASS );\r
+ // long nTime = event2.nTimeStamp - CDTXMania.Timer.n前回リセットした時のシステム時刻;\r
+ // CDTX.CChip pChip = this.r指定時刻に一番近い未ヒットChip( nTime, 0xaf, this.nInputAdjustTimeMs.Bass );\r
+ // E判定 e判定 = this.e指定時刻からChipのJUDGEを返す( nTime, pChip, this.nInputAdjustTimeMs.Bass );\r
+ // if( ( ( pChip != null ) && ( ( pChip.nチャンネル番号 & 15 ) == flagRGB ) ) && ( e判定 != E判定.Miss ) )\r
+ // {\r
+ // if( ( flagR != 0 ) || ( flagRGB == 0 ) )\r
+ // {\r
+ // this.actChipFireGB.Start( 3 );\r
+ // }\r
+ // if( ( flagG != 0 ) || ( flagRGB == 0 ) )\r
+ // {\r
+ // this.actChipFireGB.Start( 4 );\r
+ // }\r
+ // if( ( flagB != 0 ) || ( flagRGB == 0 ) )\r
+ // {\r
+ // this.actChipFireGB.Start( 5 );\r
+ // }\r
+ // this.tチップのヒット処理( nTime, pChip );\r
+ // this.tサウンド再生( pChip, CDTXMania.Timer.nシステム時刻, E楽器パート.BASS, CDTXMania.ConfigIni.n手動再生音量, CDTXMania.ConfigIni.b演奏音を強調する.Bass, e判定 == E判定.Poor );\r
+ // CDTX.CChip item = this.r指定時刻に一番近い未ヒットChip( nTime, 0xa8, this.nInputAdjustTimeMs.Bass, 140 );\r
+ // if( item != null )\r
+ // {\r
+ // this.queWailing.Bass.Enqueue( item );\r
+ // }\r
+ // continue;\r
+ // }\r
+ // if ( ( ( chip4 = this.r現在の空うちベースChip ) != null ) || ( ( chip4 = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( nTime, 0xaf, this.nInputAdjustTimeMs.Bass ) ) != null ) )\r
+ // {\r
+ // this.tサウンド再生( chip4, CDTXMania.Timer.nシステム時刻, E楽器パート.BASS, CDTXMania.ConfigIni.n手動再生音量, CDTXMania.ConfigIni.b演奏音を強調する.Bass, true );\r
+ // }\r
+ // if( !CDTXMania.ConfigIni.bLight.Bass )\r
+ // {\r
+ // this.tチップのヒット処理・BadならびにTight時のMiss( E楽器パート.BASS );\r
+ // }\r
+ // }\r
+ // }\r
+ // List<STInputEvent> list2 = CDTXMania.Pad.GetEvents( E楽器パート.BASS, Eパッド.Wail );\r
+ // if( ( list2 != null ) && ( list2.Count > 0 ) )\r
+ // {\r
+ // foreach( STInputEvent event3 in list2 )\r
+ // {\r
+ // CDTX.CChip chip5;\r
+ // if( !event3.b押された )\r
+ // {\r
+ // continue;\r
+ // }\r
+ // long num6 = event3.nTimeStamp - CDTXMania.Timer.n前回リセットした時のシステム時刻;\r
+ // while( ( this.queWailing.Bass.Count > 0 ) && ( ( chip5 = this.queWailing.Bass.Dequeue() ) != null ) )\r
+ // {\r
+ // if( ( num6 - chip5.n発声時刻ms ) <= 1000 ) // #24245 2011.1.26 yyagi: 800 -> 1000\r
+ // {\r
+ // chip5.bHit = true;\r
+ // this.actWailingBonus.Start( E楽器パート.BASS, this.r現在の歓声Chip.Bass );\r
+ // if( !bIsAutoPlay.Bass )\r
+ // {\r
+ // int nCombo = ( this.actCombo.n現在のコンボ数.Bass < 500 ) ? this.actCombo.n現在のコンボ数.Bass : 500;\r
+ // this.actScore.Set( E楽器パート.BASS, this.actScore.Get( E楽器パート.BASS ) + ( nCombo * 3000L ) ); // #24245 2011.1.26 yyagi changed DRUMS->BASS, add nCombo conditions\r
+ // }\r
+ // }\r
+ // }\r
+ // }\r
+ // }\r
+ // }\r
+ // }\r
+ //}\r
+\r
+ protected override void t背景テクスチャの生成()\r
+ {\r
+ Rectangle bgrect = new Rectangle( 338, 57, 278, 355 );\r
+ string DefaultBgFilename = @"Graphics\ScreenPlayDrums background.jpg";\r
+ string BgFilename = "";\r
+ if ( ( ( CDTXMania.DTX.BACKGROUND != null ) && ( CDTXMania.DTX.BACKGROUND.Length > 0 ) ) && !CDTXMania.ConfigIni.bストイックモード )\r
+ {\r
+ BgFilename = CDTXMania.DTX.strフォルダ名 + CDTXMania.DTX.BACKGROUND;\r
+ }\r
+ base.t背景テクスチャの生成( DefaultBgFilename, bgrect, BgFilename );\r
+ }\r
+ //private void t背景テクスチャの生成()\r
+ //{\r
+ // Bitmap image = null;\r
+ // string path = "";\r
+ // bool flag = true;\r
+ // if( ( ( CDTXMania.DTX.BACKGROUND != null ) && ( CDTXMania.DTX.BACKGROUND.Length > 0 ) ) && !CDTXMania.ConfigIni.bストイックモード )\r
+ // {\r
+ // path = CDTXMania.DTX.strフォルダ名 + CDTXMania.DTX.BACKGROUND;\r
+ // if( File.Exists( path ) )\r
+ // {\r
+ // try\r
+ // {\r
+ // Bitmap bitmap2 = null;\r
+ // bitmap2 = new Bitmap( path );\r
+ // if( ( bitmap2.Size.Width == 0 ) && ( bitmap2.Size.Height == 0 ) )\r
+ // {\r
+ // this.tx背景 = null;\r
+ // return;\r
+ // }\r
+ // Bitmap bitmap3 = new Bitmap( 640, 480 );\r
+ // Graphics graphics = Graphics.FromImage( bitmap3 );\r
+ // for( int i = 0; i < 480; i += bitmap2.Size.Height )\r
+ // {\r
+ // for( int j = 0; j < 640; j += bitmap2.Size.Width )\r
+ // {\r
+ // graphics.DrawImage( bitmap2, j, i, bitmap2.Width, bitmap2.Height );\r
+ // }\r
+ // }\r
+ // graphics.Dispose();\r
+ // bitmap2.Dispose();\r
+ // image = new Bitmap( CSkin.Path( @"Graphics\ScreenPlayDrums background.jpg" ) );\r
+ // graphics = Graphics.FromImage( image );\r
+ // ColorMatrix matrix2 = new ColorMatrix();\r
+ // matrix2.Matrix00 = 1f;\r
+ // matrix2.Matrix11 = 1f;\r
+ // matrix2.Matrix22 = 1f;\r
+ // matrix2.Matrix33 = ( (float) CDTXMania.ConfigIni.n背景の透過度 ) / 255f;\r
+ // matrix2.Matrix44 = 1f;\r
+ // ColorMatrix newColorMatrix = matrix2;\r
+ // ImageAttributes imageAttr = new ImageAttributes();\r
+ // imageAttr.SetColorMatrix( newColorMatrix );\r
+ // graphics.DrawImage( bitmap3, new Rectangle( 0, 0, 640, 480 ), 0, 0, 640, 480, GraphicsUnit.Pixel, imageAttr );\r
+ // imageAttr.Dispose();\r
+ // graphics.DrawImage( bitmap3, new Rectangle( 0x152, 0x39, 0x116, 0x163 ), 0x152, 0x39, 0x116, 0x163, GraphicsUnit.Pixel );\r
+ // graphics.Dispose();\r
+ // bitmap3.Dispose();\r
+ // flag = false;\r
+ // }\r
+ // catch\r
+ // {\r
+ // Trace.TraceError( "背景画像の読み込みに失敗しました。({0})", new object[] { path } );\r
+ // }\r
+ // }\r
+ // }\r
+ // if( flag )\r
+ // {\r
+ // path = CSkin.Path( @"Graphics\ScreenPlayDrums background.jpg" );\r
+ // try\r
+ // {\r
+ // image = new Bitmap( path );\r
+ // }\r
+ // catch\r
+ // {\r
+ // Trace.TraceError( "背景画像の読み込みに失敗しました。({0})", new object[] { path } );\r
+ // this.tx背景 = null;\r
+ // return;\r
+ // }\r
+ // }\r
+ // if( ( CDTXMania.DTX.listBMP.Count > 0 ) || ( CDTXMania.DTX.listBMPTEX.Count > 0 ) )\r
+ // {\r
+ // Graphics graphics2 = Graphics.FromImage( image );\r
+ // graphics2.FillRectangle( Brushes.Black, 0x152, 0x39, 0x116, 0x163 );\r
+ // graphics2.Dispose();\r
+ // }\r
+ // try\r
+ // {\r
+ // this.tx背景 = new CTexture( CDTXMania.app.Device, image, CDTXMania.TextureFormat );\r
+ // }\r
+ // catch( CTextureCreateFailedException )\r
+ // {\r
+ // Trace.TraceError( "背景テクスチャの生成に失敗しました。" );\r
+ // this.tx背景 = null;\r
+ // }\r
+ // image.Dispose();\r
+ //}\r
+\r
+\r
+//#if true // DAMAGELEVELTUNING\r
+// // ----------------------------------\r
+// public float[,] fDamageGaugeDelta = { // #23625 2011.1.10 ickw_284: tuned damage/recover factors\r
+// // drums, guitar, bass\r
+// { 0.004f, 0.006f, 0.006f },\r
+// { 0.002f, 0.003f, 0.003f },\r
+// { 0.000f, 0.000f, 0.000f },\r
+// { -0.020f, -0.030f, -0.030f },\r
+// { -0.050f, -0.050f, -0.050f }\r
+// };\r
+// public float[] fDamageLevelFactor = {\r
+// 0.5f, 1.0f, 1.5f\r
+// };\r
+// // ----------------------------------\r
+//#endif\r
\r
- break;\r
- }\r
- //-----------------------------\r
- #endregion\r
- }\r
- //-----------------------------\r
- #endregion\r
+// private void t判定にあわせてゲージを増減する( E楽器パート part, E判定 e今回の判定 )\r
+// {\r
+// double fDamage;\r
\r
- #region [ *** ]\r
- //-----------------------------\r
- this.actLaneFlushD.Start( (Eドラムレーン) this.nパッド0Atoレーン07[ nPad ], ( (float) event2.nVelocity ) / 127f );\r
- this.actPad.Hit( this.nパッド0Atoパッド08[ nPad ] );\r
- if( !CDTXMania.ConfigIni.bドラム打音を発声する )\r
- {\r
- if( CDTXMania.ConfigIni.bTight )\r
- {\r
- this.tチップのヒット処理・BadならびにTight時のMiss( E楽器パート.DRUMS, this.nパッド0Atoレーン07[ nPad ] );\r
- }\r
- continue;\r
- }\r
- CDTX.CChip rChip = null;\r
- rChip = this.r空うちChip( E楽器パート.DRUMS, (Eパッド) nPad );\r
- if( rChip != null )\r
- {\r
- this.tサウンド再生( rChip, CDTXMania.Timer.nシステム時刻, E楽器パート.DRUMS, CDTXMania.ConfigIni.n手動再生音量, CDTXMania.ConfigIni.b演奏音を強調する.Drums );\r
+//#if true // DAMAGELEVELTUNING\r
+// switch (e今回の判定)\r
+// {\r
+// case E判定.Perfect:\r
+// case E判定.Great:\r
+// case E判定.Good:\r
+// case E判定.Poor:\r
+// fDamage = fDamageGaugeDelta[(int)e今回の判定, (int)part];\r
+// break;\r
+// case E判定.Miss:\r
+// fDamage = fDamageGaugeDelta[(int)e今回の判定, (int)part];\r
+// switch (CDTXMania.ConfigIni.eダメージレベル)\r
+// {\r
+// case Eダメージレベル.少ない:\r
+// case Eダメージレベル.普通:\r
+// case Eダメージレベル.大きい:\r
+// fDamage *= fDamageLevelFactor[(int)CDTXMania.ConfigIni.eダメージレベル];\r
+// break;\r
+// }\r
+// break;\r
\r
- if( CDTXMania.ConfigIni.bTight )\r
- {\r
- this.tチップのヒット処理・BadならびにTight時のMiss( E楽器パート.DRUMS, this.nパッド0Atoレーン07[ nPad ] );\r
- }\r
- continue;\r
- }\r
- //-----------------------------\r
- #endregion\r
+// default:\r
+// fDamage = 0.0f;\r
+// break;\r
+// }\r
+//#else // before applying #23625 modifications\r
+// switch (e今回の判定)\r
+// {\r
+// case E判定.Perfect:\r
+// fDamage = ( part == E楽器パート.DRUMS ) ? 0.01 : 0.015;\r
+// break;\r
\r
- #region [ switch( ( (Eパッド) i ) ) ]\r
- //-----------------------------\r
- switch( ( (Eパッド) nPad ) )\r
- {\r
- case Eパッド.HH:\r
- #region [ *** ]\r
- //-----------------------------\r
- {\r
- CDTX.CChip chipHC = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( nTime, this.nパッド0Atoチャンネル0A[ 0 ], nInputAdjustTime );\r
- CDTX.CChip chipHO = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( nTime, this.nパッド0Atoチャンネル0A[ 7 ], nInputAdjustTime );\r
- CDTX.CChip chipLC = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( nTime, this.nパッド0Atoチャンネル0A[ 9 ], nInputAdjustTime );\r
- switch ( CDTXMania.ConfigIni.eHHGroup )\r
- {\r
- case EHHGroup.ハイハットのみ打ち分ける:\r
- rChip = ( chipHC != null ) ? chipHC : chipLC;\r
- break;\r
+// case E判定.Great:\r
+// fDamage = ( part == E楽器パート.DRUMS ) ? 0.006 : 0.009;\r
+// break;\r
\r
- case EHHGroup.左シンバルのみ打ち分ける:\r
- rChip = ( chipHC != null ) ? chipHC : chipHO;\r
- break;\r
+// case E判定.Good:\r
+// fDamage = ( part == E楽器パート.DRUMS ) ? 0.002 : 0.003;\r
+// break;\r
\r
- case EHHGroup.全部共通:\r
- if ( chipHC != null )\r
- {\r
- rChip = chipHC;\r
- }\r
- else if ( chipHO == null )\r
- {\r
- rChip = chipLC;\r
- }\r
- else if ( chipLC == null )\r
- {\r
- rChip = chipHO;\r
- }\r
- else if ( chipHO.n発声位置 < chipLC.n発声位置 )\r
- {\r
- rChip = chipHO;\r
- }\r
- else\r
- {\r
- rChip = chipLC;\r
- }\r
- break;\r
+// case E判定.Poor:\r
+// fDamage = ( part == E楽器パート.DRUMS ) ? 0.0 : 0.0;\r
+// break;\r
\r
- default:\r
- rChip = chipHC;\r
- break;\r
- }\r
- }\r
- //-----------------------------\r
- #endregion\r
- break;\r
+// case E判定.Miss:\r
+// fDamage = ( part == E楽器パート.DRUMS ) ? -0.035 : -0.035;\r
+// switch( CDTXMania.ConfigIni.eダメージレベル )\r
+// {\r
+// case Eダメージレベル.少ない:\r
+// fDamage *= 0.6;\r
+// break;\r
\r
- case Eパッド.LT:\r
- #region [ *** ]\r
- //-----------------------------\r
- {\r
- CDTX.CChip chipLT = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( nTime, this.nパッド0Atoチャンネル0A[ 4 ], nInputAdjustTime );\r
- CDTX.CChip chipFT = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( nTime, this.nパッド0Atoチャンネル0A[ 5 ], nInputAdjustTime );\r
- if ( CDTXMania.ConfigIni.eFTGroup != EFTGroup.打ち分ける )\r
- rChip = ( chipLT != null ) ? chipLT : chipFT;\r
- else\r
- rChip = chipLT;\r
- }\r
- //-----------------------------\r
- #endregion\r
- break;\r
+// case Eダメージレベル.普通:\r
+// fDamage *= 1.0;\r
+// break;\r
\r
- case Eパッド.FT:\r
- #region [ *** ]\r
- //-----------------------------\r
- {\r
- CDTX.CChip chipLT = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( nTime, this.nパッド0Atoチャンネル0A[ 4 ], nInputAdjustTime );\r
- CDTX.CChip chipFT = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( nTime, this.nパッド0Atoチャンネル0A[ 5 ], nInputAdjustTime );\r
- if ( CDTXMania.ConfigIni.eFTGroup != EFTGroup.打ち分ける )\r
- rChip = ( chipFT != null ) ? chipFT : chipLT;\r
- else\r
- rChip = chipFT;\r
- }\r
- //-----------------------------\r
- #endregion\r
- break;\r
+// case Eダメージレベル.大きい:\r
+// fDamage *= 1.6;\r
+// break;\r
+// }\r
+// break;\r
\r
- case Eパッド.CY:\r
- #region [ *** ]\r
- //-----------------------------\r
- {\r
- CDTX.CChip chipCY = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( nTime, this.nパッド0Atoチャンネル0A[ 6 ], nInputAdjustTime );\r
- CDTX.CChip chipRD = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( nTime, this.nパッド0Atoチャンネル0A[ 8 ], nInputAdjustTime );\r
- if ( CDTXMania.ConfigIni.eCYGroup != ECYGroup.打ち分ける )\r
- rChip = ( chipCY != null ) ? chipCY : chipRD;\r
- else\r
- rChip = chipCY;\r
- }\r
- //-----------------------------\r
- #endregion\r
- break;\r
+// default:\r
+// fDamage = 0.0;\r
+// break;\r
+// }\r
+//#endif\r
+// this.actGauge.db現在のゲージ値 += fDamage;\r
\r
- case Eパッド.HHO:\r
- #region [ *** ]\r
- //-----------------------------\r
- {\r
- CDTX.CChip chipHC = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( nTime, this.nパッド0Atoチャンネル0A[ 0 ], nInputAdjustTime );\r
- CDTX.CChip chipHO = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( nTime, this.nパッド0Atoチャンネル0A[ 7 ], nInputAdjustTime );\r
- CDTX.CChip chipLC = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( nTime, this.nパッド0Atoチャンネル0A[ 9 ], nInputAdjustTime );\r
- switch ( CDTXMania.ConfigIni.eHHGroup )\r
- {\r
- case EHHGroup.全部打ち分ける:\r
- rChip = chipHO;\r
- break;\r
+// if( this.actGauge.db現在のゲージ値 > 1.0 )\r
+// this.actGauge.db現在のゲージ値 = 1.0;\r
+// }\r
+ //-----------------\r
\r
- case EHHGroup.ハイハットのみ打ち分ける:\r
- rChip = ( chipHO != null ) ? chipHO : chipLC;\r
- break;\r
+ protected override void t進行描画・チップ・ドラムス( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip )\r
+ {\r
+ if ( configIni.bDrums有効 )\r
+ {\r
+ if ( configIni.bSudden.Drums )\r
+ {\r
+ if ( pChip.nバーからの距離dot.Drums < 200 )\r
+ {\r
+ pChip.b可視 = true;\r
+ pChip.n透明度 = 0xff;\r
+ }\r
+ else if ( pChip.nバーからの距離dot.Drums < 250 )\r
+ {\r
+ pChip.b可視 = true;\r
+ pChip.n透明度 = 0xff - ( (int) ( ( ( (double) ( pChip.nバーからの距離dot.Drums - 200 ) ) * 255.0 ) / 50.0 ) );\r
+ }\r
+ else\r
+ {\r
+ pChip.b可視 = false;\r
+ pChip.n透明度 = 0;\r
+ }\r
+ }\r
+ if ( configIni.bHidden.Drums )\r
+ {\r
+ if ( pChip.nバーからの距離dot.Drums < 100 )\r
+ {\r
+ pChip.b可視 = false;\r
+ }\r
+ else if ( pChip.nバーからの距離dot.Drums < 150 )\r
+ {\r
+ pChip.b可視 = true;\r
+ pChip.n透明度 = (int) ( ( ( (double) ( pChip.nバーからの距離dot.Drums - 100 ) ) * 255.0 ) / 50.0 );\r
+ }\r
+ }\r
+ if ( !pChip.bHit && pChip.b可視 )\r
+ {\r
+ if ( this.txチップ != null )\r
+ {\r
+ this.txチップ.n透明度 = pChip.n透明度;\r
+ }\r
+ int x = this.nチャンネルtoX座標[ pChip.nチャンネル番号 - 0x11 ];\r
+ int num8 = configIni.bReverse.Drums ? ( 0x38 + pChip.nバーからの距離dot.Drums ) : ( 0x1a6 - pChip.nバーからの距離dot.Drums );\r
+ if ( this.txチップ != null )\r
+ {\r
+ this.txチップ.vc拡大縮小倍率 = new Vector3( (float) pChip.dbチップサイズ倍率, (float) pChip.dbチップサイズ倍率, 1f );\r
+ }\r
+ int num9 = this.ctチップ模様アニメ.Drums.n現在の値;\r
+ switch ( pChip.nチャンネル番号 )\r
+ {\r
+ case 0x11:\r
+ x = ( x + 0x10 ) - ( (int) ( ( 32.0 * pChip.dbチップサイズ倍率 ) / 2.0 ) );\r
+ if ( this.txチップ != null )\r
+ {\r
+ this.txチップ.t2D描画( CDTXMania.app.Device, x, num8 - 4, new Rectangle( 0x2c, num9 * 7, 0x20, 8 ) );\r
+ }\r
+ break;\r
\r
- case EHHGroup.左シンバルのみ打ち分ける:\r
- rChip = ( chipHO != null ) ? chipHO : chipHC;\r
- break;\r
+ case 0x12:\r
+ x = ( x + 0x10 ) - ( (int) ( ( 32.0 * pChip.dbチップサイズ倍率 ) / 2.0 ) );\r
+ if ( this.txチップ != null )\r
+ {\r
+ this.txチップ.t2D描画( CDTXMania.app.Device, x, num8 - 4, new Rectangle( 0x4c, num9 * 7, 0x20, 8 ) );\r
+ }\r
+ break;\r
+\r
+ case 0x13:\r
+ x = ( x + 0x16 ) - ( (int) ( ( 44.0 * pChip.dbチップサイズ倍率 ) / 2.0 ) );\r
+ if ( this.txチップ != null )\r
+ {\r
+ this.txチップ.t2D描画( CDTXMania.app.Device, x, num8 - 5, new Rectangle( 0, num9 * 9, 0x2c, 10 ) );\r
+ }\r
+ break;\r
+\r
+ case 0x14:\r
+ x = ( x + 0x10 ) - ( (int) ( ( 32.0 * pChip.dbチップサイズ倍率 ) / 2.0 ) );\r
+ if ( this.txチップ != null )\r
+ {\r
+ this.txチップ.t2D描画( CDTXMania.app.Device, x, num8 - 4, new Rectangle( 0x6c, num9 * 7, 0x20, 8 ) );\r
+ }\r
+ break;\r
+\r
+ case 0x15:\r
+ x = ( x + 0x10 ) - ( (int) ( ( 32.0 * pChip.dbチップサイズ倍率 ) / 2.0 ) );\r
+ if ( this.txチップ != null )\r
+ {\r
+ this.txチップ.t2D描画( CDTXMania.app.Device, x, num8 - 4, new Rectangle( 140, num9 * 7, 0x20, 8 ) );\r
+ }\r
+ break;\r
\r
- case EHHGroup.全部共通:\r
- if ( chipHO != null )\r
- {\r
- rChip = chipHO;\r
- }\r
- else if ( chipHC == null )\r
- {\r
- rChip = chipLC;\r
- }\r
- else if ( chipLC == null )\r
- {\r
- rChip = chipHC;\r
- }\r
- else if ( chipHC.n発声位置 < chipLC.n発声位置 )\r
- {\r
- rChip = chipHC;\r
- }\r
- else\r
- {\r
- rChip = chipLC;\r
- }\r
- break;\r
- }\r
- }\r
- //-----------------------------\r
- #endregion\r
- break;\r
+ case 0x16:\r
+ x = ( x + 0x13 ) - ( (int) ( ( 38.0 * pChip.dbチップサイズ倍率 ) / 2.0 ) );\r
+ if ( this.txチップ != null )\r
+ {\r
+ this.txチップ.t2D描画( CDTXMania.app.Device, x, num8 - 0x15, new Rectangle( 0xcc, 0x158, 0x26, 0x24 ) );\r
+ this.txチップ.t2D描画( CDTXMania.app.Device, x, num8 - 4, new Rectangle( 0xcc, num9 * 7, 0x26, 8 ) );\r
+ }\r
+ break;\r
\r
- case Eパッド.RD:\r
- #region [ *** ]\r
- //-----------------------------\r
- {\r
- CDTX.CChip chipCY = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( nTime, this.nパッド0Atoチャンネル0A[ 6 ], nInputAdjustTime );\r
- CDTX.CChip chipRD = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( nTime, this.nパッド0Atoチャンネル0A[ 8 ], nInputAdjustTime );\r
- if ( CDTXMania.ConfigIni.eCYGroup != ECYGroup.打ち分ける )\r
- rChip = ( chipRD != null ) ? chipRD : chipCY;\r
- else\r
- rChip = chipRD;\r
- }\r
- //-----------------------------\r
- #endregion\r
- break;\r
+ case 0x17:\r
+ x = ( x + 0x10 ) - ( (int) ( ( 32.0 * pChip.dbチップサイズ倍率 ) / 2.0 ) );\r
+ if ( this.txチップ != null )\r
+ {\r
+ this.txチップ.t2D描画( CDTXMania.app.Device, x, num8 - 4, new Rectangle( 0xac, num9 * 7, 0x20, 8 ) );\r
+ }\r
+ break;\r
\r
- case Eパッド.LC:\r
- #region [ *** ]\r
- //-----------------------------\r
- {\r
- CDTX.CChip chipHC = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( nTime, this.nパッド0Atoチャンネル0A[ 0 ], nInputAdjustTime );\r
- CDTX.CChip chipHO = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( nTime, this.nパッド0Atoチャンネル0A[ 7 ], nInputAdjustTime );\r
- CDTX.CChip chipLC = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( nTime, this.nパッド0Atoチャンネル0A[ 9 ], nInputAdjustTime );\r
- switch ( CDTXMania.ConfigIni.eHHGroup )\r
- {\r
- case EHHGroup.全部打ち分ける:\r
- case EHHGroup.左シンバルのみ打ち分ける:\r
- rChip = chipLC;\r
- break;\r
+ case 0x18:\r
+ x = ( x + 13 ) - ( (int) ( ( 26.0 * pChip.dbチップサイズ倍率 ) / 2.0 ) );\r
+ if ( this.txチップ != null )\r
+ {\r
+ this.txチップ.t2D描画( CDTXMania.app.Device, x, num8 - 4, new Rectangle( 0xf2, num9 * 7, 0x1a, 8 ) );\r
+ this.txチップ.t2D描画( CDTXMania.app.Device, x, num8 - 9, new Rectangle( 0xf2, 0x158, 0x1a, 0x12 ) );\r
+ }\r
+ break;\r
\r
- case EHHGroup.ハイハットのみ打ち分ける:\r
- case EHHGroup.全部共通:\r
- if ( chipLC != null )\r
- {\r
- rChip = chipLC;\r
- }\r
- else if ( chipHC == null )\r
- {\r
- rChip = chipHO;\r
- }\r
- else if ( chipHO == null )\r
- {\r
- rChip = chipHC;\r
- }\r
- else if ( chipHC.n発声位置 < chipHO.n発声位置 )\r
- {\r
- rChip = chipHC;\r
- }\r
- else\r
- {\r
- rChip = chipHO;\r
- }\r
- break;\r
- }\r
- }\r
- //-----------------------------\r
- #endregion\r
- break;\r
+ case 0x19:\r
+ x = ( x + 13 ) - ( (int) ( ( 26.0 * pChip.dbチップサイズ倍率 ) / 2.0 ) );\r
+ if ( this.txチップ != null )\r
+ {\r
+ this.txチップ.t2D描画( CDTXMania.app.Device, x, num8 - 4, new Rectangle( 0xf2, num9 * 7, 0x1a, 8 ) );\r
+ this.txチップ.t2D描画( CDTXMania.app.Device, x, num8 - 9, new Rectangle( 0xf2, 0x158, 0x1a, 0x12 ) );\r
+ }\r
+ break;\r
\r
- default:\r
- #region [ *** ]\r
- //-----------------------------\r
- rChip = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( nTime, this.nパッド0Atoチャンネル0A[ nPad ], nInputAdjustTime );\r
- //-----------------------------\r
- #endregion\r
- break;\r
- }\r
- //-----------------------------\r
- #endregion\r
+ case 0x1a:\r
+ x = ( x + 0x13 ) - ( (int) ( ( 38.0 * pChip.dbチップサイズ倍率 ) / 2.0 ) );\r
+ if ( this.txチップ != null )\r
+ {\r
+ this.txチップ.t2D描画( CDTXMania.app.Device, x, num8 - 0x15, new Rectangle( 0xcc, 0x158, 0x26, 0x24 ) );\r
+ this.txチップ.t2D描画( CDTXMania.app.Device, x, num8 - 4, new Rectangle( 0xcc, num9 * 7, 0x26, 8 ) );\r
+ }\r
+ break;\r
+ }\r
+ if ( this.txチップ != null )\r
+ {\r
+ this.txチップ.vc拡大縮小倍率 = new Vector3( 1f, 1f, 1f );\r
+ this.txチップ.n透明度 = 0xff;\r
+ }\r
+ }\r
\r
- #region [ *** ]\r
- //-----------------------------\r
- if( rChip != null )\r
+ int indexSevenLanes = this.nチャンネル0Atoレーン07[ pChip.nチャンネル番号 - 0x11 ];\r
+ if ( ( configIni.bAutoPlay[ indexSevenLanes ] && !pChip.bHit ) && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
+ {\r
+ pChip.bHit = true;\r
+ this.actLaneFlushD.Start( (Eドラムレーン) indexSevenLanes, ( (float) CInput管理.n通常音量 ) / 127f );\r
+ bool flag = this.bフィルイン中;\r
+ bool flag2 = this.bフィルイン中 && this.bフィルイン区間の最後のChipである( pChip );\r
+ bool flag3 = flag2;\r
+ this.actChipFireD.Start( (Eドラムレーン) indexSevenLanes, flag, flag2, flag3 );\r
+ this.actPad.Hit( this.nチャンネル0Atoパッド08[ pChip.nチャンネル番号 - 0x11 ] );\r
+ this.tサウンド再生( pChip, CDTXMania.Timer.n前回リセットした時のシステム時刻 + pChip.n発声時刻ms, E楽器パート.DRUMS, dTX.nモニタを考慮した音量( E楽器パート.DRUMS ) );\r
+ this.tチップのヒット処理( pChip.n発声時刻ms, pChip );\r
+ }\r
+ //break;\r
+ return;\r
+ } // end of "if configIni.bDrums有効"\r
+ if ( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
+ {\r
+ this.tサウンド再生( pChip, CDTXMania.Timer.n前回リセットした時のシステム時刻 + pChip.n発声時刻ms, E楽器パート.DRUMS, dTX.nモニタを考慮した音量( E楽器パート.DRUMS ) );\r
+ pChip.bHit = true;\r
+ }\r
+ }\r
+ protected override void t進行描画・チップ・ギター( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip )\r
+ {\r
+ if ( configIni.bGuitar有効 )\r
+ {\r
+ if ( configIni.bSudden.Guitar )\r
+ {\r
+ pChip.b可視 = pChip.nバーからの距離dot.Guitar < 200;\r
+ }\r
+ if ( configIni.bHidden.Guitar && ( pChip.nバーからの距離dot.Guitar < 100 ) )\r
+ {\r
+ pChip.b可視 = false;\r
+ }\r
+ if ( !pChip.bHit && pChip.b可視 )\r
+ {\r
+ int nバーからの距離 = configIni.bReverse.Guitar ? ( 0x176 - pChip.nバーからの距離dot.Guitar ) : ( 0x5f + pChip.nバーからの距離dot.Guitar );\r
+ if ( ( nバーからの距離 > 0x39 ) && ( nバーからの距離 < 0x19c ) )\r
+ {\r
+ int nアニメカウンタ現在の値 = this.ctチップ模様アニメ.Guitar.n現在の値;\r
+ if ( pChip.nチャンネル番号 == 0x20 )\r
{\r
- this.tサウンド再生( rChip, CDTXMania.Timer.nシステム時刻, E楽器パート.DRUMS, CDTXMania.ConfigIni.n手動再生音量, CDTXMania.ConfigIni.b演奏音を強調する.Drums );\r
+ if ( this.txチップ != null )\r
+ {\r
+ this.txチップ.t2D描画( CDTXMania.app.Device, 0x1fd, nバーからの距離 - 2, new Rectangle( 0x10c, 0x90 + ( ( nアニメカウンタ現在の値 % 5 ) * 6 ), 0x4c, 6 ) );\r
+ }\r
}\r
- if( CDTXMania.ConfigIni.bTight )\r
+ else if ( !configIni.bLeft.Guitar )\r
{\r
- this.tチップのヒット処理・BadならびにTight時のMiss( E楽器パート.DRUMS, this.nパッド0Atoレーン07[ nPad ] );\r
+ Rectangle rectangle = new Rectangle( 0x10c, nアニメカウンタ現在の値 * 6, 0x18, 6 );\r
+ if ( ( ( pChip.nチャンネル番号 & 4 ) != 0 ) && ( this.txチップ != null ) )\r
+ {\r
+ this.txチップ.t2D描画( CDTXMania.app.Device, 0x1fd, nバーからの距離 - 3, rectangle );\r
+ }\r
+ rectangle.X += 0x18;\r
+ if ( ( ( pChip.nチャンネル番号 & 2 ) != 0 ) && ( this.txチップ != null ) )\r
+ {\r
+ this.txチップ.t2D描画( CDTXMania.app.Device, 0x217, nバーからの距離 - 3, rectangle );\r
+ }\r
+ rectangle.X += 0x18;\r
+ if ( ( ( pChip.nチャンネル番号 & 1 ) != 0 ) && ( this.txチップ != null ) )\r
+ {\r
+ this.txチップ.t2D描画( CDTXMania.app.Device, 0x231, nバーからの距離 - 3, rectangle );\r
+ }\r
}\r
- //-----------------------------\r
- #endregion\r
- continue;\r
+ else\r
+ {\r
+ Rectangle rectangle2 = new Rectangle( 0x10c, nアニメカウンタ現在の値 * 6, 0x18, 6 );\r
+ if ( ( ( pChip.nチャンネル番号 & 4 ) != 0 ) && ( this.txチップ != null ) )\r
+ {\r
+ this.txチップ.t2D描画( CDTXMania.app.Device, 0x231, nバーからの距離 - 3, rectangle2 );\r
+ }\r
+ rectangle2.X += 0x18;\r
+ if ( ( ( pChip.nチャンネル番号 & 2 ) != 0 ) && ( this.txチップ != null ) )\r
+ {\r
+ this.txチップ.t2D描画( CDTXMania.app.Device, 0x217, nバーからの距離 - 3, rectangle2 );\r
+ }\r
+ rectangle2.X += 0x18;\r
+ if ( ( ( pChip.nチャンネル番号 & 1 ) != 0 ) && ( this.txチップ != null ) )\r
+ {\r
+ this.txチップ.t2D描画( CDTXMania.app.Device, 0x1fd, nバーからの距離 - 3, rectangle2 );\r
+ }\r
+ }\r
+ }\r
+ }\r
+ if ( ( configIni.bAutoPlay.Guitar && !pChip.bHit ) && ( pChip.nバーからの距離dot.Guitar < 0 ) )\r
+ {\r
+ pChip.bHit = true;\r
+ if ( ( ( pChip.nチャンネル番号 & 4 ) != 0 ) || ( pChip.nチャンネル番号 == 0x20 ) )\r
+ {\r
+ this.actChipFireGB.Start( 0 );\r
+ }\r
+ if ( ( ( pChip.nチャンネル番号 & 2 ) != 0 ) || ( pChip.nチャンネル番号 == 0x20 ) )\r
+ {\r
+ this.actChipFireGB.Start( 1 );\r
+ }\r
+ if ( ( ( pChip.nチャンネル番号 & 1 ) != 0 ) || ( pChip.nチャンネル番号 == 0x20 ) )\r
+ {\r
+ this.actChipFireGB.Start( 2 );\r
+ }\r
+ this.tサウンド再生( pChip, CDTXMania.Timer.n前回リセットした時のシステム時刻 + pChip.n発声時刻ms, E楽器パート.GUITAR, dTX.nモニタを考慮した音量( E楽器パート.GUITAR ) );\r
+ this.r次にくるギターChip = null;\r
+ this.tチップのヒット処理( pChip.n発声時刻ms, pChip );\r
+ }\r
+ //break;\r
+ return;\r
+ } // end of "if configIni.bDrums有効"\r
+ if ( !pChip.bHit && ( pChip.nバーからの距離dot.Guitar < 0 ) )\r
+ {\r
+ pChip.bHit = true;\r
+ this.tサウンド再生( pChip, CDTXMania.Timer.n前回リセットした時のシステム時刻 + pChip.n発声時刻ms, E楽器パート.GUITAR, dTX.nモニタを考慮した音量( E楽器パート.GUITAR ) );\r
+ }\r
+ }\r
+ protected override void t進行描画・チップ・ギター・ウェイリング( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip )\r
+ {\r
+ if ( configIni.bGuitar有効 )\r
+ {\r
+ if ( configIni.bSudden.Guitar )\r
+ {\r
+ pChip.b可視 = pChip.nバーからの距離dot.Guitar < 200;\r
+ }\r
+ if ( configIni.bHidden.Guitar && ( pChip.nバーからの距離dot.Guitar < 100 ) )\r
+ {\r
+ pChip.b可視 = false;\r
+ }\r
+ if ( !pChip.bHit && pChip.b可視 )\r
+ {\r
+ int num14 = 0x19;\r
+ int num15 = configIni.bReverse.Guitar ? ( 0x176 - pChip.nバーからの距離dot.Guitar ) : ( 0x5f + pChip.nバーからの距離dot.Guitar );\r
+ int num16 = num15 - 0x39;\r
+ int num17 = 0;\r
+ if ( ( num16 < ( 0x163 + num14 ) ) && ( num16 > -num14 ) )\r
+ {\r
+ int num18 = this.ctWailingチップ模様アニメ.n現在の値;\r
+ Rectangle rectangle5 = new Rectangle( 0x10c + ( num18 * 20 ), 0xae, 20, 50 );\r
+ if ( num16 < num14 )\r
+ {\r
+ rectangle5.Y += num14 - num16;\r
+ rectangle5.Height -= num14 - num16;\r
+ num17 = num14 - num16;\r
+ }\r
+ if ( num16 > ( 0x163 - num14 ) )\r
+ {\r
+ rectangle5.Height -= num16 - ( 0x163 - num14 );\r
+ }\r
+ if ( ( rectangle5.Bottom > rectangle5.Top ) && ( this.txチップ != null ) )\r
+ {\r
+ this.txチップ.t2D描画( CDTXMania.app.Device, 0x24c, ( num15 - num14 ) + num17, rectangle5 );\r
+ }\r
+ }\r
+ }\r
+ if ( !pChip.bHit && ( pChip.nバーからの距離dot.Guitar < 0 ) )\r
+ {\r
+ pChip.bHit = true;\r
+ if ( configIni.bAutoPlay.Guitar )\r
+ {\r
+ this.actWailingBonus.Start( E楽器パート.GUITAR, this.r現在の歓声Chip.Guitar );\r
}\r
}\r
+ return;\r
+ }\r
+ pChip.bHit = true;\r
+ }\r
+ protected override void t進行描画・チップ・フィルイン( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip )\r
+ {\r
+ if ( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
+ {\r
+ pChip.bHit = true;\r
+ switch ( pChip.n整数値 )\r
+ {\r
+ case 0x01: // フィルイン開始\r
+ if ( configIni.bフィルイン有効 )\r
+ {\r
+ this.bフィルイン中 = true;\r
+ }\r
+ break;\r
+\r
+ case 0x02: // フィルイン終了\r
+ if ( configIni.bフィルイン有効 )\r
+ {\r
+ this.bフィルイン中 = false;\r
+ }\r
+ if ( ( ( this.actCombo.n現在のコンボ数.Drums > 0 ) || configIni.bドラムが全部オートプレイである ) && configIni.b歓声を発声する )\r
+ {\r
+ if ( this.r現在の歓声Chip.Drums != null )\r
+ {\r
+ dTX.tチップの再生( this.r現在の歓声Chip.Drums, CDTXMania.Timer.nシステム時刻, 10, dTX.nモニタを考慮した音量( E楽器パート.UNKNOWN ) );\r
+ }\r
+ else\r
+ {\r
+ CDTXMania.Skin.sound歓声音.n位置・次に鳴るサウンド = 0;\r
+ CDTXMania.Skin.sound歓声音.t再生する();\r
+ }\r
+ }\r
+ break;\r
+#if TEST_NOTEOFFMODE // 2011.1.1 yyagi TEST\r
+ case 0x04: // HH消音あり(従来同等)\r
+ CDTXMania.DTX.bHH演奏で直前のHHを消音する = true;\r
+ break;\r
+ case 0x05: // HH消音無し\r
+ CDTXMania.DTX.bHH演奏で直前のHHを消音する = false;\r
+ break;\r
+ case 0x06: // ギター消音あり(従来同等)\r
+ CDTXMania.DTX.bGUITAR演奏で直前のGUITARを消音する = true;\r
+ break;\r
+ case 0x07: // ギター消音無し\r
+ CDTXMania.DTX.bGUITAR演奏で直前のGUITARを消音する = false;\r
+ break;\r
+ case 0x08: // ベース消音あり(従来同等)\r
+ CDTXMania.DTX.bBASS演奏で直前のBASSを消音する = true;\r
+ break;\r
+ case 0x09: // ベース消音無し\r
+ CDTXMania.DTX.bBASS演奏で直前のBASSを消音する = false;\r
+ break;\r
+#endif\r
+ }\r
}\r
}\r
- protected override void t入力処理・ベース()\r
+ protected override void t進行描画・チップ・ベース( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip )\r
{\r
- if ( CDTXMania.Pad.b押されている( E楽器パート.BASS, Eパッド.Decide ) && CDTXMania.Pad.b押された( E楽器パート.BASS, Eパッド.B ) )\r
+ if ( configIni.bGuitar有効 )\r
{\r
- CDTXMania.ConfigIni.n譜面スクロール速度.Bass = Math.Min( CDTXMania.ConfigIni.n譜面スクロール速度.Bass + 1, 0x7cf );\r
+ if ( configIni.bSudden.Bass )\r
+ {\r
+ pChip.b可視 = pChip.nバーからの距離dot.Bass < 200;\r
+ }\r
+ if ( configIni.bHidden.Bass && ( pChip.nバーからの距離dot.Bass < 100 ) )\r
+ {\r
+ pChip.b可視 = false;\r
+ }\r
+ if ( !pChip.bHit && pChip.b可視 )\r
+ {\r
+ int num12 = configIni.bReverse.Bass ? ( 0x176 - pChip.nバーからの距離dot.Bass ) : ( 0x5f + pChip.nバーからの距離dot.Bass );\r
+ if ( ( num12 > 0x39 ) && ( num12 < 0x19c ) )\r
+ {\r
+ int num13 = this.ctチップ模様アニメ.Bass.n現在の値;\r
+ if ( pChip.nチャンネル番号 == 160 )\r
+ {\r
+ if ( this.txチップ != null )\r
+ {\r
+ this.txチップ.t2D描画( CDTXMania.app.Device, 400, num12 - 2, new Rectangle( 0x10c, 0x90 + ( ( num13 % 5 ) * 6 ), 0x4c, 6 ) );\r
+ }\r
+ }\r
+ else if ( !configIni.bLeft.Bass )\r
+ {\r
+ Rectangle rectangle3 = new Rectangle( 0x10c, num13 * 6, 0x18, 6 );\r
+ if ( ( ( pChip.nチャンネル番号 & 4 ) != 0 ) && ( this.txチップ != null ) )\r
+ {\r
+ this.txチップ.t2D描画( CDTXMania.app.Device, 400, num12 - 3, rectangle3 );\r
+ }\r
+ rectangle3.X += 0x18;\r
+ if ( ( ( pChip.nチャンネル番号 & 2 ) != 0 ) && ( this.txチップ != null ) )\r
+ {\r
+ this.txチップ.t2D描画( CDTXMania.app.Device, 0x1aa, num12 - 3, rectangle3 );\r
+ }\r
+ rectangle3.X += 0x18;\r
+ if ( ( ( pChip.nチャンネル番号 & 1 ) != 0 ) && ( this.txチップ != null ) )\r
+ {\r
+ this.txチップ.t2D描画( CDTXMania.app.Device, 0x1c4, num12 - 3, rectangle3 );\r
+ }\r
+ }\r
+ else\r
+ {\r
+ Rectangle rectangle4 = new Rectangle( 0x10c, num13 * 6, 0x18, 6 );\r
+ if ( ( ( pChip.nチャンネル番号 & 4 ) != 0 ) && ( this.txチップ != null ) )\r
+ {\r
+ this.txチップ.t2D描画( CDTXMania.app.Device, 0x1c4, num12 - 3, rectangle4 );\r
+ }\r
+ rectangle4.X += 0x18;\r
+ if ( ( ( pChip.nチャンネル番号 & 2 ) != 0 ) && ( this.txチップ != null ) )\r
+ {\r
+ this.txチップ.t2D描画( CDTXMania.app.Device, 0x1aa, num12 - 3, rectangle4 );\r
+ }\r
+ rectangle4.X += 0x18;\r
+ if ( ( ( pChip.nチャンネル番号 & 1 ) != 0 ) && ( this.txチップ != null ) )\r
+ {\r
+ this.txチップ.t2D描画( CDTXMania.app.Device, 400, num12 - 3, rectangle4 );\r
+ }\r
+ }\r
+ }\r
+ }\r
+ if ( ( configIni.bAutoPlay.Bass && !pChip.bHit ) && ( pChip.nバーからの距離dot.Bass < 0 ) )\r
+ {\r
+ pChip.bHit = true;\r
+ if ( ( ( pChip.nチャンネル番号 & 4 ) != 0 ) || ( pChip.nチャンネル番号 == 160 ) )\r
+ {\r
+ this.actChipFireGB.Start( 3 );\r
+ }\r
+ if ( ( ( pChip.nチャンネル番号 & 2 ) != 0 ) || ( pChip.nチャンネル番号 == 160 ) )\r
+ {\r
+ this.actChipFireGB.Start( 4 );\r
+ }\r
+ if ( ( ( pChip.nチャンネル番号 & 1 ) != 0 ) || ( pChip.nチャンネル番号 == 160 ) )\r
+ {\r
+ this.actChipFireGB.Start( 5 );\r
+ }\r
+ this.tサウンド再生( pChip, CDTXMania.Timer.n前回リセットした時のシステム時刻 + pChip.n発声時刻ms, E楽器パート.BASS, dTX.nモニタを考慮した音量( E楽器パート.BASS ) );\r
+ this.r次にくるベースChip = null;\r
+ this.tチップのヒット処理( pChip.n発声時刻ms, pChip );\r
+ }\r
+ return;\r
}\r
- if ( CDTXMania.Pad.b押されている( E楽器パート.BASS, Eパッド.Decide ) && CDTXMania.Pad.b押された( E楽器パート.BASS, Eパッド.R ) )\r
+ if ( !pChip.bHit && ( pChip.nバーからの距離dot.Bass < 0 ) )\r
{\r
- CDTXMania.ConfigIni.n譜面スクロール速度.Bass = Math.Max( CDTXMania.ConfigIni.n譜面スクロール速度.Bass - 1, 0 );\r
+ this.tサウンド再生( pChip, CDTXMania.Timer.n前回リセットした時のシステム時刻 + pChip.n発声時刻ms, E楽器パート.BASS, dTX.nモニタを考慮した音量( E楽器パート.BASS ) );\r
+ pChip.bHit = true;\r
}\r
-\r
- if ( CDTXMania.ConfigIni.bGuitar有効 && CDTXMania.DTX.bチップがある.Bass )\r
+ }\r
+ protected override void t進行描画・チップ・ベース・ウェイリング( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip )\r
+ {\r
+ if ( configIni.bGuitar有効 )\r
{\r
- if( bIsAutoPlay.Bass )\r
+ if ( configIni.bSudden.Bass )\r
+ {\r
+ pChip.b可視 = pChip.nバーからの距離dot.Bass < 200;\r
+ }\r
+ if ( configIni.bHidden.Bass && ( pChip.nバーからの距離dot.Bass < 100 ) )\r
+ {\r
+ pChip.b可視 = false;\r
+ }\r
+ if ( !pChip.bHit && pChip.b可視 )\r
{\r
- CDTX.CChip chip = this.r次にくるベースChipを更新して返す();\r
- if( chip != null )\r
+ int num19 = 0x19;\r
+ int num20 = configIni.bReverse.Bass ? ( 0x176 - pChip.nバーからの距離dot.Bass ) : ( 0x5f + pChip.nバーからの距離dot.Bass );\r
+ int num21 = num20 - 0x39;\r
+ int num22 = 0;\r
+ if ( ( num21 < ( 0x163 + num19 ) ) && ( num21 > -num19 ) )\r
{\r
- if( ( chip.nチャンネル番号 & 4 ) != 0 )\r
+ int num23 = this.ctWailingチップ模様アニメ.n現在の値;\r
+ Rectangle rectangle6 = new Rectangle( 0x10c + ( num23 * 20 ), 0xae, 20, 50 );\r
+ if ( num21 < num19 )\r
{\r
- this.actLaneFlushGB.Start( 3 );\r
- this.actRGB.Push( 3 );\r
+ rectangle6.Y += num19 - num21;\r
+ rectangle6.Height -= num19 - num21;\r
+ num22 = num19 - num21;\r
}\r
- if( ( chip.nチャンネル番号 & 2 ) != 0 )\r
+ if ( num21 > ( 0x163 - num19 ) )\r
{\r
- this.actLaneFlushGB.Start( 4 );\r
- this.actRGB.Push( 4 );\r
+ rectangle6.Height -= num21 - ( 0x163 - num19 );\r
}\r
- if( ( chip.nチャンネル番号 & 1 ) != 0 )\r
+ if ( ( rectangle6.Bottom > rectangle6.Top ) && ( this.txチップ != null ) )\r
{\r
- this.actLaneFlushGB.Start( 5 );\r
- this.actRGB.Push( 5 );\r
+ this.txチップ.t2D描画( CDTXMania.app.Device, 0x1df, ( num20 - num19 ) + num22, rectangle6 );\r
}\r
}\r
}\r
- else\r
+ if ( !pChip.bHit && ( pChip.nバーからの距離dot.Bass < 0 ) )\r
{\r
- int flagR = CDTXMania.Pad.b押されている( E楽器パート.BASS, Eパッド.R ) ? 4 : 0;\r
- this.t入力メソッド記憶( E楽器パート.BASS );\r
- int flagG = CDTXMania.Pad.b押されている( E楽器パート.BASS, Eパッド.G ) ? 2 : 0;\r
- this.t入力メソッド記憶( E楽器パート.BASS );\r
- int flagB = CDTXMania.Pad.b押されている( E楽器パート.BASS, Eパッド.B ) ? 1 : 0;\r
- this.t入力メソッド記憶( E楽器パート.BASS );\r
- int flagRGB = flagR | flagG | flagB;\r
- if( flagR != 0 )\r
- {\r
- this.actLaneFlushGB.Start( 3 );\r
- this.actRGB.Push( 3 );\r
- }\r
- if( flagG != 0 )\r
- {\r
- this.actLaneFlushGB.Start( 4 );\r
- this.actRGB.Push( 4 );\r
- }\r
- if( flagB != 0 )\r
- {\r
- this.actLaneFlushGB.Start( 5 );\r
- this.actRGB.Push( 5 );\r
- }\r
- List<STInputEvent> events = CDTXMania.Pad.GetEvents( E楽器パート.BASS, Eパッド.Pick );\r
- if( ( events != null ) && ( events.Count > 0 ) )\r
- {\r
- foreach( STInputEvent event2 in events )\r
- {\r
- CDTX.CChip chip4;\r
- if( !event2.b押された )\r
- {\r
- continue;\r
- }\r
- this.t入力メソッド記憶( E楽器パート.BASS );\r
- long nTime = event2.nTimeStamp - CDTXMania.Timer.n前回リセットした時のシステム時刻;\r
- CDTX.CChip pChip = this.r指定時刻に一番近い未ヒットChip( nTime, 0xaf, this.nInputAdjustTimeMs.Bass );\r
- E判定 e判定 = this.e指定時刻からChipのJUDGEを返す( nTime, pChip, this.nInputAdjustTimeMs.Bass );\r
- if( ( ( pChip != null ) && ( ( pChip.nチャンネル番号 & 15 ) == flagRGB ) ) && ( e判定 != E判定.Miss ) )\r
- {\r
- if( ( flagR != 0 ) || ( flagRGB == 0 ) )\r
- {\r
- this.actChipFireGB.Start( 3 );\r
- }\r
- if( ( flagG != 0 ) || ( flagRGB == 0 ) )\r
- {\r
- this.actChipFireGB.Start( 4 );\r
- }\r
- if( ( flagB != 0 ) || ( flagRGB == 0 ) )\r
- {\r
- this.actChipFireGB.Start( 5 );\r
- }\r
- this.tチップのヒット処理( nTime, pChip );\r
- this.tサウンド再生( pChip, CDTXMania.Timer.nシステム時刻, E楽器パート.BASS, CDTXMania.ConfigIni.n手動再生音量, CDTXMania.ConfigIni.b演奏音を強調する.Bass, e判定 == E判定.Poor );\r
- CDTX.CChip item = this.r指定時刻に一番近い未ヒットChip( nTime, 0xa8, this.nInputAdjustTimeMs.Bass, 140 );\r
- if( item != null )\r
- {\r
- this.queWailing.Bass.Enqueue( item );\r
- }\r
- continue;\r
- }\r
- if ( ( ( chip4 = this.r現在の空うちベースChip ) != null ) || ( ( chip4 = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( nTime, 0xaf, this.nInputAdjustTimeMs.Bass ) ) != null ) )\r
- {\r
- this.tサウンド再生( chip4, CDTXMania.Timer.nシステム時刻, E楽器パート.BASS, CDTXMania.ConfigIni.n手動再生音量, CDTXMania.ConfigIni.b演奏音を強調する.Bass, true );\r
- }\r
- if( !CDTXMania.ConfigIni.bLight.Bass )\r
- {\r
- this.tチップのヒット処理・BadならびにTight時のMiss( E楽器パート.BASS );\r
- }\r
- }\r
- }\r
- List<STInputEvent> list2 = CDTXMania.Pad.GetEvents( E楽器パート.BASS, Eパッド.Wail );\r
- if( ( list2 != null ) && ( list2.Count > 0 ) )\r
+ pChip.bHit = true;\r
+ if ( configIni.bAutoPlay.Bass )\r
{\r
- foreach( STInputEvent event3 in list2 )\r
- {\r
- CDTX.CChip chip5;\r
- if( !event3.b押された )\r
- {\r
- continue;\r
- }\r
- long num6 = event3.nTimeStamp - CDTXMania.Timer.n前回リセットした時のシステム時刻;\r
- while( ( this.queWailing.Bass.Count > 0 ) && ( ( chip5 = this.queWailing.Bass.Dequeue() ) != null ) )\r
- {\r
- if( ( num6 - chip5.n発声時刻ms ) <= 1000 ) // #24245 2011.1.26 yyagi: 800 -> 1000\r
- {\r
- chip5.bHit = true;\r
- this.actWailingBonus.Start( E楽器パート.BASS, this.r現在の歓声Chip.Bass );\r
- if( !bIsAutoPlay.Bass )\r
- {\r
- int nCombo = ( this.actCombo.n現在のコンボ数.Bass < 500 ) ? this.actCombo.n現在のコンボ数.Bass : 500;\r
- this.actScore.Set( E楽器パート.BASS, this.actScore.Get( E楽器パート.BASS ) + ( nCombo * 3000L ) ); // #24245 2011.1.26 yyagi changed DRUMS->BASS, add nCombo conditions\r
- }\r
- }\r
- }\r
- }\r
+ this.actWailingBonus.Start( E楽器パート.BASS, this.r現在の歓声Chip.Bass );\r
}\r
}\r
+ return;\r
}\r
+ pChip.bHit = true;\r
}\r
-\r
- protected override void t背景テクスチャの生成()\r
+ protected override void t進行描画・チップ・空打ち音設定・ドラム( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip )\r
{\r
- Rectangle bgrect = new Rectangle( 338, 57, 278, 355 );\r
- string DefaultBgFilename = @"Graphics\ScreenPlayDrums background.jpg";\r
- string BgFilename = "";\r
- if ( ( ( CDTXMania.DTX.BACKGROUND != null ) && ( CDTXMania.DTX.BACKGROUND.Length > 0 ) ) && !CDTXMania.ConfigIni.bストイックモード )\r
+ if ( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
{\r
- BgFilename = CDTXMania.DTX.strフォルダ名 + CDTXMania.DTX.BACKGROUND;\r
+ pChip.bHit = true;\r
+ this.r現在の空うちドラムChip[ (int) this.eチャンネルtoパッド[ pChip.nチャンネル番号 - 0xb1 ] ] = pChip;\r
+ pChip.nチャンネル番号 = ( pChip.nチャンネル番号 != 0xbc ) ? ( ( pChip.nチャンネル番号 - 0xb1 ) + 0x11 ) : 0x1a;\r
+ }\r
+ }\r
+ protected override void t進行描画・チップ・小節線( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip )\r
+ {\r
+ int n小節番号plus1 = pChip.n発声位置 / 384;\r
+ if ( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
+ {\r
+ pChip.bHit = true;\r
+ this.actPlayInfo.n小節番号 = n小節番号plus1 - 1;\r
+ if ( configIni.bWave再生位置自動調整機能有効 )\r
+ {\r
+ dTX.tWave再生位置自動補正();\r
+ }\r
+ }\r
+ if ( configIni.bDrums有効 )\r
+ {\r
+ if ( configIni.b演奏情報を表示する && ( configIni.eDark == Eダークモード.OFF ) )\r
+ {\r
+ int n小節番号 = n小節番号plus1 - 1;\r
+ CDTXMania.act文字コンソール.tPrint( 0x14d, configIni.bReverse.Drums ? ( ( 0x38 + pChip.nバーからの距離dot.Drums ) - 0x11 ) : ( ( 0x1a6 - pChip.nバーからの距離dot.Drums ) - 0x11 ), C文字コンソール.Eフォント種別.白, n小節番号.ToString() );\r
+ }\r
+ if ( ( ( configIni.eDark != Eダークモード.FULL ) && pChip.b可視 ) && ( this.txチップ != null ) )\r
+ {\r
+ this.txチップ.t2D描画( CDTXMania.app.Device, 0x23, configIni.bReverse.Drums ? ( ( 0x38 + pChip.nバーからの距離dot.Drums ) - 1 ) : ( ( 0x1a6 - pChip.nバーからの距離dot.Drums ) - 1 ), new Rectangle( 0, 0x1bc, 0x128, 2 ) );\r
+ }\r
+ }\r
+ if ( ( pChip.b可視 && configIni.bGuitar有効 ) && ( configIni.eDark != Eダークモード.FULL ) )\r
+ {\r
+ int y = configIni.bReverse.Guitar ? ( ( 0x176 - pChip.nバーからの距離dot.Guitar ) - 1 ) : ( ( 0x5f + pChip.nバーからの距離dot.Guitar ) - 1 );\r
+ if ( ( dTX.bチップがある.Guitar && ( y > 0x39 ) ) && ( ( y < 0x19c ) && ( this.txチップ != null ) ) )\r
+ {\r
+ this.txチップ.t2D描画( CDTXMania.app.Device, 0x1fb, y, new Rectangle( 0, 450, 0x4e, 1 ) );\r
+ }\r
+ y = configIni.bReverse.Bass ? ( ( 0x176 - pChip.nバーからの距離dot.Bass ) - 1 ) : ( ( 0x5f + pChip.nバーからの距離dot.Bass ) - 1 );\r
+ if ( ( dTX.bチップがある.Bass && ( y > 0x39 ) ) && ( ( y < 0x19c ) && ( this.txチップ != null ) ) )\r
+ {\r
+ this.txチップ.t2D描画( CDTXMania.app.Device, 0x18e, y, new Rectangle( 0, 450, 0x4e, 1 ) );\r
+ }\r
}\r
- base.t背景テクスチャの生成( DefaultBgFilename, bgrect, BgFilename );\r
}\r
- //private void t背景テクスチャの生成()\r
- //{\r
- // Bitmap image = null;\r
- // string path = "";\r
- // bool flag = true;\r
- // if( ( ( CDTXMania.DTX.BACKGROUND != null ) && ( CDTXMania.DTX.BACKGROUND.Length > 0 ) ) && !CDTXMania.ConfigIni.bストイックモード )\r
- // {\r
- // path = CDTXMania.DTX.strフォルダ名 + CDTXMania.DTX.BACKGROUND;\r
- // if( File.Exists( path ) )\r
- // {\r
- // try\r
- // {\r
- // Bitmap bitmap2 = null;\r
- // bitmap2 = new Bitmap( path );\r
- // if( ( bitmap2.Size.Width == 0 ) && ( bitmap2.Size.Height == 0 ) )\r
- // {\r
- // this.tx背景 = null;\r
- // return;\r
- // }\r
- // Bitmap bitmap3 = new Bitmap( 640, 480 );\r
- // Graphics graphics = Graphics.FromImage( bitmap3 );\r
- // for( int i = 0; i < 480; i += bitmap2.Size.Height )\r
- // {\r
- // for( int j = 0; j < 640; j += bitmap2.Size.Width )\r
- // {\r
- // graphics.DrawImage( bitmap2, j, i, bitmap2.Width, bitmap2.Height );\r
- // }\r
- // }\r
- // graphics.Dispose();\r
- // bitmap2.Dispose();\r
- // image = new Bitmap( CSkin.Path( @"Graphics\ScreenPlayDrums background.jpg" ) );\r
- // graphics = Graphics.FromImage( image );\r
- // ColorMatrix matrix2 = new ColorMatrix();\r
- // matrix2.Matrix00 = 1f;\r
- // matrix2.Matrix11 = 1f;\r
- // matrix2.Matrix22 = 1f;\r
- // matrix2.Matrix33 = ( (float) CDTXMania.ConfigIni.n背景の透過度 ) / 255f;\r
- // matrix2.Matrix44 = 1f;\r
- // ColorMatrix newColorMatrix = matrix2;\r
- // ImageAttributes imageAttr = new ImageAttributes();\r
- // imageAttr.SetColorMatrix( newColorMatrix );\r
- // graphics.DrawImage( bitmap3, new Rectangle( 0, 0, 640, 480 ), 0, 0, 640, 480, GraphicsUnit.Pixel, imageAttr );\r
- // imageAttr.Dispose();\r
- // graphics.DrawImage( bitmap3, new Rectangle( 0x152, 0x39, 0x116, 0x163 ), 0x152, 0x39, 0x116, 0x163, GraphicsUnit.Pixel );\r
- // graphics.Dispose();\r
- // bitmap3.Dispose();\r
- // flag = false;\r
- // }\r
- // catch\r
- // {\r
- // Trace.TraceError( "背景画像の読み込みに失敗しました。({0})", new object[] { path } );\r
- // }\r
- // }\r
- // }\r
- // if( flag )\r
- // {\r
- // path = CSkin.Path( @"Graphics\ScreenPlayDrums background.jpg" );\r
- // try\r
- // {\r
- // image = new Bitmap( path );\r
- // }\r
- // catch\r
- // {\r
- // Trace.TraceError( "背景画像の読み込みに失敗しました。({0})", new object[] { path } );\r
- // this.tx背景 = null;\r
- // return;\r
- // }\r
- // }\r
- // if( ( CDTXMania.DTX.listBMP.Count > 0 ) || ( CDTXMania.DTX.listBMPTEX.Count > 0 ) )\r
- // {\r
- // Graphics graphics2 = Graphics.FromImage( image );\r
- // graphics2.FillRectangle( Brushes.Black, 0x152, 0x39, 0x116, 0x163 );\r
- // graphics2.Dispose();\r
- // }\r
- // try\r
- // {\r
- // this.tx背景 = new CTexture( CDTXMania.app.Device, image, CDTXMania.TextureFormat );\r
- // }\r
- // catch( CTextureCreateFailedException )\r
- // {\r
- // Trace.TraceError( "背景テクスチャの生成に失敗しました。" );\r
- // this.tx背景 = null;\r
- // }\r
- // image.Dispose();\r
- //}\r
-\r
-\r
-//#if true // DAMAGELEVELTUNING\r
-// // ----------------------------------\r
-// public float[,] fDamageGaugeDelta = { // #23625 2011.1.10 ickw_284: tuned damage/recover factors\r
-// // drums, guitar, bass\r
-// { 0.004f, 0.006f, 0.006f },\r
-// { 0.002f, 0.003f, 0.003f },\r
-// { 0.000f, 0.000f, 0.000f },\r
-// { -0.020f, -0.030f, -0.030f },\r
-// { -0.050f, -0.050f, -0.050f }\r
-// };\r
-// public float[] fDamageLevelFactor = {\r
-// 0.5f, 1.0f, 1.5f\r
-// };\r
-// // ----------------------------------\r
-//#endif\r
-\r
-// private void t判定にあわせてゲージを増減する( E楽器パート part, E判定 e今回の判定 )\r
-// {\r
-// double fDamage;\r
-\r
-//#if true // DAMAGELEVELTUNING\r
-// switch (e今回の判定)\r
-// {\r
-// case E判定.Perfect:\r
-// case E判定.Great:\r
-// case E判定.Good:\r
-// case E判定.Poor:\r
-// fDamage = fDamageGaugeDelta[(int)e今回の判定, (int)part];\r
-// break;\r
-// case E判定.Miss:\r
-// fDamage = fDamageGaugeDelta[(int)e今回の判定, (int)part];\r
-// switch (CDTXMania.ConfigIni.eダメージレベル)\r
-// {\r
-// case Eダメージレベル.少ない:\r
-// case Eダメージレベル.普通:\r
-// case Eダメージレベル.大きい:\r
-// fDamage *= fDamageLevelFactor[(int)CDTXMania.ConfigIni.eダメージレベル];\r
-// break;\r
-// }\r
-// break;\r
-\r
-// default:\r
-// fDamage = 0.0f;\r
-// break;\r
-// }\r
-//#else // before applying #23625 modifications\r
-// switch (e今回の判定)\r
-// {\r
-// case E判定.Perfect:\r
-// fDamage = ( part == E楽器パート.DRUMS ) ? 0.01 : 0.015;\r
-// break;\r
-\r
-// case E判定.Great:\r
-// fDamage = ( part == E楽器パート.DRUMS ) ? 0.006 : 0.009;\r
-// break;\r
-\r
-// case E判定.Good:\r
-// fDamage = ( part == E楽器パート.DRUMS ) ? 0.002 : 0.003;\r
-// break;\r
-\r
-// case E判定.Poor:\r
-// fDamage = ( part == E楽器パート.DRUMS ) ? 0.0 : 0.0;\r
-// break;\r
-\r
-// case E判定.Miss:\r
-// fDamage = ( part == E楽器パート.DRUMS ) ? -0.035 : -0.035;\r
-// switch( CDTXMania.ConfigIni.eダメージレベル )\r
-// {\r
-// case Eダメージレベル.少ない:\r
-// fDamage *= 0.6;\r
-// break;\r
-\r
-// case Eダメージレベル.普通:\r
-// fDamage *= 1.0;\r
-// break;\r
-\r
-// case Eダメージレベル.大きい:\r
-// fDamage *= 1.6;\r
-// break;\r
-// }\r
-// break;\r
-\r
-// default:\r
-// fDamage = 0.0;\r
-// break;\r
-// }\r
-//#endif\r
-// this.actGauge.db現在のゲージ値 += fDamage;\r
-\r
-// if( this.actGauge.db現在のゲージ値 > 1.0 )\r
-// this.actGauge.db現在のゲージ値 = 1.0;\r
-// }\r
- //-----------------\r
#endregion\r
}\r
}\r