Example #1
0
        public void Process(bool isInRadialMenu)
        {
            var time = DateTime.UtcNow;

            _timeDelta = time - _lastTime;
            _lastTime  = time;
            var isMeleeWeapon           = Util.IsMelee(Game.Player.Character.Weapons.Current.Hash);
            var isThrowableWeapon       = Util.IsThrowable(Game.Player.Character.Weapons.Current.Hash);
            var isSniperWeaponAndZoomed = Util.IsSniper(Game.Player.Character.Weapons.Current.Hash) &&
                                          (GameplayCamera.IsFirstPersonAimCamActive);


            if ((_settings.AimWithGazeEnabled &&
                 GameplayCamera.IsAimCamActive &&
                 !isMeleeWeapon &&
                 !isThrowableWeapon &&
                 !isSniperWeaponAndZoomed &&
                 !isInRadialMenu) ||
                AlwaysShowCrosshair)
            {
                _drawCrosshair = true;
            }

            if (_drawCrosshair)
            {
                UI.HideHudComponentThisFrame((HudComponent)14);
            }

            if (_drawCrosshair &&
                !MissileLockedCrosshairVisible)
            {
                _dotCrosshair.Render();
            }

            if (_settings.MissilesAtGazeEnabled &&
                Game.Player.Character.IsInVehicle() &&
                MissileLockedCrosshairVisible)
            {
                _missileLockCrosshair.Render();
            }

            _homingMissilesHelper.Process();
            _drawCrosshair = false;
        }
Example #2
0
        public void OnTick(object sender, EventArgs e)
        {
            if (_shutDownRequestFlag)
            {
                return;
            }

            _controllerEmulation.Enabled = !Game.IsPaused;
            _mouseEmulation.Enabled      = !Game.IsPaused && !_menuPool.IsAnyMenuOpen() && _isWindowForeground;

            CheckFreelookDevice();

            SaveSettingsOnMenuClosed();

            Game.Player.Character.CanBeKnockedOffBike = _settings.DontFallFromBikesEnabled;             //Bug in Script hook

            CheckUserPresense();

            if (Game.IsPaused)
            {
                return;
            }

            if (!_settings.UserAgreementAccepted)
            {
                _introScreen.OpenMenu();
            }

            RecordGameSessionStarted();

            Vector3 shootCoord;
            Vector3 shootCoordSnap;
            Vector3 shootMissileCoord;
            Ped     ped;
            Entity  missileTarget;

            //Util.Log("0 - " + DateTime.UtcNow.Ticks);

            var         controllerState = _controllerEmulation.ControllerState;
            const float joystickRadius  = 0.1f;

            var joystickDelta = new Vector2(controllerState.Gamepad.RightThumbX, -controllerState.Gamepad.RightThumbY) *
                                (1.0f / 32768.0f) * joystickRadius;

            //Util.Log("1 - " + DateTime.UtcNow.Ticks);

            _gazeProjector.FindGazeProjection(
                _lastNormalizedCenterDelta,
                joystickDelta,
                out shootCoord,
                out shootCoordSnap,
                out shootMissileCoord,
                out ped,
                out missileTarget);

            //Util.Log("2 - " + DateTime.UtcNow.Ticks);

            _controlsProcessor.Process(_lastTickTime, _lastNormalizedCenterDelta, _aspectRatio, shootCoord, shootCoordSnap, shootMissileCoord, ped, missileTarget);

            //Util.Log("3 - " + DateTime.UtcNow.Ticks);


            //_aiming.TurnHead(ped, shootCoord);
            _menuPool.ProcessMenus();

            //Util.Log("4 - " + DateTime.UtcNow.Ticks);


            _animationHelper.Process();
            //Util.Log("5 - " + DateTime.UtcNow.Ticks);

            if (_debugOutput.Visible)
            {
                _debugGazeVisualization.Render();
            }

            _debugOutput.Process();

            //Util.Log("6 - " + DateTime.UtcNow.Ticks);

            _pedestrianInteraction.Process(ped, DateTime.UtcNow - _lastTickTime);

            //Util.Log("7 - " + DateTime.UtcNow.Ticks);


            _deadzoneEditor.Process();

            _mouseEmulation.ProcessInput();

            //Util.Log("8 - " + DateTime.UtcNow.Ticks);

            _lastTickTime = DateTime.UtcNow;

            if (_shutDownRequestFlag)
            {
                _shutDownRequestedEvent.Set();
            }
        }