Beispiel #1
0
        private static void OnAcceptClick(WindowBase sender, UIButtonClickEventArgs eventArgs)
        {
            try
            {
                CASTattoo ths = CASTattoo.gSingleton;

                if (ths.HasAnyPartsInUse())
                {
                    Responder.Instance.CASModel.RequestFinalizeCommitPresetToPart();
                    AdvancedMode = false;
                    ths.PopulateTattooGrid(false, true);
                    ths.mTattooGrid.ShowSelectedItem(false);
                }
                else
                {
                    ths.ClearAllParts();
                    ths.ClearTemplates();
                    ths.CurrentPreset.mPresetId     = 0x0;
                    ths.CurrentPreset.mPresetString = CASUtils.PartDataGetPreset(ths.mActiveTattooPart.Key, 0x0);
                    AdvancedMode            = false;
                    ths.mRemoveTattooOnUndo = true;
                    Responder.Instance.CASModel.RequestUndo();
                }
                eventArgs.Handled = true;
            }
            catch (Exception e)
            {
                Common.Exception("OnAcceptClick", e);
            }
        }
Beispiel #2
0
        private static void SetActiveTattooType(CASTattoo ths, CASTattoo.TattooID tattooID, bool forceRefresh)
        {
            if ((ths.mActiveTattooID != tattooID) || forceRefresh)
            {
                ths.mActiveTattooID = tattooID;
                bool flag = false;
                foreach (CASPart part in ths.mTattooParts)
                {
                    if (part.Key.InstanceId == (ulong)ths.mActiveTattooID)
                    {
                        ths.mActiveTattooPart = part;
                        flag = true;
                        break;
                    }
                }

                if (flag)
                {
                    SetTattooCam(ths, ths.mActiveTattooID);
                    ths.UpdateCurrentPreset();
                    ths.ClearTemplates();
                    ths.PopulateTattooGrid(true);
                }
            }
        }
Beispiel #3
0
 public static void OnFootCam(CASTattoo ths)
 {
     try
     {
         CASController.Singleton.SetAnkleCam(true);
         CASPuck.TryRotateSimTowards(0f);
     }
     catch (Exception e)
     {
         Common.Exception("OnFootCam", e);
     }
 }
Beispiel #4
0
 public static void OnBackTopCam(CASTattoo ths)
 {
     try
     {
         CASController.Singleton.SetTopCam(true);
         CASPuck.TryRotateSimTowards(3.141593f);
     }
     catch (Exception e)
     {
         Common.Exception("OnBackTopCam", e);
     }
 }
Beispiel #5
0
 public static void OnRightPalmCam(CASTattoo ths)
 {
     try
     {
         CASController.Singleton.SetHandCam(true);
         CASPuck.TryRotateSimTowards(-2.55f);
     }
     catch (Exception e)
     {
         Common.Exception("OnRightPalmCam", e);
     }
 }
Beispiel #6
0
        private static void SetTattooCam(CASTattoo ths, CASTattoo.TattooID tattooId)
        {
            CameraAdjustment adjustment;

            if (!sCameraAdjustments.TryGetValue((TattooID)tattooId, out adjustment))
            {
                ths.SetTattooCam(tattooId);
                return;
            }

            adjustment(ths);
        }
Beispiel #7
0
        private static void OnRedo()
        {
            try
            {
                CASTattoo ths = CASTattoo.gSingleton;

                SetActiveTattooType(ths, ths.mActiveTattooID, true);
                ths.UpdateRemoveAllButton();
            }
            catch (Exception e)
            {
                Common.Exception("OnRedo", e);
            }
        }
