void CMountedGunController::OnLeave( ) { CRY_ASSERT_MESSAGE(m_pControlledPlayer, "Controlled player not initialized"); ICharacterInstance* pCharacter = m_pControlledPlayer->IsThirdPerson() ? m_pControlledPlayer->GetEntity()->GetCharacter(0) : m_pControlledPlayer->GetShadowCharacter(); if (pCharacter) { if(m_pMovementAction) { m_pMovementAction->ForceFinish(); SAFE_RELEASE(m_pMovementAction); } CRecordingSystem* pRecordingSystem = g_pGame->GetRecordingSystem(); if (pRecordingSystem) { pRecordingSystem->OnMountedGunLeave(m_pControlledPlayer); } IAnimatedCharacter* pAnimatedCharacter = m_pControlledPlayer->GetAnimatedCharacter(); CRY_ASSERT(pAnimatedCharacter); pAnimatedCharacter->ForceRefreshPhysicalColliderMode(); pAnimatedCharacter->RequestPhysicalColliderMode(eColliderMode_Undefined, eColliderModeLayer_Game, "CMountedGunController::OnLeave"); pAnimatedCharacter->SetNoMovementOverride(false); if (gEnv->bMultiplayer || m_pControlledPlayer->IsPlayer()) pAnimatedCharacter->DisableRigidCollider(); pAnimatedCharacter->GetGroundAlignmentParams().SetFlag(eGA_AllowWithNoCollision, true); m_pControlledPlayer->GetActorParams().mountedWeaponCameraTarget.zero(); } }