private void PlaybackObjectBegin(Entity entity) { if (entity is AnalogEntity aobj) { if (entity.IsInstant) { int dir = -MathL.Sign(aobj.FinalValue - aobj.InitialValue); m_highwayControl.ShakeCamera(dir); #if false if (aobj.InitialValue == (aobj.Lane == 6 ? 0 : 1) && aobj.NextConnected == null) { m_highwayControl.ApplyRollImpulse(-dir); } #endif //if (m_judge[(int)entity.Lane].IsBeingPlayed) m_slamSample.Replay(); } if (aobj.PreviousConnected == null) { if (!AreLasersActive) { m_audioController.SetEffect(6, CurrentQuarterNodeDuration, currentLaserEffectDef, BASE_LASER_MIX); } currentActiveLasers[(int)entity.Lane - 6] = true; } m_activeObjects[(int)entity.Lane] = aobj.Head; } else if (entity is ButtonEntity bobj) { //if (bobj.HasEffect) m_audioController.SetEffect(obj.Stream, CurrentQuarterNodeDuration, bobj.Effect); //else m_audioController.RemoveEffect(obj.Stream); // NOTE(local): can move this out for analog as well, but it doesn't matter RN if (!bobj.IsInstant) { m_activeObjects[(int)entity.Lane] = entity; } } }
private void PlaybackObjectBegin(ChartObject obj) { if (obj is AnalogObject aobj) { if (obj.IsInstant) { int dir = -MathL.Sign(aobj.FinalValue - aobj.InitialValue); m_highwayControl.ShakeCamera(dir); if (aobj.InitialValue == (aobj.Stream == 6 ? 0 : 1) && aobj.NextConnected == null) { m_highwayControl.ApplyRollImpulse(-dir); } m_slamSample.Play(); } if (aobj.PreviousConnected == null) { if (!AreLasersActive) { m_audioController.SetEffect(6, CurrentQuarterNodeDuration, currentLaserEffectDef, BASE_LASER_MIX); } currentActiveLasers[obj.Stream - 6] = true; } m_activeObjects[obj.Stream] = aobj.Head; } else if (obj is ButtonObject bobj) { //if (bobj.HasEffect) m_audioController.SetEffect(obj.Stream, CurrentQuarterNodeDuration, bobj.Effect); //else m_audioController.RemoveEffect(obj.Stream); // NOTE(local): can move this out for analog as well, but it doesn't matter RN if (!bobj.IsInstant) { m_activeObjects[obj.Stream] = obj; } } }