Beispiel #8
0
        public static void Init(CASTattoo ths)
        {
            sLegPanel  = ths.GetChildByID((uint)ControlIDs.LegPanel, true);
            sFacePanel = ths.GetChildByID((uint)ControlIDs.FacePanel, true);
            sBodyPanel = ths.GetChildByID((uint)ControlIDs.BodyPanel, true);

            ths.mAcceptButton.Click -= ths.OnAcceptClick;
            ths.mAcceptButton.Click += OnAcceptClick;

            ths.mAdvancedModeButton.Click -= ths.OnAdvancedClick;
            ths.mAdvancedModeButton.Click += OnAdvancedClick;

            Button childByID = ths.GetChildByID(0x92fa02e, true) as Button;

            childByID.Click -= ths.OnCancelClick;
            childByID.Click += OnCancelClick;

            foreach (CASTattoo.ControlIDs id in Enum.GetValues(typeof(CASTattoo.ControlIDs)))
            {
                Button button = ths.GetChildByID((uint)id, true) as Button;
                if (button != null)
                {
                    button.Click -= ths.OnNavButtonClicked;
                    button.Click += OnNavButtonClicked;
                }
            }

            foreach (ControlIDs id in Enum.GetValues(typeof(ControlIDs)))
            {
                Button button = ths.GetChildByID((uint)id, true) as Button;
                if (button != null)
                {
                    ths.mNavButtons.Remove((CASTattoo.ControlIDs)id);
                    ths.mNavButtons.Add((CASTattoo.ControlIDs)id, button);

                    button.Click -= OnNavButtonClicked;
                    button.Click += OnNavButtonClicked;
                }
            }

            CASFacialDetails.gSingleton.SetTattooPanel();

            PopulateTunedScales(ths);

            OnNavButtonClickedHelper();

            SetTattooCam(ths, ths.mActiveTattooID);
        }
Beispiel #9
0
 private static void OnNavButtonClicked(WindowBase sender, UIButtonClickEventArgs args)
 {
     try
     {
         CASTattoo ths = CASTattoo.gSingleton;
         if (!ths.AdvancedMode)
         {
             Simulator.AddObject(new OneShotFunctionTask(OnNavButtonClickedHelper));
         }
         args.Handled = true;
     }
     catch (Exception e)
     {
         Common.Exception("OnNavButtonClicked", e);
     }
 }
