protected override void t進行描画_チップ_ギターベース(CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip, E楽器パート inst) { int instIndex = (int)inst; if (configIni.bGuitar有効) { if (configIni.bSudden[instIndex]) { pChip.b可視 = pChip.nバーからの距離dot[instIndex] < 200; } if (configIni.bHidden[instIndex] && (pChip.nバーからの距離dot[instIndex] < 100)) { pChip.b可視 = false; } bool bChipHasR = ((pChip.nチャンネル番号 & 4) > 0); bool bChipHasG = ((pChip.nチャンネル番号 & 2) > 0); bool bChipHasB = ((pChip.nチャンネル番号 & 1) > 0); bool bChipHasW = ((pChip.nチャンネル番号 & 0x0F) == 0x08); bool bChipIsO = ((pChip.nチャンネル番号 & 0x0F) == 0x00); int OPEN = (inst == E楽器パート.GUITAR) ? 0x20 : 0xA0; if (!pChip.bHit && pChip.b可視) { int y = configIni.bReverse[instIndex] ? (369 - pChip.nバーからの距離dot[instIndex]) : (40 + pChip.nバーからの距離dot[instIndex]); if ((y > 0) && (y < 409)) { if (this.txチップ != null) { int nアニメカウンタ現在の値 = this.ctチップ模様アニメ[instIndex].n現在の値; if (pChip.nチャンネル番号 == OPEN) { { int xo = (inst == E楽器パート.GUITAR) ? 26 : 480; this.txチップ.t2D描画(CDTXMania.app.Device, xo, y - 4, new Rectangle(0, 192 + ((nアニメカウンタ現在の値 % 5) * 8), 103, 8)); } } Rectangle rc = new Rectangle(0, nアニメカウンタ現在の値 * 8, 32, 8); int x; if (inst == E楽器パート.GUITAR) { x = (configIni.bLeft.Guitar) ? 98 : 26; } else { x = (configIni.bLeft.Bass) ? 552 : 480; } int deltaX = (configIni.bLeft[instIndex]) ? -36 : +36; if (bChipHasR) { this.txチップ.t2D描画(CDTXMania.app.Device, x, y - 4, rc); } rc.X += 32; if (bChipHasG) { this.txチップ.t2D描画(CDTXMania.app.Device, x, y - 4, rc); } rc.X += 32; if (bChipHasB) { this.txチップ.t2D描画(CDTXMania.app.Device, x, y - 4, rc); } } } } // if ( ( configIni.bAutoPlay.Guitar && !pChip.bHit ) && ( pChip.nバーからの距離dot.Guitar < 0 ) ) if ((!pChip.bHit) && (pChip.nバーからの距離dot[instIndex] < 0)) { int lo = (inst == E楽器パート.GUITAR) ? 0 : 3; // lane offset bool autoR = (inst == E楽器パート.GUITAR) ? bIsAutoPlay.GtR : bIsAutoPlay.BsR; bool autoG = (inst == E楽器パート.GUITAR) ? bIsAutoPlay.GtG : bIsAutoPlay.BsG; bool autoB = (inst == E楽器パート.GUITAR) ? bIsAutoPlay.GtB : bIsAutoPlay.BsB; if ((bChipHasR || bChipIsO) && autoR) { this.actChipFireGB.Start(0 + lo); } if ((bChipHasG || bChipIsO) && autoG) { this.actChipFireGB.Start(1 + lo); } if ((bChipHasB || bChipIsO) && autoB) { this.actChipFireGB.Start(2 + lo); } if ((inst == E楽器パート.GUITAR && bIsAutoPlay.GtPick) || (inst == E楽器パート.BASS && bIsAutoPlay.BsPick)) { bool pushingR = CDTXMania.Pad.b押されている(inst, Eパッド.R); bool pushingG = CDTXMania.Pad.b押されている(inst, Eパッド.G); bool pushingB = CDTXMania.Pad.b押されている(inst, Eパッド.B); bool bMiss = true; if (((bChipIsO == true) && (!pushingR | autoR) && (!pushingG | autoG) && (!pushingB | autoB)) || ((bChipHasR == (pushingR | autoR)) && (bChipHasG == (pushingG | autoG)) && (bChipHasB == (pushingB | autoB))) ) { bMiss = false; } pChip.bHit = true; this.tサウンド再生(pChip, CDTXMania.Timer.n前回リセットした時のシステム時刻 + pChip.n発声時刻ms, inst, dTX.nモニタを考慮した音量(inst)); this.r次にくるギターChip = null; this.tチップのヒット処理(pChip.n発声時刻ms, pChip); } } // break; return; } if (!pChip.bHit && (pChip.nバーからの距離dot[instIndex] < 0)) { pChip.bHit = true; this.tサウンド再生(pChip, CDTXMania.Timer.n前回リセットした時のシステム時刻 + pChip.n発声時刻ms, inst, dTX.nモニタを考慮した音量(inst)); } }
protected override void t進行描画_チップ_ベース(CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip) { if (configIni.bGuitar有効) { if (configIni.bSudden.Bass) { pChip.b可視 = pChip.nバーからの距離dot.Bass < 200; } if (configIni.bHidden.Bass && (pChip.nバーからの距離dot.Bass < 100)) { pChip.b可視 = false; } if (!pChip.bHit && pChip.b可視) { int num8 = configIni.bReverse.Bass ? (0x171 - pChip.nバーからの距離dot.Bass) : (40 + pChip.nバーからの距離dot.Bass); if ((num8 > 0) && (num8 < 0x199)) { int num9 = this.ctチップ模様アニメ.Bass.n現在の値; if (pChip.nチャンネル番号 == 160) { if (this.txチップ != null) { this.txチップ.t2D描画(CDTXMania.app.Device, 480, num8 - 4, new Rectangle(0, 0xc0 + ((num9 % 5) * 8), 0x67, 8)); } } else if (!configIni.bLeft.Bass) { Rectangle rectangle3 = new Rectangle(0, num9 * 8, 0x20, 8); if (((pChip.nチャンネル番号 & 4) != 0) && (this.txチップ != null)) { this.txチップ.t2D描画(CDTXMania.app.Device, 480, num8 - 4, rectangle3); } rectangle3.X += 0x20; if (((pChip.nチャンネル番号 & 2) != 0) && (this.txチップ != null)) { this.txチップ.t2D描画(CDTXMania.app.Device, 0x204, num8 - 4, rectangle3); } rectangle3.X += 0x20; if (((pChip.nチャンネル番号 & 1) != 0) && (this.txチップ != null)) { this.txチップ.t2D描画(CDTXMania.app.Device, 0x228, num8 - 4, rectangle3); } } else { Rectangle rectangle4 = new Rectangle(0, num9 * 8, 0x20, 8); if (((pChip.nチャンネル番号 & 4) != 0) && (this.txチップ != null)) { this.txチップ.t2D描画(CDTXMania.app.Device, 0x228, num8 - 4, rectangle4); } rectangle4.X += 0x20; if (((pChip.nチャンネル番号 & 2) != 0) && (this.txチップ != null)) { this.txチップ.t2D描画(CDTXMania.app.Device, 0x204, num8 - 4, rectangle4); } rectangle4.X += 0x20; if (((pChip.nチャンネル番号 & 1) != 0) && (this.txチップ != null)) { this.txチップ.t2D描画(CDTXMania.app.Device, 480, num8 - 4, rectangle4); } } } } if ((configIni.bAutoPlay.Bass && !pChip.bHit) && (pChip.nバーからの距離dot.Bass < 0)) { pChip.bHit = true; if (((pChip.nチャンネル番号 & 4) != 0) || (pChip.nチャンネル番号 == 0xA0)) { this.actChipFireGB.Start(3); } if (((pChip.nチャンネル番号 & 2) != 0) || (pChip.nチャンネル番号 == 0xA0)) { this.actChipFireGB.Start(4); } if (((pChip.nチャンネル番号 & 1) != 0) || (pChip.nチャンネル番号 == 0xA0)) { this.actChipFireGB.Start(5); } this.tサウンド再生(pChip, CSound管理.rc演奏用タイマ.n前回リセットした時のシステム時刻 + pChip.n発声時刻ms, E楽器パート.BASS, dTX.nモニタを考慮した音量(E楽器パート.BASS)); this.r次にくるベースChip = null; this.tチップのヒット処理(pChip.n発声時刻ms, pChip); } return; } if (!pChip.bHit && (pChip.nバーからの距離dot.Bass < 0)) { pChip.bHit = true; this.tサウンド再生(pChip, CSound管理.rc演奏用タイマ.n前回リセットした時のシステム時刻 + pChip.n発声時刻ms, E楽器パート.BASS, dTX.nモニタを考慮した音量(E楽器パート.BASS)); } }
protected override void tUpdateAndDraw_Chip_Drums(CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip) { // int indexSevenLanes = this.nチャンネル0Atoレーン07[ pChip.nChannelNumber - 0x11 ]; if (!pChip.bHit && (pChip.nDistanceFromBar.Drums < 0)) { pChip.bHit = true; this.tPlaySound(pChip, CSoundManager.rcPerformanceTimer.n前回リセットした時のシステム時刻 + pChip.nPlaybackTimeMs, EInstrumentPart.DRUMS, dTX.nモニタを考慮した音量(EInstrumentPart.DRUMS)); } }