private void SwitchShot(ref ShotState shotState, bool checkCut = true, bool forceCut = false) { var cut = forceCut || shotState.forceCut || checkCut && m_prevShot.blend.blendType == CameraBlendType.Cut; m_prevShot = shotState; if (m_shotInfo) { m_nextShot = m_shotInfo.GetSortedShotState(m_shotIndex); } if (m_nextShot.isEmpty) { m_nextShot = m_prevShot.time < 1.0f ? m_initEndState : m_prevShot; } if (!m_creature.isForward) { m_prevShot.Inverse(); m_nextShot.Inverse(); } euler = m_prevShot.euler; offset = m_prevShot.offset; m_overrideSmooth = m_prevShot.overrideSmooth; m_camera.fieldOfView = m_prevShot.fieldOfView; m_currentShot.Set(offset, euler, m_prevShot.blend.blendType); removeCameraEdge = m_prevShot.removeCameraEdge; if (!removeCameraEdge) { m_forceRecalculateEdge = true; } if (Level.ShowHideSceneObjects(!m_prevShot.hideScene) && !m_prevShot.hideScene && m_drawMask < 1) { m_fading = true; m_fadeStart = 1.0f; m_fadeEnd = 0; m_fadeTime = 0; m_overrideFadeDuration = CombatConfig.smaskFadeDuration; if (m_maskMaterial) { m_maskMaterial.SetColor(m_colorID, Color.black); } } if (cut) { UpdatePosition(false); UpdateRotation(false); } Root.instance.DispatchEvent(Events.CAMERA_SHOT_UI_STATE, Event_.Pop(m_prevShot.hideCombatUI, m_prevShot.maskAsset, m_prevShot.maskDuration)); }
private void UpdateShotBlend() { if (!m_shotValid) { return; } ShotState.Lerp(ref m_currentShot, ref m_prevShot, ref m_nextShot, m_stateTime, m_currentSmooth); offset = m_currentShot.offset; euler = m_currentShot.euler; m_overrideSmooth = m_currentShot.overrideSmooth; m_camera.fieldOfView = m_currentShot.fieldOfView; }