Beispiel #10
0
 private static void PopulateTunedScales(CASTattoo ths)
 {
     try
     {
         ths.mTunedScales.Add((CASTattoo.TattooID)TattooID.TattooFullBody, TattooTuning.kDefaultFullBodyScales);
         ths.mTunedScales.Add((CASTattoo.TattooID)TattooID.TattooFullFace, TattooTuning.kDefaultFullFaceScales);
         ths.mTunedScales.Add((CASTattoo.TattooID)TattooID.TattooShoulderBackL, TattooTuning.kDefaultShoulderBackLScales);
         ths.mTunedScales.Add((CASTattoo.TattooID)TattooID.TattooShoulderBackR, TattooTuning.kDefaultShoulderBackRScales);
         ths.mTunedScales.Add((CASTattoo.TattooID)TattooID.TattooLowerLowerBack, TattooTuning.kDefaultLowerLowBackScales);
         ths.mTunedScales.Add((CASTattoo.TattooID)TattooID.TattooButtLeft, TattooTuning.kDefaultButtLeftScales);
         ths.mTunedScales.Add((CASTattoo.TattooID)TattooID.TattooButtRight, TattooTuning.kDefaultButtRightScales);
         ths.mTunedScales.Add((CASTattoo.TattooID)TattooID.TattooHandLeft, TattooTuning.kDefaultHandLeftScales);
         ths.mTunedScales.Add((CASTattoo.TattooID)TattooID.TattooHandRight, TattooTuning.kDefaultHandRightScales);
         ths.mTunedScales.Add((CASTattoo.TattooID)TattooID.TattooPalmLeft, TattooTuning.kDefaultPalmLeftScales);
         ths.mTunedScales.Add((CASTattoo.TattooID)TattooID.TattooPalmRight, TattooTuning.kDefaultPalmRightScales);
         ths.mTunedScales.Add((CASTattoo.TattooID)TattooID.TattooThroat, TattooTuning.kDefaultThroatScales);
         ths.mTunedScales.Add((CASTattoo.TattooID)TattooID.TattooRibsLeft, TattooTuning.kDefaultRibsLeftScales);
         ths.mTunedScales.Add((CASTattoo.TattooID)TattooID.TattooRibsRight, TattooTuning.kDefaultRibsRightScales);
         ths.mTunedScales.Add((CASTattoo.TattooID)TattooID.TattooBreastUpperL, TattooTuning.kDefaultBreastUpperLScales);
         ths.mTunedScales.Add((CASTattoo.TattooID)TattooID.TattooBreastUpperR, TattooTuning.kDefaultBreastUpperRScales);
         ths.mTunedScales.Add((CASTattoo.TattooID)TattooID.TattooHipLeft, TattooTuning.kDefaultHipLeftScales);
         ths.mTunedScales.Add((CASTattoo.TattooID)TattooID.TattooHipRight, TattooTuning.kDefaultHipRightScales);
         ths.mTunedScales.Add((CASTattoo.TattooID)TattooID.TattooThighFrontL, TattooTuning.kDefaultThighFrontLScales);
         ths.mTunedScales.Add((CASTattoo.TattooID)TattooID.TattooThighFrontR, TattooTuning.kDefaultThighFrontRScales);
         ths.mTunedScales.Add((CASTattoo.TattooID)TattooID.TattooThighBackL, TattooTuning.kDefaultThighBackLScales);
         ths.mTunedScales.Add((CASTattoo.TattooID)TattooID.TattooThighBackR, TattooTuning.kDefaultThighBackRScales);
         ths.mTunedScales.Add((CASTattoo.TattooID)TattooID.TattooCalfFrontL, TattooTuning.kDefaultCalfFrontLScales);
         ths.mTunedScales.Add((CASTattoo.TattooID)TattooID.TattooCalfFrontR, TattooTuning.kDefaultCalfFrontRScales);
         ths.mTunedScales.Add((CASTattoo.TattooID)TattooID.TattooCalfBackL, TattooTuning.kDefaultCalfBackLScales);
         ths.mTunedScales.Add((CASTattoo.TattooID)TattooID.TattooCalfBackR, TattooTuning.kDefaultCalfBackRScales);
         ths.mTunedScales.Add((CASTattoo.TattooID)TattooID.TattooAnkleOuterL, TattooTuning.kDefaultAnkleOuterLScales);
         ths.mTunedScales.Add((CASTattoo.TattooID)TattooID.TattooAnkleOuterR, TattooTuning.kDefaultAnkleOuterRScales);
         ths.mTunedScales.Add((CASTattoo.TattooID)TattooID.TattooFootLeft, TattooTuning.kDefaultFootLeftScales);
         ths.mTunedScales.Add((CASTattoo.TattooID)TattooID.TattooFootRight, TattooTuning.kDefaultFootRightScales);
         ths.mTunedScales.Add((CASTattoo.TattooID)TattooID.TattooCheekLeft, TattooTuning.kDefaultCheekLeftScales);
         ths.mTunedScales.Add((CASTattoo.TattooID)TattooID.TattooCheekRight, TattooTuning.kDefaultCheekRightScales);
         ths.mTunedScales.Add((CASTattoo.TattooID)TattooID.TattooForehead, TattooTuning.kDefaultForeheadScales);
         ths.mTunedScales.Add((CASTattoo.TattooID)TattooID.TattooLowerBelly, TattooTuning.kDefaultLowerBellyScales);
         ths.mTunedScales.Add((CASTattoo.TattooID)TattooID.TattooPubic, TattooTuning.kDefaultPubicScales);
         ths.mTunedScales.Add((CASTattoo.TattooID)TattooID.TattooNippleL, TattooTuning.kDefaultNippleLeftScales);
         ths.mTunedScales.Add((CASTattoo.TattooID)TattooID.TattooNippleR, TattooTuning.kDefaultNippleRightScales);
     }
     catch (Exception e)
     {
         Common.Exception("PopulateTunedScales - Possible Interference from a Core-Mod", e);
     }
 }
