private void PlaybackEventTrigger(ChartEvent evt, PlayDirection direction) { if (direction == PlayDirection.Forward) { switch (evt) { case EffectKindEvent effectKind: { var effect = m_currentEffects[effectKind.EffectIndex] = effectKind.Effect; if (effect == null) { m_audioController.RemoveEffect(effectKind.EffectIndex); } else { m_audioController.SetEffect(effectKind.EffectIndex, CurrentQuarterNodeDuration, effect, 1.0f); } } break; case LaserApplicationEvent app: m_highwayControl.LaserApplication = app.Application; break; // TODO(local): left/right lasers separate + allow both independent if needed case LaserFilterGainEvent filterGain: laserGain = filterGain.Gain; break; case LaserFilterKindEvent filterKind: { m_audioController.SetEffect(6, CurrentQuarterNodeDuration, currentLaserEffectDef = filterKind.Effect, m_audioController.GetEffectMix(6)); } break; case LaserParamsEvent pars: { if (pars.LaserIndex.HasFlag(LaserIndex.Left)) { m_highwayControl.LeftLaserParams = pars.Params; } if (pars.LaserIndex.HasFlag(LaserIndex.Right)) { m_highwayControl.RightLaserParams = pars.Params; } } break; case SlamVolumeEvent pars: m_slamSample.Volume = pars.Volume; break; } } switch (evt) { case SpinImpulseEvent spin: m_highwayControl.ApplySpin(spin.Params, spin.AbsolutePosition); break; case SwingImpulseEvent swing: m_highwayControl.ApplySwing(swing.Params, swing.AbsolutePosition); break; case WobbleImpulseEvent wobble: m_highwayControl.ApplyWobble(wobble.Params, wobble.AbsolutePosition); break; } }
private void PlaybackEventTrigger(EventEntity evt, PlayDirection direction) { if (direction == PlayDirection.Forward) { switch (evt) { case EffectKindEvent effectKind: { var effect = m_currentEffects[effectKind.EffectIndex] = effectKind.Effect; if (effect == null) { m_audioController.RemoveEffect(effectKind.EffectIndex); } else { m_audioController.SetEffect(effectKind.EffectIndex, CurrentQuarterNodeDuration, effect, 1.0f); } } break; // TODO(local): left/right lasers separate + allow both independent if needed case LaserFilterGainEvent filterGain: laserGain = filterGain.Gain; break; case LaserFilterKindEvent filterKind: { m_audioController.SetEffect(6, CurrentQuarterNodeDuration, currentLaserEffectDef = filterKind.Effect, m_audioController.GetEffectMix(6)); } break; case SlamVolumeEvent pars: m_slamSample.Volume = pars.Volume * SLAM_VOLUME_MOD; break; } } }