OSDN Git Service

続6・演奏画面のリファクタ。ドラムとギター画面で共通で使用しているメソッドを1つにまとめる作業。演奏結果を生成するところを束ねた。今度こそ一段落とする予定。
[dtxmania/dtxmania.git] / DTXManiaプロジェクト / コード / ステージ / 07.演奏 / ギター画面 / CStage演奏ギター画面.cs
1 using System;\r
2 using System.Collections.Generic;\r
3 using System.Text;\r
4 using System.Runtime.InteropServices;\r
5 using System.Drawing;\r
6 using System.Drawing.Imaging;\r
7 using System.IO;\r
8 using System.Diagnostics;\r
9 using SlimDX.Direct3D9;\r
10 using FDK;\r
11 \r
12 namespace DTXMania\r
13 {\r
14         internal class CStage演奏ギター画面 : CStage演奏画面共通\r
15         {\r
16                 // コンストラクタ\r
17 \r
18                 public CStage演奏ギター画面()\r
19                 {\r
20                         base.eステージID = CStage.Eステージ.演奏;\r
21                         base.eフェーズID = CStage.Eフェーズ.共通_通常状態;\r
22                         base.b活性化してない = true;\r
23                         base.list子Activities.Add( this.actStageFailed = new CAct演奏ステージ失敗() );\r
24                         base.list子Activities.Add( this.actAVI = new CAct演奏AVI() );\r
25                         base.list子Activities.Add( this.actBGA = new CAct演奏BGA() );\r
26                         base.list子Activities.Add( this.actPanel = new CAct演奏パネル文字列() );\r
27                         base.list子Activities.Add( this.act譜面スクロール速度 = new CAct演奏スクロール速度() );\r
28                         base.list子Activities.Add( this.actStatusPanels = new CAct演奏Guitarステータスパネル() );\r
29                         base.list子Activities.Add( this.actWailingBonus = new CAct演奏GuitarWailingBonus() );\r
30                         base.list子Activities.Add( this.actScore = new CAct演奏Guitarスコア() );\r
31                         base.list子Activities.Add( this.actRGB = new CAct演奏GuitarRGB() );\r
32                         base.list子Activities.Add( this.actLaneFlushGB = new CAct演奏GuitarレーンフラッシュGB() );\r
33                         base.list子Activities.Add( this.actJudgeString = new CAct演奏Guitar判定文字列() );\r
34                         base.list子Activities.Add( this.actGauge = new CAct演奏Guitarゲージ() );\r
35                         base.list子Activities.Add( this.actCombo = new CAct演奏Guitarコンボ() );\r
36                         base.list子Activities.Add( this.actChipFireGB = new CAct演奏Guitarチップファイア() );\r
37                         base.list子Activities.Add( this.actPlayInfo = new CAct演奏演奏情報() );\r
38                         base.list子Activities.Add( this.actFI = new CActFIFOBlack() );\r
39                         base.list子Activities.Add( this.actFO = new CActFIFOBlack() );\r
40                         base.list子Activities.Add( this.actFOClear = new CActFIFOWhite() );\r
41                 }\r
42 \r
43 \r
44                 // メソッド\r
45 \r
46                 public void t演奏結果を格納する( out CScoreIni.C演奏記録 Drums, out CScoreIni.C演奏記録 Guitar, out CScoreIni.C演奏記録 Bass )\r
47                 {\r
48                         Drums = new CScoreIni.C演奏記録();\r
49                         //Guitar = new CScoreIni.C演奏記録();\r
50                         //Bass = new CScoreIni.C演奏記録();\r
51 \r
52                         base.t演奏結果を格納する・ギター( out Guitar );\r
53                         base.t演奏結果を格納する・ベース( out Bass );\r
54 \r
55                         #region [Guitar処理(注釈化)]\r
56                         //if( CDTXMania.DTX.bチップがある.Guitar )\r
57                         //{\r
58                         //    Guitar.nスコア = this.actScore.Get( E楽器パート.GUITAR );\r
59                         //    Guitar.dbゲーム型スキル値 = CScoreIni.tゲーム型スキルを計算して返す( CDTXMania.DTX.LEVEL.Guitar, CDTXMania.DTX.n可視チップ数.Guitar, this.nヒット数・Auto含まない.Guitar.Perfect, this.actCombo.n現在のコンボ数.Guitar最高値 );\r
60                         //    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
61                         //    Guitar.nPerfect数 = CDTXMania.ConfigIni.bAutoPlay.Guitar ? this.nヒット数・Auto含む.Guitar.Perfect : this.nヒット数・Auto含まない.Guitar.Perfect;\r
62                         //    Guitar.nGreat数 = CDTXMania.ConfigIni.bAutoPlay.Guitar ? this.nヒット数・Auto含む.Guitar.Great : this.nヒット数・Auto含まない.Guitar.Great;\r
63                         //    Guitar.nGood数 = CDTXMania.ConfigIni.bAutoPlay.Guitar ? this.nヒット数・Auto含む.Guitar.Good : this.nヒット数・Auto含まない.Guitar.Good;\r
64                         //    Guitar.nPoor数 = CDTXMania.ConfigIni.bAutoPlay.Guitar ? this.nヒット数・Auto含む.Guitar.Poor : this.nヒット数・Auto含まない.Guitar.Poor;\r
65                         //    Guitar.nMiss数 = CDTXMania.ConfigIni.bAutoPlay.Guitar ? this.nヒット数・Auto含む.Guitar.Miss : this.nヒット数・Auto含まない.Guitar.Miss;\r
66                         //    Guitar.n最大コンボ数 = this.actCombo.n現在のコンボ数.Guitar最高値;\r
67                         //    Guitar.n全チップ数 = CDTXMania.DTX.n可視チップ数.Guitar;\r
68                         //    for ( int i = 0; i < 10; i++ )\r
69                         //    {\r
70                         //        Guitar.bAutoPlay[ i ] = CDTXMania.ConfigIni.bAutoPlay[ i ];\r
71                         //    }\r
72                         //    Guitar.bTight = CDTXMania.ConfigIni.bTight;\r
73                         //    for( int i = 0; i < 3; i++ )\r
74                         //    {\r
75                         //        Guitar.bSudden[ i ] = CDTXMania.ConfigIni.bSudden[ i ];\r
76                         //        Guitar.bHidden[ i ] = CDTXMania.ConfigIni.bHidden[ i ];\r
77                         //        Guitar.bReverse[ i ] = CDTXMania.ConfigIni.bReverse[ i ];\r
78                         //        Guitar.eRandom[ i ] = CDTXMania.ConfigIni.eRandom[ i ];\r
79                         //        Guitar.bLight[ i ] = CDTXMania.ConfigIni.bLight[ i ];\r
80                         //        Guitar.bLeft[ i ] = CDTXMania.ConfigIni.bLeft[ i ];\r
81                         //        Guitar.f譜面スクロール速度[ i ] = ( (float) ( CDTXMania.ConfigIni.n譜面スクロール速度[ i ] + 1 ) ) * 0.5f;\r
82                         //    }\r
83                         //    Guitar.eDark = CDTXMania.ConfigIni.eDark;\r
84                         //    Guitar.n演奏速度分子 = CDTXMania.ConfigIni.n演奏速度;\r
85                         //    Guitar.n演奏速度分母 = 20;\r
86                         //    Guitar.eHHGroup = CDTXMania.ConfigIni.eHHGroup;\r
87                         //    Guitar.eFTGroup = CDTXMania.ConfigIni.eFTGroup;\r
88                         //    Guitar.eCYGroup = CDTXMania.ConfigIni.eCYGroup;\r
89                         //    Guitar.eHitSoundPriorityHH = CDTXMania.ConfigIni.eHitSoundPriorityHH;\r
90                         //    Guitar.eHitSoundPriorityFT = CDTXMania.ConfigIni.eHitSoundPriorityFT;\r
91                         //    Guitar.eHitSoundPriorityCY = CDTXMania.ConfigIni.eHitSoundPriorityCY;\r
92                         //    Guitar.bGuitar有効 = CDTXMania.ConfigIni.bGuitar有効;\r
93                         //    Guitar.bDrums有効 = CDTXMania.ConfigIni.bDrums有効;\r
94                         //    Guitar.bSTAGEFAILED有効 = CDTXMania.ConfigIni.bSTAGEFAILED有効;\r
95                         //    Guitar.eダメージレベル = CDTXMania.ConfigIni.eダメージレベル;\r
96                         //    Guitar.b演奏にキーボードを使用した = this.b演奏にキーボードを使った.Guitar;\r
97                         //    Guitar.b演奏にMIDI入力を使用した = this.b演奏にMIDI入力を使った.Guitar;\r
98                         //    Guitar.b演奏にジョイパッドを使用した = this.b演奏にジョイパッドを使った.Guitar;\r
99                         //    Guitar.b演奏にマウスを使用した = this.b演奏にマウスを使った.Guitar;\r
100                         //    Guitar.nPerfectになる範囲ms = CDTXMania.nPerfect範囲ms;\r
101                         //    Guitar.nGreatになる範囲ms = CDTXMania.nGreat範囲ms;\r
102                         //    Guitar.nGoodになる範囲ms = CDTXMania.nGood範囲ms;\r
103                         //    Guitar.nPoorになる範囲ms = CDTXMania.nPoor範囲ms;\r
104                         //    Guitar.strDTXManiaのバージョン = CDTXMania.VERSION;\r
105                         //    Guitar.最終更新日時 = DateTime.Now.ToString();\r
106                         //    Guitar.Hash = CScoreIni.t演奏セクションのMD5を求めて返す( Guitar );\r
107                         //}\r
108                         #endregion\r
109                         #region [Bass処理(注釈化)]\r
110                         //if( CDTXMania.DTX.bチップがある.Bass )\r
111                         //{\r
112                         //    Bass.nスコア = this.actScore.Get( E楽器パート.BASS );\r
113                         //    Bass.dbゲーム型スキル値 = CScoreIni.tゲーム型スキルを計算して返す( CDTXMania.DTX.LEVEL.Bass, CDTXMania.DTX.n可視チップ数.Bass, this.nヒット数・Auto含まない.Bass.Perfect, this.actCombo.n現在のコンボ数.Bass最高値 );\r
114                         //    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
115                         //    Bass.nPerfect数 = CDTXMania.ConfigIni.bAutoPlay.Bass ? this.nヒット数・Auto含む.Bass.Perfect : this.nヒット数・Auto含まない.Bass.Perfect;\r
116                         //    Bass.nGreat数 = CDTXMania.ConfigIni.bAutoPlay.Bass ? this.nヒット数・Auto含む.Bass.Great : this.nヒット数・Auto含まない.Bass.Great;\r
117                         //    Bass.nGood数 = CDTXMania.ConfigIni.bAutoPlay.Bass ? this.nヒット数・Auto含む.Bass.Good : this.nヒット数・Auto含まない.Bass.Good;\r
118                         //    Bass.nPoor数 = CDTXMania.ConfigIni.bAutoPlay.Bass ? this.nヒット数・Auto含む.Bass.Poor : this.nヒット数・Auto含まない.Bass.Poor;\r
119                         //    Bass.nMiss数 = CDTXMania.ConfigIni.bAutoPlay.Bass ? this.nヒット数・Auto含む.Bass.Miss : this.nヒット数・Auto含まない.Bass.Miss;\r
120                         //    Bass.n最大コンボ数 = this.actCombo.n現在のコンボ数.Bass最高値;\r
121                         //    Bass.n全チップ数 = CDTXMania.DTX.n可視チップ数.Bass;\r
122                         //    for( int i = 0; i < 10; i++ )\r
123                         //    {\r
124                         //        Bass.bAutoPlay[ i ] = CDTXMania.ConfigIni.bAutoPlay[ i ];\r
125                         //    }\r
126                         //    Bass.bTight = CDTXMania.ConfigIni.bTight;\r
127                         //    for( int i = 0; i < 3; i++ )\r
128                         //    {\r
129                         //        Bass.bSudden[ i ] = CDTXMania.ConfigIni.bSudden[ i ];\r
130                         //        Bass.bHidden[ i ] = CDTXMania.ConfigIni.bHidden[ i ];\r
131                         //        Bass.bReverse[ i ] = CDTXMania.ConfigIni.bReverse[ i ];\r
132                         //        Bass.eRandom[ i ] = CDTXMania.ConfigIni.eRandom[ i ];\r
133                         //        Bass.bLight[ i ] = CDTXMania.ConfigIni.bLight[ i ];\r
134                         //        Bass.bLeft[ i ] = CDTXMania.ConfigIni.bLeft[ i ];\r
135                         //        Bass.f譜面スクロール速度[ i ] = ( (float) ( CDTXMania.ConfigIni.n譜面スクロール速度[ i ] + 1 ) ) * 0.5f;\r
136                         //    }\r
137                         //    Bass.eDark = CDTXMania.ConfigIni.eDark;\r
138                         //    Bass.n演奏速度分子 = CDTXMania.ConfigIni.n演奏速度;\r
139                         //    Bass.n演奏速度分母 = 20;\r
140                         //    Bass.eHHGroup = CDTXMania.ConfigIni.eHHGroup;\r
141                         //    Bass.eFTGroup = CDTXMania.ConfigIni.eFTGroup;\r
142                         //    Bass.eCYGroup = CDTXMania.ConfigIni.eCYGroup;\r
143                         //    Bass.eHitSoundPriorityHH = CDTXMania.ConfigIni.eHitSoundPriorityHH;\r
144                         //    Bass.eHitSoundPriorityFT = CDTXMania.ConfigIni.eHitSoundPriorityFT;\r
145                         //    Bass.eHitSoundPriorityCY = CDTXMania.ConfigIni.eHitSoundPriorityCY;\r
146                         //    Bass.bGuitar有効 = CDTXMania.ConfigIni.bGuitar有効;\r
147                         //    Bass.bDrums有効 = CDTXMania.ConfigIni.bDrums有効;\r
148                         //    Bass.bSTAGEFAILED有効 = CDTXMania.ConfigIni.bSTAGEFAILED有効;\r
149                         //    Bass.eダメージレベル = CDTXMania.ConfigIni.eダメージレベル;\r
150                         //    Bass.b演奏にキーボードを使用した = this.b演奏にキーボードを使った.Bass;                  // #24280 2011.1.29 yyagi\r
151                         //    Bass.b演奏にMIDI入力を使用した = this.b演奏にMIDI入力を使った.Bass;                            //\r
152                         //    Bass.b演奏にジョイパッドを使用した = this.b演奏にジョイパッドを使った.Bass;            //\r
153                         //    Bass.b演奏にマウスを使用した = this.b演奏にマウスを使った.Bass;                                      //\r
154                         //    Bass.nPerfectになる範囲ms = CDTXMania.nPerfect範囲ms;\r
155                         //    Bass.nGreatになる範囲ms = CDTXMania.nGreat範囲ms;\r
156                         //    Bass.nGoodになる範囲ms = CDTXMania.nGood範囲ms;\r
157                         //    Bass.nPoorになる範囲ms = CDTXMania.nPoor範囲ms;\r
158                         //    Bass.strDTXManiaのバージョン = CDTXMania.VERSION;\r
159                         //    Bass.最終更新日時 = DateTime.Now.ToString();\r
160                         //    Bass.Hash = CScoreIni.t演奏セクションのMD5を求めて返す( Bass );\r
161                         //}\r
162                         #endregion\r
163                         if ( CDTXMania.ConfigIni.bIsSwappedGuitarBass )         // #24063 2011.1.24 yyagi Gt/Bsを入れ替えていたなら、演奏結果も入れ替える\r
164                         {\r
165                                 CScoreIni.C演奏記録 t;\r
166                                 t = Guitar;\r
167                                 Guitar = Bass;\r
168                                 Bass = t;\r
169 \r
170                                 CDTXMania.DTX.SwapGuitarBassInfos();                    // 譜面情報も元に戻す\r
171                         }\r
172                 }\r
173                 \r
174 \r
175                 // CStage 実装\r
176 \r
177                 public override void On活性化()\r
178                 {\r
179                         //this.eフェードアウト完了時の戻り値 = E演奏画面の戻り値.継続;\r
180                         //this.n現在のトップChip = ( CDTXMania.DTX.listChip.Count > 0 ) ? 0 : -1;\r
181                         //this.n最後に再生したHHの実WAV番号 = -1;\r
182                         //this.L最後に再生したHHの実WAV番号 = new List<int>( 16 );\r
183                         //this.n最後に再生したHHのチャンネル番号 = 0;\r
184                         //this.n最後に再生したギターの実WAV番号 = -1;\r
185                         //this.n最後に再生したベースの実WAV番号 = -1;\r
186                         //for( int i = 0; i < 50; i++ )\r
187                         //{\r
188                         //    this.n最後に再生したBGMの実WAV番号[ i ] = -1;\r
189                         //}\r
190                         //this.r次にくるギターChip = null;\r
191                         //this.r次にくるベースChip = null;\r
192                         //for( int j = 0; j < 10; j++ )\r
193                         //{\r
194                         //    this.r現在の空うちドラムChip[ j ] = null;\r
195                         //}\r
196                         //this.r現在の空うちギターChip = null;\r
197                         //this.r現在の空うちベースChip = null;\r
198                         //for( int k = 0; k < 3; k++ )\r
199                         //{\r
200                         //    for( int n = 0; n < 5; n++ )\r
201                         //    {\r
202                         //        this.nヒット数・Auto含まない[ k ] = new STHITCOUNTOFRANK();\r
203                         //        this.nヒット数・Auto含む[ k ] = new STHITCOUNTOFRANK();\r
204                         //    }\r
205                         //    this.queWailing[ k ] = new Queue<CDTX.CChip>();\r
206                         //}\r
207                         //for( int m = 0; m < 3; m++ )\r
208                         //{\r
209                         //    this.b演奏にキーボードを使った[ m ] = false;\r
210                         //    this.b演奏にジョイパッドを使った[ m ] = false;\r
211                         //    this.b演奏にMIDI入力を使った[ m ] = false;\r
212                         //    this.b演奏にマウスを使った[ m ] = false;\r
213                         //}\r
214                         //this.bAUTOでないチップが1つでもバーを通過した = false;\r
215                         base.On活性化();\r
216                         //this.tステータスパネルの選択();\r
217                         //this.tパネル文字列の設定();\r
218 \r
219                         // this.nInputAdjustTimeMs.Drums = CDTXMania.ConfigIni.nInputAdjustTimeMs.Drums;                // #23580 2011.1.3 yyagi\r
220             // this.nInputAdjustTimeMs.Guitar = CDTXMania.ConfigIni.nInputAdjustTimeMs.Guitar;          //        2011.1.7 ikanick 修正\r
221                         // this.nInputAdjustTimeMs.Bass = CDTXMania.ConfigIni.nInputAdjustTimeMs.Bass;                  //\r
222                         //this.bIsAutoPlay.Drums = false;\r
223                         //this.bIsAutoPlay.Guitar = CDTXMania.ConfigIni.bAutoPlay.Guitar;\r
224                         //this.bIsAutoPlay.Bass = CDTXMania.ConfigIni.bAutoPlay.Bass;\r
225 \r
226                         //if ( CDTXMania.ConfigIni.bIsSwappedGuitarBass )       // #24063 2011.1.24 yyagi Gt/Bsの譜面情報入れ替え\r
227                         //{\r
228                         //    CDTXMania.DTX.SwapGuitarBassInfos();\r
229                         //}\r
230                 }\r
231                 public override void OnManagedリソースの作成()\r
232                 {\r
233                         if( !base.b活性化してない )\r
234                         {\r
235                                 //this.t背景テクスチャの生成();\r
236                                 this.txチップ = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\ScreenPlayGuitar chips.png" ) );\r
237                                 this.txヒットバー = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\ScreenPlayGuitar hit-bar.png" ) );\r
238                                 //this.txWailing枠 = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\ScreenPlay wailing cursor.png" ) );\r
239                                 base.OnManagedリソースの作成();\r
240                         }\r
241                 }\r
242                 public override void OnManagedリソースの解放()\r
243                 {\r
244                         if( !base.b活性化してない )\r
245                         {\r
246                                 //CDTXMania.tテクスチャの解放( ref this.tx背景 );\r
247                                 CDTXMania.tテクスチャの解放( ref this.txチップ );\r
248                                 CDTXMania.tテクスチャの解放( ref this.txヒットバー );\r
249                                 //CDTXMania.tテクスチャの解放( ref this.txWailing枠 );\r
250                                 base.OnManagedリソースの解放();\r
251                         }\r
252                 }\r
253                 public override int On進行描画()\r
254                 {\r
255                         if( !base.b活性化してない )\r
256                         {\r
257                                 bool flag = false;\r
258                                 bool flag2 = false;\r
259 \r
260                                 if( base.b初めての進行描画 )\r
261                                 {\r
262                                         CDTXMania.Timer.tリセット();\r
263                                         this.ctチップ模様アニメ.Guitar = new CCounter( 0, 0x17, 20, CDTXMania.Timer );\r
264                                         this.ctチップ模様アニメ.Bass = new CCounter( 0, 0x17, 20, CDTXMania.Timer );\r
265                                         this.ctチップ模様アニメ[ 0 ] = null;\r
266                                         this.ctWailingチップ模様アニメ = new CCounter( 0, 4, 50, CDTXMania.Timer );\r
267                                         base.eフェーズID = CStage.Eフェーズ.共通_フェードイン;\r
268                                         this.actFI.tフェードイン開始();\r
269                                         base.b初めての進行描画 = false;\r
270                                 }\r
271                                 if( CDTXMania.ConfigIni.bSTAGEFAILED有効 && ( base.eフェーズID == CStage.Eフェーズ.共通_通常状態 ) )\r
272                                 {\r
273 //                                      bool flag3 = ( CDTXMania.ConfigIni.bAutoPlay.Guitar || !CDTXMania.DTX.bチップがある.Guitar ) || ( this.actGauge.db現在のゲージ値.Guitar <= -0.1 );                         // #23630\r
274 //                                      bool flag4 = ( CDTXMania.ConfigIni.bAutoPlay.Bass || !CDTXMania.DTX.bチップがある.Bass ) || ( this.actGauge.db現在のゲージ値.Bass <= -0.1 );                                       // #23630\r
275                                         bool bFailedGuitar = ((!CDTXMania.DTX.bチップがある.Guitar) || (this.actGauge.db現在のゲージ値.Guitar <= -0.1));           // #23630 2011.11.12 yyagi: deleted AutoPlay condition: not to be failed at once\r
276                                         bool bFailedBass   = ((!CDTXMania.DTX.bチップがある.Bass)   || (this.actGauge.db現在のゲージ値.Bass   <= -0.1));           // #23630 \r
277                                         if (bFailedGuitar && bFailedBass)\r
278                                         {\r
279                                                 this.actStageFailed.Start();\r
280                                                 CDTXMania.DTX.t全チップの再生停止();\r
281                                                 base.eフェーズID = CStage.Eフェーズ.演奏_STAGE_FAILED;\r
282                                         }\r
283                                 }\r
284                                 this.t進行描画・背景();\r
285                                 this.t進行描画・MIDIBGM();\r
286                                 this.t進行描画・パネル文字列();\r
287                                 this.t進行描画・スコア();\r
288                                 this.t進行描画・AVI();\r
289                                 this.t進行描画・BGA();\r
290                                 this.t進行描画・ステータスパネル();\r
291                                 this.t進行描画・レーンフラッシュGB();\r
292                                 this.t進行描画・ギターベース判定ライン();\r
293                                 this.t進行描画・ゲージ();\r
294                                 this.t進行描画・DANGER();\r
295                                 this.t進行描画・RGBボタン();\r
296                                 this.t進行描画・判定文字列();\r
297                                 this.t進行描画・コンボ();\r
298                                 this.t進行描画・WailingBonus();\r
299                                 this.t進行描画・譜面スクロール速度();\r
300                                 this.t進行描画・チップアニメ();\r
301                                 flag = this.t進行描画・チップ(E楽器パート.GUITAR);\r
302                                 this.t進行描画・演奏情報();\r
303                                 this.t進行描画・Wailing枠();\r
304                                 this.t進行描画・チップファイアGB();\r
305                                 this.t進行描画・STAGEFAILED();\r
306                                 flag2 = this.t進行描画・フェードイン・アウト();\r
307                                 if( flag && ( base.eフェーズID == CStage.Eフェーズ.共通_通常状態 ) )\r
308                                 {\r
309                                         this.eフェードアウト完了時の戻り値 = E演奏画面の戻り値.ステージクリア;\r
310                                         base.eフェーズID = CStage.Eフェーズ.演奏_STAGE_CLEAR_フェードアウト;\r
311                                         this.actFOClear.tフェードアウト開始();\r
312                                 }\r
313                                 if( flag2 )\r
314                                 {\r
315                                         return (int) this.eフェードアウト完了時の戻り値;\r
316                                 }\r
317 \r
318                                 // キー入力\r
319 \r
320                                 if( CDTXMania.act現在入力を占有中のプラグイン == null )\r
321                                 {\r
322                                         this.tキー入力();\r
323                                         #region キー入力(注釈化)\r
324                                         //IInputDevice keyboard = CDTXMania.Input管理.Keyboard;\r
325                                         //if ( keyboard.bキーが押された( (int)SlimDX.DirectInput.Key.F1 ) && ( keyboard.bキーが押されている( (int)SlimDX.DirectInput.Key.RightShift ) || keyboard.bキーが押されている( (int)SlimDX.DirectInput.Key.LeftShift ) ) )\r
326                                         //{\r
327                                         //    this.bPAUSE = !this.bPAUSE;\r
328                                         //    if( this.bPAUSE )\r
329                                         //    {\r
330                                         //        CDTXMania.Timer.t一時停止();\r
331                                         //        CDTXMania.DTX.t全チップの再生一時停止();\r
332                                         //    }\r
333                                         //    else\r
334                                         //    {\r
335                                         //        CDTXMania.Timer.t再開();\r
336                                         //        CDTXMania.DTX.t全チップの再生再開();\r
337                                         //    }\r
338                                         //}\r
339                                         //if( ( !this.bPAUSE && ( base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED ) ) && ( base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED_フェードアウト ) )\r
340                                         //{\r
341                                         //    this.t入力処理・ギター();\r
342                                         //    this.t入力処理・ベース();\r
343                                         //    if ( keyboard.bキーが押された( (int)SlimDX.DirectInput.Key.UpArrow ) && ( keyboard.bキーが押されている( (int)SlimDX.DirectInput.Key.RightShift ) || keyboard.bキーが押されている( (int)SlimDX.DirectInput.Key.LeftShift) ) )\r
344                                         //    { // shift (+ctrl) + Uparrow (BGMAdjust)\r
345                                         //        CDTXMania.DTX.t各自動再生音チップの再生時刻を変更する( ( keyboard.bキーが押されている( (int)SlimDX.DirectInput.Key.LeftControl ) || keyboard.bキーが押されている( (int)SlimDX.DirectInput.Key.RightControl) ) ? 1 : 10 );\r
346                                         //        CDTXMania.DTX.tWave再生位置自動補正();\r
347                                         //    }\r
348                                         //    else if ( keyboard.bキーが押された( (int)SlimDX.DirectInput.Key.DownArrow ) && ( keyboard.bキーが押されている( (int)SlimDX.DirectInput.Key.RightShift ) || keyboard.bキーが押されている( (int)SlimDX.DirectInput.Key.LeftShift ) ) )\r
349                                         //    {\r
350                                         //        CDTXMania.DTX.t各自動再生音チップの再生時刻を変更する( ( keyboard.bキーが押されている( (int)SlimDX.DirectInput.Key.LeftControl ) || keyboard.bキーが押されている( (int)SlimDX.DirectInput.Key.RightControl ) ) ? -1 : -10 );\r
351                                         //        CDTXMania.DTX.tWave再生位置自動補正();\r
352                                         //    }\r
353                                         //    else if ( keyboard.bキーが押された( (int)SlimDX.DirectInput.Key.Delete ) )\r
354                                         //    {\r
355                                         //        CDTXMania.ConfigIni.b演奏情報を表示する = !CDTXMania.ConfigIni.b演奏情報を表示する;\r
356                                         //    }\r
357                                         //    else if ( keyboard.bキーが押された( (int) SlimDX.DirectInput.Key.LeftArrow ) )             // #23580 2011.1.16 yyagi UI for InputAdjustTime in playing screen.\r
358                                         //    {\r
359                                         //        ChangeInputAdjustTimeInPlaying( keyboard, -1 );\r
360                                         //    }\r
361                                         //    else if ( keyboard.bキーが押された( (int) SlimDX.DirectInput.Key.RightArrow ) )            // #23580 2011.1.16 yyagi UI for InputAdjustTime in playing screen.\r
362                                         //    {\r
363                                         //        ChangeInputAdjustTimeInPlaying( keyboard, +1 );\r
364                                         //    }\r
365                                         //    else if ( ( base.eフェーズID == CStage.Eフェーズ.共通_通常状態 ) && ( keyboard.bキーが押された( (int) SlimDX.DirectInput.Key.Escape ) || CDTXMania.Pad.b押されたGB( Eパッド.FT ) ) )\r
366                                         //    {\r
367                                         //        this.actFO.tフェードアウト開始();\r
368                                         //        base.eフェーズID = CStage.Eフェーズ.共通_フェードアウト;\r
369                                         //        this.eフェードアウト完了時の戻り値 = E演奏画面の戻り値.演奏中断;\r
370                                         //    }\r
371                                         //}\r
372                                         #endregion\r
373                                 }\r
374                         }\r
375                         return 0;\r
376                 }\r
377 \r
378 \r
379                 // その他\r
380 \r
381                 #region [ private ]\r
382                 //-----------------\r
383                 //private class STHITCOUNTOFRANK\r
384                 //{\r
385                 //    // Fields\r
386                 //    public int Good;\r
387                 //    public int Great;\r
388                 //    public int Miss;\r
389                 //    public int Perfect;\r
390                 //    public int Poor;\r
391 \r
392                 //    // Properties\r
393                 //    public int this[ int index ]\r
394                 //    {\r
395                 //        get\r
396                 //        {\r
397                 //            switch( index )\r
398                 //            {\r
399                 //                case 0:\r
400                 //                    return this.Perfect;\r
401 \r
402                 //                case 1:\r
403                 //                    return this.Great;\r
404 \r
405                 //                case 2:\r
406                 //                    return this.Good;\r
407 \r
408                 //                case 3:\r
409                 //                    return this.Poor;\r
410 \r
411                 //                case 4:\r
412                 //                    return this.Miss;\r
413                 //            }\r
414                 //            throw new IndexOutOfRangeException();\r
415                 //        }\r
416                 //        set\r
417                 //        {\r
418                 //            switch( index )\r
419                 //            {\r
420                 //                case 0:\r
421                 //                    this.Perfect = value;\r
422                 //                    return;\r
423 \r
424                 //                case 1:\r
425                 //                    this.Great = value;\r
426                 //                    return;\r
427 \r
428                 //                case 2:\r
429                 //                    this.Good = value;\r
430                 //                    return;\r
431 \r
432                 //                case 3:\r
433                 //                    this.Poor = value;\r
434                 //                    return;\r
435 \r
436                 //                case 4:\r
437                 //                    this.Miss = value;\r
438                 //                    return;\r
439                 //            }\r
440                 //            throw new IndexOutOfRangeException();\r
441                 //        }\r
442                 //    }\r
443                 //}\r
444 \r
445                 //[StructLayout( LayoutKind.Sequential )]\r
446                 //private struct STKARAUCHI\r
447                 //{\r
448                 //    public CDTX.CChip HH;\r
449                 //    public CDTX.CChip SD;\r
450                 //    public CDTX.CChip BD;\r
451                 //    public CDTX.CChip HT;\r
452                 //    public CDTX.CChip LT;\r
453                 //    public CDTX.CChip FT;\r
454                 //    public CDTX.CChip CY;\r
455                 //    public CDTX.CChip HHO;\r
456                 //    public CDTX.CChip RD;\r
457                 //    public CDTX.CChip LC;\r
458                 //    public CDTX.CChip this[ int index ]\r
459                 //    {\r
460                 //        get\r
461                 //        {\r
462                 //            switch( index )\r
463                 //            {\r
464                 //                case 0:\r
465                 //                    return this.HH;\r
466 \r
467                 //                case 1:\r
468                 //                    return this.SD;\r
469 \r
470                 //                case 2:\r
471                 //                    return this.BD;\r
472 \r
473                 //                case 3:\r
474                 //                    return this.HT;\r
475 \r
476                 //                case 4:\r
477                 //                    return this.LT;\r
478 \r
479                 //                case 5:\r
480                 //                    return this.FT;\r
481 \r
482                 //                case 6:\r
483                 //                    return this.CY;\r
484 \r
485                 //                case 7:\r
486                 //                    return this.HHO;\r
487 \r
488                 //                case 8:\r
489                 //                    return this.RD;\r
490 \r
491                 //                case 9:\r
492                 //                    return this.LC;\r
493                 //            }\r
494                 //            throw new IndexOutOfRangeException();\r
495                 //        }\r
496                 //        set\r
497                 //        {\r
498                 //            switch( index )\r
499                 //            {\r
500                 //                case 0:\r
501                 //                    this.HH = value;\r
502                 //                    return;\r
503 \r
504                 //                case 1:\r
505                 //                    this.SD = value;\r
506                 //                    return;\r
507 \r
508                 //                case 2:\r
509                 //                    this.BD = value;\r
510                 //                    return;\r
511 \r
512                 //                case 3:\r
513                 //                    this.HT = value;\r
514                 //                    return;\r
515 \r
516                 //                case 4:\r
517                 //                    this.LT = value;\r
518                 //                    return;\r
519 \r
520                 //                case 5:\r
521                 //                    this.FT = value;\r
522                 //                    return;\r
523 \r
524                 //                case 6:\r
525                 //                    this.CY = value;\r
526                 //                    return;\r
527 \r
528                 //                case 7:\r
529                 //                    this.HHO = value;\r
530                 //                    return;\r
531 \r
532                 //                case 8:\r
533                 //                    this.RD = value;\r
534                 //                    return;\r
535 \r
536                 //                case 9:\r
537                 //                    this.LC = value;\r
538                 //                    return;\r
539                 //            }\r
540                 //            throw new IndexOutOfRangeException();\r
541                 //        }\r
542                 //    }\r
543                 //}\r
544 \r
545                 //private CAct演奏AVI actAVI;\r
546                 //private CAct演奏BGA actBGA;\r
547                 //private CAct演奏Guitarチップファイア actChipFireGB;\r
548                 //private CAct演奏Guitarコンボ actCombo;\r
549                 //private CActFIFOBlack actFI;\r
550                 //private CActFIFOBlack actFO;\r
551                 //private CActFIFOWhite actFOClear;\r
552                 //private CAct演奏Guitarゲージ actGauge;\r
553                 //private CAct演奏Guitar判定文字列 actJudgeString;\r
554                 //private CAct演奏GuitarレーンフラッシュGB actLaneFlushGB;\r
555                 //private CAct演奏パネル文字列 actPanel;\r
556                 //private CAct演奏演奏情報 actPlayInfo;\r
557                 //private CAct演奏GuitarRGB actRGB;\r
558                 //private CAct演奏Guitarスコア actScore;\r
559                 //private CAct演奏ステージ失敗 actStageFailed;\r
560                 //private CAct演奏Guitarステータスパネル actStatusPanels;\r
561                 //private CAct演奏GuitarWailingBonus actWailingBonus;\r
562                 //private CAct演奏スクロール速度 act譜面スクロール速度;\r
563                 //private bool bPAUSE;\r
564                 //private STDGBVALUE<bool> b演奏にMIDI入力を使った;\r
565                 //private STDGBVALUE<bool> b演奏にキーボードを使った;\r
566                 //private STDGBVALUE<bool> b演奏にジョイパッドを使った;\r
567                 //private STDGBVALUE<bool> b演奏にマウスを使った;\r
568                 //private CCounter ctWailingチップ模様アニメ;\r
569                 //private STDGBVALUE<CCounter> ctチップ模様アニメ;\r
570                 //private E演奏画面の戻り値 eフェードアウト完了時の戻り値;\r
571                 //private readonly int[,] nBGAスコープチャンネルマップ = new int[ , ] { { 0xc4, 0xc7, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xe0 }, { 4, 7, 0x55, 0x56, 0x57, 0x58, 0x59, 0x60 } };\r
572                 //private readonly int[] nチャンネル0Atoパッド08 = new int[] { 1, 2, 3, 4, 5, 7, 6, 1, 8, 0 };\r
573                 //private readonly int[] nチャンネル0Atoレーン07 = new int[] { 1, 2, 3, 4, 5, 7, 6, 1, 7, 0 };\r
574                 //private readonly int[] nパッド0Atoチャンネル0A = new int[] { 0x11, 0x12, 0x13, 20, 0x15, 0x17, 0x16, 0x18, 0x19, 0x1a };\r
575                 //private readonly int[] nパッド0Atoパッド08 = new int[] { 1, 2, 3, 4, 5, 6, 7, 1, 8, 0 };\r
576                 //private readonly int[] nパッド0Atoレーン07 = new int[] { 1, 2, 3, 4, 5, 6, 7, 1, 7, 0 };\r
577                 //private STDGBVALUE<STHITCOUNTOFRANK> nヒット数・Auto含まない;\r
578                 //private STDGBVALUE<STHITCOUNTOFRANK> nヒット数・Auto含む;\r
579                 // private int n現在のトップChip = -1;\r
580                 //private int[] n最後に再生したBGMの実WAV番号 = new int[ 50 ];\r
581                 //private int n最後に再生したHHのチャンネル番号;\r
582                 //private int n最後に再生したHHの実WAV番号;\r
583                 //private List<int> L最後に再生したHHの実WAV番号;            // #23921 2011.1.4 yyagi: change "int" to "List<int>", for recording multiple wav No.\r
584                 //private int n最後に再生したギターの実WAV番号;\r
585                 //private int n最後に再生したベースの実WAV番号;\r
586                 //private STDGBVALUE<Queue<CDTX.CChip>> queWailing;\r
587                 //private STDGBVALUE<CDTX.CChip> r現在の歓声Chip;\r
588                 //private CDTX.CChip r現在の空うちギターChip;\r
589                 //private STKARAUCHI r現在の空うちドラムChip;\r
590                 //private CDTX.CChip r現在の空うちベースChip;\r
591                 //private CDTX.CChip r次にくるギターChip;\r
592                 //private CDTX.CChip r次にくるベースChip;\r
593                 //private CTexture txWailing枠;\r
594                 //private CTexture txチップ;\r
595                 //private CTexture txヒットバー;\r
596                 //private CTexture tx背景;\r
597                 // private STDGBVALUE<int> nInputAdjustTimeMs;          // #23580 2011.1.3 yyagi\r
598                 //private STDGBVALUE<bool> bIsAutoPlay;                         // #24239 2011.1.23 yyagi\r
599 \r
600                 //private E判定 e指定時刻からChipのJUDGEを返す( long nTime, CDTX.CChip pChip, int nInputAdjustTime )\r
601                 //{\r
602                 //    if ( pChip != null )\r
603                 //    {\r
604                 //        pChip.nLag = (int) ( nTime + nInputAdjustTime - pChip.n発声時刻ms );              // #23580 2011.1.3 yyagi: add "nInputAdjustTime" to add input timing adjust feature\r
605                 //        int nDeltaTime = Math.Abs( pChip.nLag );\r
606                 //        //Debug.WriteLine("nAbsTime=" + (nTime - pChip.n発声時刻ms) + ", nDeltaTime=" + (nTime + nInputAdjustTime - pChip.n発声時刻ms));\r
607                 //        if ( nDeltaTime <= CDTXMania.nPerfect範囲ms )\r
608                 //        {\r
609                 //            return E判定.Perfect;\r
610                 //        }\r
611                 //        if ( nDeltaTime <= CDTXMania.nGreat範囲ms )\r
612                 //        {\r
613                 //            return E判定.Great;\r
614                 //        }\r
615                 //        if ( nDeltaTime <= CDTXMania.nGood範囲ms )\r
616                 //        {\r
617                 //            return E判定.Good;\r
618                 //        }\r
619                 //        if ( nDeltaTime <= CDTXMania.nPoor範囲ms )\r
620                 //        {\r
621                 //            return E判定.Poor;\r
622                 //        }\r
623                 //    }\r
624                 //    return E判定.Miss;\r
625                 //}\r
626                 //private CDTX.CChip r空うちChip( E楽器パート part, Eパッド pad )\r
627                 //{\r
628                 //    switch( part )\r
629                 //    {\r
630                 //        case E楽器パート.GUITAR:\r
631                 //            return this.r現在の空うちギターChip;\r
632 \r
633                 //        case E楽器パート.BASS:\r
634                 //            return this.r現在の空うちベースChip;\r
635                 //    }\r
636                 //    return null;\r
637                 //}\r
638                 //private CDTX.CChip r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( long nTime, int nChannelFlag, int nInputAdjustTime )\r
639                 //{\r
640                 //    nTime += nInputAdjustTime;\r
641         \r
642                 //    int num5;\r
643                 //    if( this.n現在のトップChip == -1 )\r
644                 //    {\r
645                 //        return null;\r
646                 //    }\r
647                 //    int count = CDTXMania.DTX.listChip.Count;\r
648                 //    int num4 = num5 = this.n現在のトップChip;\r
649                 //    if( this.n現在のトップChip >= count )\r
650                 //    {\r
651                 //        num4 = num5 = count - 1;\r
652                 //    }\r
653                 //    int num2 = num4;\r
654                 //    while( num2 < count )\r
655                 //    {\r
656                 //        CDTX.CChip chip = CDTXMania.DTX.listChip[ num2 ];\r
657                 //        if( ( ( nChannelFlag >= 0x11 ) && ( nChannelFlag <= 0x1a ) ) && ( ( chip.nチャンネル番号 == nChannelFlag ) || ( chip.nチャンネル番号 == ( nChannelFlag + 0x20 ) ) ) )\r
658                 //        {\r
659                 //            if( chip.n発声時刻ms > nTime )\r
660                 //            {\r
661                 //                break;\r
662                 //            }\r
663                 //            num5 = num2;\r
664                 //        }\r
665                 //        else if( ( ( nChannelFlag == 0x2f ) && ( chip.e楽器パート == E楽器パート.GUITAR ) ) || ( ( ( nChannelFlag >= 0x20 ) && ( nChannelFlag <= 40 ) ) && ( chip.nチャンネル番号 == nChannelFlag ) ) )\r
666                 //        {\r
667                 //            if( chip.n発声時刻ms > nTime )\r
668                 //            {\r
669                 //                break;\r
670                 //            }\r
671                 //            num5 = num2;\r
672                 //        }\r
673                 //        else if( ( ( nChannelFlag == 0xaf ) && ( chip.e楽器パート == E楽器パート.BASS ) ) || ( ( ( nChannelFlag >= 160 ) && ( nChannelFlag <= 0xa8 ) ) && ( chip.nチャンネル番号 == nChannelFlag ) ) )\r
674                 //        {\r
675                 //            if( chip.n発声時刻ms > nTime )\r
676                 //            {\r
677                 //                break;\r
678                 //            }\r
679                 //            num5 = num2;\r
680                 //        }\r
681                 //        num2++;\r
682                 //    }\r
683                 //    int num3 = num5;\r
684                 //    while( num3 >= 0 )\r
685                 //    {\r
686                 //        CDTX.CChip chip2 = CDTXMania.DTX.listChip[ num3 ];\r
687                 //        if( ( nChannelFlag >= 0x11 ) && ( nChannelFlag <= 0x1a ) )\r
688                 //        {\r
689                 //            if( ( chip2.nチャンネル番号 == nChannelFlag ) || ( chip2.nチャンネル番号 == ( nChannelFlag + 0x20 ) ) )\r
690                 //            {\r
691                 //                break;\r
692                 //            }\r
693                 //        }\r
694                 //        else if( ( ( nChannelFlag == 0x2f ) && ( chip2.e楽器パート == E楽器パート.GUITAR ) ) || ( ( ( nChannelFlag >= 0x20 ) && ( nChannelFlag <= 40 ) ) && ( chip2.nチャンネル番号 == nChannelFlag ) ) )\r
695                 //        {\r
696                 //            if( ( chip2.nチャンネル番号 >= 0x20 ) && ( chip2.nチャンネル番号 <= 40 ) )\r
697                 //            {\r
698                 //                break;\r
699                 //            }\r
700                 //        }\r
701                 //        else if( ( ( ( nChannelFlag == 0xaf ) && ( chip2.e楽器パート == E楽器パート.BASS ) ) || ( ( ( nChannelFlag >= 160 ) && ( nChannelFlag <= 0xa8 ) ) && ( chip2.nチャンネル番号 == nChannelFlag ) ) ) && ( ( chip2.nチャンネル番号 >= 160 ) && ( chip2.nチャンネル番号 <= 0xa8 ) ) )\r
702                 //        {\r
703                 //            break;\r
704                 //        }\r
705                 //        num3--;\r
706                 //    }\r
707                 //    if( ( num2 == count ) && ( num3 < 0 ) )\r
708                 //    {\r
709                 //        return null;\r
710                 //    }\r
711                 //    if( num2 == count )\r
712                 //    {\r
713                 //        return CDTXMania.DTX.listChip[ num3 ];\r
714                 //    }\r
715                 //    if( num3 < 0 )\r
716                 //    {\r
717                 //        return CDTXMania.DTX.listChip[ num2 ];\r
718                 //    }\r
719                 //    CDTX.CChip chip3 = CDTXMania.DTX.listChip[ num2 ];\r
720                 //    CDTX.CChip chip4 = CDTXMania.DTX.listChip[ num3 ];\r
721                 //    int num6 = Math.Abs( (int) ( nTime - chip3.n発声時刻ms ) );\r
722                 //    int num7 = Math.Abs( (int) ( nTime - chip4.n発声時刻ms ) );\r
723                 //    if( num6 >= num7 )\r
724                 //    {\r
725                 //        return chip4;\r
726                 //    }\r
727                 //    return chip3;\r
728                 //}\r
729 //              private CDTX.CChip r指定時刻に一番近い未ヒットChip( long nTime, int nChannelFlag )\r
730 //              {\r
731 //                      return this.r指定時刻に一番近い未ヒットChip( nTime, nChannelFlag, 0, 0 );\r
732 //              }\r
733 //              private CDTX.CChip r指定時刻に一番近い未ヒットChip( long nTime, int nChannelFlag, int nInputAdjustTime )\r
734 //              {\r
735 //                      return this.r指定時刻に一番近い未ヒットChip( nTime, nChannelFlag, nInputAdjustTime, 0 );\r
736 //              }\r
737                 //private CDTX.CChip r指定時刻に一番近い未ヒットChip( long nTime, int nChannelFlag, int nInputAdjustTime, int n検索範囲時間ms )\r
738                 //{\r
739                 //    nTime += nInputAdjustTime;\r
740 \r
741                 //    int num5;\r
742                 //    int num6;\r
743                 //    if( this.n現在のトップChip == -1 )\r
744                 //    {\r
745                 //        return null;\r
746                 //    }\r
747                 //    int count = CDTXMania.DTX.listChip.Count;\r
748                 //    int num4 = num5 = this.n現在のトップChip;\r
749                 //    if( this.n現在のトップChip >= count )\r
750                 //    {\r
751                 //        num4 = num5 = count - 1;\r
752                 //    }\r
753                 //    int num2 = num4;\r
754                 //    while( num2 < count )\r
755                 //    {\r
756                 //        CDTX.CChip chip = CDTXMania.DTX.listChip[ num2 ];\r
757                 //        if( ( !chip.bHit && ( nChannelFlag >= 0x11 ) ) && ( nChannelFlag <= 0x1a ) )\r
758                 //        {\r
759                 //            if( ( chip.nチャンネル番号 == nChannelFlag ) || ( chip.nチャンネル番号 == ( nChannelFlag + 0x20 ) ) )\r
760                 //            {\r
761                 //                if( chip.n発声時刻ms > nTime )\r
762                 //                {\r
763                 //                    break;\r
764                 //                }\r
765                 //                num5 = num2;\r
766                 //            }\r
767                 //        }\r
768                 //        else if( !chip.bHit && ( ( ( nChannelFlag == 0x2f ) && ( chip.e楽器パート == E楽器パート.GUITAR ) ) || ( ( ( nChannelFlag >= 0x20 ) && ( nChannelFlag <= 40 ) ) && ( chip.nチャンネル番号 == nChannelFlag ) ) ) )\r
769                 //        {\r
770                 //            if( chip.n発声時刻ms > nTime )\r
771                 //            {\r
772                 //                break;\r
773                 //            }\r
774                 //            num5 = num2;\r
775                 //        }\r
776                 //        else if( !chip.bHit && ( ( ( nChannelFlag == 0xaf ) && ( chip.e楽器パート == E楽器パート.BASS ) ) || ( ( ( nChannelFlag >= 160 ) && ( nChannelFlag <= 0xa8 ) ) && ( chip.nチャンネル番号 == nChannelFlag ) ) ) )\r
777                 //        {\r
778                 //            if( chip.n発声時刻ms > nTime )\r
779                 //            {\r
780                 //                break;\r
781                 //            }\r
782                 //            num5 = num2;\r
783                 //        }\r
784                 //        num2++;\r
785                 //    }\r
786                 //    int num3 = num5;\r
787                 //    while( num3 >= 0 )\r
788                 //    {\r
789                 //        CDTX.CChip chip2 = CDTXMania.DTX.listChip[ num3 ];\r
790                 //        if( ( ( ( !chip2.bHit && ( nChannelFlag >= 0x11 ) ) && ( ( nChannelFlag <= 0x1a ) && ( ( chip2.nチャンネル番号 == nChannelFlag ) || ( chip2.nチャンネル番号 == ( nChannelFlag + 0x20 ) ) ) ) ) || ( !chip2.bHit && ( ( ( nChannelFlag == 0x2f ) && ( chip2.e楽器パート == E楽器パート.GUITAR ) ) || ( ( ( nChannelFlag >= 0x20 ) && ( nChannelFlag <= 40 ) ) && ( chip2.nチャンネル番号 == nChannelFlag ) ) ) ) ) || ( !chip2.bHit && ( ( ( nChannelFlag == 0xaf ) && ( chip2.e楽器パート == E楽器パート.BASS ) ) || ( ( ( nChannelFlag >= 160 ) && ( nChannelFlag <= 0xa8 ) ) && ( chip2.nチャンネル番号 == nChannelFlag ) ) ) ) )\r
791                 //        {\r
792                 //            break;\r
793                 //        }\r
794                 //        num3--;\r
795                 //    }\r
796                 //    if( ( num2 == count ) && ( num3 < 0 ) )\r
797                 //    {\r
798                 //        return null;\r
799                 //    }\r
800                 //    CDTX.CChip chip3 = null;\r
801                 //    if( num2 == count )\r
802                 //    {\r
803                 //        chip3 = CDTXMania.DTX.listChip[ num3 ];\r
804                 //        num6 = Math.Abs( (int) ( nTime - chip3.n発声時刻ms ) );\r
805                 //    }\r
806                 //    else if( num3 < 0 )\r
807                 //    {\r
808                 //        chip3 = CDTXMania.DTX.listChip[ num2 ];\r
809                 //        num6 = Math.Abs( (int) ( nTime - chip3.n発声時刻ms ) );\r
810                 //    }\r
811                 //    else\r
812                 //    {\r
813                 //        int num7 = Math.Abs( (int) ( nTime - CDTXMania.DTX.listChip[ num2 ].n発声時刻ms ) );\r
814                 //        int num8 = Math.Abs( (int) ( nTime - CDTXMania.DTX.listChip[ num3 ].n発声時刻ms ) );\r
815                 //        if( num7 < num8 )\r
816                 //        {\r
817                 //            chip3 = CDTXMania.DTX.listChip[ num2 ];\r
818                 //            num6 = Math.Abs( (int) ( nTime - chip3.n発声時刻ms ) );\r
819                 //        }\r
820                 //        else\r
821                 //        {\r
822                 //            chip3 = CDTXMania.DTX.listChip[ num3 ];\r
823                 //            num6 = Math.Abs( (int) ( nTime - chip3.n発声時刻ms ) );\r
824                 //        }\r
825                 //    }\r
826                 //    if( ( n検索範囲時間ms > 0 ) && ( num6 > n検索範囲時間ms ) )\r
827                 //    {\r
828                 //        return null;\r
829                 //    }\r
830                 //    return chip3;\r
831                 //}\r
832                 //private CDTX.CChip r次にくるギターChipを更新して返す()\r
833                 //{\r
834                 //    int nInputAdjustTime = this.bIsAutoPlay.Guitar ? 0 : this.nInputAdjustTimeMs.Guitar;\r
835                 //    this.r次にくるギターChip = this.r指定時刻に一番近い未ヒットChip( CDTXMania.Timer.n現在時刻, 0x2f, nInputAdjustTime, 500 );\r
836                 //    return this.r次にくるギターChip;\r
837                 //}\r
838                 //private CDTX.CChip r次にくるベースChipを更新して返す()\r
839                 //{\r
840                 //    int nInputAdjustTime = this.bIsAutoPlay.Bass ? 0 : this.nInputAdjustTimeMs.Bass;\r
841                 //    this.r次にくるベースChip = this.r指定時刻に一番近い未ヒットChip( CDTXMania.Timer.n現在時刻, 0xaf, nInputAdjustTime, 500 );\r
842                 //    return this.r次にくるベースChip;\r
843                 //}\r
844 \r
845                 //private void tサウンド再生( CDTX.CChip rChip, long n再生開始システム時刻ms, E楽器パート part )\r
846                 //{\r
847                 //    this.tサウンド再生( rChip, n再生開始システム時刻ms, part, CDTXMania.ConfigIni.n手動再生音量, false, false );\r
848                 //}\r
849                 //private void tサウンド再生( CDTX.CChip rChip, long n再生開始システム時刻ms, E楽器パート part, int n音量 )\r
850                 //{\r
851                 //    this.tサウンド再生( rChip, n再生開始システム時刻ms, part, n音量, false, false );\r
852                 //}\r
853                 //private void tサウンド再生( CDTX.CChip rChip, long n再生開始システム時刻ms, E楽器パート part, int n音量, bool bモニタ )\r
854                 //{\r
855                 //    this.tサウンド再生( rChip, n再生開始システム時刻ms, part, n音量, bモニタ, false );\r
856                 //}\r
857 //        private void tサウンド再生( CDTX.CChip pChip, long n再生開始システム時刻ms, E楽器パート part, int n音量, bool bモニタ, bool b音程をずらして再生 )\r
858 //        {\r
859 //            if( pChip != null )\r
860 //            {\r
861 //                switch( part )\r
862 //                {\r
863 //                    case E楽器パート.DRUMS:\r
864 //                        {\r
865 //                            int index = pChip.nチャンネル番号;\r
866 //                            if ( ( index >= 0x11 ) && ( index <= 0x1a ) )\r
867 //                            {\r
868 //                                index -= 0x11;\r
869 //                            }\r
870 //                            else\r
871 //                            {\r
872 //                                if ( ( index < 0x31 ) || ( index > 0x3a ) )\r
873 //                                {\r
874 //                                    return;\r
875 //                                }\r
876 //                                index -= 0x31;\r
877 //                            }\r
878 //                            int nLane = this.nチャンネル0Atoレーン07[ index ];\r
879 //                            if ( ( nLane == 1 ) &&    // 今回演奏するのがHC or HO\r
880 //                                ( index == 0 || ( index == 7 && this.n最後に再生したHHのチャンネル番号 != 0x18 && this.n最後に再生したHHのチャンネル番号 != 0x38 ) )\r
881 //                                // HCを演奏するか、またはHO演奏&以前HO演奏でない&以前不可視HO演奏でない\r
882 //                            )\r
883 //                            {\r
884 //                                // #23921 2011.1.4 yyagi: 2種類以上のオープンハイハットが発音済みだと、最後のHHOしか消せない問題に対応。\r
885 //#if TEST_NOTEOFFMODE  // 2011.1.1 yyagi test\r
886 //                                if (CDTXMania.DTX.bHH演奏で直前のHHを消音する)\r
887 //                                {\r
888 //#endif\r
889 //                                for ( int i = 0; i < this.L最後に再生したHHの実WAV番号.Count; i++ )                // #23921 2011.1.4 yyagi\r
890 //                                {\r
891 //                                    // CDTXMania.DTX.tWavの再生停止(this.L最後に再生したHHの実WAV番号);\r
892 //                                    CDTXMania.DTX.tWavの再生停止( this.L最後に再生したHHの実WAV番号[ i ] );   // #23921 yyagi ストック分全て消音する\r
893 //                                }\r
894 //                                this.L最後に再生したHHの実WAV番号.Clear();\r
895 //#if TEST_NOTEOFFMODE  // 2011.1.1 yyagi test\r
896 //                                }\r
897 //#endif\r
898 //                                //this.n最後に再生したHHの実WAV番号 = pChip.n整数値・内部番号;\r
899 //                                this.n最後に再生したHHのチャンネル番号 = pChip.nチャンネル番号;\r
900 //                            }\r
901 //#if TEST_NOTEOFFMODE  // 2011.1.4 yyagi test\r
902 //                            if (CDTXMania.DTX.bHH演奏で直前のHHを消音する)\r
903 //                            {\r
904 //#endif\r
905 //                            if ( index == 7 || index == 0x27 )                                                // #23921 HOまたは不可視HO演奏時はそのチップ番号をストックしておく\r
906 //                            {\r
907 //                                if ( this.L最後に再生したHHの実WAV番号.Count >= 16 )       // #23921 ただしストック数が16以上になるようなら、頭の1個を削って常に16未満に抑える\r
908 //                                {                                                                                                     // (ストックが増えてList<>のrealloc()が発生するのを予防する)\r
909 //                                    this.L最後に再生したHHの実WAV番号.RemoveAt( 0 );\r
910 //                                }\r
911 //                                if ( this.L最後に再生したHHの実WAV番号.IndexOf( pChip.n整数値・内部番号 ) < 0 )    // チップ音がまだストックされてなければ\r
912 //                                {\r
913 //                                    this.L最後に再生したHHの実WAV番号.Add( pChip.n整数値・内部番号 );                      // ストックする\r
914 //                                }\r
915 //                            }\r
916 //#if TEST_NOTEOFFMODE  // 2011.1.4 yyagi test\r
917 //                            }\r
918 //#endif\r
919 //                            CDTXMania.DTX.tチップの再生( pChip, n再生開始システム時刻ms, nLane, n音量, bモニタ );\r
920 //                            return;\r
921 //                        }\r
922 \r
923 \r
924 //                    case E楽器パート.GUITAR:\r
925 //#if TEST_NOTEOFFMODE  // 2011.1.1 yyagi TEST\r
926 //                        if (CDTXMania.DTX.bGUITAR演奏で直前のGUITARを消音する) {\r
927 //#endif\r
928 //                            CDTXMania.DTX.tWavの再生停止(this.n最後に再生したギターの実WAV番号);\r
929 //#if TEST_NOTEOFFMODE  // 2011.1.1 yyagi TEST\r
930 //                        }\r
931 //#endif\r
932 //                        CDTXMania.DTX.tチップの再生( pChip, n再生開始システム時刻ms, 8, n音量, bモニタ, b音程をずらして再生 );\r
933 //                        this.n最後に再生したギターの実WAV番号 = pChip.n整数値・内部番号;\r
934 //                        return;\r
935 \r
936 //                    case E楽器パート.BASS:\r
937 //#if TEST_NOTEOFFMODE  // 2011.1.1 yyagi TEST\r
938 //                        if (CDTXMania.DTX.bBASS演奏で直前のBASSを消音する) {\r
939 //#endif\r
940 //                            CDTXMania.DTX.tWavの再生停止(this.n最後に再生したベースの実WAV番号);\r
941 //#if TEST_NOTEOFFMODE  // 2011.1.1 yyagi TEST\r
942 //                        }\r
943 //#endif\r
944 //                        CDTXMania.DTX.tチップの再生(pChip, n再生開始システム時刻ms, 9, n音量, bモニタ, b音程をずらして再生);\r
945 //                        this.n最後に再生したベースの実WAV番号 = pChip.n整数値・内部番号;\r
946 //                        return;\r
947 //                }\r
948 //            }\r
949 //        }\r
950                 //private void tステータスパネルの選択()\r
951                 //{\r
952                 //    if( CDTXMania.bコンパクトモード )\r
953                 //    {\r
954                 //        this.actStatusPanels.tラベル名からステータスパネルを決定する( null );\r
955                 //    }\r
956                 //    else if( CDTXMania.stage選曲.r確定された曲 != null )\r
957                 //    {\r
958                 //        this.actStatusPanels.tラベル名からステータスパネルを決定する( CDTXMania.stage選曲.r確定された曲.ar難易度ラベル[ CDTXMania.stage選曲.n確定された曲の難易度 ] );\r
959                 //    }\r
960                 //}\r
961                 protected override E判定 tチップのヒット処理( long nHitTime, CDTX.CChip pChip )\r
962                 {\r
963                         E判定 eJudgeResult = tチップのヒット処理( nHitTime, pChip, E楽器パート.GUITAR );\r
964                         return eJudgeResult;\r
965                 }\r
966                 //private E判定 tチップのヒット処理( long nHitTime, CDTX.CChip pChip )               // E楽器パート screenmode\r
967                 //{\r
968                 //    pChip.bHit = true;\r
969                 //    bool bPChipIsAutoPlay = false;\r
970                 //    if( (\r
971                 //            ( ( pChip.e楽器パート == E楽器パート.DRUMS ) && CDTXMania.ConfigIni.bAutoPlay[ this.nチャンネル0Atoレーン07[ pChip.nチャンネル番号 - 0x11 ] ] ) ||\r
972                 //            ( ( pChip.e楽器パート == E楽器パート.GUITAR ) && CDTXMania.ConfigIni.bAutoPlay.Guitar )\r
973                 //        ) ||\r
974                 //            ( ( pChip.e楽器パート == E楽器パート.BASS ) && CDTXMania.ConfigIni.bAutoPlay.Bass )\r
975                 //      )\r
976                 //    {\r
977                 //        bPChipIsAutoPlay = true;\r
978                 //    }\r
979                 //    else\r
980                 //    {\r
981                 //        this.bAUTOでないチップが1つでもバーを通過した = true;\r
982                 //    }\r
983                 //    E判定 eJudgeResult = E判定.Auto;\r
984                 //    switch (pChip.e楽器パート)\r
985                 //    {\r
986                 //        case E楽器パート.DRUMS:\r
987                 //            {\r
988                 //                int nInputAdjustTime = bPChipIsAutoPlay ? 0 : this.nInputAdjustTimeMs.Drums;\r
989                 //                eJudgeResult = this.e指定時刻からChipのJUDGEを返す( nHitTime, pChip, nInputAdjustTime );\r
990                 //                this.actJudgeString.Start( this.nチャンネル0Atoレーン07[ pChip.nチャンネル番号 - 0x11 ], bPChipIsAutoPlay ? E判定.Auto : eJudgeResult, pChip.nLag );\r
991                 //            }\r
992                 //            break;\r
993 \r
994                 //        case E楽器パート.GUITAR:\r
995                 //            {\r
996                 //                int nInputAdjustTime = bPChipIsAutoPlay ? 0 : this.nInputAdjustTimeMs.Guitar;\r
997                 //                eJudgeResult = this.e指定時刻からChipのJUDGEを返す( nHitTime, pChip, nInputAdjustTime );\r
998                 //                this.actJudgeString.Start( 10, bPChipIsAutoPlay ? E判定.Auto : eJudgeResult, pChip.nLag );\r
999                 //                break;\r
1000                 //            }\r
1001 \r
1002                 //        case E楽器パート.BASS:\r
1003                 //            {\r
1004                 //                int nInputAdjustTime = bPChipIsAutoPlay ? 0 : this.nInputAdjustTimeMs.Bass;\r
1005                 //                eJudgeResult = this.e指定時刻からChipのJUDGEを返す( nHitTime, pChip, nInputAdjustTime );\r
1006                 //                this.actJudgeString.Start( 11, bPChipIsAutoPlay ? E判定.Auto : eJudgeResult, pChip.nLag );\r
1007                 //            }\r
1008                 //            break;\r
1009                 //    }\r
1010                 //    if ( !bPChipIsAutoPlay && ( pChip.e楽器パート != E楽器パート.UNKNOWN ) )\r
1011                 //    {\r
1012                 //        this.t判定にあわせてゲージを増減する( E楽器パート.GUITAR, pChip.e楽器パート, eJudgeResult );\r
1013                 //    }\r
1014 \r
1015                 //    switch( pChip.e楽器パート )\r
1016                 //    {\r
1017                 //        case E楽器パート.DRUMS:\r
1018                 //            switch ( eJudgeResult )\r
1019                 //            {\r
1020                 //                case E判定.Miss:\r
1021                 //                case E判定.Bad:\r
1022                 //                    this.nヒット数・Auto含む.Drums.Miss++;\r
1023                 //                    if ( !bPChipIsAutoPlay )\r
1024                 //                    {\r
1025                 //                        this.nヒット数・Auto含まない.Drums.Miss++;\r
1026                 //                    }\r
1027                 //                    break;\r
1028                 //                default:\r
1029                 //                    this.nヒット数・Auto含む.Drums[ (int) eJudgeResult ]++;\r
1030                 //                    if ( !bPChipIsAutoPlay )\r
1031                 //                    {\r
1032                 //                        this.nヒット数・Auto含まない.Drums[ (int) eJudgeResult ]++;\r
1033                 //                    }\r
1034                 //                    break;\r
1035                 //            }\r
1036 \r
1037                 //            if ( CDTXMania.ConfigIni.bドラムが全部オートプレイである || !bPChipIsAutoPlay )\r
1038                 //            {\r
1039                 //                switch ( eJudgeResult )\r
1040                 //                {\r
1041                 //                    case E判定.Perfect:\r
1042                 //                    case E判定.Great:\r
1043                 //                    case E判定.Good:\r
1044                 //                        this.actCombo.n現在のコンボ数.Drums++;\r
1045                 //                        break;\r
1046 \r
1047                 //                    default:\r
1048                 //                        this.actCombo.n現在のコンボ数.Drums = 0;\r
1049                 //                        break;\r
1050                 //                }\r
1051                 //            }\r
1052                 //            break;\r
1053 \r
1054                 //        case E楽器パート.GUITAR:\r
1055                 //            switch( eJudgeResult )\r
1056                 //            {\r
1057                 //                case E判定.Miss:\r
1058                 //                case E判定.Bad:\r
1059                 //                    this.nヒット数・Auto含む.Guitar.Miss++;\r
1060                 //                    if ( !bPChipIsAutoPlay )\r
1061                 //                    {\r
1062                 //                        this.nヒット数・Auto含まない.Guitar.Miss++;\r
1063                 //                    }\r
1064                 //                    break;\r
1065                 //                default:      // #24068 2011.1.10 ikanick changed\r
1066                 //                            // #24167 2011.1.16 yyagi changed\r
1067                 //                    this.nヒット数・Auto含む.Guitar[ (int) eJudgeResult ]++;\r
1068                 //                    if ( !bPChipIsAutoPlay )\r
1069                 //                    {\r
1070                 //                        this.nヒット数・Auto含まない.Guitar[ (int) eJudgeResult ]++;\r
1071                 //                    }\r
1072                 //                    break;\r
1073                 //            }\r
1074                 //            switch (eJudgeResult)\r
1075                 //            {\r
1076                 //                case E判定.Perfect:\r
1077                 //                case E判定.Great:\r
1078                 //                case E判定.Good:\r
1079                 //                    this.actCombo.n現在のコンボ数.Guitar++;\r
1080                 //                    break;\r
1081 \r
1082                 //                default:\r
1083                 //                    this.actCombo.n現在のコンボ数.Guitar = 0;\r
1084                 //                    break;\r
1085                 //            }\r
1086                 //            break;\r
1087 \r
1088                 //        case E楽器パート.BASS:\r
1089                 //            switch( eJudgeResult )\r
1090                 //            {\r
1091                 //                case E判定.Miss:\r
1092                 //                case E判定.Bad:\r
1093                 //                    this.nヒット数・Auto含む.Bass.Miss++;\r
1094                 //                    if( !bPChipIsAutoPlay )\r
1095                 //                    {\r
1096                 //                        this.nヒット数・Auto含まない.Bass.Miss++;\r
1097                 //                    }\r
1098                 //                    break;\r
1099                 //                default:      // #24068 2011.1.10 ikanick changed\r
1100                 //                    this.nヒット数・Auto含む.Bass[ (int) eJudgeResult ]++;\r
1101                 //                    if ( !bPChipIsAutoPlay )\r
1102                 //                    {\r
1103                 //                        this.nヒット数・Auto含まない.Bass[ (int) eJudgeResult ]++;\r
1104                 //                    }\r
1105                 //                    break;\r
1106                 //            }\r
1107 \r
1108                 //            switch( eJudgeResult )\r
1109                 //            {\r
1110                 //                case E判定.Perfect:\r
1111                 //                case E判定.Great:\r
1112                 //                case E判定.Good:\r
1113                 //                    this.actCombo.n現在のコンボ数.Bass++;\r
1114                 //                    break;\r
1115 \r
1116                 //                default:\r
1117                 //                    this.actCombo.n現在のコンボ数.Bass = 0;\r
1118                 //                    break;\r
1119                 //            }\r
1120                 //            break;\r
1121 \r
1122                 //        default:\r
1123                 //            break;\r
1124                 //    }\r
1125                 //    if( ( !bPChipIsAutoPlay && ( pChip.e楽器パート != E楽器パート.UNKNOWN ) ) && ( eJudgeResult != E判定.Miss ) && ( eJudgeResult != E判定.Bad ) )\r
1126                 //    {\r
1127                 //        int nCombos = 0;\r
1128                 //        switch ( pChip.e楽器パート )\r
1129                 //        {\r
1130                 //            case E楽器パート.DRUMS:\r
1131                 //                nCombos = this.actCombo.n現在のコンボ数.Drums;\r
1132                 //                break;\r
1133                 //            case E楽器パート.GUITAR:\r
1134                 //                nCombos = this.actCombo.n現在のコンボ数.Guitar;\r
1135                 //                break;\r
1136                 //            case E楽器パート.BASS:\r
1137                 //                nCombos = this.actCombo.n現在のコンボ数.Bass;\r
1138                 //                break;\r
1139                 //        }\r
1140                 //        long nScore = this.actScore.Get( pChip.e楽器パート );\r
1141                 //        long[] numArray = new long[] { 350L, 200L, 50L, 0L };\r
1142                 //        if( ( nCombos <= 500 ) || ( eJudgeResult == E判定.Good ) )\r
1143                 //        {\r
1144                 //            nScore += numArray[ (int) eJudgeResult ] * nCombos;\r
1145                 //        }\r
1146                 //        else if( ( eJudgeResult == E判定.Perfect ) || ( eJudgeResult == E判定.Great ) )\r
1147                 //        {\r
1148                 //            nScore += numArray[ (int) eJudgeResult ] * 500L;\r
1149                 //        }\r
1150                 //        this.actScore.Set( pChip.e楽器パート, nScore );\r
1151                 //    }\r
1152                 //    return eJudgeResult;\r
1153                 //}\r
1154                 protected override void tチップのヒット処理・BadならびにTight時のMiss( E楽器パート part )\r
1155                 {\r
1156                         this.tチップのヒット処理・BadならびにTight時のMiss( part, 0, E楽器パート.GUITAR );\r
1157                 }\r
1158                 protected override void tチップのヒット処理・BadならびにTight時のMiss( E楽器パート part, int nLane )\r
1159                 {\r
1160                         this.tチップのヒット処理・BadならびにTight時のMiss( part, nLane, E楽器パート.GUITAR );\r
1161                 }\r
1162                 //private void tチップのヒット処理・BadならびにTight時のMiss( E楽器パート part )\r
1163                 //{\r
1164                 //    this.tチップのヒット処理・BadならびにTight時のMiss( part, 0 );\r
1165                 //}\r
1166                 //private void tチップのヒット処理・BadならびにTight時のMiss( E楽器パート part, int nLane )\r
1167                 //{\r
1168                 //    this.bAUTOでないチップが1つでもバーを通過した = true;\r
1169                 //    this.t判定にあわせてゲージを増減する( E楽器パート.GUITAR, part, E判定.Miss );\r
1170                 //    switch( part )\r
1171                 //    {\r
1172                 //        case E楽器パート.DRUMS:\r
1173                 //            break;\r
1174 \r
1175                 //        case E楽器パート.GUITAR:\r
1176                 //            this.actJudgeString.Start( 10, E判定.Bad, 999 );\r
1177                 //            this.actCombo.n現在のコンボ数.Guitar = 0;\r
1178                 //            return;\r
1179 \r
1180                 //        case E楽器パート.BASS:\r
1181                 //            this.actJudgeString.Start( 11, E判定.Bad, 999 );\r
1182                 //            this.actCombo.n現在のコンボ数.Bass = 0;\r
1183                 //            break;\r
1184 \r
1185                 //        default:\r
1186                 //            return;\r
1187                 //    }\r
1188                 //}\r
1189                 ////private void tパネル文字列の設定()\r
1190                 ////{\r
1191                 ////    this.actPanel.SetPanelString( string.IsNullOrEmpty( CDTXMania.DTX.PANEL ) ? CDTXMania.DTX.TITLE : CDTXMania.DTX.PANEL );\r
1192                 ////}\r
1193                 protected override void t進行描画・AVI()\r
1194                 {\r
1195                     base.t進行描画・AVI( 0xb5, 50 );\r
1196                 }\r
1197                 protected override void t進行描画・BGA()\r
1198                 {\r
1199                     base.t進行描画・BGA( 0xb5, 50 );\r
1200                 }\r
1201                 protected override void t進行描画・DANGER()                        // 現在、ギター画面でのDANGER実装は無し\r
1202                 {\r
1203                 }\r
1204                 ////private void t進行描画・MIDIBGM()\r
1205                 ////{\r
1206                 ////    if( base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED )\r
1207                 ////    {\r
1208                 ////        CStage.Eフェーズ eフェーズid1 = base.eフェーズID;\r
1209                 ////    }\r
1210                 ////}\r
1211                 //private void t進行描画・RGBボタン()\r
1212                 //{\r
1213                 //    if( CDTXMania.ConfigIni.eDark != Eダークモード.FULL )\r
1214                 //    {\r
1215                 //        this.actRGB.On進行描画();\r
1216                 //    }\r
1217                 //}\r
1218                 //private void t進行描画・STAGEFAILED()\r
1219                 //{\r
1220                 //    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
1221                 //    {\r
1222                 //        this.eフェードアウト完了時の戻り値 = E演奏画面の戻り値.ステージ失敗;\r
1223                 //        base.eフェーズID = CStage.Eフェーズ.演奏_STAGE_FAILED_フェードアウト;\r
1224                 //        this.actFO.tフェードアウト開始();\r
1225                 //    }\r
1226                 //}\r
1227                 //private void t進行描画・WailingBonus()\r
1228                 //{\r
1229                 //    if( ( base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED ) && ( base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED_フェードアウト ) )\r
1230                 //    {\r
1231                 //        this.actWailingBonus.On進行描画();\r
1232                 //    }\r
1233                 //}\r
1234                 protected override void t進行描画・Wailing枠()\r
1235                 {\r
1236                         base.t進行描画・Wailing枠( 0x8b, 0x251,\r
1237                                 CDTXMania.ConfigIni.bReverse.Guitar ? 340 : 11,\r
1238                                 CDTXMania.ConfigIni.bReverse.Bass ?   340 : 11\r
1239                         );\r
1240                 }\r
1241                 private void t進行描画・ギターベース判定ライン()        // yyagi: ドラム画面とは座標が違うだけですが、まとめづらかったのでそのまま放置してます。\r
1242                 {\r
1243                         if ( ( CDTXMania.ConfigIni.eDark != Eダークモード.FULL ) && CDTXMania.ConfigIni.bGuitar有効 )\r
1244                         {\r
1245                                 if ( CDTXMania.DTX.bチップがある.Guitar )\r
1246                                 {\r
1247                                         int y = ( CDTXMania.ConfigIni.bReverse.Guitar ? 0x171 : 40 ) - 3;\r
1248                                         for ( int i = 0; i < 4; i++ )\r
1249                                         {\r
1250                                                 if ( this.txヒットバー != null )\r
1251                                                 {\r
1252                                                         this.txヒットバー.t2D描画( CDTXMania.app.Device, 0x17 + ( 0x1c * i ), y, new Rectangle( 0, i * 8, 0x1c, 8 ) );\r
1253                                                 }\r
1254                                         }\r
1255                                 }\r
1256                                 if ( CDTXMania.DTX.bチップがある.Bass )\r
1257                                 {\r
1258                                         int y = ( CDTXMania.ConfigIni.bReverse.Bass ? 0x171 : 40 ) - 3;\r
1259                                         for ( int j = 0; j < 4; j++ )\r
1260                                         {\r
1261                                                 if ( this.txヒットバー != null )\r
1262                                                 {\r
1263                                                         this.txヒットバー.t2D描画( CDTXMania.app.Device, 0x1dd + ( 0x1c * j ), y, new Rectangle( 0, j * 8, 0x1c, 8 ) );\r
1264                                                 }\r
1265                                         }\r
1266                                 }\r
1267                         }\r
1268                 }\r
1269                 //private void t進行描画・ゲージ()\r
1270                 //{\r
1271                 //    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
1272                 //    {\r
1273                 //        this.actGauge.On進行描画();\r
1274                 //    }\r
1275                 //}\r
1276                 //private void t進行描画・コンボ()\r
1277                 //{\r
1278                 //    this.actCombo.On進行描画();\r
1279                 //}\r
1280                 //private void t進行描画・スコア()\r
1281                 //{\r
1282                 //    this.actScore.On進行描画();\r
1283                 //}\r
1284                 //private void t進行描画・ステータスパネル()\r
1285                 //{\r
1286                 //    this.actStatusPanels.On進行描画();\r
1287                 //}\r
1288 //        private bool t進行描画・チップ(E楽器パート ePlayMode)\r
1289 //        {\r
1290 //            if( ( base.eフェーズID == CStage.Eフェーズ.演奏_STAGE_FAILED ) || ( base.eフェーズID == CStage.Eフェーズ.演奏_STAGE_FAILED_フェードアウト ) )\r
1291 //            {\r
1292 //                return true;\r
1293 //            }\r
1294 //            if( ( this.n現在のトップChip == -1 ) || ( this.n現在のトップChip >= CDTXMania.DTX.listChip.Count ) )\r
1295 //            {\r
1296 //                return true;\r
1297 //            }\r
1298 //            int nCurrentTopChip = this.n現在のトップChip;\r
1299 //            if( nCurrentTopChip == -1 )\r
1300 //            {\r
1301 //                return true;\r
1302 //            }\r
1303 \r
1304 //            //double speed = 264.0;   // BPM150の時の1小節の長さ[dot]\r
1305 //            double speed = 234.0;     // BPM150の時の1小節の長さ[dot]\r
1306 \r
1307 //            double ScrollSpeedDrums  = ( this.act譜面スクロール速度.db現在の譜面スクロール速度.Drums  + 1.0 ) * 0.5 *       37.5 * speed / 60000.0;\r
1308 //            double ScrollSpeedGuitar = ( this.act譜面スクロール速度.db現在の譜面スクロール速度.Guitar + 1.0 ) * 0.5 * 0.5 * 37.5 * speed / 60000.0;\r
1309 //            double ScrollSpeedBass   = ( this.act譜面スクロール速度.db現在の譜面スクロール速度.Bass   + 1.0 ) * 0.5 * 0.5 * 37.5 * speed / 60000.0;\r
1310 \r
1311 //            CDTX dTX = CDTXMania.DTX;\r
1312 //            CConfigIni configIni = CDTXMania.ConfigIni;\r
1313 //            while( nCurrentTopChip < dTX.listChip.Count )\r
1314 //            {\r
1315 //                CDTX.CChip pChip = dTX.listChip[ nCurrentTopChip ];\r
1316 //                pChip.nバーからの距離dot.Drums = (int) ( ( pChip.n発声時刻ms - CDTXMania.Timer.n現在時刻 ) * ScrollSpeedDrums );\r
1317 //                pChip.nバーからの距離dot.Guitar = (int) ( ( pChip.n発声時刻ms - CDTXMania.Timer.n現在時刻 ) * ScrollSpeedGuitar );\r
1318 //                pChip.nバーからの距離dot.Bass = (int) ( ( pChip.n発声時刻ms - CDTXMania.Timer.n現在時刻 ) * ScrollSpeedBass );\r
1319 //                if( Math.Min( Math.Min( pChip.nバーからの距離dot.Drums, pChip.nバーからの距離dot.Guitar ), pChip.nバーからの距離dot.Bass ) > 450 )\r
1320 //                {\r
1321 //                    break;\r
1322 //                }\r
1323 //                if( ( ( nCurrentTopChip == this.n現在のトップChip ) && ( pChip.nバーからの距離dot.Drums < -65 ) ) && pChip.bHit )\r
1324 //                {\r
1325 //                    this.n現在のトップChip++;\r
1326 //                    nCurrentTopChip = this.n現在のトップChip;\r
1327 //                    continue;\r
1328 //                }\r
1329 \r
1330 //                bool bPChipIsAutoPlay = false;\r
1331 //                if ((\r
1332 //                        ((pChip.e楽器パート == E楽器パート.DRUMS) && CDTXMania.ConfigIni.bAutoPlay[this.nチャンネル0Atoレーン07[pChip.nチャンネル番号 - 0x11]]) ||\r
1333 //                        ((pChip.e楽器パート == E楽器パート.GUITAR) && CDTXMania.ConfigIni.bAutoPlay.Guitar)\r
1334 //                    ) ||\r
1335 //                        ((pChip.e楽器パート == E楽器パート.BASS) && CDTXMania.ConfigIni.bAutoPlay.Bass)\r
1336 //                  )\r
1337 ////                            if ((pChip.e楽器パート == E楽器パート.DRUMS) && CDTXMania.ConfigIni.bAutoPlay[this.nチャンネル0Atoレーン07[pChip.nチャンネル番号 - 0x11]])\r
1338 //                {\r
1339 //                    bPChipIsAutoPlay = true;\r
1340 //                }\r
1341 \r
1342 //                int nInputAdjustTime = 0;\r
1343 //                if (bPChipIsAutoPlay)\r
1344 //                {\r
1345 //                    //nInputAdjustTime = 0;\r
1346 //                }\r
1347 //                else if (pChip.e楽器パート == E楽器パート.UNKNOWN)\r
1348 //                {\r
1349 //                    //nInputAdjustTime = 0;\r
1350 //                }\r
1351 //                else\r
1352 //                {\r
1353 //                    nInputAdjustTime = this.nInputAdjustTimeMs[(int)pChip.e楽器パート];\r
1354 //                }\r
1355 \r
1356 //                if( ( ( pChip.e楽器パート != E楽器パート.UNKNOWN ) && !pChip.bHit ) &&\r
1357 //                    ( ( pChip.nバーからの距離dot.Drums < 0 ) && ( this.e指定時刻からChipのJUDGEを返す( CDTXMania.Timer.n現在時刻, pChip, nInputAdjustTime ) == E判定.Miss ) ) )\r
1358 //                {\r
1359 //                    this.tチップのヒット処理( CDTXMania.Timer.n現在時刻, pChip );\r
1360 //                }\r
1361 //                switch( pChip.nチャンネル番号 )\r
1362 //                {\r
1363 //                    case 0x01:        // BGM\r
1364 //                        if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
1365 //                        {\r
1366 //                            pChip.bHit = true;\r
1367 //                            if( configIni.bBGM音を発声する )\r
1368 //                            {\r
1369 //                                dTX.tチップの再生( pChip, CDTXMania.Timer.n前回リセットした時のシステム時刻 + pChip.n発声時刻ms, 10, dTX.nモニタを考慮した音量( E楽器パート.UNKNOWN ) );\r
1370 //                            }\r
1371 //                        }\r
1372 //                        break;\r
1373 \r
1374 //                    case 0x03:        // BPM変更\r
1375 //                        if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
1376 //                        {\r
1377 //                            pChip.bHit = true;\r
1378 //                            this.actPlayInfo.dbBPM = ( pChip.n整数値 * ( ( (double) configIni.n演奏速度 ) / 20.0 ) ) + dTX.BASEBPM;\r
1379 //                        }\r
1380 //                        break;\r
1381 \r
1382 //                    case 0x04:        // レイヤーBGA\r
1383 //                    case 0x07:\r
1384 //                    case 0x55:\r
1385 //                    case 0x56:\r
1386 //                    case 0x57:\r
1387 //                    case 0x58:\r
1388 //                    case 0x59:\r
1389 //                    case 0x60:\r
1390 //                        if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
1391 //                        {\r
1392 //                            pChip.bHit = true;\r
1393 //                            if( configIni.bBGA有効 )\r
1394 //                            {\r
1395 //                                switch( pChip.eBGA種別 )\r
1396 //                                {\r
1397 //                                    case EBGA種別.BMPTEX:\r
1398 //                                        if( pChip.rBMPTEX != null )\r
1399 //                                        {\r
1400 //                                            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
1401 //                                        }\r
1402 //                                        break;\r
1403 \r
1404 //                                    case EBGA種別.BGA:\r
1405 //                                        if( ( pChip.rBGA != null ) && ( ( pChip.rBMP != null ) || ( pChip.rBMPTEX != null ) ) )\r
1406 //                                        {\r
1407 //                                            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
1408 //                                        }\r
1409 //                                        break;\r
1410 \r
1411 //                                    case EBGA種別.BGAPAN:\r
1412 //                                        if( ( pChip.rBGAPan != null ) && ( ( pChip.rBMP != null ) || ( pChip.rBMPTEX != null ) ) )\r
1413 //                                        {\r
1414 //                                            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
1415 //                                        }\r
1416 //                                        break;\r
1417 \r
1418 //                                    default:\r
1419 //                                        if( pChip.rBMP != null )\r
1420 //                                        {\r
1421 //                                            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
1422 //                                        }\r
1423 //                                        break;\r
1424 //                                }\r
1425 //                            }\r
1426 //                        }\r
1427 //                        break;\r
1428 \r
1429 //                    case 0x08:        // BPM変更(拡張)\r
1430 //                        if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
1431 //                        {\r
1432 //                            pChip.bHit = true;\r
1433 //                            if( dTX.listBPM.ContainsKey( pChip.n整数値・内部番号 ) )\r
1434 //                            {\r
1435 //                                this.actPlayInfo.dbBPM = ( dTX.listBPM[ pChip.n整数値・内部番号 ].dbBPM値 * ( ( (double) configIni.n演奏速度 ) / 20.0 ) ) + dTX.BASEBPM;\r
1436 //                            }\r
1437 //                        }\r
1438 //                        break;\r
1439 \r
1440 //                    case 0x11:        // ドラム演奏\r
1441 //                    case 0x12:\r
1442 //                    case 0x13:\r
1443 //                    case 0x14:\r
1444 //                    case 0x15:\r
1445 //                    case 0x16:\r
1446 //                    case 0x17:\r
1447 //                    case 0x18:\r
1448 //                    case 0x19:\r
1449 //                    case 0x1a:\r
1450 //                        this.t進行描画・チップ・ドラムス( configIni, ref dTX, ref pChip );\r
1451 //                        break;\r
1452 \r
1453 //                    case 0x1f:        // フィルインサウンド(ドラム)\r
1454 //                        if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
1455 //                        {\r
1456 //                            pChip.bHit = true;\r
1457 //                            this.r現在の歓声Chip.Drums = pChip;\r
1458 //                        }\r
1459 //                        break;\r
1460 \r
1461 //                    case 0x20:        // ギター演奏\r
1462 //                    case 0x21:\r
1463 //                    case 0x22:\r
1464 //                    case 0x23:\r
1465 //                    case 0x24:\r
1466 //                    case 0x25:\r
1467 //                    case 0x26:\r
1468 //                    case 0x27:\r
1469 //                        this.t進行描画・チップ・ギター( configIni, ref dTX, ref pChip );\r
1470 //                        break;\r
1471 \r
1472 //                    case 0x28:        // ウェイリング(ギター)\r
1473 //                        this.t進行描画・チップ・ギター・ウェイリング( configIni, ref dTX, ref pChip );\r
1474 //                        break;\r
1475 \r
1476 //                    case 0x2f:        // ウェイリングサウンド(ギター)\r
1477 //                        if( !pChip.bHit && ( pChip.nバーからの距離dot.Guitar < 0 ) )\r
1478 //                        {\r
1479 //                            pChip.bHit = true;\r
1480 //                            this.r現在の歓声Chip.Guitar = pChip;\r
1481 //                        }\r
1482 //                        break;\r
1483 \r
1484 //                    case 0x31:        // 不可視チップ配置(ドラム)\r
1485 //                    case 0x32:\r
1486 //                    case 0x33:\r
1487 //                    case 0x34:\r
1488 //                    case 0x35:\r
1489 //                    case 0x36:\r
1490 //                    case 0x37:\r
1491 //                    case 0x38:\r
1492 //                    case 0x39:\r
1493 //                    case 0x3a:\r
1494 //                        if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
1495 //                        {\r
1496 //                            pChip.bHit = true;\r
1497 //                        }\r
1498 //                        break;\r
1499 \r
1500 //                    case 0x50:        // 小節線\r
1501 //                        {\r
1502 //                            int n小節番号plus1 = pChip.n発声位置 / 384;\r
1503 //                            if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
1504 //                            {\r
1505 //                                pChip.bHit = true;\r
1506 //                                this.actPlayInfo.n小節番号 = n小節番号plus1 - 1;\r
1507 //                                if( configIni.bWave再生位置自動調整機能有効 )\r
1508 //                                {\r
1509 //                                    dTX.tWave再生位置自動補正();\r
1510 //                                }\r
1511 //                            }\r
1512 //                            if( configIni.bDrums有効 && ePlayMode == E楽器パート.DRUMS )       // Drumsでのみ表示\r
1513 //                            {\r
1514 //                                if ( configIni.b演奏情報を表示する && ( configIni.eDark == Eダークモード.OFF ) )\r
1515 //                                {\r
1516 //                                    int n小節番号 = n小節番号plus1 - 1;\r
1517 //                                    CDTXMania.act文字コンソール.tPrint( 0x14d, configIni.bReverse.Drums ? ( ( 0x38 + pChip.nバーからの距離dot.Drums ) - 0x11 ) : ( ( 0x1a6 - pChip.nバーからの距離dot.Drums ) - 0x11 ), C文字コンソール.Eフォント種別.白, n小節番号.ToString() );\r
1518 //                                }\r
1519 //                                if ( ( ( configIni.eDark != Eダークモード.FULL ) && pChip.b可視 ) && ( this.txチップ != null ) )\r
1520 //                                {\r
1521 //                                    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
1522 //                                }\r
1523 //                            }\r
1524 //                            if( ( pChip.b可視 && configIni.bGuitar有効 ) && ( configIni.eDark != Eダークモード.FULL ) )\r
1525 //                            {\r
1526 //                                int y = configIni.bReverse.Guitar ? ( ( 0x171 - pChip.nバーからの距離dot.Guitar ) - 1 ) : ( ( 40 + pChip.nバーからの距離dot.Guitar ) - 1 );\r
1527 //                                if( ( dTX.bチップがある.Guitar && ( y > 0 ) ) && ( ( y < 0x199 ) && ( this.txチップ != null ) ) )\r
1528 //                                {\r
1529 //                                    this.txチップ.t2D描画( CDTXMania.app.Device, 0x1a, y, new Rectangle( 0, 0xeb, 0x68, 1 ) );\r
1530 //                                }\r
1531 //                                y = configIni.bReverse.Bass ? ( ( 0x171 - pChip.nバーからの距離dot.Bass ) - 1 ) : ( ( 40 + pChip.nバーからの距離dot.Bass ) - 1 );\r
1532 //                                if( ( dTX.bチップがある.Bass && ( y > 0 ) ) && ( ( y < 0x199 ) && ( this.txチップ != null ) ) )\r
1533 //                                {\r
1534 //                                    this.txチップ.t2D描画( CDTXMania.app.Device, 480, y, new Rectangle( 0, 0xeb, 0x68, 1 ) );\r
1535 //                                }\r
1536 //                            }\r
1537 //                            break;\r
1538 //                        }\r
1539 //                    case 0x51:        // 拍線\r
1540 //                        if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
1541 //                        {\r
1542 //                            pChip.bHit = true;\r
1543 //                        }\r
1544 //                        if( ( ePlayMode == E楽器パート.DRUMS ) && ( configIni.eDark != Eダークモード.FULL ) && pChip.b可視 && ( this.txチップ != null ) )\r
1545 //                        {\r
1546 //                            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
1547 //                        }\r
1548 //                        break;\r
1549 \r
1550 //                    case 0x52:        // MIDIコーラス\r
1551 //                        if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
1552 //                        {\r
1553 //                            pChip.bHit = true;\r
1554 //                        }\r
1555 //                        break;\r
1556 \r
1557 //                    case 0x53:        // フィルイン\r
1558 //                        this.t進行描画・チップ・フィルイン( configIni, ref dTX, ref pChip );\r
1559 //                        break;\r
1560 \r
1561 //                    case 0x54:        // 動画再生\r
1562 //                        if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
1563 //                        {\r
1564 //                            pChip.bHit = true;\r
1565 //                            if( configIni.bAVI有効 )\r
1566 //                            {\r
1567 //                                switch( pChip.eAVI種別 )\r
1568 //                                {\r
1569 //                                    case EAVI種別.AVI:\r
1570 //                                        if( pChip.rAVI != null )\r
1571 //                                        {\r
1572 //                                            this.actAVI.Start( pChip.nチャンネル番号, pChip.rAVI, 0x116, 0x163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, pChip.n発声時刻ms );\r
1573 //                                        }\r
1574 //                                        break;\r
1575 \r
1576 //                                    case EAVI種別.AVIPAN:\r
1577 //                                        if( pChip.rAVIPan != null )\r
1578 //                                        {\r
1579 //                                            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
1580 //                                        }\r
1581 //                                        break;\r
1582 //                                }\r
1583 //                            }\r
1584 //                        }\r
1585 //                        break;\r
1586 \r
1587 //                    case 0x61:        case 0x62:      case 0x63:      case 0x64:      // 自動再生(BGM, SE)\r
1588 //                    case 0x65:        case 0x66:      case 0x67:      case 0x68:\r
1589 //                    case 0x69:        case 0x70:      case 0x71:      case 0x72:\r
1590 //                    case 0x73:        case 0x74:      case 0x75:      case 0x76:\r
1591 //                    case 0x77:        case 0x78:      case 0x79:      case 0x80:\r
1592 //                    case 0x81:        case 0x82:      case 0x83:      case 0x84:\r
1593 //                    case 0x85:        case 0x86:      case 0x87:      case 0x88:\r
1594 //                    case 0x89:        case 0x90:      case 0x91:      case 0x92:\r
1595 //                        if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
1596 //                        {\r
1597 //                            pChip.bHit = true;\r
1598 //                            if( configIni.bBGM音を発声する )\r
1599 //                            {\r
1600 //                                dTX.tWavの再生停止( this.n最後に再生したBGMの実WAV番号[ pChip.nチャンネル番号 - 0x61 ] );\r
1601 //                                dTX.tチップの再生( pChip, CDTXMania.Timer.n前回リセットした時のシステム時刻 + pChip.n発声時刻ms, 10, dTX.nモニタを考慮した音量( E楽器パート.UNKNOWN ) );\r
1602 //                                this.n最後に再生したBGMの実WAV番号[ pChip.nチャンネル番号 - 0x61 ] = pChip.n整数値・内部番号;\r
1603 //                            }\r
1604 //                        }\r
1605 //                        break;\r
1606 \r
1607 //                    case 0xa0:        // ベース演奏\r
1608 //                    case 0xa1:\r
1609 //                    case 0xa2:\r
1610 //                    case 0xa3:\r
1611 //                    case 0xa4:\r
1612 //                    case 0xa5:\r
1613 //                    case 0xa6:\r
1614 //                    case 0xa7:\r
1615 //                        this.t進行描画・チップ・ベース( configIni, ref dTX, ref pChip );\r
1616 //                        break;\r
1617 \r
1618 //                    case 0xa8:        // ウェイリング(ベース)\r
1619 //                        this.t進行描画・チップ・ベース・ウェイリング( configIni, ref dTX, ref pChip );\r
1620 //                        break;\r
1621 \r
1622 //                    case 0xaf:\r
1623 //                        if( !pChip.bHit && ( pChip.nバーからの距離dot.Bass < 0 ) )\r
1624 //                        {\r
1625 //                            pChip.bHit = true;\r
1626 //                            this.r現在の歓声Chip.Bass = pChip;\r
1627 //                        }\r
1628 //                        break;\r
1629 \r
1630 //                    case 0xb1:        // 空打ち音設定(ドラム)\r
1631 //                    case 0xb2:\r
1632 //                    case 0xb3:\r
1633 //                    case 0xb4:\r
1634 //                    case 0xb5:\r
1635 //                    case 0xb6:\r
1636 //                    case 0xb7:\r
1637 //                    case 0xb8:\r
1638 //                    case 0xb9:\r
1639 //                    case 0xbc:\r
1640 //                        this.t進行描画・チップ・空打ち音設定・ドラム( configIni, ref dTX, ref pChip );\r
1641 //                        break;\r
1642 \r
1643 //                    case 0xba:        // 空打ち音設定(ギター)\r
1644 //                        break;\r
1645 \r
1646 //                    case 0xbb:        // 空打ち音設定(ベース)\r
1647 //                        if ( !pChip.bHit && ( pChip.nバーからの距離dot.Guitar < 0 ) )\r
1648 //                        {\r
1649 //                            pChip.bHit = true;\r
1650 //                            this.r現在の空うちギターChip = pChip;\r
1651 //                            pChip.nチャンネル番号 = 0x20;\r
1652 //                        }\r
1653 //                        if ( !pChip.bHit && ( pChip.nバーからの距離dot.Bass < 0 ) )\r
1654 //                        {\r
1655 //                            pChip.bHit = true;\r
1656 //                            this.r現在の空うちベースChip = pChip;\r
1657 //                            pChip.nチャンネル番号 = 160;\r
1658 //                        }\r
1659 //                        break;\r
1660 \r
1661 //                    case 0xc4:        // BGA画像入れ替え\r
1662 //                    case 0xc7:\r
1663 //                    case 0xd5:\r
1664 //                    case 0xd6:\r
1665 //                    case 0xd7:\r
1666 //                    case 0xd8:\r
1667 //                    case 0xd9:\r
1668 //                    case 0xe0:\r
1669 //                        if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
1670 //                        {\r
1671 //                            pChip.bHit = true;\r
1672 //                            if( ( configIni.bBGA有効 && ( pChip.eBGA種別 == EBGA種別.BMP ) ) || ( pChip.eBGA種別 == EBGA種別.BMPTEX ) )\r
1673 //                            {\r
1674 //                                for( int i = 0; i < 8; i++ )\r
1675 //                                {\r
1676 //                                    if( this.nBGAスコープチャンネルマップ[ 0, i ] == pChip.nチャンネル番号 )\r
1677 //                                    {\r
1678 //                                        this.actBGA.ChangeScope( this.nBGAスコープチャンネルマップ[ 1, i ], pChip.rBMP, pChip.rBMPTEX );\r
1679 //                                    }\r
1680 //                                }\r
1681 //                            }\r
1682 //                        }\r
1683 //                        break;\r
1684 \r
1685 //                    default:\r
1686 //                        if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
1687 //                        {\r
1688 //                            pChip.bHit = true;\r
1689 //                        }\r
1690 //                        break;\r
1691 //                }\r
1692 \r
1693 //                nCurrentTopChip++;\r
1694 //            }\r
1695 //            return false;\r
1696 //        }\r
1697                 //private void t進行描画・チップアニメ()\r
1698                 //{\r
1699                 //    for( int i = 1; i < 3; i++ )\r
1700                 //    {\r
1701                 //        this.ctチップ模様アニメ[ i ].t進行Loop();\r
1702                 //    }\r
1703                 //    this.ctWailingチップ模様アニメ.t進行Loop();\r
1704                 //}\r
1705                 //private void t進行描画・チップファイアGB()\r
1706                 //{\r
1707                 //    this.actChipFireGB.On進行描画();\r
1708                 //}\r
1709                 protected override void t進行描画・パネル文字列()\r
1710                 {\r
1711                         base.t進行描画・パネル文字列( 0xb5, 430 );\r
1712                 }\r
1713                 //private bool t進行描画・フェードイン・アウト()\r
1714                 //{\r
1715                 //    switch( base.eフェーズID )\r
1716                 //    {\r
1717                 //        case CStage.Eフェーズ.共通_フェードイン:\r
1718                 //            if( this.actFI.On進行描画() != 0 )\r
1719                 //            {\r
1720                 //                base.eフェーズID = CStage.Eフェーズ.共通_通常状態;\r
1721                 //            }\r
1722                 //            break;\r
1723 \r
1724                 //        case CStage.Eフェーズ.共通_フェードアウト:\r
1725                 //        case CStage.Eフェーズ.演奏_STAGE_FAILED_フェードアウト:\r
1726                 //            if( this.actFO.On進行描画() != 0 )\r
1727                 //            {\r
1728                 //                return true;\r
1729                 //            }\r
1730                 //            break;\r
1731 \r
1732                 //        case CStage.Eフェーズ.演奏_STAGE_CLEAR_フェードアウト:\r
1733                 //            if( this.actFOClear.On進行描画() == 0 )\r
1734                 //            {\r
1735                 //                break;\r
1736                 //            }\r
1737                 //            return true;\r
1738                 //    }\r
1739                 //    return false;\r
1740                 //}\r
1741                 //private void t進行描画・レーンフラッシュGB()\r
1742                 //{\r
1743                 //    if( ( ( CDTXMania.ConfigIni.eDark != Eダークモード.HALF ) && ( CDTXMania.ConfigIni.eDark != Eダークモード.FULL ) ) && CDTXMania.ConfigIni.bGuitar有効 )\r
1744                 //    {\r
1745                 //        this.actLaneFlushGB.On進行描画();\r
1746                 //    }\r
1747                 //}\r
1748                 protected override void t進行描画・演奏情報()\r
1749                 {\r
1750                         base.t進行描画・演奏情報( 0xb5, 50 );\r
1751                 }\r
1752                 //private void t進行描画・背景()\r
1753                 //{\r
1754                 //    if( CDTXMania.ConfigIni.eDark == Eダークモード.OFF )\r
1755                 //    {\r
1756                 //        if( this.tx背景 != null )\r
1757                 //        {\r
1758                 //            this.tx背景.t2D描画( CDTXMania.app.Device, 0, 0 );\r
1759                 //        }\r
1760                 //    }\r
1761                 //    else\r
1762                 //    {\r
1763                 //        CDTXMania.app.Device.Clear( ClearFlags.ZBuffer | ClearFlags.Target, Color.Black, 0f, 0 );\r
1764                 //    }\r
1765                 //}\r
1766                 //private void t進行描画・判定文字列()\r
1767                 //{\r
1768                 //    this.actJudgeString.On進行描画();\r
1769                 //}\r
1770                 //private void t進行描画・譜面スクロール速度()\r
1771                 //{\r
1772                 //    this.act譜面スクロール速度.On進行描画();\r
1773                 //}\r
1774                 //private void t入力メソッド記憶( E楽器パート part )\r
1775                 //{\r
1776                 //    if( CDTXMania.Pad.st検知したデバイス.Keyboard )\r
1777                 //    {\r
1778                 //        this.b演奏にキーボードを使った[ (int) part ] = true;\r
1779                 //    }\r
1780                 //    if( CDTXMania.Pad.st検知したデバイス.Joypad )\r
1781                 //    {\r
1782                 //        this.b演奏にジョイパッドを使った[ (int) part ] = true;\r
1783                 //    }\r
1784                 //    if( CDTXMania.Pad.st検知したデバイス.MIDIIN )\r
1785                 //    {\r
1786                 //        this.b演奏にMIDI入力を使った[ (int) part ] = true;\r
1787                 //    }\r
1788                 //    if( CDTXMania.Pad.st検知したデバイス.Mouse )\r
1789                 //    {\r
1790                 //        this.b演奏にマウスを使った[ (int) part ] = true;\r
1791                 //    }\r
1792                 //}\r
1793 \r
1794 \r
1795                 protected override void ドラムスクロール速度アップ()\r
1796                 {\r
1797                         // ギタレボモードでは何もしない\r
1798                 }\r
1799                 protected override void ドラムスクロール速度ダウン()\r
1800                 {\r
1801                         // ギタレボモードでは何もしない\r
1802                 }\r
1803 \r
1804                 protected override void t入力処理・ドラム()\r
1805                 {\r
1806                         // ギタレボモードでは何もしない\r
1807                 }\r
1808                 //protected override void t入力処理・ギター()\r
1809                 //{\r
1810                 //    if ( CDTXMania.Pad.b押されている( E楽器パート.GUITAR, Eパッド.Decide ) && CDTXMania.Pad.b押された( E楽器パート.GUITAR, Eパッド.B ) )\r
1811                 //    {\r
1812                 //        CDTXMania.ConfigIni.n譜面スクロール速度.Guitar = Math.Min( CDTXMania.ConfigIni.n譜面スクロール速度.Guitar + 1, 0x7cf );\r
1813                 //    }\r
1814                 //    if ( CDTXMania.Pad.b押されている( E楽器パート.GUITAR, Eパッド.Decide ) && CDTXMania.Pad.b押された( E楽器パート.GUITAR, Eパッド.R ) )\r
1815                 //    {\r
1816                 //        CDTXMania.ConfigIni.n譜面スクロール速度.Guitar = Math.Max( CDTXMania.ConfigIni.n譜面スクロール速度.Guitar - 1, 0 );\r
1817                 //    }\r
1818 \r
1819                 //    if ( CDTXMania.ConfigIni.bGuitar有効 && CDTXMania.DTX.bチップがある.Guitar )\r
1820                 //    {\r
1821                 //        if( bIsAutoPlay.Guitar )\r
1822                 //        {\r
1823                 //            CDTX.CChip chip = this.r次にくるギターChipを更新して返す();\r
1824                 //            if( chip != null )\r
1825                 //            {\r
1826                 //                if( ( chip.nチャンネル番号 & 4 ) != 0 )\r
1827                 //                {\r
1828                 //                    this.actLaneFlushGB.Start( 0 );\r
1829                 //                    this.actRGB.Push( 0 );\r
1830                 //                }\r
1831                 //                if( ( chip.nチャンネル番号 & 2 ) != 0 )\r
1832                 //                {\r
1833                 //                    this.actLaneFlushGB.Start( 1 );\r
1834                 //                    this.actRGB.Push( 1 );\r
1835                 //                }\r
1836                 //                if( ( chip.nチャンネル番号 & 1 ) != 0 )\r
1837                 //                {\r
1838                 //                    this.actLaneFlushGB.Start( 2 );\r
1839                 //                    this.actRGB.Push( 2 );\r
1840                 //                }\r
1841                 //            }\r
1842                 //        }\r
1843                 //        else\r
1844                 //        {\r
1845                 //            int flagR = CDTXMania.Pad.b押されている( E楽器パート.GUITAR, Eパッド.R ) ? 4 : 0;\r
1846                 //            this.t入力メソッド記憶( E楽器パート.GUITAR );\r
1847                 //            int flagG = CDTXMania.Pad.b押されている( E楽器パート.GUITAR, Eパッド.G ) ? 2 : 0;\r
1848                 //            this.t入力メソッド記憶( E楽器パート.GUITAR );\r
1849                 //            int flagB = CDTXMania.Pad.b押されている( E楽器パート.GUITAR, Eパッド.B ) ? 1 : 0;\r
1850                 //            this.t入力メソッド記憶( E楽器パート.GUITAR );\r
1851                 //            int flagRGB = flagR | flagG | flagB;\r
1852                 //            if( flagR != 0 )\r
1853                 //            {\r
1854                 //                this.actLaneFlushGB.Start( 0 );\r
1855                 //                this.actRGB.Push( 0 );\r
1856                 //            }\r
1857                 //            if( flagG != 0 )\r
1858                 //            {\r
1859                 //                this.actLaneFlushGB.Start( 1 );\r
1860                 //                this.actRGB.Push( 1 );\r
1861                 //            }\r
1862                 //            if( flagB != 0 )\r
1863                 //            {\r
1864                 //                this.actLaneFlushGB.Start( 2 );\r
1865                 //                this.actRGB.Push( 2 );\r
1866                 //            }\r
1867                 //            List<STInputEvent> events = CDTXMania.Pad.GetEvents( E楽器パート.GUITAR, Eパッド.Pick );\r
1868                 //            if( ( events != null ) && ( events.Count > 0 ) )\r
1869                 //            {\r
1870                 //                foreach( STInputEvent event2 in events )\r
1871                 //                {\r
1872                 //                    CDTX.CChip chip4;\r
1873                 //                    if( !event2.b押された )\r
1874                 //                    {\r
1875                 //                        continue;\r
1876                 //                    }\r
1877                 //                    this.t入力メソッド記憶( E楽器パート.GUITAR );\r
1878                 //                    long nTime = event2.nTimeStamp - CDTXMania.Timer.n前回リセットした時のシステム時刻;\r
1879                 //                    CDTX.CChip pChip = this.r指定時刻に一番近い未ヒットChip( nTime, 0x2f, this.nInputAdjustTimeMs.Guitar, 0 );\r
1880                 //                    E判定 e判定 = this.e指定時刻からChipのJUDGEを返す(nTime, pChip, this.nInputAdjustTimeMs.Guitar );\r
1881                 //                    if (((pChip != null) && ((pChip.nチャンネル番号 & 15) == flagRGB)) && (e判定 != E判定.Miss))\r
1882                 //                    {\r
1883                 //                        if( ( flagR != 0 ) || ( flagRGB == 0 ) )\r
1884                 //                        {\r
1885                 //                            this.actChipFireGB.Start( 0 );\r
1886                 //                        }\r
1887                 //                        if( ( flagG != 0 ) || ( flagRGB == 0 ) )\r
1888                 //                        {\r
1889                 //                            this.actChipFireGB.Start( 1 );\r
1890                 //                        }\r
1891                 //                        if( ( flagB != 0 ) || ( flagRGB == 0 ) )\r
1892                 //                        {\r
1893                 //                            this.actChipFireGB.Start( 2 );\r
1894                 //                        }\r
1895                 //                        this.tチップのヒット処理( nTime, pChip );\r
1896                 //                        this.tサウンド再生( pChip, CDTXMania.Timer.nシステム時刻, E楽器パート.GUITAR, CDTXMania.ConfigIni.n手動再生音量, CDTXMania.ConfigIni.b演奏音を強調する.Guitar, e判定 == E判定.Poor );\r
1897                 //                        CDTX.CChip item = this.r指定時刻に一番近い未ヒットChip( nTime, 40, this.nInputAdjustTimeMs.Guitar, 140 );\r
1898                 //                        if( item != null )\r
1899                 //                        {\r
1900                 //                            this.queWailing.Guitar.Enqueue( item );\r
1901                 //                        }\r
1902                 //                        continue;\r
1903                 //                    }\r
1904                 //                    if( ( ( chip4 = this.r現在の空うちギターChip ) != null ) || ( ( chip4 = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( nTime, 0x2f, this.nInputAdjustTimeMs.Guitar ) ) != null ) )\r
1905                 //                    {\r
1906                 //                        this.tサウンド再生( chip4, CDTXMania.Timer.nシステム時刻, E楽器パート.GUITAR, CDTXMania.ConfigIni.n手動再生音量, CDTXMania.ConfigIni.b演奏音を強調する.Guitar, true );\r
1907                 //                    }\r
1908                 //                    if( !CDTXMania.ConfigIni.bLight.Guitar )\r
1909                 //                    {\r
1910                 //                        this.tチップのヒット処理・BadならびにTight時のMiss( E楽器パート.GUITAR );\r
1911                 //                    }\r
1912                 //                }\r
1913                 //            }\r
1914                 //            List<STInputEvent> list2 = CDTXMania.Pad.GetEvents( E楽器パート.GUITAR, Eパッド.Wail );\r
1915                 //            if( ( list2 != null ) && ( list2.Count > 0 ) )\r
1916                 //            {\r
1917                 //                foreach( STInputEvent event3 in list2 )\r
1918                 //                {\r
1919                 //                    CDTX.CChip chip5;\r
1920                 //                    if( !event3.b押された )\r
1921                 //                    {\r
1922                 //                        continue;\r
1923                 //                    }\r
1924                 //                    long num6 = event3.nTimeStamp - CDTXMania.Timer.n前回リセットした時のシステム時刻;\r
1925                 //                    while( ( this.queWailing.Guitar.Count > 0 ) && ( ( chip5 = this.queWailing.Guitar.Dequeue() ) != null ) )\r
1926                 //                    {\r
1927                 //                        if( ( num6 - chip5.n発声時刻ms ) <= 1000 )                // #24245 2011.1.26 yyagi: 800 -> 1000\r
1928                 //                        {\r
1929                 //                            chip5.bHit = true;\r
1930                 //                            this.actWailingBonus.Start( E楽器パート.GUITAR, this.r現在の歓声Chip.Guitar );\r
1931                 //                            if( !bIsAutoPlay.Guitar )\r
1932                 //                            {\r
1933                 //                                int nCombo = ( this.actCombo.n現在のコンボ数.Guitar < 500 ) ? this.actCombo.n現在のコンボ数.Guitar : 500;\r
1934                 //                                this.actScore.Set( E楽器パート.GUITAR, this.actScore.Get( E楽器パート.GUITAR ) + ( nCombo * 3000L ) );              // #24245 2011.1.26 yyagi changed DRUMS->GUITAR, add nCombo conditions\r
1935                 //                            }\r
1936                 //                        }\r
1937                 //                    }\r
1938                 //                }\r
1939                 //            }\r
1940                 //        }\r
1941                 //    }\r
1942                 //}\r
1943                 //protected override void t入力処理・ベース()\r
1944                 //{\r
1945                 //    if ( CDTXMania.Pad.b押されている( E楽器パート.BASS, Eパッド.Decide ) && CDTXMania.Pad.b押された( E楽器パート.BASS, Eパッド.B ) )\r
1946                 //    {\r
1947                 //        CDTXMania.ConfigIni.n譜面スクロール速度.Bass = Math.Min( CDTXMania.ConfigIni.n譜面スクロール速度.Bass + 1, 0x7cf );\r
1948                 //    }\r
1949                 //    if ( CDTXMania.Pad.b押されている( E楽器パート.BASS, Eパッド.Decide ) && CDTXMania.Pad.b押された( E楽器パート.BASS, Eパッド.R ) )\r
1950                 //    {\r
1951                 //        CDTXMania.ConfigIni.n譜面スクロール速度.Bass = Math.Max( CDTXMania.ConfigIni.n譜面スクロール速度.Bass - 1, 0 );\r
1952                 //    }\r
1953 \r
1954                 //    if ( CDTXMania.ConfigIni.bGuitar有効 && CDTXMania.DTX.bチップがある.Bass )\r
1955                 //    {\r
1956                 //        if( bIsAutoPlay.Bass )\r
1957                 //        {\r
1958                 //            CDTX.CChip chip = this.r次にくるベースChipを更新して返す();\r
1959                 //            if( chip != null )\r
1960                 //            {\r
1961                 //                if( ( chip.nチャンネル番号 & 4 ) != 0 )\r
1962                 //                {\r
1963                 //                    this.actLaneFlushGB.Start( 3 );\r
1964                 //                    this.actRGB.Push( 3 );\r
1965                 //                }\r
1966                 //                if( ( chip.nチャンネル番号 & 2 ) != 0 )\r
1967                 //                {\r
1968                 //                    this.actLaneFlushGB.Start( 4 );\r
1969                 //                    this.actRGB.Push( 4 );\r
1970                 //                }\r
1971                 //                if( ( chip.nチャンネル番号 & 1 ) != 0 )\r
1972                 //                {\r
1973                 //                    this.actLaneFlushGB.Start( 5 );\r
1974                 //                    this.actRGB.Push( 5 );\r
1975                 //                }\r
1976                 //            }\r
1977                 //        }\r
1978                 //        else\r
1979                 //        {\r
1980                 //            int flagR = CDTXMania.Pad.b押されている( E楽器パート.BASS, Eパッド.R ) ? 4 : 0;\r
1981                 //            this.t入力メソッド記憶( E楽器パート.BASS );\r
1982                 //            int flagG = CDTXMania.Pad.b押されている( E楽器パート.BASS, Eパッド.G ) ? 2 : 0;\r
1983                 //            this.t入力メソッド記憶( E楽器パート.BASS );\r
1984                 //            int flagB = CDTXMania.Pad.b押されている( E楽器パート.BASS, Eパッド.B ) ? 1 : 0;\r
1985                 //            this.t入力メソッド記憶( E楽器パート.BASS );\r
1986                 //            int flagRGB = flagR | flagG | flagB;\r
1987                 //            if( flagR != 0 )\r
1988                 //            {\r
1989                 //                this.actLaneFlushGB.Start( 3 );\r
1990                 //                this.actRGB.Push( 3 );\r
1991                 //            }\r
1992                 //            if( flagG != 0 )\r
1993                 //            {\r
1994                 //                this.actLaneFlushGB.Start( 4 );\r
1995                 //                this.actRGB.Push( 4 );\r
1996                 //            }\r
1997                 //            if( flagB != 0 )\r
1998                 //            {\r
1999                 //                this.actLaneFlushGB.Start( 5 );\r
2000                 //                this.actRGB.Push( 5 );\r
2001                 //            }\r
2002                 //            List<STInputEvent> events = CDTXMania.Pad.GetEvents( E楽器パート.BASS, Eパッド.Pick );\r
2003                 //            if( ( events != null ) && ( events.Count > 0 ) )\r
2004                 //            {\r
2005                 //                foreach( STInputEvent event2 in events )\r
2006                 //                {\r
2007                 //                    CDTX.CChip chip4;\r
2008                 //                    if( !event2.b押された )\r
2009                 //                    {\r
2010                 //                        continue;\r
2011                 //                    }\r
2012                 //                    this.t入力メソッド記憶( E楽器パート.BASS );\r
2013                 //                    long nTime = event2.nTimeStamp - CDTXMania.Timer.n前回リセットした時のシステム時刻;\r
2014                 //                    CDTX.CChip pChip = this.r指定時刻に一番近い未ヒットChip( nTime, 0xaf, this.nInputAdjustTimeMs.Bass, 0 );\r
2015                 //                    E判定 e判定 = this.e指定時刻からChipのJUDGEを返す(nTime, pChip, this.nInputAdjustTimeMs.Bass );\r
2016                 //                    if (((pChip != null) && ((pChip.nチャンネル番号 & 15) == flagRGB)) && (e判定 != E判定.Miss))\r
2017                 //                    {\r
2018                 //                        if( ( flagR != 0 ) || ( flagRGB == 0 ) )\r
2019                 //                        {\r
2020                 //                            this.actChipFireGB.Start( 3 );\r
2021                 //                        }\r
2022                 //                        if( ( flagG != 0 ) || ( flagRGB == 0 ) )\r
2023                 //                        {\r
2024                 //                            this.actChipFireGB.Start( 4 );\r
2025                 //                        }\r
2026                 //                        if( ( flagB != 0 ) || ( flagRGB == 0 ) )\r
2027                 //                        {\r
2028                 //                            this.actChipFireGB.Start( 5 );\r
2029                 //                        }\r
2030                 //                        this.tチップのヒット処理( nTime, pChip );\r
2031                 //                        this.tサウンド再生( pChip, CDTXMania.Timer.nシステム時刻, E楽器パート.BASS, CDTXMania.ConfigIni.n手動再生音量, CDTXMania.ConfigIni.b演奏音を強調する.Bass, e判定 == E判定.Poor );\r
2032                 //                        CDTX.CChip item = this.r指定時刻に一番近い未ヒットChip( nTime, 0xa8, this.nInputAdjustTimeMs.Bass, 140 );\r
2033                 //                        if( item != null )\r
2034                 //                        {\r
2035                 //                            this.queWailing.Bass.Enqueue( item );\r
2036                 //                        }\r
2037                 //                        continue;\r
2038                 //                    }\r
2039                 //                    if( ( ( chip4 = this.r現在の空うちベースChip ) != null ) || ( ( chip4 = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( nTime, 0xaf, this.nInputAdjustTimeMs.Bass ) ) != null ) )\r
2040                 //                    {\r
2041                 //                        this.tサウンド再生( chip4, CDTXMania.Timer.nシステム時刻, E楽器パート.BASS, CDTXMania.ConfigIni.n手動再生音量, CDTXMania.ConfigIni.b演奏音を強調する.Bass, true );\r
2042                 //                    }\r
2043                 //                    if( !CDTXMania.ConfigIni.bLight.Bass )\r
2044                 //                    {\r
2045                 //                        this.tチップのヒット処理・BadならびにTight時のMiss( E楽器パート.BASS );\r
2046                 //                    }\r
2047                 //                }\r
2048                 //            }\r
2049                 //            List<STInputEvent> list2 = CDTXMania.Pad.GetEvents( E楽器パート.BASS, Eパッド.Wail );\r
2050                 //            if( ( list2 != null ) && ( list2.Count > 0 ) )\r
2051                 //            {\r
2052                 //                foreach( STInputEvent event3 in list2 )\r
2053                 //                {\r
2054                 //                    CDTX.CChip chip5;\r
2055                 //                    if( !event3.b押された )\r
2056                 //                    {\r
2057                 //                        continue;\r
2058                 //                    }\r
2059                 //                    long num6 = event3.nTimeStamp - CDTXMania.Timer.n前回リセットした時のシステム時刻;\r
2060                 //                    while( ( this.queWailing.Bass.Count > 0 ) && ( ( chip5 = this.queWailing.Bass.Dequeue() ) != null ) )\r
2061                 //                    {\r
2062                 //                        if( ( num6 - chip5.n発声時刻ms ) <= 1000 )                // #24245 2011.1.16 yyagi: 800 -> 1000\r
2063                 //                        {\r
2064                 //                            chip5.bHit = true;\r
2065                 //                            this.actWailingBonus.Start( E楽器パート.BASS, this.r現在の歓声Chip.Bass );\r
2066                 //                            if( !bIsAutoPlay.Bass )\r
2067                 //                            {\r
2068                 //                                int nCombo = ( this.actCombo.n現在のコンボ数.Bass < 500 ) ? this.actCombo.n現在のコンボ数.Bass : 500;\r
2069                 //                                this.actScore.Set( E楽器パート.BASS, this.actScore.Get( E楽器パート.BASS ) + ( nCombo * 3000L ) );          // #24245 2011.1.26 yyagi changed DRUMS->BASS, add nCombo conditions\r
2070                 //                            }\r
2071                 //                        }\r
2072                 //                    }\r
2073                 //                }\r
2074                 //            }\r
2075                 //        }\r
2076                 //    }\r
2077                 //}\r
2078 \r
2079                 protected override void t背景テクスチャの生成()\r
2080                 {\r
2081                         Rectangle bgrect = new Rectangle( 181, 50, 278, 355 );\r
2082                         string DefaultBgFilename = @"Graphics\ScreenPlayGuitar background.jpg";\r
2083                         string BgFilename = "";\r
2084                         string BACKGROUND = null;\r
2085                         if ( ( CDTXMania.DTX.BACKGROUND_GR != null ) && ( CDTXMania.DTX.BACKGROUND_GR.Length > 0 ) )\r
2086                         {\r
2087                                 BACKGROUND = CDTXMania.DTX.BACKGROUND_GR;\r
2088                         }\r
2089                         else if ( ( CDTXMania.DTX.BACKGROUND != null ) && ( CDTXMania.DTX.BACKGROUND.Length > 0 ) )\r
2090                         {\r
2091                                 BACKGROUND = CDTXMania.DTX.BACKGROUND;\r
2092                         }\r
2093                         if ( ( BACKGROUND != null ) && ( BACKGROUND.Length > 0 ) )\r
2094                         {\r
2095                                 BgFilename = CDTXMania.DTX.strフォルダ名 + BACKGROUND;\r
2096                         }\r
2097                         base.t背景テクスチャの生成( DefaultBgFilename, bgrect, BgFilename );\r
2098                 }\r
2099 \r
2100 \r
2101                 //private void t背景テクスチャの生成()\r
2102                 //{\r
2103                 //    Bitmap image = null;\r
2104                 //    string path = "";\r
2105                 //    bool flag = true;\r
2106                 //    if( !CDTXMania.ConfigIni.bストイックモード )\r
2107                 //    {\r
2108                 //        string bACKGROUND = null;\r
2109                 //        if( ( CDTXMania.DTX.BACKGROUND_GR != null ) && ( CDTXMania.DTX.BACKGROUND_GR.Length > 0 ) )\r
2110                 //        {\r
2111                 //            bACKGROUND = CDTXMania.DTX.BACKGROUND_GR;\r
2112                 //        }\r
2113                 //        else if( ( CDTXMania.DTX.BACKGROUND != null ) && ( CDTXMania.DTX.BACKGROUND.Length > 0 ) )\r
2114                 //        {\r
2115                 //            bACKGROUND = CDTXMania.DTX.BACKGROUND;\r
2116                 //        }\r
2117                 //        if( ( bACKGROUND != null ) && ( bACKGROUND.Length > 0 ) )\r
2118                 //        {\r
2119                 //            path = CDTXMania.DTX.strフォルダ名 + bACKGROUND;\r
2120                 //            if( File.Exists( path ) )\r
2121                 //            {\r
2122                 //                try\r
2123                 //                {\r
2124                 //                    Bitmap bitmap2 = null;\r
2125                 //                    bitmap2 = new Bitmap( path );\r
2126                 //                    if( ( bitmap2.Size.Width == 0 ) && ( bitmap2.Size.Height == 0 ) )\r
2127                 //                    {\r
2128                 //                        this.tx背景 = null;\r
2129                 //                        return;\r
2130                 //                    }\r
2131                 //                    Bitmap bitmap3 = new Bitmap( 640, 480 );\r
2132                 //                    Graphics graphics = Graphics.FromImage( bitmap3 );\r
2133                 //                    for( int i = 0; i < 480; i += bitmap2.Size.Height )\r
2134                 //                    {\r
2135                 //                        for( int j = 0; j < 640; j += bitmap2.Size.Width )\r
2136                 //                        {\r
2137                 //                            graphics.DrawImage( bitmap2, j, i, bitmap2.Width, bitmap2.Height );\r
2138                 //                        }\r
2139                 //                    }\r
2140                 //                    graphics.Dispose();\r
2141                 //                    bitmap2.Dispose();\r
2142                 //                    image = new Bitmap( CSkin.Path( @"Graphics\\ScreenPlayGuitar background.jpg" ) );\r
2143                 //                    graphics = Graphics.FromImage( image );\r
2144                 //                    ColorMatrix matrix2 = new ColorMatrix();\r
2145                 //                    matrix2.Matrix00 = 1f;\r
2146                 //                    matrix2.Matrix11 = 1f;\r
2147                 //                    matrix2.Matrix22 = 1f;\r
2148                 //                    matrix2.Matrix33 = ( (float) CDTXMania.ConfigIni.n背景の透過度 ) / 255f;\r
2149                 //                    matrix2.Matrix44 = 1f;\r
2150                 //                    ColorMatrix newColorMatrix = matrix2;\r
2151                 //                    ImageAttributes imageAttr = new ImageAttributes();\r
2152                 //                    imageAttr.SetColorMatrix( newColorMatrix );\r
2153                 //                    graphics.DrawImage( bitmap3, new Rectangle( 0, 0, 640, 480 ), 0, 0, 640, 480, GraphicsUnit.Pixel, imageAttr );\r
2154                 //                    imageAttr.Dispose();\r
2155                 //                    graphics.DrawImage( bitmap3, new Rectangle( 0xb5, 50, 0x116, 0x163 ), 0xb5, 50, 0x116, 0x163, GraphicsUnit.Pixel );\r
2156                 //                    graphics.Dispose();\r
2157                 //                    bitmap3.Dispose();\r
2158                 //                    flag = false;\r
2159                 //                }\r
2160                 //                catch\r
2161                 //                {\r
2162                 //                    Trace.TraceError( "背景画像の読み込みに失敗しました。({0})", new object[] { path } );\r
2163                 //                }\r
2164                 //            }\r
2165                 //        }\r
2166                 //    }\r
2167                 //    if( flag )\r
2168                 //    {\r
2169                 //        path = CSkin.Path( @"Graphics\ScreenPlayGuitar background.jpg" );\r
2170                 //        try\r
2171                 //        {\r
2172                 //            image = new Bitmap( path );\r
2173                 //        }\r
2174                 //        catch\r
2175                 //        {\r
2176                 //            Trace.TraceError( "背景画像の読み込みに失敗しました。({0})", new object[] { path } );\r
2177                 //            this.tx背景 = null;\r
2178                 //            return;\r
2179                 //        }\r
2180                 //    }\r
2181                 //    if( ( CDTXMania.DTX.listBMP.Count > 0 ) || ( CDTXMania.DTX.listBMPTEX.Count > 0 ) )\r
2182                 //    {\r
2183                 //        Graphics graphics2 = Graphics.FromImage( image );\r
2184                 //        graphics2.FillRectangle( Brushes.Black, 0xb5, 50, 0x116, 0x163 );\r
2185                 //        graphics2.Dispose();\r
2186                 //    }\r
2187                 //    try\r
2188                 //    {\r
2189                 //        this.tx背景 = new CTexture( CDTXMania.app.Device, image, CDTXMania.TextureFormat );\r
2190                 //    }\r
2191                 //    catch( CTextureCreateFailedException )\r
2192                 //    {\r
2193                 //        Trace.TraceError( "背景テクスチャの生成に失敗しました。" );\r
2194                 //        this.tx背景 = null;\r
2195                 //    }\r
2196                 //    image.Dispose();\r
2197                 //}\r
2198 //#if true      // DAMAGELEVELTUNING\r
2199 //        // ----------------------------------\r
2200 //        public float[,] fDamageGaugeDelta = {                 // #23625 2011.1.10 ickw_284: tuned damage/recover factors\r
2201 //            // drums,   guitar,  bass\r
2202 //            {  0.004f,  0.006f,  0.006f  },\r
2203 //            {  0.002f,  0.003f,  0.003f  },\r
2204 //            {  0.000f,  0.000f,  0.000f  },\r
2205 //            { -0.020f, -0.030f,       -0.030f  },\r
2206 //            { -0.050f, -0.050f, -0.050f  }\r
2207 //        };\r
2208 //        public float[] fDamageLevelFactor = {\r
2209 //            0.5f, 1.0f, 1.5f\r
2210 //        };\r
2211 //        // ----------------------------------\r
2212 //#endif\r
2213 \r
2214 //        private void t判定にあわせてゲージを増減する(E楽器パート part, E判定 e今回の判定)\r
2215 //        {\r
2216 //            double fDamage;\r
2217 \r
2218 //#if true      // DAMAGELEVELTUNING\r
2219 //            switch (e今回の判定)                                         // #23625 2011.1.10 ickw_284\r
2220 //            {\r
2221 //                case E判定.Perfect:\r
2222 //                case E判定.Great:\r
2223 //                case E判定.Good:\r
2224 //                case E判定.Poor:\r
2225 //                    fDamage = fDamageGaugeDelta[(int)e今回の判定, (int)part];\r
2226 //                    break;\r
2227 //                case E判定.Miss:\r
2228 //                    fDamage = fDamageGaugeDelta[(int)e今回の判定, (int)part];\r
2229 //                    switch (CDTXMania.ConfigIni.eダメージレベル)\r
2230 //                    {\r
2231 //                        case Eダメージレベル.少ない:\r
2232 //                        case Eダメージレベル.普通:\r
2233 //                        case Eダメージレベル.大きい:\r
2234 //                            fDamage *= fDamageLevelFactor[(int)CDTXMania.ConfigIni.eダメージレベル];\r
2235 //                            break;\r
2236 //                    }\r
2237 //                    break;\r
2238 \r
2239 //                default:\r
2240 //                    fDamage = 0.0;\r
2241 //                    break;\r
2242 //            }\r
2243 //#else                                                                                                 // before applying #23625 modifications\r
2244 //            switch (e今回の判定)\r
2245 //            {\r
2246 //                case E判定.Perfect:\r
2247 //                    fDamage = ( part == E楽器パート.DRUMS ) ? 0.01 : 0.015;\r
2248 //                    break;\r
2249 \r
2250 //                case E判定.Great:\r
2251 //                    fDamage = ( part == E楽器パート.DRUMS ) ? 0.006 : 0.009;\r
2252 //                    break;\r
2253 \r
2254 //                case E判定.Good:\r
2255 //                    fDamage = ( part == E楽器パート.DRUMS ) ? 0.002 : 0.003;\r
2256 //                    break;\r
2257 \r
2258 //                case E判定.Poor:\r
2259 //                    fDamage = ( part == E楽器パート.DRUMS ) ? 0.0 : 0.0;\r
2260 //                    break;\r
2261 \r
2262 //                case E判定.Miss:\r
2263 //                    fDamage = ( part == E楽器パート.DRUMS ) ? -0.035 : -0.035;\r
2264 //                    switch( CDTXMania.ConfigIni.eダメージレベル )\r
2265 //                    {\r
2266 //                        case Eダメージレベル.少ない:\r
2267 //                            fDamage *= 0.6;\r
2268 //                            break;\r
2269 \r
2270 //                        case Eダメージレベル.普通:\r
2271 //                            fDamage *= 1.0;\r
2272 //                            break;\r
2273 \r
2274 //                        case Eダメージレベル.大きい:\r
2275 //                            fDamage *= 1.6;\r
2276 //                            break;\r
2277 //                    }\r
2278 //                    break;\r
2279 \r
2280 //                default:\r
2281 //                    fDamage = 0.0;\r
2282 //                    break;\r
2283 //            }\r
2284 //#endif\r
2285 //            this.actGauge.db現在のゲージ値[(int)part] += fDamage;\r
2286 \r
2287 //            if( this.actGauge.db現在のゲージ値[ (int) part ] > 1.0 )\r
2288 //                this.actGauge.db現在のゲージ値[ (int) part ] = 1.0;\r
2289 //        }\r
2290                 //-----------------\r
2291 \r
2292                 protected override void t進行描画・チップ・ドラムス( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip )\r
2293                 {\r
2294                         // int indexSevenLanes = this.nチャンネル0Atoレーン07[ pChip.nチャンネル番号 - 0x11 ];\r
2295                         if ( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
2296                         {\r
2297                                 pChip.bHit = true;\r
2298                                 this.tサウンド再生( pChip, CDTXMania.Timer.n前回リセットした時のシステム時刻 + pChip.n発声時刻ms, E楽器パート.DRUMS, dTX.nモニタを考慮した音量( E楽器パート.DRUMS ) );\r
2299                         }\r
2300                 }\r
2301                 protected override void t進行描画・チップ・ギター( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip )\r
2302                 {\r
2303                         if ( configIni.bGuitar有効 )\r
2304                         {\r
2305                                 if ( configIni.bSudden.Guitar )\r
2306                                 {\r
2307                                         pChip.b可視 = pChip.nバーからの距離dot.Guitar < 200;\r
2308                                 }\r
2309                                 if ( configIni.bHidden.Guitar && ( pChip.nバーからの距離dot.Guitar < 100 ) )\r
2310                                 {\r
2311                                         pChip.b可視 = false;\r
2312                                 }\r
2313                                 if ( !pChip.bHit && pChip.b可視 )\r
2314                                 {\r
2315                                         int nバーからの距離 = configIni.bReverse.Guitar ? ( 0x171 - pChip.nバーからの距離dot.Guitar ) : ( 40 + pChip.nバーからの距離dot.Guitar );\r
2316                                         if ( ( nバーからの距離 > 0 ) && ( nバーからの距離 < 0x199 ) )\r
2317                                         {\r
2318                                                 int nアニメカウンタ現在の値 = this.ctチップ模様アニメ.Guitar.n現在の値;\r
2319                                                 if ( pChip.nチャンネル番号 == 0x20 )\r
2320                                                 {\r
2321                                                         if ( this.txチップ != null )\r
2322                                                         {\r
2323                                                                 this.txチップ.t2D描画( CDTXMania.app.Device, 0x1a, nバーからの距離 - 4, new Rectangle( 0, 0xc0 + ( ( nアニメカウンタ現在の値 % 5 ) * 8 ), 0x67, 8 ) );\r
2324                                                         }\r
2325                                                 }\r
2326                                                 else if ( !configIni.bLeft.Guitar )\r
2327                                                 {\r
2328                                                         Rectangle rectangle = new Rectangle( 0, nアニメカウンタ現在の値 * 8, 0x20, 8 );\r
2329                                                         if ( ( ( pChip.nチャンネル番号 & 4 ) != 0 ) && ( this.txチップ != null ) )\r
2330                                                         {\r
2331                                                                 this.txチップ.t2D描画( CDTXMania.app.Device, 0x1a, nバーからの距離 - 4, rectangle );\r
2332                                                         }\r
2333                                                         rectangle.X += 0x20;\r
2334                                                         if ( ( ( pChip.nチャンネル番号 & 2 ) != 0 ) && ( this.txチップ != null ) )\r
2335                                                         {\r
2336                                                                 this.txチップ.t2D描画( CDTXMania.app.Device, 0x3e, nバーからの距離 - 4, rectangle );\r
2337                                                         }\r
2338                                                         rectangle.X += 0x20;\r
2339                                                         if ( ( ( pChip.nチャンネル番号 & 1 ) != 0 ) && ( this.txチップ != null ) )\r
2340                                                         {\r
2341                                                                 this.txチップ.t2D描画( CDTXMania.app.Device, 0x62, nバーからの距離 - 4, rectangle );\r
2342                                                         }\r
2343                                                 }\r
2344                                                 else\r
2345                                                 {\r
2346                                                         Rectangle rectangle2 = new Rectangle( 0, nアニメカウンタ現在の値 * 8, 0x20, 8 );\r
2347                                                         if ( ( ( pChip.nチャンネル番号 & 4 ) != 0 ) && ( this.txチップ != null ) )\r
2348                                                         {\r
2349                                                                 this.txチップ.t2D描画( CDTXMania.app.Device, 0x62, nバーからの距離 - 4, rectangle2 );\r
2350                                                         }\r
2351                                                         rectangle2.X += 0x20;\r
2352                                                         if ( ( ( pChip.nチャンネル番号 & 2 ) != 0 ) && ( this.txチップ != null ) )\r
2353                                                         {\r
2354                                                                 this.txチップ.t2D描画( CDTXMania.app.Device, 0x3e, nバーからの距離 - 4, rectangle2 );\r
2355                                                         }\r
2356                                                         rectangle2.X += 0x20;\r
2357                                                         if ( ( ( pChip.nチャンネル番号 & 1 ) != 0 ) && ( this.txチップ != null ) )\r
2358                                                         {\r
2359                                                                 this.txチップ.t2D描画( CDTXMania.app.Device, 0x1a, nバーからの距離 - 4, rectangle2 );\r
2360                                                         }\r
2361                                                 }\r
2362                                         }\r
2363                                 }\r
2364                                 if ( ( configIni.bAutoPlay.Guitar && !pChip.bHit ) && ( pChip.nバーからの距離dot.Guitar < 0 ) )\r
2365                                 {\r
2366                                         pChip.bHit = true;\r
2367                                         if ( ( ( pChip.nチャンネル番号 & 4 ) != 0 ) || ( pChip.nチャンネル番号 == 0x20 ) )\r
2368                                         {\r
2369                                                 this.actChipFireGB.Start( 0 );\r
2370                                         }\r
2371                                         if ( ( ( pChip.nチャンネル番号 & 2 ) != 0 ) || ( pChip.nチャンネル番号 == 0x20 ) )\r
2372                                         {\r
2373                                                 this.actChipFireGB.Start( 1 );\r
2374                                         }\r
2375                                         if ( ( ( pChip.nチャンネル番号 & 1 ) != 0 ) || ( pChip.nチャンネル番号 == 0x20 ) )\r
2376                                         {\r
2377                                                 this.actChipFireGB.Start( 2 );\r
2378                                         }\r
2379                                         this.tサウンド再生( pChip, CDTXMania.Timer.n前回リセットした時のシステム時刻 + pChip.n発声時刻ms, E楽器パート.GUITAR, dTX.nモニタを考慮した音量( E楽器パート.GUITAR ) );\r
2380                                         this.r次にくるギターChip = null;\r
2381                                         this.tチップのヒット処理( pChip.n発声時刻ms, pChip );\r
2382                                 }\r
2383                                 // break;\r
2384                                 return;\r
2385                         }\r
2386                         if ( !pChip.bHit && ( pChip.nバーからの距離dot.Guitar < 0 ) )\r
2387                         {\r
2388                                 pChip.bHit = true;\r
2389                                 this.tサウンド再生( pChip, CDTXMania.Timer.n前回リセットした時のシステム時刻 + pChip.n発声時刻ms, E楽器パート.GUITAR, dTX.nモニタを考慮した音量( E楽器パート.GUITAR ) );\r
2390                         }\r
2391 \r
2392                 }\r
2393                 protected override void t進行描画・チップ・ギター・ウェイリング( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip )\r
2394                 {\r
2395                         if( configIni.bGuitar有効 )\r
2396                         {\r
2397                                 if( configIni.bSudden.Guitar )\r
2398                                 {\r
2399                                         pChip.b可視 = pChip.nバーからの距離dot.Guitar < 200;\r
2400                                 }\r
2401                                 if( configIni.bHidden.Guitar && ( pChip.nバーからの距離dot.Guitar < 100 ) )\r
2402                                 {\r
2403                                         pChip.b可視 = false;\r
2404                                 }\r
2405                                 if( !pChip.bHit && pChip.b可視 )\r
2406                                 {\r
2407                                         int num10 = 0x19;\r
2408                                         int num11 = configIni.bReverse.Guitar ? ( 0x171 - pChip.nバーからの距離dot.Guitar ) : ( 40 + pChip.nバーからの距離dot.Guitar );\r
2409                                         int num12 = num11;\r
2410                                         int num13 = 0;\r
2411                                         if( ( num12 < ( 0x199 + num10 ) ) && ( num12 > -num10 ) )\r
2412                                         {\r
2413                                                 int num14 = this.ctWailingチップ模様アニメ.n現在の値;\r
2414                                                 Rectangle rectangle5 = new Rectangle( 0x60 + ( num14 * 20 ), 0, 20, 50 );\r
2415                                                 if( num12 < num10 )\r
2416                                                 {\r
2417                                                         rectangle5.Y += num10 - num12;\r
2418                                                         rectangle5.Height -= num10 - num12;\r
2419                                                         num13 = num10 - num12;\r
2420                                                 }\r
2421                                                 if( num12 > ( 0x199 - num10 ) )\r
2422                                                 {\r
2423                                                         rectangle5.Height -= num12 - ( 0x199 - num10 );\r
2424                                                 }\r
2425                                                 if( ( rectangle5.Bottom > rectangle5.Top ) && ( this.txチップ != null ) )\r
2426                                                 {\r
2427                                                         this.txチップ.t2D描画( CDTXMania.app.Device, 0x8b, ( num11 - num10 ) + num13, rectangle5 );\r
2428                                                 }\r
2429                                         }\r
2430                                 }\r
2431                                 if( !pChip.bHit && ( pChip.nバーからの距離dot.Guitar < 0 ) )\r
2432                                 {\r
2433                                         pChip.bHit = true;\r
2434                                         if( configIni.bAutoPlay.Guitar )\r
2435                                         {\r
2436                                                 this.actWailingBonus.Start( E楽器パート.GUITAR, this.r現在の歓声Chip.Guitar );\r
2437                                         }\r
2438                                 }\r
2439                                 return;\r
2440                         }\r
2441                         pChip.bHit = true;\r
2442                 }\r
2443                 protected override void t進行描画・チップ・フィルイン( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip )\r
2444                 {\r
2445                         if ( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
2446                         {\r
2447                                 pChip.bHit = true;\r
2448                         }\r
2449                 }\r
2450                 protected override void t進行描画・チップ・ベース( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip )\r
2451                 {\r
2452                         if ( configIni.bGuitar有効 )\r
2453                         {\r
2454                                 if ( configIni.bSudden.Bass )\r
2455                                 {\r
2456                                         pChip.b可視 = pChip.nバーからの距離dot.Bass < 200;\r
2457                                 }\r
2458                                 if ( configIni.bHidden.Bass && ( pChip.nバーからの距離dot.Bass < 100 ) )\r
2459                                 {\r
2460                                         pChip.b可視 = false;\r
2461                                 }\r
2462                                 if ( !pChip.bHit && pChip.b可視 )\r
2463                                 {\r
2464                                         int num8 = configIni.bReverse.Bass ? ( 0x171 - pChip.nバーからの距離dot.Bass ) : ( 40 + pChip.nバーからの距離dot.Bass );\r
2465                                         if ( ( num8 > 0 ) && ( num8 < 0x199 ) )\r
2466                                         {\r
2467                                                 int num9 = this.ctチップ模様アニメ.Bass.n現在の値;\r
2468                                                 if ( pChip.nチャンネル番号 == 160 )\r
2469                                                 {\r
2470                                                         if ( this.txチップ != null )\r
2471                                                         {\r
2472                                                                 this.txチップ.t2D描画( CDTXMania.app.Device, 480, num8 - 4, new Rectangle( 0, 0xc0 + ( ( num9 % 5 ) * 8 ), 0x67, 8 ) );\r
2473                                                         }\r
2474                                                 }\r
2475                                                 else if ( !configIni.bLeft.Bass )\r
2476                                                 {\r
2477                                                         Rectangle rectangle3 = new Rectangle( 0, num9 * 8, 0x20, 8 );\r
2478                                                         if ( ( ( pChip.nチャンネル番号 & 4 ) != 0 ) && ( this.txチップ != null ) )\r
2479                                                         {\r
2480                                                                 this.txチップ.t2D描画( CDTXMania.app.Device, 480, num8 - 4, rectangle3 );\r
2481                                                         }\r
2482                                                         rectangle3.X += 0x20;\r
2483                                                         if ( ( ( pChip.nチャンネル番号 & 2 ) != 0 ) && ( this.txチップ != null ) )\r
2484                                                         {\r
2485                                                                 this.txチップ.t2D描画( CDTXMania.app.Device, 0x204, num8 - 4, rectangle3 );\r
2486                                                         }\r
2487                                                         rectangle3.X += 0x20;\r
2488                                                         if ( ( ( pChip.nチャンネル番号 & 1 ) != 0 ) && ( this.txチップ != null ) )\r
2489                                                         {\r
2490                                                                 this.txチップ.t2D描画( CDTXMania.app.Device, 0x228, num8 - 4, rectangle3 );\r
2491                                                         }\r
2492                                                 }\r
2493                                                 else\r
2494                                                 {\r
2495                                                         Rectangle rectangle4 = new Rectangle( 0, num9 * 8, 0x20, 8 );\r
2496                                                         if ( ( ( pChip.nチャンネル番号 & 4 ) != 0 ) && ( this.txチップ != null ) )\r
2497                                                         {\r
2498                                                                 this.txチップ.t2D描画( CDTXMania.app.Device, 0x228, num8 - 4, rectangle4 );\r
2499                                                         }\r
2500                                                         rectangle4.X += 0x20;\r
2501                                                         if ( ( ( pChip.nチャンネル番号 & 2 ) != 0 ) && ( this.txチップ != null ) )\r
2502                                                         {\r
2503                                                                 this.txチップ.t2D描画( CDTXMania.app.Device, 0x204, num8 - 4, rectangle4 );\r
2504                                                         }\r
2505                                                         rectangle4.X += 0x20;\r
2506                                                         if ( ( ( pChip.nチャンネル番号 & 1 ) != 0 ) && ( this.txチップ != null ) )\r
2507                                                         {\r
2508                                                                 this.txチップ.t2D描画( CDTXMania.app.Device, 480, num8 - 4, rectangle4 );\r
2509                                                         }\r
2510                                                 }\r
2511                                         }\r
2512                                 }\r
2513                                 if ( ( configIni.bAutoPlay.Bass && !pChip.bHit ) && ( pChip.nバーからの距離dot.Bass < 0 ) )\r
2514                                 {\r
2515                                         pChip.bHit = true;\r
2516                                         if ( ( ( pChip.nチャンネル番号 & 4 ) != 0 ) || ( pChip.nチャンネル番号 == 160 ) )\r
2517                                         {\r
2518                                                 this.actChipFireGB.Start( 3 );\r
2519                                         }\r
2520                                         if ( ( ( pChip.nチャンネル番号 & 2 ) != 0 ) || ( pChip.nチャンネル番号 == 160 ) )\r
2521                                         {\r
2522                                                 this.actChipFireGB.Start( 4 );\r
2523                                         }\r
2524                                         if ( ( ( pChip.nチャンネル番号 & 1 ) != 0 ) || ( pChip.nチャンネル番号 == 160 ) )\r
2525                                         {\r
2526                                                 this.actChipFireGB.Start( 5 );\r
2527                                         }\r
2528                                         this.tサウンド再生( pChip, CDTXMania.Timer.n前回リセットした時のシステム時刻 + pChip.n発声時刻ms, E楽器パート.BASS, dTX.nモニタを考慮した音量( E楽器パート.BASS ) );\r
2529                                         this.r次にくるベースChip = null;\r
2530                                         this.tチップのヒット処理( pChip.n発声時刻ms, pChip );\r
2531                                 }\r
2532                                 return;\r
2533                         }\r
2534                         if ( !pChip.bHit && ( pChip.nバーからの距離dot.Bass < 0 ) )\r
2535                         {\r
2536                                 pChip.bHit = true;\r
2537                                 this.tサウンド再生( pChip, CDTXMania.Timer.n前回リセットした時のシステム時刻 + pChip.n発声時刻ms, E楽器パート.BASS, dTX.nモニタを考慮した音量( E楽器パート.BASS ) );\r
2538                         }\r
2539                 }\r
2540                 protected override void t進行描画・チップ・ベース・ウェイリング( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip )\r
2541                 {\r
2542                         if ( configIni.bGuitar有効 )\r
2543                         {\r
2544                                 if ( configIni.bSudden.Bass )\r
2545                                 {\r
2546                                         pChip.b可視 = pChip.nバーからの距離dot.Bass < 200;\r
2547                                 }\r
2548                                 if ( configIni.bHidden.Bass && ( pChip.nバーからの距離dot.Bass < 100 ) )\r
2549                                 {\r
2550                                         pChip.b可視 = false;\r
2551                                 }\r
2552                                 if ( !pChip.bHit && pChip.b可視 )\r
2553                                 {\r
2554                                         int num15 = 0x19;\r
2555                                         int num16 = configIni.bReverse.Bass ? ( 0x171 - pChip.nバーからの距離dot.Bass ) : ( 40 + pChip.nバーからの距離dot.Bass );\r
2556                                         int num17 = num16;\r
2557                                         int num18 = 0;\r
2558                                         if ( ( num17 < ( 0x199 + num15 ) ) && ( num17 > -num15 ) )\r
2559                                         {\r
2560                                                 int num19 = this.ctWailingチップ模様アニメ.n現在の値;\r
2561                                                 Rectangle rectangle6 = new Rectangle( 0x60 + ( num19 * 20 ), 0, 20, 50 );\r
2562                                                 if ( num17 < num15 )\r
2563                                                 {\r
2564                                                         rectangle6.Y += num15 - num17;\r
2565                                                         rectangle6.Height -= num15 - num17;\r
2566                                                         num18 = num15 - num17;\r
2567                                                 }\r
2568                                                 if ( num17 > ( 0x199 - num15 ) )\r
2569                                                 {\r
2570                                                         rectangle6.Height -= num17 - ( 0x199 - num15 );\r
2571                                                 }\r
2572                                                 if ( ( rectangle6.Bottom > rectangle6.Top ) && ( this.txチップ != null ) )\r
2573                                                 {\r
2574                                                         this.txチップ.t2D描画( CDTXMania.app.Device, 0x251, ( num16 - num15 ) + num18, rectangle6 );\r
2575                                                 }\r
2576                                         }\r
2577                                 }\r
2578                                 if ( !pChip.bHit && ( pChip.nバーからの距離dot.Bass < 0 ) )\r
2579                                 {\r
2580                                         pChip.bHit = true;\r
2581                                         if ( configIni.bAutoPlay.Bass )\r
2582                                         {\r
2583                                                 this.actWailingBonus.Start( E楽器パート.BASS, this.r現在の歓声Chip.Bass );\r
2584                                         }\r
2585                                 }\r
2586                                 return;\r
2587                         }\r
2588                         pChip.bHit = true;\r
2589                 }\r
2590                 protected override void t進行描画・チップ・空打ち音設定・ドラム( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip )\r
2591                 {\r
2592                         if ( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
2593                         {\r
2594                                 pChip.bHit = true;\r
2595                         }\r
2596                 }\r
2597                 protected override void t進行描画・チップ・小節線( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip )\r
2598                 {\r
2599                         int n小節番号plus1 = pChip.n発声位置 / 0x180;\r
2600                         if ( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
2601                         {\r
2602                                 pChip.bHit = true;\r
2603                                 this.actPlayInfo.n小節番号 = n小節番号plus1 - 1;\r
2604                                 if ( configIni.bWave再生位置自動調整機能有効 )\r
2605                                 {\r
2606                                         dTX.tWave再生位置自動補正();\r
2607                                 }\r
2608                         }\r
2609                         if ( ( pChip.b可視 && configIni.bGuitar有効 ) && ( configIni.eDark != Eダークモード.FULL ) )\r
2610                         {\r
2611                                 int y = configIni.bReverse.Guitar ? ( ( 0x171 - pChip.nバーからの距離dot.Guitar ) - 1 ) : ( ( 40 + pChip.nバーからの距離dot.Guitar ) - 1 );\r
2612                                 if ( ( dTX.bチップがある.Guitar && ( y > 0 ) ) && ( ( y < 0x199 ) && ( this.txチップ != null ) ) )\r
2613                                 {\r
2614                                         this.txチップ.t2D描画( CDTXMania.app.Device, 0x1a, y, new Rectangle( 0, 0xeb, 0x68, 1 ) );\r
2615                                 }\r
2616                                 y = configIni.bReverse.Bass ? ( ( 0x171 - pChip.nバーからの距離dot.Bass ) - 1 ) : ( ( 40 + pChip.nバーからの距離dot.Bass ) - 1 );\r
2617                                 if ( ( dTX.bチップがある.Bass && ( y > 0 ) ) && ( ( y < 0x199 ) && ( this.txチップ != null ) ) )\r
2618                                 {\r
2619                                         this.txチップ.t2D描画( CDTXMania.app.Device, 480, y, new Rectangle( 0, 0xeb, 0x68, 1 ) );\r
2620                                 }\r
2621                         }\r
2622 \r
2623                 }\r
2624 \r
2625                 #endregion\r
2626         }\r
2627 }\r