public override void Update()
        {
            if (Enabled)
            {
                float barWidth = HUDVitals.nativeBarWidth * Scale.x;

                PlayerActivateModes mode = GameManager.Instance.PlayerActivate.CurrentMode;
                switch (mode)
                {
                case PlayerActivateModes.Steal:
                    BackgroundTexture = StealTexture;
                    Size = stealSize * displayScale;
                    break;

                case PlayerActivateModes.Grab:
                    BackgroundTexture = GrabTexture;
                    Size = grabSize * displayScale;
                    break;

                case PlayerActivateModes.Info:
                    BackgroundTexture = InfoTexture;
                    Size = infoSize * displayScale;
                    break;

                case PlayerActivateModes.Talk:
                    BackgroundTexture = TalkTexture;
                    Size = talkSize * displayScale;
                    break;
                }
                Position = new Vector2((barWidth * 5) + (HUDVitals.borderSize * 2), Screen.height - HUDVitals.borderSize - Size.y);

                base.Update();
            }
        }
        // Sets new activation mode
        private void ChangeInteractionMode(PlayerActivateModes newMode)
        {
            // Do nothing if new mode matches current mode
            if (newMode == currentMode)
            {
                return;
            }

            // Set the new mode
            currentMode = newMode;

            // Get output text based on mode
            string modeText = string.Empty;

            switch (currentMode)
            {
            case PlayerActivateModes.Steal:
                modeText = HardStrings.steal;
                break;

            case PlayerActivateModes.Grab:
                modeText = HardStrings.grab;
                break;

            case PlayerActivateModes.Info:
                modeText = HardStrings.info;
                break;

            case PlayerActivateModes.Talk:
                modeText = HardStrings.dialogue;
                break;
            }

            // Present new mode to player
            DaggerfallUI.SetMidScreenText(HardStrings.interactionIsNowInMode.Replace("%s", modeText));
        }
        public override void Update()
        {
            if (Enabled)
            {
                if (crosshair)
                {
                    if (crosshairTexture == null)
                    {
                        crosshairTexture = hudCrosshair.CrosshairTexture;
                        crosshairSize    = hudCrosshair.crosshairSize;
                    }

                    PlayerActivateModes mode = GameManager.Instance.PlayerActivate.CurrentMode;
                    switch (mode)
                    {
                    case PlayerActivateModes.Steal:
                        hudCrosshair.CrosshairTexture = StealTexture;
                        hudCrosshair.crosshairSize    = stealSize * displayScale;
                        break;

                    case PlayerActivateModes.Grab:
                        hudCrosshair.CrosshairTexture = crosshairTexture;
                        hudCrosshair.crosshairSize    = crosshairSize;
                        break;

                    case PlayerActivateModes.Info:
                        hudCrosshair.CrosshairTexture = InfoTexture;
                        hudCrosshair.crosshairSize    = infoSize * displayScale;
                        break;

                    case PlayerActivateModes.Talk:
                        hudCrosshair.CrosshairTexture = TalkTexture;
                        hudCrosshair.crosshairSize    = talkSize * displayScale;
                        break;
                    }
                }
                else
                {
                    float barWidth = HUDVitals.nativeBarWidth * Scale.x;
                    float resScale = Scale.x > 3 ? 1 : 1 / Scale.x * 3;     // Scale down at low resolutions.

                    PlayerActivateModes mode = GameManager.Instance.PlayerActivate.CurrentMode;
                    switch (mode)
                    {
                    case PlayerActivateModes.Steal:
                        BackgroundTexture = StealTexture;
                        Size = stealSize * displayScale / resScale;
                        break;

                    case PlayerActivateModes.Grab:
                        BackgroundTexture = GrabTexture;
                        Size = grabSize * displayScale / resScale;
                        break;

                    case PlayerActivateModes.Info:
                        BackgroundTexture = InfoTexture;
                        Size = infoSize * displayScale / resScale;
                        break;

                    case PlayerActivateModes.Talk:
                        BackgroundTexture = TalkTexture;
                        Size = talkSize * displayScale / resScale;
                        break;
                    }
                    Position = new Vector2((barWidth * 5) + (HUDVitals.borderSize * 2), Screen.height - HUDVitals.borderSize - Size.y);
                }

                base.Update();
            }
        }