Beispiel #11
0
        protected static void OnShowUI(bool initialized)
        {
            try
            {
                if (!initialized)
                {
                    sInitialized = false;
                }

                CASTattoo ths = CASTattoo.gSingleton;
                if (ths == null)
                {
                    return;
                }

                if (CASController.Singleton.CurrentState.mPhysicalState != CASPhysicalState.Tattoos)
                {
                    return;
                }

                if (!sInitialized)
                {
                    sInitialized = true;

                    Init(ths);
                }

                ths.UINodeShutdown -= UINodeShutdownCallback;
                ths.UINodeShutdown += UINodeShutdownCallback;

                Responder.Instance.CASModel.UndoSelected -= ths.OnUndo;
                Responder.Instance.CASModel.RedoSelected -= ths.OnRedo;

                Responder.Instance.CASModel.UndoSelected -= OnUndo;
                Responder.Instance.CASModel.RedoSelected -= OnRedo;

                if ((CASController.gSingleton.CurrentState.mPhysicalState == CASPhysicalState.Tattoos) && (!ths.AdvancedMode))
                {
                    Responder.Instance.CASModel.UndoSelected += OnUndo;
                    Responder.Instance.CASModel.RedoSelected += OnRedo;
                }
            }
            catch (Exception e)
            {
                Common.Exception("OnShowUI", e);
            }
        }
Beispiel #12
0
        public static void UINodeShutdownCallback(CASState newState)
        {
            CASTattoo ths = CASTattoo.gSingleton;

            if (ths == null)
            {
                return;
            }

            if (newState.mPhysicalState != CASPhysicalState.Tattoos)
            {
                ths.UINodeShutdown -= UINodeShutdownCallback;

                Responder.Instance.CASModel.UndoSelected -= OnUndo;
                Responder.Instance.CASModel.RedoSelected -= OnRedo;

                sInitialized = false;
            }
        }
Beispiel #13
0
        private static void OnCancelClick(WindowBase sender, UIButtonClickEventArgs eventArgs)
        {
            try
            {
                CASTattoo ths = CASTattoo.gSingleton;

                bool flag = ths.mUndoRedoQueueIndex > 0x1;
                AdvancedMode = false;
                if (flag)
                {
                    Responder.Instance.CASModel.RequestUndo();
                }
                else
                {
                    ths.PopulateTattooGrid(false, ths.mWasCustom);
                }
                eventArgs.Handled = true;
            }
            catch (Exception e)
            {
                Common.Exception("OnCancelClick", e);
            }
        }
Beispiel #14
0
 private static void Unload()
 {
     if (gSingleton != null)
     {
         gSingleton.Dispose();
         gSingleton = null;
     }
     if (sTattooLayout != null)
     {
         sTattooLayout.Shutdown();
         sTattooLayout.Dispose();
         sTattooLayout = null;
     }
 }
Beispiel #15
0
 // Methods
 public UndoRedoData(CASTattoo.TattooTemplateData[] templateParts, uint opacityColor, float[] tattooLayerScaleData)
 {
     this.mTemplateParts = templateParts.Clone() as CASTattoo.TattooTemplateData[];
     this.mOpacityColor = opacityColor;
     this.mTattooLayerScaleData = tattooLayerScaleData.Clone() as float[];
 }
Beispiel #16
0
 internal static void Load()
 {
     sTattooLayout = UIManager.LoadLayoutAndAddToWindow(ResourceKey.CreateUILayoutKey("CASTattoo", 0x0), UICategory.CAS);
     gSingleton = sTattooLayout.GetWindowByExportID(0x1) as CASTattoo;
 }
Beispiel #17
0
        private static void OnNavButtonClickedHelper()
        {
            try
            {
                CASTattoo ths = CASTattoo.gSingleton;
                if (ths == null)
                {
                    return;
                }

                ths.LeftRightEnabled = true;

                if (ths.mArmPanel == null)
                {
                    return;
                }
                ths.mArmPanel.Visible = false;

                if (ths.mChestPanel == null)
                {
                    return;
                }
                ths.mChestPanel.Visible = false;

                if (ths.mBackPanel == null)
                {
                    return;
                }
                ths.mBackPanel.Visible = false;

                if (sLegPanel == null)
                {
                    return;
                }
                sLegPanel.Visible = false;

                if (sFacePanel == null)
                {
                    return;
                }
                sFacePanel.Visible = false;

                if (sBodyPanel == null)
                {
                    return;
                }
                sBodyPanel.Visible = false;

                ths.ActiveLayer = 0;
                if (ths.mNavButtons[(CASTattoo.ControlIDs)ControlIDs.LegGroupButton].Selected)
                {
                    sLegPanel.Visible = true;
                    if (ths.mNavButtons[(CASTattoo.ControlIDs)ControlIDs.AnkleButton].Selected)
                    {
                        if (ths.mNavButtons[CASTattoo.ControlIDs.LeftButton].Selected)
                        {
                            SetActiveTattooType(ths, CASTattoo.TattooID.TattooAnkleLeft, false);
                        }
                        else
                        {
                            SetActiveTattooType(ths, CASTattoo.TattooID.TattooAnkleRight, false);
                        }
                    }
                    else if (ths.mNavButtons[(CASTattoo.ControlIDs)ControlIDs.ThighFrontButton].Selected)
                    {
                        if (ths.mNavButtons[CASTattoo.ControlIDs.LeftButton].Selected)
                        {
                            SetActiveTattooType(ths, (CASTattoo.TattooID)TattooID.TattooThighFrontL, false);
                        }
                        else
                        {
                            SetActiveTattooType(ths, (CASTattoo.TattooID)TattooID.TattooThighFrontR, false);
                        }
                    }
                    else if (ths.mNavButtons[(CASTattoo.ControlIDs)ControlIDs.ThighBackButton].Selected)
                    {
                        if (ths.mNavButtons[CASTattoo.ControlIDs.LeftButton].Selected)
                        {
                            SetActiveTattooType(ths, (CASTattoo.TattooID)TattooID.TattooThighBackL, false);
                        }
                        else
                        {
                            SetActiveTattooType(ths, (CASTattoo.TattooID)TattooID.TattooThighBackR, false);
                        }
                    }
                    else if (ths.mNavButtons[(CASTattoo.ControlIDs)ControlIDs.CalfFrontButton].Selected)
                    {
                        if (ths.mNavButtons[CASTattoo.ControlIDs.LeftButton].Selected)
                        {
                            SetActiveTattooType(ths, (CASTattoo.TattooID)TattooID.TattooCalfFrontL, false);
                        }
                        else
                        {
                            SetActiveTattooType(ths, (CASTattoo.TattooID)TattooID.TattooCalfFrontR, false);
                        }
                    }
                    else if (ths.mNavButtons[(CASTattoo.ControlIDs)ControlIDs.CalfBackButton].Selected)
                    {
                        if (ths.mNavButtons[CASTattoo.ControlIDs.LeftButton].Selected)
                        {
                            SetActiveTattooType(ths, (CASTattoo.TattooID)TattooID.TattooCalfBackL, false);
                        }
                        else
                        {
                            SetActiveTattooType(ths, (CASTattoo.TattooID)TattooID.TattooCalfBackR, false);
                        }
                    }
                    else if (ths.mNavButtons[(CASTattoo.ControlIDs)ControlIDs.AnkleOuterButton].Selected)
                    {
                        if (ths.mNavButtons[CASTattoo.ControlIDs.LeftButton].Selected)
                        {
                            SetActiveTattooType(ths, (CASTattoo.TattooID)TattooID.TattooAnkleOuterL, false);
                        }
                        else
                        {
                            SetActiveTattooType(ths, (CASTattoo.TattooID)TattooID.TattooAnkleOuterR, false);
                        }
                    }
                    else if (ths.mNavButtons[(CASTattoo.ControlIDs)ControlIDs.FootButton].Selected)
                    {
                        if (ths.mNavButtons[CASTattoo.ControlIDs.LeftButton].Selected)
                        {
                            SetActiveTattooType(ths, (CASTattoo.TattooID)TattooID.TattooFootLeft, false);
                        }
                        else
                        {
                            SetActiveTattooType(ths, (CASTattoo.TattooID)TattooID.TattooFootRight, false);
                        }
                    }
                }
                else if (ths.mNavButtons[CASTattoo.ControlIDs.ArmGroupButton].Selected)
                {
                    ths.mArmPanel.Visible = true;
                    if (ths.mNavButtons[CASTattoo.ControlIDs.WristButton].Selected)
                    {
                        if (ths.mNavButtons[CASTattoo.ControlIDs.LeftButton].Selected)
                        {
                            SetActiveTattooType(ths, CASTattoo.TattooID.TattooWristTopLeft, false);
                        }
                        else
                        {
                            SetActiveTattooType(ths, CASTattoo.TattooID.TattooWristTopRight, false);
                        }
                    }
                    else if (ths.mNavButtons[CASTattoo.ControlIDs.ForearmButton].Selected)
                    {
                        if (ths.mNavButtons[CASTattoo.ControlIDs.LeftButton].Selected)
                        {
                            SetActiveTattooType(ths, CASTattoo.TattooID.TattooForearmLeft, false);
                        }
                        else
                        {
                            SetActiveTattooType(ths, CASTattoo.TattooID.TattooForearmRight, false);
                        }
                    }
                    else if (ths.mNavButtons[CASTattoo.ControlIDs.BicepButton].Selected)
                    {
                        if (ths.mNavButtons[CASTattoo.ControlIDs.LeftButton].Selected)
                        {
                            SetActiveTattooType(ths, CASTattoo.TattooID.TattooBicepLeft, false);
                        }
                        else
                        {
                            SetActiveTattooType(ths, CASTattoo.TattooID.TattooBicepRight, false);
                        }
                    }
                    else if (ths.mNavButtons[CASTattoo.ControlIDs.ShoulderButton].Selected)
                    {
                        if (ths.mNavButtons[CASTattoo.ControlIDs.LeftButton].Selected)
                        {
                            SetActiveTattooType(ths, CASTattoo.TattooID.TattooShoulderLeft, false);
                        }
                        else
                        {
                            SetActiveTattooType(ths, CASTattoo.TattooID.TattooShoulderRight, false);
                        }
                    }
                    else if (ths.mNavButtons[(CASTattoo.ControlIDs)ControlIDs.HandButton].Selected)
                    {
                        if (ths.mNavButtons[CASTattoo.ControlIDs.LeftButton].Selected)
                        {
                            SetActiveTattooType(ths, (CASTattoo.TattooID)TattooID.TattooHandLeft, false);
                        }
                        else
                        {
                            SetActiveTattooType(ths, (CASTattoo.TattooID)TattooID.TattooHandRight, false);
                        }
                    }
                    else if (ths.mNavButtons[(CASTattoo.ControlIDs)ControlIDs.PalmButton].Selected)
                    {
                        if (ths.mNavButtons[CASTattoo.ControlIDs.LeftButton].Selected)
                        {
                            SetActiveTattooType(ths, (CASTattoo.TattooID)TattooID.TattooPalmLeft, false);
                        }
                        else
                        {
                            SetActiveTattooType(ths, (CASTattoo.TattooID)TattooID.TattooPalmRight, false);
                        }
                    }
                }
                else if (ths.mNavButtons[CASTattoo.ControlIDs.ChestGroupButton].Selected)
                {
                    ths.mChestPanel.Visible = true;
                    if (ths.mNavButtons[CASTattoo.ControlIDs.ChestButton].Selected)
                    {
                        SetActiveTattooType(ths, CASTattoo.TattooID.TattooChest, false);
                    }
                    else if (ths.mNavButtons[CASTattoo.ControlIDs.BellyButton].Selected)
                    {
                        SetActiveTattooType(ths, CASTattoo.TattooID.TattooBellybutton, false);
                    }
                    else if (ths.mNavButtons[(CASTattoo.ControlIDs)ControlIDs.ThroatButton].Selected)
                    {
                        SetActiveTattooType(ths, (CASTattoo.TattooID)TattooID.TattooThroat, false);
                    }
                    else if (ths.mNavButtons[(CASTattoo.ControlIDs)ControlIDs.RibsButton].Selected)
                    {
                        if (ths.mNavButtons[CASTattoo.ControlIDs.LeftButton].Selected)
                        {
                            SetActiveTattooType(ths, (CASTattoo.TattooID)TattooID.TattooRibsLeft, false);
                        }
                        else
                        {
                            SetActiveTattooType(ths, (CASTattoo.TattooID)TattooID.TattooRibsRight, false);
                        }
                    }
                    else if (ths.mNavButtons[(CASTattoo.ControlIDs)ControlIDs.UpperBreastButton].Selected)
                    {
                        if (ths.mNavButtons[CASTattoo.ControlIDs.LeftButton].Selected)
                        {
                            SetActiveTattooType(ths, (CASTattoo.TattooID)TattooID.TattooBreastUpperL, false);
                        }
                        else
                        {
                            SetActiveTattooType(ths, (CASTattoo.TattooID)TattooID.TattooBreastUpperR, false);
                        }
                    }
                    else if (ths.mNavButtons[(CASTattoo.ControlIDs)ControlIDs.HipButton].Selected)
                    {
                        if (ths.mNavButtons[CASTattoo.ControlIDs.LeftButton].Selected)
                        {
                            SetActiveTattooType(ths, (CASTattoo.TattooID)TattooID.TattooHipLeft, false);
                        }
                        else
                        {
                            SetActiveTattooType(ths, (CASTattoo.TattooID)TattooID.TattooHipRight, false);
                        }
                    }
                    else if (ths.mNavButtons[(CASTattoo.ControlIDs)ControlIDs.LowerBellyButton].Selected)
                    {
                        SetActiveTattooType(ths, (CASTattoo.TattooID)TattooID.TattooLowerBelly, false);
                    }
                }
                else if (ths.mNavButtons[CASTattoo.ControlIDs.BackGroupButton].Selected)
                {
                    ths.mBackPanel.Visible = true;
                    if (ths.mNavButtons[CASTattoo.ControlIDs.UpperBackButton].Selected)
                    {
                        SetActiveTattooType(ths, CASTattoo.TattooID.TattooUpperBack, false);
                    }
                    else if (ths.mNavButtons[CASTattoo.ControlIDs.LowerBackButton].Selected)
                    {
                        SetActiveTattooType(ths, CASTattoo.TattooID.TattooLowerBack, false);
                    }
                    else if (ths.mNavButtons[CASTattoo.ControlIDs.FullBackButton].Selected)
                    {
                        SetActiveTattooType(ths, CASTattoo.TattooID.TattooFullBack, false);
                    }
                    else if (ths.mNavButtons[CASTattoo.ControlIDs.NeckButton].Selected)
                    {
                        SetActiveTattooType(ths, CASTattoo.TattooID.TattooNeck, false);
                    }
                    else if (ths.mNavButtons[(CASTattoo.ControlIDs)ControlIDs.ShoulderBackButton].Selected)
                    {
                        if (ths.mNavButtons[CASTattoo.ControlIDs.LeftButton].Selected)
                        {
                            SetActiveTattooType(ths, (CASTattoo.TattooID)TattooID.TattooShoulderBackL, false);
                        }
                        else
                        {
                            SetActiveTattooType(ths, (CASTattoo.TattooID)TattooID.TattooShoulderBackR, false);
                        }
                    }
                    else if (ths.mNavButtons[(CASTattoo.ControlIDs)ControlIDs.LowerLowerBack].Selected)
                    {
                        SetActiveTattooType(ths, (CASTattoo.TattooID)TattooID.TattooLowerLowerBack, false);
                    }
                    else if (ths.mNavButtons[(CASTattoo.ControlIDs)ControlIDs.ButtCheekButton].Selected)
                    {
                        if (ths.mNavButtons[CASTattoo.ControlIDs.LeftButton].Selected)
                        {
                            SetActiveTattooType(ths, (CASTattoo.TattooID)TattooID.TattooButtLeft, false);
                        }
                        else
                        {
                            SetActiveTattooType(ths, (CASTattoo.TattooID)TattooID.TattooButtRight, false);
                        }
                    }
                }
                else if (ths.mNavButtons[(CASTattoo.ControlIDs)ControlIDs.FaceGroupButton].Selected)
                {
                    sFacePanel.Visible = true;
                    if (ths.mNavButtons[(CASTattoo.ControlIDs)ControlIDs.FullFaceButton].Selected)
                    {
                        SetActiveTattooType(ths, (CASTattoo.TattooID)TattooID.TattooFullFace, false);
                    }
                    else if (ths.mNavButtons[(CASTattoo.ControlIDs)ControlIDs.CheekButton].Selected)
                    {
                        if (ths.mNavButtons[CASTattoo.ControlIDs.LeftButton].Selected)
                        {
                            SetActiveTattooType(ths, (CASTattoo.TattooID)TattooID.TattooCheekLeft, false);
                        }
                        else
                        {
                            SetActiveTattooType(ths, (CASTattoo.TattooID)TattooID.TattooCheekRight, false);
                        }
                    }
                    else if (ths.mNavButtons[(CASTattoo.ControlIDs)ControlIDs.ForeheadButton].Selected)
                    {
                        SetActiveTattooType(ths, (CASTattoo.TattooID)TattooID.TattooForehead, false);
                    }
                }
                else if (ths.mNavButtons[(CASTattoo.ControlIDs)ControlIDs.BodyGroupButton].Selected)
                {
                    if (!NRaas.MasterController.Settings.mNakedTattoo)
                    {
                        ths.LeftRightEnabled = false;
                        sBodyPanel.Visible   = false;

                        SetActiveTattooType(ths, (CASTattoo.TattooID)TattooID.TattooFullBody, false);
                    }
                    else
                    {
                        sBodyPanel.Visible = true;

                        if (ths.mNavButtons[(CASTattoo.ControlIDs)ControlIDs.FullBodyButton].Selected)
                        {
                            SetActiveTattooType(ths, (CASTattoo.TattooID)TattooID.TattooFullBody, false);
                        }
                        else if (ths.mNavButtons[(CASTattoo.ControlIDs)ControlIDs.NippleButton].Selected)
                        {
                            if (ths.mNavButtons[CASTattoo.ControlIDs.LeftButton].Selected)
                            {
                                SetActiveTattooType(ths, (CASTattoo.TattooID)TattooID.TattooNippleL, false);
                            }
                            else
                            {
                                SetActiveTattooType(ths, (CASTattoo.TattooID)TattooID.TattooNippleR, false);
                            }
                        }
                        else if (ths.mNavButtons[(CASTattoo.ControlIDs)ControlIDs.PubicButton].Selected)
                        {
                            SetActiveTattooType(ths, (CASTattoo.TattooID)TattooID.TattooPubic, false);
                        }
                    }
                }

                ths.SaveState();
            }
            catch (Exception e)
            {
                Common.Exception("OnNavButtonClickedHelper", e);
            }
        }