using ExIni;
using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using UnityEngine;
using UnityEngine.Rendering;
using Object = UnityEngine.Object;

namespace CM3D2.MultipleMaids.Plugin
{
    public partial class MultipleMaids
    {
        public void OnGUI()
        {
            for (int index1 = 0; index1 < maidCnt; ++index1)
            {
                if (isPoseIti[index1])
                {
                    Maid maid = maidArray[index1];
                    isPoseIti[index1] = false;
                    maid.transform.position = poseIti[index1];
                    Vector3 eulerAngles = maid.transform.eulerAngles;
                    for (int index2 = 0; index2 < 10; ++index2)
                    {
                        Transform transform1 = maid.transform;
                        Vector3 position1 = maid.transform.position;
                        Vector3 right = Vector3.right;
                        Quaternion rotation = maid.transform.rotation;
                        double num1 = -rotation.eulerAngles.x;
                        transform1.RotateAround(position1, right, (float)num1);
                        Transform transform2 = maid.transform;
                        Vector3 position2 = maid.transform.position;
                        Vector3 forward = Vector3.forward;
                        rotation = maid.transform.rotation;
                        double num2 = -rotation.eulerAngles.z;
                        transform2.RotateAround(position2, forward, (float)num2);
                    }

                    Transform transform = CMT.SearchObjName(maid.body0.m_Bones.transform, "Bip01", true);
                    transform.position = new Vector3(poseIti[index1].x, transform.position.y, poseIti[index1].z);
                    maid.transform.eulerAngles = eulerAngles;
                }
            }

            GUIStyle style = new GUIStyle(GUI.skin.box);
            style.fontSize = GetPix(11);
            style.alignment = TextAnchor.UpperRight;

            if (isGuiInit || screenSize != new Vector2(Screen.width, Screen.height))
            {
                screenSize = new Vector2(Screen.width, Screen.height);
                isGuiInit = false;

                rectWin2.width = Screen.width * 0.4f;
                rectWin2.height = Screen.height * 0.15f;

                rectWin2.x = (float)(Screen.width / 2.0 - rectWin2.width / 2.0);
                rectWin2.y = sceneLevel != 5
                    ? Screen.height - rectWin2.height
                    : Screen.height * 0.94f - rectWin2.height;

                rectWin.width = GetPix(kankyoFlg || kankyo2Flg ? 220 : 180);
                rectWin.height = Screen.height * 0.9f;

                rectWin.x = Screen.width - rectWin.width;
                rectWin.y = GetPix(65);

                sceneManagerRect.width = Screen.width * 0.45f;
                sceneManagerRect.height = Screen.height * 0.55f;

                sceneManagerRect.x = (float)(Screen.width * 0.5f - sceneManagerRect.width * 0.5f);
                sceneManagerRect.y = (float)(Screen.height * 0.5f - sceneManagerRect.height * 0.5f);

                sceneModalRect.width = Mathf.Min(Screen.width * 0.35f, 480f);
                sceneModalRect.height = Mathf.Min(Screen.height * 0.45f, 360f);

                sceneModalRect.x = (float)(Screen.width * 0.5f - sceneModalRect.width * 0.5f);
                sceneModalRect.y = (float)(Screen.height * 0.5f - sceneModalRect.height * 0.5f);
            }

            if (bGuiMessage)
            {
                rectWin2.width = Screen.width * 0.4f;
                rectWin2.height = Screen.height * 0.15f;

                rectWin2.x = Mathf.Clamp(rectWin2.x, -rectWin2.width + GetPix(20), Screen.width - GetPix(20));
                rectWin2.y = Mathf.Clamp(rectWin2.y, -rectWin2.height + GetPix(20), Screen.height - GetPix(20));

                rectWin2 = GUI.Window(130, rectWin2, MessageWindow, "", style);
            }

            if (bGui)
            {
                rectWin.x = Mathf.Clamp(rectWin.x, 0, Screen.width - rectWin.width);
                rectWin.y = Mathf.Clamp(rectWin.y, -rectWin.height + GetPix(20), Screen.height - GetPix(20));

                rectWin.height = Screen.height * 0.9f;
                rectWin.width = GetPix(kankyoFlg || kankyo2Flg ? 220 : 180);
                if (sceneLevel == 5 || sceneLevel == 14)
                    rectWin.height *= 0.85f;

                comboBoxControl.height = rectWin.height;
                faceCombo.height = rectWin.height;
                poseCombo.height = rectWin.height;
                poseGroupCombo.height = rectWin.height;
                itemCombo.height = rectWin.height;
                bgmCombo.height = rectWin.height;
                itemCombo2.height = rectWin.height;
                bgCombo2.height = rectWin.height;
                kankyoCombo.height = rectWin.height;
                bgCombo.height = rectWin.height;
                slotCombo.height = rectWin.height;
                doguCombo.height = rectWin.height;
                parCombo.height = rectWin.height;
                lightCombo.height = rectWin.height;

                if (sceneFlg)
                {
                    if (manageSceneFlag || deleteDirectoryFlag)
                    {
                        sceneModalRect = GUI.ModalWindow(9999, sceneModalRect, SceneManagerModal, "", style);
                    }

                    sceneManagerRect = GUI.Window(131, sceneManagerRect, SceneManagerWindow, "", style);

                    int resizeHandleSize = GetPix(15);
                    resizeManagerRect.x = sceneManagerRect.x + sceneManagerRect.width - resizeHandleSize;
                    resizeManagerRect.y = sceneManagerRect.y + sceneManagerRect.height - resizeHandleSize;

                    resizeManagerRect.width = resizeManagerRect.height = resizeHandleSize;

                    if (!resizeManager && Input.GetMouseButtonDown(0) && resizeManagerRect.Contains(Event.current.mousePosition))
                    {
                        resizeManager = true;
                    }

                    if (resizeManager)
                    {
                        float rectWidth = Event.current.mousePosition.x - sceneManagerRect.x;
                        float rectHeight = Event.current.mousePosition.y - sceneManagerRect.y;

                        sceneManagerRect.width = Mathf.Max(GetPix(480), rectWidth);
                        sceneManagerRect.height = Mathf.Max(GetPix(260), rectHeight);

                        if (Input.GetMouseButtonUp(0))
                        {
                            resizeManager = false;
                        }
                    }
                }

                if (!faceFlg && !poseFlg && !kankyoFlg && !kankyo2Flg && !isF6 && okFlg)
                {
                    rectWin = GUI.Window(129, rectWin, MaidCallWindow, "", style);
                }
                else if (kankyoFlg)
                {
                    if (!yotogiFlg && sceneLevel != 3 && sceneLevel != 5
                             && rectWin.Contains(Event.current.mousePosition)
                             && Input.GetMouseButtonDown(0))
                    {
                        Input.ResetInputAxes();
                    }

                    rectWin = GUI.Window(129, rectWin, BGSelectWindow, "", style);
                }
                else if (kankyo2Flg)
                {
                    if (!yotogiFlg && sceneLevel != 3 && sceneLevel != 5
                        && rectWin.Contains(Event.current.mousePosition)
                        && Input.GetMouseButtonDown(0))
                    {
                        Input.ResetInputAxes();
                    }

                    rectWin = GUI.Window(129, rectWin, BGSelectWindow2, "", style);
                }
                else if (poseFlg)
                {
                    if (!yotogiFlg && sceneLevel != 3 && sceneLevel != 5
                             && rectWin.Contains(Event.current.mousePosition)
                             && Input.GetMouseButtonDown(0))
                    {
                        Input.ResetInputAxes();
                    }

                    rectWin = GUI.Window(129, rectWin, PoseWindow, "", style);
                }
                else // implies faceFlg == true
                {
                    if (!yotogiFlg && sceneLevel != 3 && sceneLevel != 5
                             && rectWin.Contains(Event.current.mousePosition)
                             && Input.GetMouseButtonDown(0))
                    {
                        Input.ResetInputAxes();
                    }

                    rectWin = GUI.Window(129, rectWin, FaceWindow, "", style);
                }

                GameMain.Instance.MainCamera.SetControl(true);
            }
        }

        private void BGSelectWindow2(int winID)
        {
            GUIStyle guiStyle1 = "label";
            guiStyle1.fontSize = GetPix(12);
            guiStyle1.alignment = TextAnchor.UpperLeft;
            GUIStyle style1 = "label";
            style1.fontSize = GetPix(11);
            style1.alignment = TextAnchor.UpperLeft;
            GUIStyle style2 = "button";
            style2.fontSize = GetPix(20);
            GUIStyle buttonStyle = "button";
            buttonStyle.fontSize = GetPix(14);
            buttonStyle.alignment = TextAnchor.MiddleLeft;
            GUIStyle guiStyle2 = "button";
            guiStyle2.fontSize = GetPix(12);
            guiStyle2.alignment = TextAnchor.MiddleLeft;
            GUIStyle style3 = new GUIStyle("toggle")
            {
                fontSize = GetPix(13)
            };
            CharacterMgr characterMgr = GameMain.Instance.CharacterMgr;
            Maid maid = maidArray[selectMaidIndex];
            if (!kankyo2InitFlg)
            {
                listStyle2.normal.textColor = Color.white;
                listStyle2.normal.background = MakeTex(2, 2, new Color(0.0f, 0.0f, 0.0f, 0.5f));
                listStyle2.onHover.background = listStyle2.hover.background = new Texture2D(2, 2);
                listStyle2.padding.left = listStyle2.padding.right = listStyle2.padding.top = listStyle2.padding.bottom = GetPix(0);
                listStyle2.fontSize = GetPix(11);
                listStyle3.normal.textColor = Color.white;
                listStyle3.normal.background = MakeTex(2, 2, new Color(0.0f, 0.0f, 0.0f, 0.5f));
                listStyle3.onHover.background = listStyle3.hover.background = new Texture2D(2, 2);
                listStyle3.padding.left = listStyle3.padding.right = listStyle3.padding.top = GetPix(0);
                listStyle3.padding.bottom = GetPix(0);
                listStyle3.fontSize = GetPix(14);
                bgCombo2.selectedItemIndex = bgIndexB;
                bgCombo2List = new GUIContent[bgArray.Length];
                for (int index = 0; index < bgArray.Length; ++index)
                {
                    bgCombo2List[index] = bgUiNames.TryGetValue(bgArray[index], out string name)
                                                  ? new GUIContent(name)
                                                  : new GUIContent(bgArray[index]);
                }

                slotCombo.selectedItemIndex = 0;
                slotComboList = slotArray.Select(s => slotUiNames.TryGetValue(s, out string name) ? name : s).Select(s => new GUIContent(s)).ToArray();

                itemCombo2.selectedItemIndex = 0;
                itemCombo2List = itemBArray.Select(s => itemComboUiName.TryGetValue(s, out string name) ? name : s)
                                           .Select(s => new GUIContent(s)).ToArray();

                kankyoCombo.selectedItemIndex = 0;
                kankyoComboList = new GUIContent[kankyoMax];
                for (int index = 0; index < kankyoMax; ++index)
                {
                    IniKey iniKey = Preferences["kankyo"]["kankyo" + (index + 1)];
                    kankyoComboList[index] = new GUIContent(iniKey.Value);
                }

                kankyo2InitFlg = true;
            }

            listStyle3.padding.top = GetPix(1);
            listStyle3.padding.bottom = GetPix(0);
            listStyle3.fontSize = GetPix(13);
            if (poseCombo.isClickedComboButton)
            {
                GUI.enabled = false;
            }

            if (poseGroupCombo.isClickedComboButton)
            {
                GUI.enabled = false;
            }

            if (sceneLevel == 3 || sceneLevel == 5 || isF6)
            {
                if (!isF6)
                {
                    bool flag = true;
                    if (faceFlg || poseFlg || sceneFlg || kankyoFlg || kankyo2Flg)
                    {
                        flag = false;
                    }

                    if (GUI.Toggle(new Rect(GetPix(2),
                                             GetPix(2),
                                             GetPix(39),
                                             GetPix(20)),
                                   flag,
                                   "配置",
                                   style3))
                    {
                        faceFlg = false;
                        poseFlg = false;
                        // sceneFlg = false;
                        kankyoFlg = false;
                        kankyo2Flg = false;
                        bGui = true;
                    }
                }

                if (!yotogiFlg && GUI.Toggle(new Rect(GetPix(42),
                                                       GetPix(2),
                                                       GetPix(39),
                                                       GetPix(20)),
                                             poseFlg,
                                             "操作",
                                             style3))
                {
                    poseFlg = true;
                    faceFlg = false;
                    // sceneFlg = false;
                    kankyoFlg = false;
                    kankyo2Flg = false;
                }

                if (GUI.Toggle(new Rect(GetPix(82), GetPix(2), GetPix(39), GetPix(20)),
                               faceFlg,
                               "表情",
                               style3))
                {
                    faceFlg = true;
                    poseFlg = false;
                    // sceneFlg = false;
                    kankyoFlg = false;
                    kankyo2Flg = false;
                    if (!faceFlg2)
                    {
                        isFaceInit = true;
                        faceFlg2 = true;
                        maidArray[selectMaidIndex].boMabataki = false;
                        faceCombo.selectedItemIndex = faceIndex[selectMaidIndex];
                    }

                    isFaceInit = true;
                }

                if (GUI.Toggle(new Rect(GetPix(122), GetPix(2), GetPix(39), GetPix(20)),
                               kankyoFlg,
                               "環境",
                               style3))
                {
                    poseFlg = false;
                    faceFlg = false;
                    // sceneFlg = false;
                    kankyoFlg = true;
                    kankyo2Flg = false;
                }

                if (GUI.Toggle(new Rect(GetPix(162), GetPix(2), GetPix(39), GetPix(20)),
                               kankyo2Flg,
                               "環2",
                               style3))
                {
                    poseFlg = false;
                    faceFlg = false;
                    // sceneFlg = false;
                    kankyoFlg = false;
                    kankyo2Flg = true;
                }

                if (!line1)
                {
                    line1 = MakeTex(2, 2, new Color(0.0f, 0.0f, 0.0f, 0.3f));
                    line2 = MakeTex(2, 2, new Color(0.7f, 0.7f, 0.7f, 0.6f));
                }

                GUI.DrawTexture(new Rect(GetPix(5), GetPix(20), GetPix(200), 2f), line1);
                GUI.DrawTexture(new Rect(GetPix(5), GetPix(20), GetPix(200), 1f), line2);
            }

            if (isDanceStop)
            {
                isStop[selectMaidIndex] = true;
                isDanceStop = false;
            }

            if (kankyoCombo.isClickedComboButton || slotCombo.isClickedComboButton
                                                 || itemCombo2.isClickedComboButton || bgCombo2.isClickedComboButton)
            {
                GUI.enabled = false;
            }

            characterMgr.GetStockMaidCount();
            float pix = GetPix(45);
            Rect position1;
            Rect viewRect;
            if (sceneLevel != 5)
            {
                position1 = new Rect(GetPix(7),
                                      GetPix(138),
                                      GetPix(44) * 4 + GetPix(20),
                                      rectWin.height - GetPix(148));
                viewRect = new Rect(0.0f,
                                    0.0f,
                                    position1.width * 0.845f,
                                    Mathf.Ceil(sortList.Count / 4 + 1) * pix + GetPix(10));
            }
            else
            {
                position1 = new Rect(GetPix(7),
                                      GetPix(138),
                                      GetPix(44) * 4 + GetPix(20),
                                      rectWin.height - GetPix(148));
                viewRect = new Rect(0.0f,
                                    0.0f,
                                    position1.width * 0.845f,
                                    Mathf.Ceil(sortList.Count / 4 + 1) * pix + GetPix(10));
            }

            bg2ScrollPos = GUI.BeginScrollView(position1, bg2ScrollPos, viewRect);
            for (int index = 0; index < sortList.Count; ++index)
            {
                Rect position2 = new Rect(index % 4 * GetPix(45),
                                           index / 4 * GetPix(45),
                                           GetPix(44),
                                           GetPix(44));
                if (GUI.Button(position2, sortList[index].tex))
                {
                    string menu = sortList[index].menu;
                    byte[] f_byBuf = null;
                    using (AFileBase afileBase = GameUty.FileOpen(menu, null))
                    {
                        NDebug.Assert(afileBase.IsValid(), "メニューファイルが存在しません。 :" + menu);
                        if (f_byBuf == null || f_byBuf.Length < afileBase.GetSize())
                        {
                            f_byBuf = new byte[afileBase.GetSize()];
                        }

                        afileBase.Read(ref f_byBuf, afileBase.GetSize());
                    }

                    string[] filename2 = ProcScriptBin(maidArray[0], f_byBuf, menu, false);
                    GameObject gameObject = ImportCM2.LoadSkinMesh_R(filename2[0], filename2, "", maidArray[0].body0.goSlot[8], 1);
                    doguBObject.Add(gameObject);
                    gameObject.name = menu;
                    Vector3 zero1 = Vector3.zero;
                    Vector3 zero2 = Vector3.zero;
                    zero1.z = 0.4f;
                    gameObject.transform.localPosition = zero1;
                    gameObject.transform.localRotation = Quaternion.Euler(zero2);
                    doguCnt = doguBObject.Count - 1;
                    gDogu[doguCnt] = GameObject.CreatePrimitive(PrimitiveType.Cube);
                    gDogu[doguCnt].GetComponent<Renderer>().material = m_material;
                    gDogu[doguCnt].layer = 8;
                    gDogu[doguCnt].GetComponent<Renderer>().enabled = false;
                    gDogu[doguCnt].SetActive(false);
                    gDogu[doguCnt].transform.position = gameObject.transform.position;
                    mDogu[doguCnt] = gDogu[doguCnt].AddComponent<MouseDrag6>();
                    mDogu[doguCnt].isScale = false;
                    mDogu[doguCnt].obj = gDogu[doguCnt];
                    mDogu[doguCnt].maid = gameObject;
                    mDogu[doguCnt].angles = gameObject.transform.eulerAngles;
                    gDogu[doguCnt].transform.localScale = new Vector3(cubeSize, cubeSize, cubeSize);
                    mDogu[doguCnt].ido = 1;
                }

                GUI.DrawTexture(position2, sortList[index].tex);
            }

            GUI.EndScrollView();
            GUI.enabled = true;
            GUI.Label(new Rect(GetPix(3), GetPix(108), GetPix(100), GetPix(25)),
                      "服装",
                      style1);
            style1.fontSize = GetPix(9);
            GUI.Label(new Rect(GetPix(3), GetPix(119), GetPix(100), GetPix(25)),
                      "アクセサリ",
                      style1);
            style1.fontSize = GetPix(11);
            GUI.Label(new Rect(GetPix(3), GetPix(58), GetPix(100), GetPix(25)),
                      "アイテム",
                      style1);
            GUI.Label(new Rect(GetPix(3), GetPix(86), GetPix(100), GetPix(24)),
                      "背景(小)",
                      style1);
            if (kankyoCombo.isClickedComboButton || itemCombo2.isClickedComboButton || bgCombo2.isClickedComboButton)
            {
                GUI.enabled = false;
            }

            int num1 =
                    slotCombo.List(new Rect(GetPix(51),
                                             GetPix(111),
                                             GetPix(100),
                                             GetPix(23)),
                                   slotComboList[slotIndex].text,
                                   slotComboList,
                                   buttonStyle,
                                    "box",
                                   listStyle3);
            GUI.enabled = true;
            if (kankyoCombo.isClickedComboButton || itemCombo2.isClickedComboButton)
            {
                GUI.enabled = false;
            }

            bgIndexB =
                    bgCombo2.List(new Rect(GetPix(51),
                                            GetPix(83),
                                            GetPix(100),
                                            GetPix(23)),
                                  bgCombo2List[bgIndexB].text,
                                  bgCombo2List,
                                  buttonStyle,
                                   "box",
                                  listStyle3);
            if (GUI.Button(new Rect(GetPix(156), GetPix(83), GetPix(38), GetPix(23)),
                           "追加",
                           style2))
            {
                Object original = GameMain.Instance.BgMgr.CreateAssetBundle(bgArray[bgIndexB]);
                if (original == null)
                {
                    original = Resources.Load("BG/" + bgArray[bgIndexB]);
                }

                GameObject gameObject = Instantiate(original) as GameObject;
                doguBObject.Add(gameObject);
                gameObject.name = "BG_" + bgArray[bgIndexB];
                Vector3 zero1 = Vector3.zero;
                Vector3 zero2 = Vector3.zero;
                zero1.z = 0.4f;
                gameObject.transform.localScale = new Vector3(0.1f, 0.1f, 0.1f);
                gameObject.transform.localPosition = zero1;
                gameObject.transform.localRotation = Quaternion.Euler(zero2);
                doguCnt = doguBObject.Count - 1;
                gDogu[doguCnt] = GameObject.CreatePrimitive(PrimitiveType.Cube);
                gDogu[doguCnt].GetComponent<Renderer>().material = m_material;
                gDogu[doguCnt].layer = 8;
                gDogu[doguCnt].GetComponent<Renderer>().enabled = false;
                gDogu[doguCnt].SetActive(false);
                gDogu[doguCnt].transform.position = gameObject.transform.position;
                mDogu[doguCnt] = gDogu[doguCnt].AddComponent<MouseDrag6>();
                mDogu[doguCnt].isScale = false;
                mDogu[doguCnt].obj = gDogu[doguCnt];
                mDogu[doguCnt].maid = gameObject;
                mDogu[doguCnt].angles = gameObject.transform.eulerAngles;
                gDogu[doguCnt].transform.localScale = new Vector3(cubeSize, cubeSize, cubeSize);
                mDogu[doguCnt].ido = 1;
            }

            GUI.enabled = true;
            if (kankyoCombo.isClickedComboButton)
            {
                GUI.enabled = false;
            }

            itemIndexB =
                    itemCombo2.List(new Rect(GetPix(51),
                                              GetPix(55),
                                              GetPix(100),
                                              GetPix(23)),
                                    itemCombo2List[itemIndexB].text,
                                    itemCombo2List,
                                    buttonStyle,
                                     "box",
                                    listStyle3);
            if (GUI.Button(new Rect(GetPix(156), GetPix(55), GetPix(38), GetPix(23)),
                           "追加",
                           style2))
            {
                string str = itemBArray[itemIndexB].Split(',')[1];
                byte[] f_byBuf = null;
                using (AFileBase afileBase = GameUty.FileOpen(str, null))
                {
                    NDebug.Assert(afileBase.IsValid(), "メニューファイルが存在しません。 :" + str);
                    if (f_byBuf == null || f_byBuf.Length < afileBase.GetSize())
                    {
                        f_byBuf = new byte[afileBase.GetSize()];
                    }

                    afileBase.Read(ref f_byBuf, afileBase.GetSize());
                }

                string[] filename2 = ProcScriptBin(maidArray[0], f_byBuf, str, false);
                GameObject gameObject = ImportCM2.LoadSkinMesh_R(filename2[0], filename2, "", maidArray[0].body0.goSlot[8], 1);
                doguBObject.Add(gameObject);
                gameObject.name = str;
                Vector3 zero1 = Vector3.zero;
                Vector3 zero2 = Vector3.zero;
                zero1.z = 0.4f;
                switch (itemIndexB)
                {
                    case 0:
                        zero2.z = 90f;
                        zero1.y = 0.04f;
                        goto case 19;
                    case 1:
                        zero2.z = 90f;
                        goto case 19;
                    case 4:
                        zero2.x = 90f;
                        goto case 19;
                    case 19:
                    case 20:
                    case 21:
                    case 22:
                    case 23:
                        switch (gameObject.name)
                        {
                            case "HandItemL_Etoile_Saucer_I_.menu":
                            case "HandItemL_Karte_I_.menu":
                            case "HandItemL_Katuramuki_Daikon_I_.menu":
                            case "HandItemR_BeerBottle(cap_off)_I_.menu":
                            case "HandItemR_BeerBottle(cap_on)_I_.menu":
                            case "HandItemR_BeerGlass_I_.menu":
                            case "HandItemR_Etoile_Teacup_I_.menu":
                            case "HandItemR_Jyouro_I_.menu":
                            case "HandItemR_Ketchup_I_.menu":
                            case "HandItemR_Kobin_I_.menu":
                            case "HandItemR_MelonSoda_I_.menu":
                            case "HandItemR_MilkBottle(cap_off)_I_.menu":
                            case "HandItemR_MilkBottle(cap_on)_I_.menu":
                            case "HandItemR_Mugcup_I_.menu":
                            case "HandItemR_Natumikan_I_.menu":
                            case "HandItemR_Nei_Heartful_I_.menu":
                            case "HandItemR_Ochoko_I_.menu":
                            case "HandItemR_Shaker_I_.menu":
                            case "HandItemR_SmartPhone_I_.menu":
                            case "HandItemR_Suika_I_.menu":
                            case "HandItemR_Tomato_I_.menu":
                            case "HandItemR_TropicalGlass_I_.menu":
                            case "HandItemR_cocktail_blue_I_.menu":
                            case "HandItemR_cocktail_red_I_.menu":
                            case "HandItemR_cocktail_yellow_I_.menu":
                            case "HandItemR_smoothie_green_I_.menu":
                            case "HandItemR_smoothie_red_I_.menu":
                                zero2.x = 0.0f;
                                zero2.z = 90f;
                                break;
                            case "HandItemL_Karaoke_Mike_I_.menu":
                            case "HandItemR_Crops_Suika_I_.menu":
                            case "HandItemR_Curry_I_.menu":
                            case "HandItemR_DVD1_I_.menu":
                            case "HandItemR_DVD2_I_.menu":
                            case "HandItemR_DVD3_I_.menu":
                            case "HandItemR_DVD4_I_.menu":
                            case "HandItemR_DVD5_I_.menu":
                            case "HandItemR_Folk_I_.menu":
                            case "HandItemR_Hanabi_I_.menu":
                            case "HandItemR_Kushiyaki_I_.menu":
                            case "HandItemR_Ninjin_I_.menu":
                            case "HandItemR_Omurice1_I_.menu":
                            case "HandItemR_Omurice2_I_.menu":
                            case "HandItemR_Omurice3_I_.menu":
                            case "HandItemR_Pasta_I_.menu":
                            case "HandItemR_Satumaimo_I_.menu":
                            case "HandItemR_Scoop_I_.menu":
                            case "HandItemR_Senkouhanabi_I_.menu":
                            case "HandItemR_Shell_I_.menu":
                            case "HandItemR_Spoon_Curry_I_.menu":
                            case "HandItemR_Spoon_Omurice_I_.menu":
                            case "HandItemR_Tomorokoshi_I_.menu":
                            case "HandItemR_Tomorokoshi_yaki_I_.menu":
                            case "HandItemR_Uchiwa_I_.menu":
                                zero2.z = 90f;
                                break;
                        }

                        gameObject.transform.localPosition = zero1;
                        gameObject.transform.localRotation = Quaternion.Euler(zero2);
                        doguCnt = doguBObject.Count - 1;
                        gDogu[doguCnt] = GameObject.CreatePrimitive(PrimitiveType.Cube);
                        gDogu[doguCnt].GetComponent<Renderer>().material = m_material;
                        gDogu[doguCnt].layer = 8;
                        gDogu[doguCnt].GetComponent<Renderer>().enabled = false;
                        gDogu[doguCnt].SetActive(false);
                        gDogu[doguCnt].transform.position = gameObject.transform.position;
                        mDogu[doguCnt] = gDogu[doguCnt].AddComponent<MouseDrag6>();
                        mDogu[doguCnt].isScale = false;
                        mDogu[doguCnt].obj = gDogu[doguCnt];
                        mDogu[doguCnt].maid = gameObject;
                        mDogu[doguCnt].angles = gameObject.transform.eulerAngles;
                        gDogu[doguCnt].transform.localScale = new Vector3(cubeSize, cubeSize, cubeSize);
                        mDogu[doguCnt].ido = 1;
                        break;
                    case 25:
                        zero2.z = 90f;
                        goto case 19;
                    case 26:
                        zero2.z = 90f;
                        goto case 19;
                    case 27:
                        zero2.z = 90f;
                        goto case 19;
                    default:
                        zero2.x = -90f;
                        goto case 19;
                }
            }

            GUI.enabled = true;
            if (nameFlg)
            {
                inName2 = GUI.TextField(new Rect(GetPix(5),
                                                  GetPix(27),
                                                  GetPix(100),
                                                  GetPix(20)),
                                        inName2);
                if (GUI.Button(new Rect(GetPix(110),
                                         GetPix(27),
                                         GetPix(35),
                                         GetPix(20)),
                               "更新",
                               style2))
                {
                    nameFlg = false;
                    GameMain.Instance.SoundMgr.PlaySe("se002.ogg", false);
                    Preferences["kankyo"]["kankyo" + (kankyoCombo.selectedItemIndex + 1)].Value = inName2;
                    SaveConfig();
                    kankyoComboList = new GUIContent[kankyoMax];
                    for (int index = 0; index < kankyoMax; ++index)
                    {
                        IniKey iniKey = Preferences["kankyo"]["kankyo" + (index + 1)];
                        kankyoComboList[index] = new GUIContent(iniKey.Value);
                    }
                }
            }
            // else
            // {
            //     style2.alignment = TextAnchor.MiddleCenter;
            //     if (GUI.Button(new Rect(
            //         GetPix(4),
            //         GetPix(27),
            //         GetPix(120),
            //         GetPix(20)
            //     ), "Scene Manager", style2))
            //     {
            //         sceneFlg = false;
            //         poseFlg = false;
            //         faceFlg = false;
            //         sceneFlg = false;
            //         kankyoFlg = false;
            //         kankyoModeFlag = true;
            //         kankyo2Flg = true;

            //         RefreshSceneManager();

            //         if (!sceneManagerInitialize) InitializeSceneManager();
            //     }
            // }

            GUI.enabled = true;

            GUI.DragWindow();

            if (num1 == slotIndex)
            {
                return;
            }

            slotIndex = num1;
            sortList.Clear();
            bg2ScrollPos = new Vector2(0.0f, 0.0f);
            if (itemDataList.Count == 0)
            {
                foreach (string menuFile in GameUty.MenuFiles)
                {
                    string fileName = Path.GetFileName(menuFile);
                    byte[] f_byBuf = null;
                    using (AFileBase afileBase = GameUty.FileOpen(fileName, null))
                    {
                        NDebug.Assert(afileBase.IsValid(), "メニューファイルが存在しません。 :" + fileName);
                        if (f_byBuf == null || f_byBuf.Length < afileBase.GetSize())
                        {
                            f_byBuf = new byte[afileBase.GetSize()];
                        }

                        afileBase.Read(ref f_byBuf, afileBase.GetSize());
                    }

                    BinaryReader binaryReader = new BinaryReader(new MemoryStream(f_byBuf), Encoding.UTF8);
                    if (binaryReader.ReadString() != "CM3D2_MENU")
                    {
                        binaryReader.Close();
                    }
                    else
                    {
                        try
                        {
                            binaryReader.ReadInt32();
                            binaryReader.ReadString();
                            binaryReader.ReadString();
                            string str1 = binaryReader.ReadString();
                            string s = "";
                            binaryReader.ReadString();
                            binaryReader.ReadInt32();
                            string str2 = "";
                            do
                            {
                                int num2;
                                do
                                {
                                    num2 = binaryReader.ReadByte();
                                } while (num2 == 0);

                                for (int index = 0; index < num2; ++index)
                                {
                                    string str3 = binaryReader.ReadString();
                                    if (str3 == "icons" || str3 == "icon")
                                    {
                                        str2 = binaryReader.ReadString();
                                        break;
                                    }

                                    if (str3 == "priority")
                                    {
                                        s = binaryReader.ReadString();
                                        break;
                                    }
                                }
                            } while (str2 == "");

                            int.TryParse(s, out int result);
                            itemDataList.Add(new ItemData() { info = str1, name = str2, menu = fileName, order = result, cd = f_byBuf });
                        }
                        catch { }

                        binaryReader.Close();
                    }
                }
            }

            foreach (ItemData itemData in itemDataList)
            {
                if (slotIndex != 0 && itemData.info == slotArray[slotIndex] && itemData.order > 0)
                {
                    sortList.Add(new SortItem() { order = itemData.order, name = itemData.name, menu = itemData.menu, tex = itemData.tex });
                }
            }

            IOrderedEnumerable<SortItem> orderedEnumerable = sortList
                                                             .OrderBy(p => p.order)
                                                             .ThenBy(p => p.name);
            List<SortItem> sortItemList = new List<SortItem>();
            string str4 = "";
            foreach (SortItem sortItem in orderedEnumerable)
            {
                try
                {
                    if (!(sortItem.menu == str4))
                    {
                        if (sortItem.tex == null)
                        {
                            byte[] data = ImportCM.LoadTexture(GameUty.FileSystem, sortItem.name, false).data;
                            Texture2D texture2D = new Texture2D(50, 50, TextureFormat.RGB565, false);
                            texture2D.LoadImage(data);
                            sortItem.tex = texture2D;
                        }
                        str4 = sortItem.menu;
                        sortItemList.Add(sortItem);
                    }
                }
                catch { }
            }

            sortList = sortItemList;
        }

        private void BGSelectWindow(int winID)
        {
            GUIStyle guistyle = "label";
            guistyle.fontSize = GetPix(12);
            guistyle.alignment = TextAnchor.UpperLeft;
            GUIStyle guistyle2 = "label";
            guistyle2.fontSize = GetPix(11);
            guistyle2.alignment = TextAnchor.UpperLeft;
            GUIStyle guistyle3 = "button";
            guistyle3.fontSize = GetPix(20);
            GUIStyle guistyle4 = "button";
            guistyle4.fontSize = GetPix(14);
            guistyle4.alignment = TextAnchor.MiddleLeft;
            GUIStyle guistyle5 = "button";
            guistyle5.fontSize = GetPix(12);
            guistyle5.alignment = TextAnchor.MiddleLeft;
            GUIStyle guistyle6 = new GUIStyle("toggle")
            {
                fontSize = GetPix(13)
            };
            CharacterMgr characterMgr = GameMain.Instance.CharacterMgr;
            Maid maid = maidArray[selectMaidIndex];
            if (!kankyoInitFlg)
            {
                listStyle2.normal.textColor = Color.white;
                listStyle2.normal.background = MakeTex(2, 2, new Color(0f, 0f, 0f, 0.5f));
                listStyle2.onHover.background = listStyle2.hover.background = new Texture2D(2, 2);
                RectOffset padding = listStyle2.padding;
                RectOffset padding2 = listStyle2.padding;
                RectOffset padding3 = listStyle2.padding;
                int num = listStyle2.padding.bottom = GetPix(0);
                num = padding3.top = num;
                num = padding2.right = num;
                padding.left = num;
                listStyle2.fontSize = GetPix(11);
                listStyle3.normal.textColor = Color.white;
                listStyle3.normal.background = MakeTex(2, 2, new Color(0f, 0f, 0f, 0.5f));
                listStyle3.onHover.background = listStyle3.hover.background = new Texture2D(2, 2);
                RectOffset padding4 = listStyle3.padding;
                RectOffset padding5 = listStyle3.padding;
                num = listStyle3.padding.top = GetPix(0);
                num = padding5.right = num;
                padding4.left = num;
                listStyle3.padding.bottom = GetPix(0);
                listStyle3.fontSize = GetPix(12);
                bgmCombo.selectedItemIndex = bgmIndex;
                if (sceneLevel == 5)
                {
                    bgmCombo.selectedItemIndex = 2;
                }

                bgmComboList = bgmArray.Select(s => dancesDict.TryGetValue(s, out string name) ? name : s).Select(s => new GUIContent(s)).ToArray();

                bgCombo.selectedItemIndex = bgIndex;
                bgComboList = new GUIContent[bgArray.Length];
                for (int j = 0; j < bgArray.Length; j++)
                {
                    // Dicts merged during init
                    if (bgDict.TryGetValue(bgArray[j], out string name))
                    {
                        bgComboList[j] = new GUIContent(name);
                    }
                    else
                    {
                        bgComboList[j] = new GUIContent(bgArray[j]);
                    }
                }

                doguCombo.selectedItemIndex = 0;
                doguComboList = new GUIContent[doguBArray.Length];
                for (int j = 0; j < doguComboList.Length; j++)
                {
                    // Dicts merged during init
                    if (doguUiNames.TryGetValue(doguBArray[j], out string name))
                    {
                        doguComboList[j] = new GUIContent(name);
                    }
                    else
                    {
                        doguComboList[j] = new GUIContent(doguBArray[j]);
                    }
                }

                parCombo.selectedItemIndex = 0;
                parComboList = parArray.Select(s => parUiDict.TryGetValue(s, out string name) ? name : s).Select(s => new GUIContent(s)).ToArray();

                lightCombo.selectedItemIndex = 0;
                lightList = new List<GameObject>
                {
                    GameMain.Instance.MainLight.gameObject
                };
                lightComboList = new GUIContent[lightList.Count];
                for (int i = 0; i < lightList.Count; i++)
                {
                    if (i == 0)
                    {
                        lightComboList[i] = new GUIContent("メイン");
                    }
                    else
                    {
                        lightComboList[i] = new GUIContent("追加" + i);
                    }
                }

                kankyoInitFlg = true;
            }

            listStyle3.padding.top = GetPix(1);
            listStyle3.padding.bottom = GetPix(0);
            listStyle3.fontSize = GetPix(12);
            if (poseCombo.isClickedComboButton)
            {
                GUI.enabled = false;
            }

            if (poseGroupCombo.isClickedComboButton)
            {
                GUI.enabled = false;
            }

            if (sceneLevel == 3 || sceneLevel == 5 || isF6)
            {
                if (!isF6)
                {
                    bool value = true;
                    if (faceFlg || poseFlg || sceneFlg || kankyoFlg || kankyo2Flg)
                    {
                        value = false;
                    }

                    if (GUI.Toggle(new Rect(GetPix(2),
                                             GetPix(2),
                                             GetPix(39),
                                             GetPix(20)),
                                   value,
                                   "配置",
                                   guistyle6))
                    {
                        faceFlg = false;
                        poseFlg = false;
                        kankyoFlg = false;
                        kankyo2Flg = false;
                        bGui = true;
                    }
                }

                if (!yotogiFlg)
                {
                    if (GUI.Toggle(new Rect(GetPix(42),
                                             GetPix(2),
                                             GetPix(39),
                                             GetPix(20)),
                                   poseFlg,
                                   "操作",
                                   guistyle6))
                    {
                        poseFlg = true;
                        faceFlg = false;
                        kankyoFlg = false;
                        kankyo2Flg = false;
                    }
                }

                if (GUI.Toggle(new Rect(GetPix(82), GetPix(2), GetPix(39), GetPix(20)),
                               faceFlg,
                               "表情",
                               guistyle6))
                {
                    faceFlg = true;
                    poseFlg = false;
                    kankyoFlg = false;
                    kankyo2Flg = false;
                    if (!faceFlg2)
                    {
                        isFaceInit = true;
                        faceFlg2 = true;
                        maidArray[selectMaidIndex].boMabataki = false;
                        faceCombo.selectedItemIndex = faceIndex[selectMaidIndex];
                    }

                    isFaceInit = true;
                }

                if (GUI.Toggle(new Rect(GetPix(122), GetPix(2), GetPix(39), GetPix(20)),
                               kankyoFlg,
                               "環境",
                               guistyle6))
                {
                    poseFlg = false;
                    faceFlg = false;
                    kankyoFlg = true;
                    kankyo2Flg = false;
                }

                if (GUI.Toggle(new Rect(GetPix(162), GetPix(2), GetPix(39), GetPix(20)),
                               kankyo2Flg,
                               "環2",
                               guistyle6))
                {
                    poseFlg = false;
                    faceFlg = false;
                    kankyoFlg = false;
                    kankyo2Flg = true;
                }

                if (!line1)
                {
                    line1 = MakeTex(2, 2, new Color(0f, 0f, 0f, 0.3f));
                    line2 = MakeTex(2, 2, new Color(0.7f, 0.7f, 0.7f, 0.6f));
                }

                GUI.DrawTexture(new Rect(GetPix(5), GetPix(20), GetPix(200), 2f), line1);
                GUI.DrawTexture(new Rect(GetPix(5), GetPix(20), GetPix(200), 1f), line2);
            }

            if (isDanceStop)
            {
                isStop[selectMaidIndex] = true;
                isDanceStop = false;
            }

            yotogiFlg = false;
            if (sceneLevel == 14)
            {
                if (GameObject.Find("/UI Root/YotogiPlayPanel/CommandViewer/SkillViewer/MaskGroup/SkillGroup/CommandParent/CommandUnit"))
                {
                    yotogiFlg = true;
                }
            }

            if (!isF6)
            {
                if (GUI.Button(new Rect(GetPix(157),
                                         GetPix(32),
                                         GetPix(46),
                                         GetPix(35)),
                               "シーン\n 管 理",
                               guistyle3))
                {
                    sceneFlg = !sceneFlg;
                    faceFlg = false;
                    poseFlg = false;
                    kankyoFlg = true;
                    kankyo2Flg = false;
                    bGui = true;

                    if (!sceneManagerInitialize) InitializeSceneManager();
                }
            }

            if (doguCombo.isClickedComboButton || parCombo.isClickedComboButton || bgCombo.isClickedComboButton
                || bgmCombo.isClickedComboButton || lightCombo.isClickedComboButton)
            {
                GUI.enabled = false;
            }

            int num2 = -1;
            if (lightIndex[selectLightIndex] == 0)
            {
                isIdx1 = true;
            }

            if (lightIndex[selectLightIndex] == 1)
            {
                isIdx2 = true;
            }

            if (lightIndex[selectLightIndex] == 2)
            {
                isIdx3 = true;
            }

            if (lightIndex[selectLightIndex] == 3)
            {
                isIdx4 = true;
            }

            int offsetTop = GetPix(80);
            int UIHeight = GetPix(610);

            Rect BGWindowScrollRect = new Rect(0, offsetTop, rectWin.width, rectWin.height - offsetTop);
            Rect BGWindowScrollView = new Rect(0, offsetTop, rectWin.width - 20, UIHeight);

            bgScrollPos = GUI.BeginScrollView(BGWindowScrollRect, bgScrollPos, BGWindowScrollView);

            if (GUI.Toggle(new Rect(GetPix(5), GetPix(215), GetPix(45), GetPix(20)),
                           isIdx1,
                           "通常",
                           guistyle6))
            {
                if (lightIndex[selectLightIndex] != 0)
                {
                    isIdx1 = true;
                    isIdx2 = false;
                    isIdx3 = false;
                    isIdx4 = false;
                    num2 = 0;
                }
            }

            if (GUI.Toggle(new Rect(GetPix(50), GetPix(215), GetPix(45), GetPix(20)),
                           isIdx2,
                           "Spot",
                           guistyle6))
            {
                if (lightIndex[selectLightIndex] != 1)
                {
                    isIdx1 = false;
                    isIdx2 = true;
                    isIdx3 = false;
                    isIdx4 = false;
                    num2 = 1;
                }
            }

            if (GUI.Toggle(new Rect(GetPix(99), GetPix(215), GetPix(45), GetPix(20)),
                           isIdx3,
                           "Point",
                           guistyle6))
            {
                if (lightIndex[selectLightIndex] != 2)
                {
                    isIdx1 = false;
                    isIdx2 = false;
                    isIdx3 = true;
                    isIdx4 = false;
                    num2 = 2;
                }
            }

            if (selectLightIndex == 0)
            {
                if (GUI.Toggle(new Rect(GetPix(150),
                                         GetPix(215),
                                         GetPix(45),
                                         GetPix(20)),
                               isIdx4,
                               "単色",
                               guistyle6))
                {
                    if (lightIndex[selectLightIndex] != 3)
                    {
                        isIdx1 = false;
                        isIdx2 = false;
                        isIdx3 = false;
                        isIdx4 = true;
                        num2 = 3;
                    }
                }
            }
            else if (GUI.Toggle(new Rect(GetPix(150),
                                          GetPix(215),
                                          GetPix(45),
                                          GetPix(20)),
                                isIdx4,
                                "無効",
                                guistyle6))
            {
                if (lightIndex[selectLightIndex] != 3)
                {
                    isIdx1 = false;
                    isIdx2 = false;
                    isIdx3 = false;
                    isIdx4 = true;
                    num2 = 3;
                }
            }

            if (num2 >= 0)
            {
                lightIndex[selectLightIndex] = num2;
                if (selectLightIndex == 0)
                {
                    GameMain.Instance.MainLight.Reset();
                    GameMain.Instance.MainLight.SetIntensity(0.95f);
                    GameMain.Instance.MainLight.GetComponent<Light>().spotAngle = 50f;
                    GameMain.Instance.MainLight.GetComponent<Light>().range = 10f;
                    GameMain.Instance.MainLight.gameObject.transform.position = new Vector3(0f, 2f, 0f);
                    if (lightIndex[selectLightIndex] == 0)
                    {
                        GameMain.Instance.MainLight.GetComponent<Light>().type = LightType.Directional;
                        bgObject.SetActive(true);
                        mainCamera.GetComponent<Camera>().backgroundColor = new Color(0f, 0f, 0f);
                    }
                    else if (lightIndex[selectLightIndex] == 1)
                    {
                        GameMain.Instance.MainLight.transform.eulerAngles += Vector3.right * 40f;
                        GameMain.Instance.MainLight.GetComponent<Light>().type = LightType.Spot;
                        bgObject.SetActive(true);
                        mainCamera.GetComponent<Camera>().backgroundColor = new Color(0f, 0f, 0f);
                    }
                    else if (lightIndex[selectLightIndex] == 2)
                    {
                        GameMain.Instance.MainLight.GetComponent<Light>().type = LightType.Point;
                        bgObject.SetActive(true);
                        mainCamera.GetComponent<Camera>().backgroundColor = new Color(0f, 0f, 0f);
                    }
                    else if (lightIndex[selectLightIndex] == 3)
                    {
                        GameMain.Instance.MainLight.GetComponent<Light>().type = LightType.Directional;
                        mainCamera.GetComponent<Camera>().backgroundColor = new Color(lightColorR[0], lightColorG[0], lightColorB[0]);
                        bgObject.SetActive(false);
                    }
                }
                else
                {
                    lightList[selectLightIndex].SetActive(true);
                    if (lightIndex[selectLightIndex] == 0)
                    {
                        lightList[selectLightIndex].GetComponent<Light>().type = LightType.Directional;
                    }
                    else if (lightIndex[selectLightIndex] == 1)
                    {
                        lightList[selectLightIndex].transform.eulerAngles += Vector3.right * 40f;
                        lightList[selectLightIndex].GetComponent<Light>().type = LightType.Spot;
                    }
                    else if (lightIndex[selectLightIndex] == 2)
                    {
                        lightList[selectLightIndex].GetComponent<Light>().type = LightType.Point;
                    }
                    else if (lightIndex[selectLightIndex] == 3)
                    {
                        lightList[selectLightIndex].GetComponent<Light>().type = LightType.Directional;
                        lightList[selectLightIndex].SetActive(false);
                    }
                }

                lightColorR[selectLightIndex] = 1f;
                lightColorG[selectLightIndex] = 1f;
                lightColorB[selectLightIndex] = 1f;
                lightX[selectLightIndex] = 40f;
                lightY[selectLightIndex] = 180f;
                lightAkarusa[selectLightIndex] = 0.95f;
                lightKage[selectLightIndex] = 0.098f;
                lightRange[selectLightIndex] = 50f;
                if (lightIndex[selectLightIndex] == 1)
                {
                    lightX[selectLightIndex] = 90f;
                }
            }

            GUI.Label(new Rect(GetPix(10), GetPix(138), GetPix(100), GetPix(25)),
                      "キューブ表示",
                      guistyle2);
            guistyle6.fontSize = GetPix(12);
            isCube2 = GUI.Toggle(new Rect(GetPix(5),
                                           GetPix(153),
                                           GetPix(55),
                                           GetPix(20)),
                                 isCube2,
                                 "大道具(",
                                 guistyle6);
            if (!isF6)
            {
                isCube = GUI.Toggle(new Rect(GetPix(102),
                                              GetPix(153),
                                              GetPix(54),
                                              GetPix(20)),
                                    isCube,
                                    "メイド",
                                    guistyle6);
            }

            bool flag = GUI.Toggle(new Rect(GetPix(160),
                                             GetPix(153),
                                             GetPix(44),
                                             GetPix(20)),
                                   isCube3,
                                   "背景",
                                   guistyle6);
            guistyle6.fontSize = GetPix(13);
            bool flag2 = GUI.Toggle(new Rect(GetPix(61),
                                              GetPix(153),
                                              GetPix(38),
                                              GetPix(20)),
                                    isCubeS,
                                    "小)",
                                    guistyle6);
            if (isCubeS != flag2)
            {
                isCubeS = flag2;
                if (isCubeS)
                {
                    cubeSize = 0.05f;
                }
                else
                {
                    cubeSize = 0.12f;
                }

                for (int i = 0; i < doguBObject.Count; i++)
                {
                    gDogu[i].transform.localScale = new Vector3(cubeSize, cubeSize, cubeSize);
                }
            }

            if (isCube3 != flag)
            {
                isCube3 = flag;
                if (gBg == null)
                {
                    gBg = GameObject.CreatePrimitive(PrimitiveType.Cube);
                    gBg.GetComponent<Renderer>().material = m_material;
                    gBg.layer = 8;
                    gBg.GetComponent<Renderer>().enabled = false;
                    gBg.SetActive(false);
                    gBg.transform.position = bgObject.transform.position;
                    mBg = gBg.AddComponent<MouseDrag6>();
                    mBg.obj = gBg;
                    mBg.maid = bgObject;
                    mBg.angles = bg.eulerAngles;
                    gBg.transform.localScale = new Vector3(0.12f, 0.12f, 0.12f);
                    mBg.ido = 1;
                    mBg.isScale = false;
                }

                if (isCube3)
                {
                    gBg.SetActive(true);
                }
                else
                {
                    gBg.SetActive(false);
                }
            }

            int num3 = 0;
            if (lightIndex[selectLightIndex] == 0 || lightIndex[selectLightIndex] == 1
                                                  || (selectLightIndex == 0 && lightIndex[selectLightIndex] == 3))
            {
                GUI.Label(new Rect(GetPix(10), GetPix(237), GetPix(100), GetPix(25)),
                          "向きX",
                          guistyle2);
                lightX[selectLightIndex] =
                        GUI.HorizontalSlider(new Rect(GetPix(8),
                                                       GetPix(251),
                                                       GetPix(192),
                                                       GetPix(20)),
                                             lightX[selectLightIndex],
                                             220f,
                                             -140f);
                GUI.Label(new Rect(GetPix(10), GetPix(261), GetPix(100), GetPix(25)),
                          "向きY",
                          guistyle2);
                lightY[selectLightIndex] =
                        GUI.HorizontalSlider(new Rect(GetPix(8),
                                                       GetPix(275),
                                                       GetPix(192),
                                                       GetPix(20)),
                                             lightY[selectLightIndex],
                                             0f,
                                             360f);
            }
            else
            {
                num3 = 50;
            }

            if (lightIndex[selectLightIndex] != 3 || selectLightIndex <= 0)
            {
                GUI.Label(new Rect(GetPix(10),
                                    GetPix(285 - num3),
                                    GetPix(100),
                                    GetPix(25)),
                          "明るさ",
                          guistyle2);
                lightAkarusa[selectLightIndex] =
                        GUI.HorizontalSlider(new Rect(GetPix(8),
                                                       GetPix(299 - num3),
                                                       GetPix(192),
                                                       GetPix(20)),
                                             lightAkarusa[selectLightIndex],
                                             0f,
                                             1.9f);
                if (lightIndex[selectLightIndex] == 0 || lightIndex[selectLightIndex] == 3)
                {
                    if (selectLightIndex == 0)
                    {
                        GUI.Label(new Rect(GetPix(10),
                                            GetPix(309 - num3),
                                            GetPix(100),
                                            GetPix(25)),
                                  "影",
                                  guistyle2);
                        lightKage[selectLightIndex] =
                                GUI.HorizontalSlider(new Rect(GetPix(8),
                                                               GetPix(323 - num3),
                                                               GetPix(192),
                                                               GetPix(20)),
                                                     lightKage[selectLightIndex],
                                                     0f,
                                                     1f);
                    }
                    else
                    {
                        num3 = 25;
                    }
                }
                else if (lightIndex[selectLightIndex] == 1 || lightIndex[selectLightIndex] == 2)
                {
                    GUI.Label(new Rect(GetPix(10),
                                        GetPix(311 - num3),
                                        GetPix(100),
                                        GetPix(25)),
                              "範囲",
                              guistyle2);
                    lightRange[selectLightIndex] =
                            GUI.HorizontalSlider(new Rect(GetPix(8),
                                                           GetPix(325 - num3),
                                                           GetPix(192),
                                                           GetPix(20)),
                                                 lightRange[selectLightIndex],
                                                 0f,
                                                 150f);
                }
                else
                {
                    num3 = 75;
                }

                GUI.Label(new Rect(GetPix(10),
                                    GetPix(333 - num3),
                                    GetPix(100),
                                    GetPix(25)),
                          "赤",
                          guistyle2);
                lightColorR[selectLightIndex] =
                        GUI.HorizontalSlider(new Rect(GetPix(8),
                                                       GetPix(347 - num3),
                                                       GetPix(92),
                                                       GetPix(20)),
                                             lightColorR[selectLightIndex],
                                             0f,
                                             1f);
                GUI.Label(new Rect(GetPix(108),
                                    GetPix(333 - num3),
                                    GetPix(100),
                                    GetPix(25)),
                          "緑",
                          guistyle2);
                lightColorG[selectLightIndex] =
                        GUI.HorizontalSlider(new Rect(GetPix(108),
                                                       GetPix(347 - num3),
                                                       GetPix(92),
                                                       GetPix(20)),
                                             lightColorG[selectLightIndex],
                                             0f,
                                             1f);
                GUI.Label(new Rect(GetPix(10),
                                    GetPix(357 - num3),
                                    GetPix(100),
                                    GetPix(25)),
                          "青",
                          guistyle2);
                lightColorB[selectLightIndex] =
                        GUI.HorizontalSlider(new Rect(GetPix(8),
                                                       GetPix(371 - num3),
                                                       GetPix(92),
                                                       GetPix(20)),
                                             lightColorB[selectLightIndex],
                                             0f,
                                             1f);
            }

            if (GUI.Toggle(new Rect(GetPix(5), GetPix(391), GetPix(67), GetPix(20)),
                           isBloomS,
                           "ブルーム",
                           guistyle6))
            {
                isBloomS = true;
                isDepthS = false;
                isBlurS = false;
                isFogS = false;
            }

            if (isBloomS)
            {
                isBloom = GUI.Toggle(new Rect(GetPix(8),
                                               GetPix(412),
                                               GetPix(40),
                                               GetPix(20)),
                                     isBloom,
                                     "有効",
                                     guistyle6);
                if (!isBloom)
                {
                    GUI.enabled = false;
                }

                GUI.Label(new Rect(GetPix(10), GetPix(430), GetPix(100), GetPix(25)),
                          "強さ",
                          guistyle2);
                bloom1 = GUI.HorizontalSlider(new Rect(GetPix(8),
                                                        GetPix(445),
                                                        GetPix(92),
                                                        GetPix(20)),
                                              bloom1,
                                              0f,
                                              5.7f);
                GUI.Label(new Rect(GetPix(110), GetPix(430), GetPix(100), GetPix(25)),
                          "広さ",
                          guistyle2);
                bloom2 = GUI.HorizontalSlider(new Rect(GetPix(108),
                                                        GetPix(445),
                                                        GetPix(92),
                                                        GetPix(20)),
                                              bloom2,
                                              0f,
                                              15f);
                GUI.Label(new Rect(GetPix(10), GetPix(455), GetPix(100), GetPix(25)),
                          "赤",
                          guistyle2);
                bloom3 = GUI.HorizontalSlider(new Rect(GetPix(8),
                                                        GetPix(470),
                                                        GetPix(92),
                                                        GetPix(20)),
                                              bloom3,
                                              0f,
                                              0.5f);
                GUI.Label(new Rect(GetPix(110), GetPix(455), GetPix(100), GetPix(25)),
                          "緑",
                          guistyle2);
                bloom4 = GUI.HorizontalSlider(new Rect(GetPix(108),
                                                        GetPix(470),
                                                        GetPix(92),
                                                        GetPix(20)),
                                              bloom4,
                                              0f,
                                              0.5f);
                GUI.Label(new Rect(GetPix(10), GetPix(480), GetPix(100), GetPix(25)),
                          "青",
                          guistyle2);
                bloom5 = GUI.HorizontalSlider(new Rect(GetPix(8),
                                                        GetPix(495),
                                                        GetPix(92),
                                                        GetPix(20)),
                                              bloom5,
                                              0f,
                                              0.5f);
                isBloomA = GUI.Toggle(new Rect(GetPix(110),
                                                GetPix(491),
                                                GetPix(50),
                                                GetPix(20)),
                                      isBloomA,
                                      "HDR",
                                      guistyle6);
                if (!doguCombo.isClickedComboButton && !parCombo.isClickedComboButton && !bgCombo.isClickedComboButton
                    && !bgmCombo.isClickedComboButton)
                {
                    GUI.enabled = true;
                }
            }

            if (GUI.Toggle(new Rect(GetPix(73), GetPix(391), GetPix(40), GetPix(20)),
                           isDepthS,
                           "深度",
                           guistyle6))
            {
                isBloomS = false;
                isDepthS = true;
                isBlurS = false;
                isFogS = false;
            }

            if (isDepthS)
            {
                isDepth = GUI.Toggle(new Rect(GetPix(8),
                                               GetPix(412),
                                               GetPix(40),
                                               GetPix(20)),
                                     isDepth,
                                     "有効",
                                     guistyle6);
                if (!isDepth)
                {
                    GUI.enabled = false;
                }

                GUI.Label(new Rect(GetPix(10), GetPix(430), GetPix(100), GetPix(25)),
                          "焦点距離",
                          guistyle2);
                depth1 = GUI.HorizontalSlider(new Rect(GetPix(8),
                                                        GetPix(445),
                                                        GetPix(192),
                                                        GetPix(20)),
                                              depth1,
                                              0f,
                                              10f);
                GUI.Label(new Rect(GetPix(10), GetPix(455), GetPix(100), GetPix(25)),
                          "焦点領域サイズ",
                          guistyle2);
                depth2 = GUI.HorizontalSlider(new Rect(GetPix(8),
                                                        GetPix(470),
                                                        GetPix(92),
                                                        GetPix(20)),
                                              depth2,
                                              0f,
                                              2f);
                GUI.Label(new Rect(GetPix(110), GetPix(455), GetPix(100), GetPix(25)),
                          "カメラ絞り",
                          guistyle2);
                depth3 = GUI.HorizontalSlider(new Rect(GetPix(108),
                                                        GetPix(470),
                                                        GetPix(92),
                                                        GetPix(20)),
                                              depth3,
                                              0f,
                                              60f);
                GUI.Label(new Rect(GetPix(10), GetPix(480), GetPix(100), GetPix(25)),
                          "ブレ",
                          guistyle2);
                depth4 = GUI.HorizontalSlider(new Rect(GetPix(8),
                                                        GetPix(495),
                                                        GetPix(92),
                                                        GetPix(20)),
                                              depth4,
                                              0f,
                                              10f);
                isDepthA = GUI.Toggle(new Rect(GetPix(110),
                                                GetPix(491),
                                                GetPix(100),
                                                GetPix(20)),
                                      isDepthA,
                                      "深度表示",
                                      guistyle6);
                if (!doguCombo.isClickedComboButton && !parCombo.isClickedComboButton && !bgCombo.isClickedComboButton
                    && !bgmCombo.isClickedComboButton)
                {
                    GUI.enabled = true;
                }
            }

            if (GUI.Toggle(new Rect(GetPix(114), GetPix(391), GetPix(40), GetPix(20)),
                           isBlurS,
                           "光学",
                           guistyle6))
            {
                isBloomS = false;
                isDepthS = false;
                isBlurS = true;
                isFogS = false;
            }

            if (isBlurS)
            {
                isBlur = GUI.Toggle(new Rect(GetPix(8),
                                              GetPix(412),
                                              GetPix(40),
                                              GetPix(20)),
                                    isBlur,
                                    "有効",
                                    guistyle6);
                if (!isBlur)
                {
                    GUI.enabled = false;
                }

                GUI.Label(new Rect(GetPix(10), GetPix(430), GetPix(100), GetPix(25)),
                          "強さ",
                          guistyle2);
                blur1 = GUI.HorizontalSlider(new Rect(GetPix(8),
                                                       GetPix(445),
                                                       GetPix(92),
                                                       GetPix(20)),
                                             blur1,
                                             -40f,
                                             70f);
                GUI.Label(new Rect(GetPix(108), GetPix(430), GetPix(100), GetPix(25)),
                          "ブラー",
                          guistyle2);
                blur2 = GUI.HorizontalSlider(new Rect(GetPix(108),
                                                       GetPix(445),
                                                       GetPix(92),
                                                       GetPix(20)),
                                             blur2,
                                             0f,
                                             5f);
                GUI.Label(new Rect(GetPix(10), GetPix(455), GetPix(100), GetPix(25)),
                          "ブレ",
                          guistyle2);
                blur3 = GUI.HorizontalSlider(new Rect(GetPix(8),
                                                       GetPix(470),
                                                       GetPix(92),
                                                       GetPix(20)),
                                             blur3,
                                             0f,
                                             40f);
                GUI.Label(new Rect(GetPix(108), GetPix(455), GetPix(100), GetPix(25)),
                          "色収差",
                          guistyle2);
                blur4 = GUI.HorizontalSlider(new Rect(GetPix(108),
                                                       GetPix(470),
                                                       GetPix(92),
                                                       GetPix(20)),
                                             blur4,
                                             -30f,
                                             30f);
                if (!doguCombo.isClickedComboButton && !parCombo.isClickedComboButton && !bgCombo.isClickedComboButton
                    && !bgmCombo.isClickedComboButton)
                {
                    GUI.enabled = true;
                }
            }

            if (GUI.Toggle(new Rect(GetPix(155), GetPix(391), GetPix(60), GetPix(20)),
                           isFogS,
                           "フォグ",
                           guistyle6))
            {
                isBloomS = false;
                isDepthS = false;
                isBlurS = false;
                isFogS = true;
            }

            if (isFogS)
            {
                isFog = GUI.Toggle(new Rect(GetPix(8),
                                             GetPix(412),
                                             GetPix(40),
                                             GetPix(20)),
                                   isFog,
                                   "有効",
                                   guistyle6);
                if (!isFog)
                {
                    GUI.enabled = false;
                }

                GUI.Label(new Rect(GetPix(110), GetPix(406), GetPix(100), GetPix(24)),
                          "発生距離",
                          guistyle2);
                fog1 = GUI.HorizontalSlider(new Rect(GetPix(108),
                                                      GetPix(420),
                                                      GetPix(92),
                                                      GetPix(20)),
                                            fog1,
                                            0f,
                                            30f);
                GUI.Label(new Rect(GetPix(10), GetPix(430), GetPix(100), GetPix(25)),
                          "密度",
                          guistyle2);
                fog2 = GUI.HorizontalSlider(new Rect(GetPix(8),
                                                      GetPix(445),
                                                      GetPix(92),
                                                      GetPix(20)),
                                            fog2,
                                            0f,
                                            10f);
                GUI.Label(new Rect(GetPix(110), GetPix(430), GetPix(100), GetPix(25)),
                          "強度",
                          guistyle2);
                fog3 = GUI.HorizontalSlider(new Rect(GetPix(108),
                                                      GetPix(445),
                                                      GetPix(92),
                                                      GetPix(20)),
                                            fog3,
                                            -5f,
                                            20f);
                GUI.Label(new Rect(GetPix(10), GetPix(455), GetPix(100), GetPix(25)),
                          "高さ",
                          guistyle2);
                fog4 = GUI.HorizontalSlider(new Rect(GetPix(8),
                                                      GetPix(470),
                                                      GetPix(92),
                                                      GetPix(20)),
                                            fog4,
                                            -10f,
                                            10f);
                GUI.Label(new Rect(GetPix(110), GetPix(455), GetPix(100), GetPix(25)),
                          "赤",
                          guistyle2);
                fog5 = GUI.HorizontalSlider(new Rect(GetPix(108),
                                                      GetPix(470),
                                                      GetPix(92),
                                                      GetPix(20)),
                                            fog5,
                                            0f,
                                            1f);
                GUI.Label(new Rect(GetPix(10), GetPix(480), GetPix(100), GetPix(25)),
                          "緑",
                          guistyle2);
                fog6 = GUI.HorizontalSlider(new Rect(GetPix(8),
                                                      GetPix(495),
                                                      GetPix(92),
                                                      GetPix(20)),
                                            fog6,
                                            0f,
                                            1f);
                GUI.Label(new Rect(GetPix(110), GetPix(480), GetPix(100), GetPix(25)),
                          "青",
                          guistyle2);
                fog7 = GUI.HorizontalSlider(new Rect(GetPix(108),
                                                      GetPix(495),
                                                      GetPix(92),
                                                      GetPix(20)),
                                            fog7,
                                            0f,
                                            1f);
                if (!doguCombo.isClickedComboButton && !parCombo.isClickedComboButton && !bgCombo.isClickedComboButton
                    && !bgmCombo.isClickedComboButton)
                {
                    GUI.enabled = true;
                }
            }

            isSepian = GUI.Toggle(new Rect(GetPix(5),
                                            GetPix(515),
                                            GetPix(80),
                                            GetPix(20)),
                                  isSepian,
                                  "セピア",
                                  guistyle6);
            GUI.Label(new Rect(GetPix(108), GetPix(512), GetPix(100), GetPix(25)),
                      "ぼかし",
                      guistyle2);
            bokashi = GUI.HorizontalSlider(new Rect(GetPix(108),
                                                     GetPix(527),
                                                     GetPix(92),
                                                     GetPix(20)),
                                           bokashi,
                                           0f,
                                           18f);
            if (GUI.Toggle(new Rect(GetPix(5), GetPix(545), GetPix(80), GetPix(20)),
                           isHairSetting,
                           "髪の設定",
                           guistyle6))
            {
                isHairSetting = true;
                isSkirtSetting = false;
            }

            if (isHairSetting)
            {
                bool flag3 = GUI.Toggle(new Rect(GetPix(5),
                                                  GetPix(566),
                                                  GetPix(40),
                                                  GetPix(20)),
                                        isKamiyure,
                                        "有効",
                                        guistyle6);
                if (isKamiyure != flag3)
                {
                    isKamiyure = flag3;
                    if (isKamiyure)
                    {
                        Preferences["config"]["hair_setting"].Value = "true";
                        Preferences["config"]["hair_radius"].Value = kamiyure4.ToString();
                        Preferences["config"]["hair_elasticity"].Value = kamiyure3.ToString();
                        Preferences["config"]["hair_damping"].Value = kamiyure2.ToString();
                        SaveConfig();
                    }
                    else
                    {
                        Preferences["config"]["hair_setting"].Value = "false";
                        SaveConfig();
                        for (int j = 0; j < maidCnt; j++)
                        {
                            for (int k = 0; k < maidArray[j].body0.goSlot.Count; k++)
                            {
                                if (k >= 3 && k <= 6)
                                {
                                    if (maidArray[j].body0.goSlot[k].obj != null)
                                    {
                                        DynamicBone component = maidArray[j].body0.goSlot[k].obj.GetComponent<DynamicBone>();
                                        if (component != null)
                                        {
                                            component.m_Damping = 0.6f;
                                            component.m_Elasticity = 1f;
                                            if (k == 5)
                                            {
                                                component.m_Elasticity = 0.05f;
                                            }

                                            component.m_Radius = 0.02f;
                                            component.UpdateParameters();
                                        }
                                    }
                                }
                            }
                        }
                    }
                }

                if (!isKamiyure)
                {
                    GUI.enabled = false;
                }

                GUI.Label(new Rect(GetPix(108), GetPix(565), GetPix(100), GetPix(25)),
                          "当たり判定半径",
                          guistyle2);
                float num4 = GUI.HorizontalSlider(new Rect(GetPix(108),
                                                            GetPix(579),
                                                            GetPix(92),
                                                            GetPix(20)),
                                                  kamiyure4,
                                                  0f,
                                                  0.04f);
                if (kamiyure4 != num4)
                {
                    kamiyure4 = num4;
                    Preferences["config"]["hair_radius"].Value = kamiyure4.ToString();
                    SaveConfig();
                }

                GUI.Label(new Rect(GetPix(108), GetPix(590), GetPix(100), GetPix(25)),
                          "減衰率",
                          guistyle2);
                float num5 = GUI.HorizontalSlider(new Rect(GetPix(108),
                                                            GetPix(604),
                                                            GetPix(92),
                                                            GetPix(20)),
                                                  kamiyure2,
                                                  0.2f,
                                                  1f);
                if (kamiyure2 != num5)
                {
                    kamiyure2 = num5;
                    Preferences["config"]["hair_damping"].Value = kamiyure2.ToString();
                    SaveConfig();
                }

                GUI.Label(new Rect(GetPix(10), GetPix(590), GetPix(100), GetPix(25)),
                          "復元率",
                          guistyle2);
                float num6 = GUI.HorizontalSlider(new Rect(GetPix(8),
                                                            GetPix(604),
                                                            GetPix(92),
                                                            GetPix(20)),
                                                  kamiyure3,
                                                  0f,
                                                  2f);
                if (kamiyure3 != num6)
                {
                    kamiyure3 = num6;
                    Preferences["config"]["hair_elasticity"].Value = kamiyure3.ToString();
                    SaveConfig();
                }

                GUI.enabled = true;
            }

            if (GUI.Toggle(new Rect(GetPix(105), GetPix(545), GetPix(100), GetPix(20)),
                           isSkirtSetting,
                           "スカート設定",
                           guistyle6))
            {
                isHairSetting = false;
                isSkirtSetting = true;
            }

            if (isSkirtSetting)
            {
                bool flag4 = GUI.Toggle(new Rect(GetPix(5),
                                                  GetPix(566),
                                                  GetPix(40),
                                                  GetPix(20)),
                                        isSkirtyure,
                                        "有効",
                                        guistyle6);
                if (isSkirtyure != flag4)
                {
                    isSkirtyure = flag4;
                    if (isSkirtyure)
                    {
                        Preferences["config"]["skirt_setting"].Value = "true";
                        Preferences["config"]["skirt_radius"].Value = skirtyure4.ToString();
                        Preferences["config"]["skirt_elasticity"].Value = skirtyure3.ToString();
                        Preferences["config"]["skirt_damping"].Value = skirtyure2.ToString();
                        SaveConfig();
                    }
                    else
                    {
                        Preferences["config"]["skirt_setting"].Value = "false";
                        SaveConfig();
                        for (int j = 0; j < maidCnt; j++)
                        {
                            for (int k = 0; k < maidArray[j].body0.goSlot.Count; k++)
                            {
                                if (maidArray[j].body0.goSlot[k].obj != null)
                                {
                                    DynamicSkirtBone fieldValue =
                                            GetFieldValue<BoneHair3, DynamicSkirtBone>(maidArray[j].body0.goSlot[k].bonehair3,
                                                                                       "m_SkirtBone");
                                    if (fieldValue != null)
                                    {
                                        fieldValue.m_fPanierForce = 0.05f;
                                        fieldValue.m_fPanierForceDistanceThreshold = 0.1f;
                                        fieldValue.m_fRegDefaultRadius = 0.1f;
                                    }
                                }
                            }
                        }
                    }
                }

                if (!isSkirtyure)
                {
                    GUI.enabled = false;
                }

                GUI.Label(new Rect(GetPix(108), GetPix(565), GetPix(100), GetPix(25)),
                          "足側カプセル半径",
                          guistyle2);
                float num4 = GUI.HorizontalSlider(new Rect(GetPix(108),
                                                            GetPix(579),
                                                            GetPix(92),
                                                            GetPix(20)),
                                                  skirtyure4,
                                                  0f,
                                                  0.2f);
                if (skirtyure4 != num4)
                {
                    skirtyure4 = num4;
                    Preferences["config"]["skirt_radius"].Value = skirtyure4.ToString();
                    SaveConfig();
                }

                GUI.Label(new Rect(GetPix(108), GetPix(590), GetPix(100), GetPix(25)),
                          "足との距離パニエ力",
                          guistyle2);
                float num5 = GUI.HorizontalSlider(new Rect(GetPix(108),
                                                            GetPix(604),
                                                            GetPix(92),
                                                            GetPix(20)),
                                                  skirtyure2,
                                                  0f,
                                                  0.2f);
                if (skirtyure2 != num5)
                {
                    skirtyure2 = num5;
                    Preferences["config"]["skirt_damping"].Value = skirtyure2.ToString();
                    SaveConfig();
                }

                GUI.Label(new Rect(GetPix(10), GetPix(590), GetPix(100), GetPix(25)),
                          "パニエ力",
                          guistyle2);
                float num6 = GUI.HorizontalSlider(new Rect(GetPix(8),
                                                            GetPix(604),
                                                            GetPix(92),
                                                            GetPix(20)),
                                                  skirtyure3,
                                                  0f,
                                                  0.1f);
                if (skirtyure3 != num6)
                {
                    skirtyure3 = num6;
                    Preferences["config"]["skirt_elasticity"].Value = skirtyure3.ToString();
                    SaveConfig();
                }

                GUI.enabled = true;
            }

            GUI.enabled = true;
            GUI.DrawTexture(new Rect(GetPix(5), GetPix(389), GetPix(195), 2f), line1);
            GUI.DrawTexture(new Rect(GetPix(5), GetPix(389), GetPix(195), 1f), line2);
            if (doguCombo.isClickedComboButton || parCombo.isClickedComboButton || bgCombo.isClickedComboButton
                || bgmCombo.isClickedComboButton)
            {
                GUI.enabled = false;
            }

            GUI.DrawTexture(new Rect(GetPix(5), GetPix(176), GetPix(195), 2f), line1);
            GUI.DrawTexture(new Rect(GetPix(5), GetPix(176), GetPix(195), 1f), line2);
            GUI.Label(new Rect(GetPix(8), GetPix(187), GetPix(100), GetPix(25)),
                      "照明",
                      guistyle2);
            listStyle3.padding.top = GetPix(3);
            listStyle3.padding.bottom = GetPix(2);
            listStyle3.fontSize = GetPix(13);
            int num7 = lightCombo.List(new Rect(GetPix(34),
                                                 GetPix(185),
                                                 GetPix(78),
                                                 GetPix(23)),
                                       lightComboList[selectLightIndex].text,
                                       lightComboList,
                                       guistyle4,
                                       "box",
                                       listStyle3);
            if (num7 != selectLightIndex)
            {
                selectLightIndex = num7;
                isIdx1 = false;
                isIdx2 = false;
                isIdx3 = false;
                isIdx4 = false;
            }

            if (GUI.Button(new Rect(GetPix(115), GetPix(185), GetPix(35), GetPix(23)),
                           "追加",
                           guistyle3))
            {
                GameObject gameObject = new GameObject("Light");
                gameObject.AddComponent<Light>();
                lightList.Add(gameObject);
                lightColorR.Add(1f);
                lightColorG.Add(1f);
                lightColorB.Add(1f);
                lightIndex.Add(0);
                lightX.Add(40f);
                lightY.Add(180f);
                lightAkarusa.Add(0.95f);
                lightKage.Add(0.098f);
                lightRange.Add(50f);
                gameObject.transform.position = GameMain.Instance.MainLight.transform.position;
                selectLightIndex = lightList.Count - 1;
                lightComboList = new GUIContent[lightList.Count];
                for (int i = 0; i < lightList.Count; i++)
                {
                    if (i == 0)
                    {
                        lightComboList[i] = new GUIContent("メイン");
                    }
                    else
                    {
                        lightComboList[i] = new GUIContent("追加" + i);
                    }
                }

                lightCombo.selectedItemIndex = selectLightIndex;
                gameObject.GetComponent<Light>().intensity = 0.95f;
                gameObject.GetComponent<Light>().spotAngle = 50f;
                gameObject.GetComponent<Light>().range = 10f;
                gameObject.GetComponent<Light>().type = LightType.Directional;
                gameObject.GetComponent<Light>().color = new Color(0.5f, 1f, 0f);
                if (gLight[selectLightIndex] == null)
                {
                    gLight[selectLightIndex] = GameObject.CreatePrimitive(PrimitiveType.Cube);
                    Material material = new Material(Shader.Find("Transparent/Diffuse"))
                    {
                        color = new Color(0.5f, 0.5f, 1f, 0.8f)
                    };
                    gLight[selectLightIndex].GetComponent<Renderer>().material = material;
                    gLight[selectLightIndex].layer = 8;
                    gLight[selectLightIndex].GetComponent<Renderer>().enabled = false;
                    gLight[selectLightIndex].SetActive(false);
                    gLight[selectLightIndex].transform.position = gameObject.transform.position;
                    mLight[selectLightIndex] = gLight[selectLightIndex].AddComponent<MouseDrag6>();
                    mLight[selectLightIndex].obj = gLight[selectLightIndex];
                    mLight[selectLightIndex].maid = gameObject.gameObject;
                    mLight[selectLightIndex].angles = gameObject.gameObject.transform.eulerAngles;
                    gLight[selectLightIndex].transform.localScale = new Vector3(0.12f, 0.12f, 0.12f);
                    mLight[selectLightIndex].ido = 1;
                    mLight[selectLightIndex].isScale = false;
                }
            }

            if (GUI.Button(new Rect(GetPix(153), GetPix(185), GetPix(23), GetPix(23)),
                           "R",
                           guistyle3))
            {
                for (int i = 1; i < lightList.Count; i++)
                {
                    Destroy(lightList[i]);
                }

                lightIndex = new List<int>
                {
                    0
                };
                lightColorR = new List<float>
                {
                    1f
                };
                lightColorG = new List<float>
                {
                    1f
                };
                lightColorB = new List<float>
                {
                    1f
                };
                lightX = new List<float>
                {
                    40f
                };
                lightY = new List<float>
                {
                    180f
                };
                lightAkarusa = new List<float>
                {
                    0.95f
                };
                lightKage = new List<float>
                {
                    0.098f
                };
                lightRange = new List<float>
                {
                    50f
                };
                lightCombo.selectedItemIndex = 0;
                lightList = new List<GameObject>
                {
                    GameMain.Instance.MainLight.gameObject
                };
                lightComboList = new GUIContent[lightList.Count];
                for (int i = 0; i < lightList.Count; i++)
                {
                    if (i == 0)
                    {
                        lightComboList[i] = new GUIContent("メイン");
                    }
                    else
                    {
                        lightComboList[i] = new GUIContent("追加" + i);
                    }
                }

                selectLightIndex = 0;
                GameMain.Instance.MainLight.Reset();
                GameMain.Instance.MainLight.SetIntensity(0.95f);
                GameMain.Instance.MainLight.GetComponent<Light>().spotAngle = 50f;
                GameMain.Instance.MainLight.GetComponent<Light>().range = 10f;
                GameMain.Instance.MainLight.gameObject.transform.position = new Vector3(0f, 2f, 0f);
                GameMain.Instance.MainLight.GetComponent<Light>().type = LightType.Directional;
                bgObject.SetActive(true);
                mainCamera.GetComponent<Camera>().backgroundColor = new Color(0f, 0f, 0f);
                isIdx1 = false;
                isIdx2 = false;
                isIdx3 = false;
                isIdx4 = false;
            }

            GUI.enabled = true;
            if (doguCombo.isClickedComboButton || bgCombo.isClickedComboButton || bgmCombo.isClickedComboButton)
            {
                GUI.enabled = false;
            }

            listStyle3.padding.top = GetPix(0);
            listStyle3.padding.bottom = GetPix(0);
            listStyle3.fontSize = GetPix(12);
            GUI.Label(new Rect(GetPix(8), GetPix(116), GetPix(150), GetPix(25)),
                      "大道具2",
                      guistyle2);
            parIndex = parCombo.List(new Rect(GetPix(51),
                                               GetPix(113),
                                               GetPix(100),
                                               GetPix(23)),
                                     parComboList[parIndex].text,
                                     parComboList,
                                     guistyle4,
                                     "box",
                                     listStyle3);
            if (GUI.Button(new Rect(GetPix(156), GetPix(113), GetPix(38), GetPix(23)),
                           "追加",
                           guistyle3))
            {
                GameObject gameObject2 = null;
                bool flag5 = false;
                bool flag6 = false;
                if (parArray[parIndex].Contains("#"))
                {
                    string[] array3 = parArray[parIndex].Split(new char[] { '#' });
                    gameObject2 = GameMain.Instance.BgMgr.CreateAssetBundle(array3[1]);
                    if (gameObject2 != null)
                    {
                        gameObject2 = Instantiate(gameObject2);
                        MeshRenderer[] componentsInChildren = gameObject2.GetComponentsInChildren<MeshRenderer>();
                        for (int k = 0; k < componentsInChildren.Length; k++)
                        {
                            if (componentsInChildren[k] != null)
                            {
                                componentsInChildren[k].shadowCastingMode = ShadowCastingMode.Off;
                            }
                        }
                    }

                    flag5 = true;
                    if (!parArray[parIndex].Contains("Odogu_"))
                    {
                        flag6 = true;
                    }

                    doguBObject.Add(gameObject2);
                }
                else if (!parArray[parIndex].StartsWith("mirror") && parArray[parIndex].IndexOf(":") < 0)
                {
                    Object @object = Resources.Load("Prefab/" + parArray[parIndex]);
                    gameObject2 = Instantiate(@object) as GameObject;
                    doguBObject.Add(gameObject2);
                }
                else if (parArray[parIndex].StartsWith("mirror"))
                {
                    Material material2 = new Material(Shader.Find("Mirror"));
                    GameObject gameObject3 = GameObject.CreatePrimitive(PrimitiveType.Plane);
                    gameObject3.GetComponent<Renderer>().material = material2;
                    gameObject3.AddComponent<MirrorReflection2>();
                    MirrorReflection2 component2 = gameObject3.GetComponent<MirrorReflection2>();
                    component2.m_TextureSize = 2048;
                    component2.m_ClipPlaneOffset = 0.07f;
                    gameObject3.GetComponent<Renderer>().enabled = true;
                    gameObject2 = gameObject3;
                    doguBObject.Add(gameObject2);
                }
                else
                {
                    string[] array3 = parArray[parIndex].Split(new char[] { ':' });
                    Object @object = GameMain.Instance.BgMgr.CreateAssetBundle(array3[0]);
                    if (@object == null)
                    {
                        @object = Resources.Load("BG/" + array3[0]);
                    }

                    GameObject gameObject4 = Instantiate(@object) as GameObject;
                    int num8 = 0;
                    int.TryParse(array3[1], out int num9);
                    foreach (object obj in gameObject4.transform)
                    {
                        Transform transform = (Transform)obj;
                        if (num9 == num8)
                        {
                            gameObject2 = transform.gameObject;
                            break;
                        }

                        num8++;
                    }

                    doguBObject.Add(gameObject2);
                    gameObject2.transform.parent = null;
                    Destroy(gameObject4);
                    gameObject4.SetActive(false);
                }

                gameObject2.name = parArray[parIndex];
                Vector3 zero = Vector3.zero;
                Vector3 zero2 = Vector3.zero;
                switch (parIndex)
                {
                    case 0:
                        zero.z = -0.6f;
                        zero.y = 0.96f;
                        zero2.z = 180f;
                        zero2.x = -90f;
                        gameObject2.transform.localScale = new Vector3(0.2f, 0.4f, 0.2f);
                        break;
                    case 1:
                        zero.z = -0.6f;
                        zero.y = 0.96f;
                        zero2.z = 180f;
                        zero2.x = -90f;
                        gameObject2.transform.localScale = new Vector3(0.1f, 0.4f, 0.2f);
                        break;
                    case 2:
                        zero.z = -0.6f;
                        zero.y = 0.85f;
                        zero2.z = 180f;
                        zero2.x = -90f;
                        gameObject2.transform.localScale = new Vector3(0.03f, 0.18f, 0.124f);
                        break;
                    case 3:
                    case 4:
                    case 5:
                    case 6:
                    case 7:
                    case 8:
                    case 9:
                    case 10:
                    case 11:
                    case 12:
                    case 13:
                    case 14:
                    case 15:
                    case 16:
                    case 17:
                        zero.z = 0.5f;
                        zero2.x = -90f;
                        break;
                }

                if (flag5)
                {
                    zero.z = 0.4f;
                    if (flag6)
                    {
                        zero2.x = -90f;
                    }
                }

                if (gameObject2.name == "Salon_Entrance:3" || gameObject2.name == "Salon_Entrance:4"
                                                           || gameObject2.name == "Salon_Entrance:1"
                                                           || gameObject2.name == "Salon_Entrance:2"
                                                           || gameObject2.name == "Salon_Entrance:0" || gameObject2.name == "Shitsumu:23"
                                                           || gameObject2.name == "Shitsumu_Night:23")
                {
                    zero.z = 0.5f;
                    zero2.x = -90f;
                }

                if (gameObject2.name == "Pool:26")
                {
                    zero.z = 0.5f;
                    zero2.x = -90f;
                    zero2.z = 90f;
                    zero.y = 0.15f;
                }

                if (gameObject2.name == "Particle/pstarY_act2")
                {
                    zero2.y = 90f;
                }

                gameObject2.transform.localPosition = zero;
                gameObject2.transform.localRotation = Quaternion.Euler(zero2);
                doguCnt = doguBObject.Count - 1;
                gDogu[doguCnt] = GameObject.CreatePrimitive(PrimitiveType.Cube);
                gDogu[doguCnt].GetComponent<Renderer>().material = m_material;
                gDogu[doguCnt].layer = 8;
                gDogu[doguCnt].GetComponent<Renderer>().enabled = false;
                gDogu[doguCnt].SetActive(false);
                gDogu[doguCnt].transform.position = gameObject2.transform.position;
                mDogu[doguCnt] = gDogu[doguCnt].AddComponent<MouseDrag6>();
                mDogu[doguCnt].obj = gDogu[doguCnt];
                mDogu[doguCnt].maid = gameObject2;
                mDogu[doguCnt].angles = gameObject2.transform.eulerAngles;
                gDogu[doguCnt].transform.localScale = new Vector3(cubeSize, cubeSize, cubeSize);
                mDogu[doguCnt].ido = 1;
                mDogu[doguCnt].isScale = false;
                if (gameObject2.name == "Particle/pLineY")
                {
                    mDogu[doguCnt].count = 180;
                    gameObject2.transform.localScale = new Vector3(3f, 3f, 3f);
                }

                if (gameObject2.name == "Particle/pLineP02")
                {
                    mDogu[doguCnt].count = 115;
                    gameObject2.transform.localScale = new Vector3(3f, 3f, 3f);
                }

                if (gameObject2.name == "Particle/pLine_act2")
                {
                    mDogu[doguCnt].count = 90;
                    gameObject2.transform.localScale = new Vector3(3f, 3f, 3f);
                }

                if (gameObject2.name == "Particle/pHeart01")
                {
                    mDogu[doguCnt].count = 77;
                }

                if (parIndex < 3)
                {
                    mDogu[doguCnt].isScale = true;
                    mDogu[doguCnt].isScale2 = true;
                    mDogu[doguCnt].scale2 = gameObject2.transform.localScale;
                    if (parIndex == 0)
                    {
                        mDogu[doguCnt].scale = new Vector3(gameObject2.transform.localScale.x * 5f,
                                                           gameObject2.transform.localScale.y * 5f,
                                                           gameObject2.transform.localScale.z * 5f);
                    }

                    if (parIndex == 1)
                    {
                        mDogu[doguCnt].scale = new Vector3(gameObject2.transform.localScale.x * 10f,
                                                           gameObject2.transform.localScale.y * 10f,
                                                           gameObject2.transform.localScale.z * 10f);
                    }

                    if (parIndex == 2)
                    {
                        mDogu[doguCnt].scale = new Vector3(gameObject2.transform.localScale.x * 33f,
                                                           gameObject2.transform.localScale.y * 33f,
                                                           gameObject2.transform.localScale.z * 33f);
                    }
                }

                if (gameObject2.GetComponent<Collider>() != null)
                {
                    gameObject2.GetComponent<Collider>().enabled = false;
                }
            }

            GUI.enabled = true;
            if (bgCombo.isClickedComboButton || bgmCombo.isClickedComboButton)
            {
                GUI.enabled = false;
            }

            GUI.Label(new Rect(GetPix(8), GetPix(88), GetPix(100), GetPix(25)),
                      "大道具1",
                      guistyle2);
            doguBIndex =
                    doguCombo.List(new Rect(GetPix(51),
                                             GetPix(85),
                                             GetPix(100),
                                             GetPix(23)),
                                   doguComboList[doguBIndex].text,
                                   doguComboList,
                                   guistyle4,
                                   "box",
                                   listStyle3);
            if (GUI.Button(new Rect(GetPix(156), GetPix(85), GetPix(38), GetPix(23)),
                           "追加",
                           guistyle3))
            {
                GameObject gameObject2 = null;
                if (doguDict.TryGetValue(doguBArray[doguBIndex], out PhotoBGObjectData objResult))
                {
                    if (!string.IsNullOrEmpty(objResult.create_prefab_name))
                    {
                        Object tmpObj = Resources.Load("Prefab/" + objResult.create_prefab_name);
                        if (tmpObj == null)
                        {
                            gameObject2 = null;
                        }
                        else
                        {
                            gameObject2 = Instantiate(tmpObj) as GameObject;
                        }
                    }
                    else if (!string.IsNullOrEmpty(objResult.create_asset_bundle_name))
                    {
                        GameObject gameObject3 = GameMain.Instance.BgMgr.CreateAssetBundle(objResult.create_asset_bundle_name);
                        if (gameObject3 == null)
                        {
                            gameObject2 = null;
                        }
                        else
                        {
                            gameObject2 = Instantiate(gameObject3);
                        }
                    }
                    else if (!string.IsNullOrEmpty(objResult.direct_file))
                    {
                        BasePhotoCustomObject basePhotoCustomObject =
                                BasePhotoCustomObject.InstantiateFromFile(transform.gameObject, objResult.direct_file);
                        gameObject2 = basePhotoCustomObject.gameObject;
                    }

                    if (gameObject2 != null)
                    {
                        doguBObject.Add(gameObject2);
                    }
                }
                else if (!doguBArray[doguBIndex].StartsWith("mirror"))
                {
                    Object @object;
                    if (doguBArray[doguBIndex].StartsWith("BG"))
                    {
                        string text2 = doguBArray[doguBIndex].Replace("BG", "");
                        @object = GameMain.Instance.BgMgr.CreateAssetBundle(text2);
                        if (@object == null)
                        {
                            @object = Resources.Load("BG/" + text2);
                        }
                    }
                    else
                    {
                        @object = Resources.Load("Prefab/" + doguBArray[doguBIndex]);
                    }

                    gameObject2 = Instantiate(@object) as GameObject;
                    doguBObject.Add(gameObject2);
                }
                else
                {
                    Material material2 = new Material(Shader.Find("Mirror"));
                    GameObject gameObject3 = GameObject.CreatePrimitive(PrimitiveType.Plane);
                    gameObject3.transform.localScale = new Vector3(0.3f, 1f, 0.3f);
                    gameObject3.GetComponent<Renderer>().material = material2;
                    gameObject3.AddComponent<MirrorReflection2>();
                    MirrorReflection2 component2 = gameObject3.GetComponent<MirrorReflection2>();
                    component2.m_TextureSize = 2048;
                    component2.m_ClipPlaneOffset = 0f;
                    gameObject3.GetComponent<Renderer>().enabled = true;
                    gameObject2 = gameObject3;
                    doguBObject.Add(gameObject2);
                }

                gameObject2.name = doguBArray[doguBIndex];
                Vector3 zero = Vector3.zero;
                Vector3 zero2 = Vector3.zero;
                string text = gameObject2.name;
                switch (text)
                {
                    case "Odogu_XmasTreeMini_photo_ver":
                        zero.z = 0.6f;
                        gameObject2.transform.localScale = new Vector3(4.5f, 4.5f, 4.5f);
                        foreach (object obj2 in gameObject2.transform)
                        {
                            Transform transform2 = (Transform)obj2;
                            if (transform2.GetComponent<Collider>() != null)
                            {
                                transform2.GetComponent<Collider>().enabled = false;
                            }
                        }

                        goto IL_A0BF;
                    case "Odogu_KadomatsuMini_photo_ver":
                        zero.z = 0.6f;
                        gameObject2.transform.localScale = new Vector3(3.5f, 3.5f, 3.5f);
                        foreach (object obj3 in gameObject2.transform)
                        {
                            Transform transform2 = (Transform)obj3;
                            if (transform2.GetComponent<Collider>() != null)
                            {
                                transform2.GetComponent<Collider>().enabled = false;
                            }
                        }

                        goto IL_A0BF;
                    case "Odogu_ClassRoomDesk":
                        zero.z = 0.5f;
                        zero2.x = -90f;
                        goto IL_A0BF;
                    case "Odogu_SimpleTable":
                        zero.z = 0.5f;
                        zero2.x = -90f;
                        goto IL_A0BF;
                    case "Odogu_DildoBox":
                        zero.z = 0.5f;
                        zero2.x = -90f;
                        goto IL_A0BF;
                    case "PlayAreaOut":
                        zero.z = 0.5f;
                        zero.y = 0.2f;
                        goto IL_A0BF;
                    case "Odogu_Dresser_photo_ver":
                        GameObject.Find("Prim.00000000").GetComponent<Collider>().enabled = false;
                        GameObject.Find("Prim.00000001").GetComponent<Collider>().enabled = false;
                        GameObject.Find("Prim.00000002").GetComponent<Collider>().enabled = false;
                        GameObject.Find("Prim.00000004").GetComponent<Collider>().enabled = false;
                        goto IL_A0BF;
                    case "BGodogu_bbqgrill":
                    case "BGodogu_bucket":
                    case "BGodogu_coolerbox":
                    case "BGodogu_game_darts":
                    case "BGodogu_game_dartsboard":
                    case "BGodogu_nabe_huta":
                    case "BGodogu_nabe_water":
                    case "BGodogu_natumikan":
                    case "BGodogu_rb_chair":
                    case "BGodogu_rb_duck":
                    case "BGodogu_rb_obon":
                    case "BGodogu_rb_tokkuri":
                    case "BGodogu_saracorn":
                    case "BGodogu_saraimo":
                    case "BGodogu_saratomato":
                    case "BGodogu_sunanoshiro":
                    case "BGodogu_sunanoyama":
                    case "BGodogu_tsutsuhanabi":
                    case "BGodogu_ukiwa":
                    case "BGodogu_vf_crops_corn":
                    case "BGodogu_vf_crops_gekkabijin":
                    case "BGodogu_vf_crops_gekkabijinflower":
                    case "BGodogu_vf_crops_himawari":
                    case "BGodogu_vf_crops_natsumikan":
                    case "BGodogu_vf_crops_suika":
                    case "BGodogu_vf_crops_zakuro":
                    case "BGodogu_villa_table":
                    case "BGodogu_villa_tvrimocon":
                    case "BGodogu_villabr_sideboard":
                    case "BGOdogu_Game_Nei_USB":
                    case "BGOdogu_Game_Wanage":
                    case "BGOdogu_Game_Wa":
                    case "BGodogu_pafe":
                    case "BGodogu_furaidopoteto":
                    case "BGodogu_karaoketable":
                    case "BGodogu_omuriceh":
                    case "BGodogu_omuricekao1":
                    case "BGodogu_omuricekao2":
                    case "BGodogu_omuriceoppai":
                    case "BGodogu_kakigori":
                    case "BGodogu_pretzel_sara":
                    case "BGodogu_karaoke_box":
                    case "Odogu_StandMike":
                    case "Odogu_StandMikeBase":
                    case "Odogu_HeroineChair_muku":
                    case "Odogu_HeroineChair_mazime":
                    case "Odogu_HeroineChair_rindere":
                    case "Odogu_HeroineChair_tsumdere":
                    case "Odogu_HeroineChair_cooldere":
                    case "Odogu_HeroineChair_junshin":
                    case "Odogu_TabletPC":
                    case "Odogu_Styluspen_black":
                    case "Odogu_Styluspen_white":
                    case "Odogu_Styluspen_red":
                    case "Odogu_Styluspen_blue":
                    case "Odogu_Styluspen_yellow":
                    case "Odogu_Styluspen_green":
                    case "Odogu_Omurice1":
                    case "Odogu_Omurice3":
                    case "Odogu_OmuriceH":
                    case "Odogu_OmuriceKao1":
                    case "Odogu_OmuriceKao2":
                    case "Odogu_OmuriceOppai":
                    case "Odogu_AcquaPazza":
                    case "Odogu_Sandwich":
                    case "Odogu_vichyssoise":
                    case "Odogu_BirthdayCake":
                    case "Odogu_Shortcake":
                    case "Odogu_MontBlanc":
                    case "Odogu_Pafe":
                    case "Odogu_Smoothie_Red":
                    case "Odogu_Smoothie_Green":
                    case "Odogu_Cocktail_Red":
                    case "Odogu_Cocktail_Blue":
                    case "Odogu_Cocktail_Yellow":
                    case "Odogu_Coffiecup":
                    case "Odogu_WineBottle(cap_off)":
                    case "Odogu_WineBottle(cap_on)":
                    case "Odogu_Jyouro":
                    case "Odogu_Planter_Red":
                    case "Odogu_Planter_Lightblue":
                    case "Odogu_MariGold":
                    case "Odogu_CasinoChip_10":
                    case "Odogu_CasinoChip_100":
                    case "Odogu_CasinoChip_1000":
                    case "Odogu_CardShooter":
                    case "Odogu_CardsDeck":
                    case "Odogu_Card_s1":
                    case "Odogu_Card_s2":
                    case "Odogu_Card_s3":
                    case "Odogu_Card_s4":
                    case "Odogu_Card_s5":
                    case "Odogu_Card_s6":
                    case "Odogu_Card_s7":
                    case "Odogu_Card_s8":
                    case "Odogu_Card_s9":
                    case "Odogu_Card_s10":
                    case "Odogu_Card_s11":
                    case "Odogu_Card_s12":
                    case "Odogu_Card_s13":
                    case "Odogu_Card_h1":
                    case "Odogu_Card_h2":
                    case "Odogu_Card_h3":
                    case "Odogu_Card_h4":
                    case "Odogu_Card_h5":
                    case "Odogu_Card_h6":
                    case "Odogu_Card_h7":
                    case "Odogu_Card_h8":
                    case "Odogu_Card_h9":
                    case "Odogu_Card_h10":
                    case "Odogu_Card_h11":
                    case "Odogu_Card_h12":
                    case "Odogu_Card_h13":
                    case "Odogu_Card_d1":
                    case "Odogu_Card_d2":
                    case "Odogu_Card_d3":
                    case "Odogu_Card_d4":
                    case "Odogu_Card_d5":
                    case "Odogu_Card_d6":
                    case "Odogu_Card_d7":
                    case "Odogu_Card_d8":
                    case "Odogu_Card_d9":
                    case "Odogu_Card_d10":
                    case "Odogu_Card_d11":
                    case "Odogu_Card_d12":
                    case "Odogu_Card_d13":
                    case "Odogu_Card_c1":
                    case "Odogu_Card_c2":
                    case "Odogu_Card_c3":
                    case "Odogu_Card_c4":
                    case "Odogu_Card_c5":
                    case "Odogu_Card_c6":
                    case "Odogu_Card_c7":
                    case "Odogu_Card_c8":
                    case "Odogu_Card_c9":
                    case "Odogu_Card_c10":
                    case "Odogu_Card_c11":
                    case "Odogu_Card_c12":
                    case "Odogu_Card_c13":
                    case "Odogu_Card_joker":
                        zero.z = 0.5f;
                        zero2.x = -90f;
                        goto IL_A0BF;
                }

                zero.z = 0.5f;
                if (gameObject2.name.StartsWith("Odogu_"))
                {
                    foreach (object obj4 in gameObject2.transform)
                    {
                        Transform transform2 = (Transform)obj4;
                        if (transform2.GetComponent<Collider>() != null)
                        {
                            transform2.GetComponent<Collider>().enabled = false;
                        }
                    }
                }
                else if (gameObject2.GetComponent<Collider>() != null)
                {
                    gameObject2.GetComponent<Collider>().enabled = false;
                }

            IL_A0BF:
                gameObject2.transform.localPosition = zero;
                gameObject2.transform.localRotation = Quaternion.Euler(zero2);
                doguCnt = doguBObject.Count - 1;
                gDogu[doguCnt] = GameObject.CreatePrimitive(PrimitiveType.Cube);
                gDogu[doguCnt].GetComponent<Renderer>().material = m_material;
                gDogu[doguCnt].layer = 8;
                gDogu[doguCnt].GetComponent<Renderer>().enabled = false;
                gDogu[doguCnt].SetActive(false);
                gDogu[doguCnt].transform.position = gameObject2.transform.position;
                mDogu[doguCnt] = gDogu[doguCnt].AddComponent<MouseDrag6>();
                mDogu[doguCnt].isScale = false;
                mDogu[doguCnt].obj = gDogu[doguCnt];
                mDogu[doguCnt].maid = gameObject2;
                mDogu[doguCnt].angles = gameObject2.transform.eulerAngles;
                gDogu[doguCnt].transform.localScale = new Vector3(cubeSize, cubeSize, cubeSize);
                mDogu[doguCnt].ido = 1;
                if (doguBIndex == 6 || doguBIndex == 7)
                {
                    mDogu[doguCnt].isScale2 = true;
                    mDogu[doguCnt].scale2 = gameObject2.transform.localScale;
                }
            }

            GUI.EndScrollView();
            GUI.enabled = true;
            if (bgmCombo.isClickedComboButton)
            {
                GUI.enabled = false;
            }

            listStyle3.padding.top = GetPix(1);
            listStyle3.padding.bottom = GetPix(0);
            listStyle3.fontSize = GetPix(12);
            int num10 = bgCombo.List(new Rect(GetPix(31),
                                               GetPix(53),
                                               GetPix(95),
                                               GetPix(23)),
                                     bgComboList[bgIndex].text,
                                     bgComboList,
                                     guistyle4,
                                     "box",
                                     listStyle3);
            if (GUI.Button(new Rect(GetPix(5), GetPix(53), GetPix(23), GetPix(23)),
                           "＜",
                           guistyle3))
            {
                num10--;
                if (num10 <= -1)
                {
                    num10 = bgArray.Length - 1;
                }
            }

            if (GUI.Button(new Rect(GetPix(129), GetPix(53), GetPix(23), GetPix(23)),
                           "＞",
                           guistyle3))
            {
                num10++;
                if (num10 == bgArray.Length)
                {
                    num10 = 0;
                }
            }

            if (bgIndex != num10)
            {
                bgIndex = num10;
                bg.localScale = new Vector3(1f, 1f, 1f);
                if (bgArray[bgIndex].Length == 36)
                {
                    GameMain.Instance.BgMgr.ChangeBgMyRoom(bgArray[bgIndex]);
                }
                else
                {
                    GameMain.Instance.BgMgr.ChangeBg(bgArray[bgIndex]);
                }

                bgCombo.selectedItemIndex = bgIndex;
                if (bgArray[bgIndex] == "karaokeroom")
                {
                    bg.transform.position = bgObject.transform.position;
                    Vector3 zero = Vector3.zero;
                    Vector3 zero2 = Vector3.zero;
                    zero2.y = 90f;
                    zero.z = 4f;
                    zero.x = 1f;
                    bg.transform.localPosition = zero;
                    bg.transform.localRotation = Quaternion.Euler(zero2);
                }
            }

            GUI.enabled = true;
            int num11 = bgmCombo.List(new Rect(GetPix(31),
                                                GetPix(25),
                                                GetPix(95),
                                                GetPix(23)),
                                      bgmComboList[bgmIndex].text,
                                      bgmComboList,
                                      guistyle4,
                                      "box",
                                      listStyle3);
            if (GUI.Button(new Rect(GetPix(5), GetPix(25), GetPix(23), GetPix(23)),
                           "＜",
                           guistyle3))
            {
                num11--;
                if (num11 <= -1)
                {
                    num11 = bgmArray.Length - 1;
                }
            }

            if (GUI.Button(new Rect(GetPix(129), GetPix(25), GetPix(23), GetPix(23)),
                           "＞",
                           guistyle3))
            {
                num11++;
                if (num11 == bgmArray.Length)
                {
                    num11 = 0;
                }
            }

            if (bgmIndex != num11)
            {
                bgmIndex = num11;
                GameMain.Instance.SoundMgr.PlayBGM(bgmArray[bgmIndex] + ".ogg", 0f, true);
                bgmCombo.selectedItemIndex = bgmIndex;
            }

            GUI.DragWindow();

            if (bgmCombo.isClickedComboButton)
            {
                GUI.enabled = false;
            }
        }


        private void PoseWindow(int winID)
        {
            GUIStyle style1 = "label";
            style1.fontSize = GetPix(12);
            style1.alignment = TextAnchor.UpperLeft;
            GUIStyle style2 = "label";
            style2.fontSize = GetPix(11);
            style2.alignment = TextAnchor.UpperLeft;
            GUIStyle style3 = "button";
            style3.fontSize = GetPix(20);
            GUIStyle buttonStyle1 = "button";
            buttonStyle1.fontSize = GetPix(14);
            buttonStyle1.alignment = TextAnchor.MiddleLeft;
            GUIStyle buttonStyle2 = "button";
            buttonStyle2.fontSize = GetPix(12);
            buttonStyle2.alignment = TextAnchor.MiddleLeft;
            GUIStyle style4 = new GUIStyle("toggle")
            {
                fontSize = GetPix(13)
            };
            CharacterMgr characterMgr = GameMain.Instance.CharacterMgr;
            Maid maid = maidArray[selectMaidIndex];
            if (!poseInitFlg)
            {
                listStyle2.normal.textColor = Color.white;
                listStyle2.normal.background = MakeTex(2, 2, new Color(0.0f, 0.0f, 0.0f, 0.5f));
                listStyle2.onHover.background = listStyle2.hover.background = new Texture2D(2, 2);
                listStyle2.padding.left = listStyle2.padding.right = listStyle2.padding.top = listStyle2.padding.bottom = GetPix(0);
                listStyle2.fontSize = GetPix(12);
                listStyle3.normal.textColor = Color.white;
                listStyle3.normal.background = MakeTex(2, 2, new Color(0.0f, 0.0f, 0.0f, 0.5f));
                listStyle3.onHover.background = listStyle3.hover.background = new Texture2D(2, 2);
                listStyle3.padding.left = listStyle3.padding.right = listStyle3.padding.top = GetPix(1);
                listStyle3.padding.bottom = GetPix(0);
                listStyle3.fontSize = GetPix(12);
                listStyle4.normal.textColor = Color.white;
                listStyle4.normal.background = MakeTex(2, 2, new Color(0.0f, 0.0f, 0.0f, 0.5f));
                listStyle4.onHover.background = listStyle4.hover.background = new Texture2D(2, 2);
                listStyle4.padding.left = listStyle4.padding.right = listStyle4.padding.top = 3;
                listStyle4.padding.bottom = 3;
                listStyle4.fontSize = GetPix(13);
                poseCombo.selectedItemIndex = 0;
                int group = (int)groupList[0];
                poseComboList = new GUIContent[group];
                for (int index = 0; index < group; ++index)
                {
                    poseComboList[index] = new GUIContent((index + 1).ToString() + ":" + poseArray[index]);
                }

                poseGroupCombo.selectedItemIndex = 0;
                poseGroupComboList = new GUIContent[poseGroupArray.Length + 1];
                poseGroupComboList[0] = new GUIContent("1:通常");
                for (int index = 0; index < poseGroupArray.Length; ++index)
                {
                    if (poseGroupArray[index] == "maid_dressroom01")
                    {
                        poseGroupComboList[index + 1] = new GUIContent((index + 2).ToString() + ":立ち");
                    }

                    if (poseGroupArray[index] == "tennis_kamae_f")
                    {
                        poseGroupComboList[index + 1] = new GUIContent((index + 2).ToString() + ":中腰");
                    }

                    if (poseGroupArray[index] == "senakanagasi_f")
                    {
                        poseGroupComboList[index + 1] = new GUIContent((index + 2).ToString() + ":膝をつく");
                    }

                    if (poseGroupArray[index] == "work_hansei")
                    {
                        poseGroupComboList[index + 1] = new GUIContent((index + 2).ToString() + ":座り");
                    }

                    if (poseGroupArray[index] == "inu_taiki_f")
                    {
                        poseGroupComboList[index + 1] = new GUIContent((index + 2).ToString() + ":四つん這い");
                    }

                    if (poseGroupArray[index] == "syagami_pose_f")
                    {
                        poseGroupComboList[index + 1] = new GUIContent((index + 2).ToString() + ":床座り");
                    }

                    if (poseGroupArray[index] == "densyasuwari_taiki_f")
                    {
                        poseGroupComboList[index + 1] = new GUIContent((index + 2).ToString() + ":椅子座り");
                    }

                    if (poseGroupArray[index] == "work_kaiwa")
                    {
                        poseGroupComboList[index + 1] = new GUIContent((index + 2).ToString() + ":ソファー座り");
                    }

                    if (poseGroupArray[index] == "dance_cm3d2_001_f1,14.14")
                    {
                        poseGroupComboList[index + 1] = new GUIContent((index + 2).ToString() + ":ドキドキ☆Fallin' Love");
                    }

                    if (poseGroupArray[index] == "dance_cm3d_001_f1,39.25")
                    {
                        poseGroupComboList[index + 1] = new GUIContent((index + 2).ToString() + ":entrance to you");
                    }

                    if (poseGroupArray[index] == "dance_cm3d_002_end_f1,50.71")
                    {
                        poseGroupComboList[index + 1] = new GUIContent((index + 2).ToString() + ":scarlet leap");
                    }

                    if (poseGroupArray[index] == "dance_cm3d2_002_smt_f,7.76,")
                    {
                        poseGroupComboList[index + 1] = new GUIContent((index + 2).ToString() + ":stellar my tears");
                    }

                    if (poseGroupArray[index] == "dance_cm3d_003_sp2_f1,90.15")
                    {
                        poseGroupComboList[index + 1] = new GUIContent((index + 2).ToString() + ":rhythmix to you");
                    }

                    if (poseGroupArray[index] == "dance_cm3d2_003_hs_f1,0.01,")
                    {
                        poseGroupComboList[index + 1] = new GUIContent((index + 2).ToString() + ":happy!happy!スキャンダル!!");
                    }

                    if (poseGroupArray[index] == "dance_cm3d_004_kano_f1,124.93")
                    {
                        poseGroupComboList[index + 1] = new GUIContent((index + 2).ToString() + ":Can Know Two Close");
                    }

                    if (poseGroupArray[index] == "dance_cm3d2_004_sse_f1,0.01")
                    {
                        poseGroupComboList[index + 1] = new GUIContent((index + 2).ToString() + ":sweet sweet everyday");
                    }

                    if (poseGroupArray[index] == "turusi_sex_in_taiki_f")
                    {
                        poseGroupComboList[index + 1] = new GUIContent((index + 2).ToString() + ":拘束");
                    }

                    if (poseGroupArray[index] == "rosyutu_pose01_f")
                    {
                        poseGroupComboList[index + 1] = new GUIContent((index + 2).ToString() + ":エロ");
                    }

                    if (poseGroupArray[index] == "rosyutu_aruki_f_once_,1.37")
                    {
                        poseGroupComboList[index + 1] = new GUIContent((index + 2).ToString() + ":歩き");
                    }

                    if (poseGroupArray[index] == "stand_desk1")
                    {
                        poseGroupComboList[index + 1] = new GUIContent((index + 2).ToString() + ":その他");
                    }

                    if (poseGroupArray[index] == poseArray5[0])
                    {
                        poseGroupComboList[index + 1] = new GUIContent((index + 2).ToString() + ":ダンスMC");
                    }

                    if (poseGroupArray[index] == poseArray6[0])
                    {
                        poseGroupComboList[index + 1] = new GUIContent((index + 2).ToString() + ":ダンス");
                    }

                    if (existPose && strS != "")
                    {
                        if (index == poseGroupArray.Length - 4)
                        {
                            poseGroupComboList[index + 1] = new GUIContent((index + 2).ToString() + ":通常2");
                        }

                        if (index == poseGroupArray.Length - 3)
                        {
                            poseGroupComboList[index + 1] = new GUIContent((index + 2).ToString() + ":エロ2");
                        }

                        if (index == poseGroupArray.Length - 2)
                        {
                            poseGroupComboList[index + 1] = new GUIContent("98:撮影モード");
                        }

                        if (index == poseGroupArray.Length - 1)
                        {
                            poseGroupComboList[index + 1] = new GUIContent("99:登録ポーズ");
                        }
                    }
                    else if (existPose && strS == "")
                    {
                        if (index == poseGroupArray.Length - 3)
                        {
                            poseGroupComboList[index + 1] = new GUIContent((index + 2).ToString() + ":通常2");
                        }

                        if (index == poseGroupArray.Length - 2)
                        {
                            poseGroupComboList[index + 1] = new GUIContent((index + 2).ToString() + ":エロ2");
                        }

                        if (index == poseGroupArray.Length - 1)
                        {
                            poseGroupComboList[index + 1] = new GUIContent("99:登録ポーズ");
                        }
                    }
                    else if (!existPose && strS != "")
                    {
                        if (index == poseGroupArray.Length - 3)
                        {
                            poseGroupComboList[index + 1] = new GUIContent((index + 2).ToString() + ":通常2");
                        }

                        if (index == poseGroupArray.Length - 2)
                        {
                            poseGroupComboList[index + 1] = new GUIContent((index + 2).ToString() + ":エロ2");
                        }

                        if (index == poseGroupArray.Length - 1)
                        {
                            poseGroupComboList[index + 1] = new GUIContent("98:撮影モード");
                        }
                    }
                    else
                    {
                        if (index == poseGroupArray.Length - 2)
                        {
                            poseGroupComboList[index + 1] = new GUIContent((index + 2).ToString() + ":通常2");
                        }

                        if (index == poseGroupArray.Length - 1)
                        {
                            poseGroupComboList[index + 1] = new GUIContent((index + 2).ToString() + ":エロ2");
                        }
                    }
                }

                poseInitFlg = true;
                itemCombo.selectedItemIndex = 0;
                int length = itemArray.Length;
                itemComboList = new GUIContent[length - 1];
                for (int index = 0; index < length; ++index)
                {
                    if (index == 0)
                    {
                        itemComboList[index] = new GUIContent("アイテム無し");
                    }
                    else
                    {
                        switch (itemArray[index])
                        {
                            case "handitem,HandItemR_WineGlass_I_.menu":
                                itemComboList[index] = new GUIContent(index.ToString() + ":ワイングラス");
                                break;
                            case "handitem,HandItemR_WineBottle_I_.menu":
                                itemComboList[index] = new GUIContent(index.ToString() + ":ワインボトル");
                                break;
                            case "handitem,handitemr_racket_I_.menu":
                                itemComboList[index] = new GUIContent(index.ToString() + ":ラケット");
                                break;
                            case "handitem,HandItemR_Hataki_I_.menu":
                                itemComboList[index] = new GUIContent(index.ToString() + ":ハタキ");
                                break;
                            case "handitem,HandItemR_Mop_I_.menu":
                                itemComboList[index] = new GUIContent(index.ToString() + ":モップ");
                                break;
                            case "handitem,HandItemR_Houki_I_.menu":
                                itemComboList[index] = new GUIContent(index.ToString() + ":ほうき");
                                break;
                            case "handitem,HandItemR_Zoukin2_I_.menu":
                                itemComboList[index] = new GUIContent(index.ToString() + ":雑巾");
                                break;
                            case "handitem,HandItemR_Chu-B_Lip_I_.menu":
                                itemComboList[index] = new GUIContent(index.ToString() + ":Chu-B Lip");
                                break;
                            case "handitem,HandItemR_Mimikaki_I_.menu":
                                itemComboList[index] = new GUIContent(index.ToString() + ":耳かき");
                                break;
                            case "handitem,HandItemR_Pen_I_.menu":
                                itemComboList[index] = new GUIContent(index.ToString() + ":ペン");
                                break;
                            case "handitem,HandItemR_Otama_I_.menu":
                                itemComboList[index] = new GUIContent(index.ToString() + ":おたま");
                                break;
                            case "handitem,HandItemR_Houchou_I_.menu":
                                itemComboList[index] = new GUIContent(index.ToString() + ":包丁");
                                break;
                            case "handitem,HandItemR_Book_I_.menu":
                                itemComboList[index] = new GUIContent(index.ToString() + ":本");
                                break;
                            case "handitem,HandItemR_Puff_I_.menu":
                                itemComboList[index] = new GUIContent(index.ToString() + ":パフ");
                                break;
                            case "handitem,HandItemR_Rip_I_.menu":
                                itemComboList[index] = new GUIContent(index.ToString() + ":リップ");
                                break;
                            case "handitem,HandItemD_Shisyuu_Hari_I_.menu":
                                itemComboList[index] = new GUIContent(index.ToString() + ":刺繍");
                                break;
                            case "handitem,HandItemD_Sara_Sponge_I_.menu":
                                itemComboList[index] = new GUIContent(index.ToString() + ":皿・スポンジ");
                                break;
                            case "kousoku_upper,KousokuU_TekaseOne_I_.menu":
                                itemComboList[index] = new GUIContent(index.ToString() + ":手枷1");
                                break;
                            case "kousoku_upper,KousokuU_TekaseTwo_I_.menu":
                                itemComboList[index] = new GUIContent(index.ToString() + ":手枷2");
                                break;
                            case "kousoku_lower,KousokuL_AshikaseUp_I_.menu":
                                itemComboList[index] = new GUIContent(index.ToString() + ":足枷");
                                break;
                            case "handitem,HandItemR_Usuba_Houchou_I_.menu":
                                itemComboList[index] = new GUIContent(index.ToString() + "薄刃包丁");
                                break;
                            case "handitem,HandItemR_Chusyaki_I_.menu":
                                itemComboList[index] = new GUIContent(index.ToString() + "注射器");
                                break;
                            case "handitem,HandItemR_Nei_Heartful_I_.menu":
                                itemComboList[index] = new GUIContent(index.ToString() + "ハートフルねい人形");
                                break;
                            case "handitem,HandItemR_Shaker_I_.menu":
                                itemComboList[index] = new GUIContent(index.ToString() + "シェイカー");
                                break;
                            case "handitem,HandItemR_SmartPhone_I_.menu":
                                itemComboList[index] = new GUIContent(index.ToString() + "スマートフォン");
                                break;
                            case "kousoku_upper,KousokuU_Ushirode_I_.menu":
                                itemComboList[index - 1] = new GUIContent((index - 1).ToString() + ":後ろ手拘束具");
                                break;
                            case "kousoku_upper,KousokuU_SMRoom_Haritsuke_I_.menu":
                                itemComboList[index - 1] = new GUIContent((index - 1).ToString() + ":磔台・手枷足枷");
                                break;
                            case "kousoku_upper,KousokuU_SMRoom2_Haritsuke_I_.menu":
                                itemComboList[index - 1] = new GUIContent((index - 1).ToString() + ":磔台・手枷足枷2");
                                break;
                            case "handitem,HandItemL_Dance_Hataki_I_.menu":
                                itemComboList[index - 1] = new GUIContent((index - 1).ToString() + ":ダンスハタキ");
                                break;
                            case "handitem,HandItemL_Dance_Mop_I_.menu":
                                itemComboList[index - 1] = new GUIContent((index - 1).ToString() + ":ダンスモップ");
                                break;
                            case "handitem,HandItemL_Dance_Zoukin_I_.menu":
                                itemComboList[index - 1] = new GUIContent((index - 1).ToString() + ":ダンス雑巾");
                                break;
                            case "handitem,HandItemL_Kozara_I_.menu":
                                itemComboList[index - 1] = new GUIContent((index - 1).ToString() + ":小皿");
                                break;
                            case "handitem,HandItemR_Teacup_I_.menu":
                                itemComboList[index - 1] = new GUIContent((index - 1).ToString() + ":ティーカップ");
                                break;
                            case "handitem,HandItemL_Teasaucer_I_.menu":
                                itemComboList[index - 1] = new GUIContent((index - 1).ToString() + ":ティーソーサー");
                                break;
                            case "handitem,HandItemR_Wholecake_I_.menu":
                                itemComboList[index - 1] = new GUIContent("ホールケーキ");
                                break;
                            case "handitem,HandItemR_Menu_I_.menu":
                                itemComboList[index - 1] = new GUIContent("メニュー表");
                                break;
                            case "handitem,HandItemR_Vibe_I_.menu":
                                itemComboList[index - 1] = new GUIContent((index - 1).ToString() + ":バイブ");
                                break;
                            case "handitem,HandItemR_VibePink_I_.menu":
                                itemComboList[index - 1] = new GUIContent((index - 1).ToString() + ":ピンクバイブ");
                                break;
                            case "handitem,HandItemR_VibeBig_I_.menu":
                                itemComboList[index - 1] = new GUIContent((index - 1).ToString() + ":太バイブ");
                                break;
                            case "handitem,HandItemR_AnalVibe_I_.menu":
                                itemComboList[index - 1] = new GUIContent((index - 1).ToString() + ":アナルバイブ");
                                break;
                            case "handitem,HandItemH_SoutouVibe_I_.menu":
                                itemComboList[index - 1] = new GUIContent((index - 1).ToString() + ":前：双頭バイブ");
                                break;
                            case "accvag,accVag_Vibe_I_.menu":
                                itemComboList[index - 1] = new GUIContent((index - 1).ToString() + ":前：バイブ");
                                break;
                            case "accvag,accVag_VibeBig_I_.menu":
                                itemComboList[index - 1] = new GUIContent((index - 1).ToString() + ":前：太バイブ");
                                break;
                            case "accvag,accVag_VibePink_I_.menu":
                                itemComboList[index - 1] = new GUIContent((index - 1).ToString() + ":前：ピンクバイブ");
                                break;
                            case "accanl,accAnl_AnalVibe_I_.menu":
                                itemComboList[index - 1] = new GUIContent((index - 1).ToString() + ":後：アナルバイブ");
                                break;
                            case "accanl,accAnl_Photo_NomalVibe_I_.menu":
                                itemComboList[index - 1] = new GUIContent((index - 1).ToString() + ":後：バイブ");
                                break;
                            case "accanl,accAnl_Photo_VibeBig_I_.menu":
                                itemComboList[index - 1] = new GUIContent((index - 1).ToString() + ":後：太バイブ");
                                break;
                            case "accanl,accAnl_Photo_VibePink_I_.menu":
                                itemComboList[index - 1] = new GUIContent((index - 1).ToString() + ":後：ピンクバイブ");
                                break;
                            case "handitem,HandItemL_Etoile_Saucer_I_.menu":
                                itemComboList[index - 1] = new GUIContent((index - 1).ToString() + "ティーソーサー");
                                break;
                            case "handitem,HandItemR_Etoile_Teacup_I_.menu":
                                itemComboList[index - 1] = new GUIContent((index - 1).ToString() + "ティーカップ");
                                break;
                            case "handitem,HandItemL_Katuramuki_Daikon_I_.menu":
                                itemComboList[index - 1] = new GUIContent((index - 1).ToString() + "桂むき大根");
                                break;
                            case "handitem,HandItemL_Karte_I_.menu":
                                itemComboList[index - 1] = new GUIContent((index - 1).ToString() + "カルテ");
                                break;
                            case "handitem,HandItemL_Cracker_I_.menu":
                                itemComboList[index - 1] = new GUIContent((index - 1).ToString() + "クラッカー");
                                break;
                        }

                        if (index == 12)
                        {
                            itemComboList[index] = new GUIContent(index.ToString() + ":手枷・足枷");
                        }

                        if (index == 13)
                        {
                            itemComboList[index] = new GUIContent(index.ToString() + ":手枷・足枷(下)");
                        }

                        if (index == 24)
                        {
                            itemComboList[index - 1] = new GUIContent((index - 1).ToString() + ":カップ＆ソーサー");
                        }
                    }
                }
            }

            if (poseCombo.isClickedComboButton)
            {
                GUI.enabled = false;
            }

            if (poseGroupCombo.isClickedComboButton)
            {
                GUI.enabled = false;
            }

            if (sceneLevel == 3 || sceneLevel == 5 || isF6)
            {
                if (!isF6)
                {
                    bool flag = true;
                    if (faceFlg || poseFlg || sceneFlg || kankyoFlg || kankyo2Flg)
                    {
                        flag = false;
                    }

                    if (GUI.Toggle(new Rect(GetPix(2),
                                             GetPix(2),
                                             GetPix(39),
                                             GetPix(20)),
                                   flag,
                                   "配置",
                                   style4))
                    {
                        faceFlg = false;
                        poseFlg = false;
                        // sceneFlg = false;
                        kankyoFlg = false;
                        kankyo2Flg = false;
                        bGui = true;
                    }
                }

                if (!yotogiFlg && GUI.Toggle(new Rect(GetPix(41),
                                                       GetPix(2),
                                                       GetPix(39),
                                                       GetPix(20)),
                                             poseFlg,
                                             "操作",
                                             style4))
                {
                    poseFlg = true;
                    faceFlg = false;
                    // sceneFlg = false;
                    kankyoFlg = false;
                    kankyo2Flg = false;
                }

                if (GUI.Toggle(new Rect(GetPix(80), GetPix(2), GetPix(39), GetPix(20)),
                               faceFlg,
                               "表情",
                               style4))
                {
                    faceFlg = true;
                    poseFlg = false;
                    // sceneFlg = false;
                    kankyoFlg = false;
                    kankyo2Flg = false;
                    if (!faceFlg2)
                    {
                        isFaceInit = true;
                        faceFlg2 = true;
                        maidArray[selectMaidIndex].boMabataki = false;
                        faceCombo.selectedItemIndex = faceIndex[selectMaidIndex];
                    }

                    isFaceInit = true;
                }

                if (GUI.Toggle(new Rect(GetPix(119), GetPix(2), GetPix(39), GetPix(20)),
                               kankyoFlg,
                               "環境",
                               style4))
                {
                    poseFlg = false;
                    faceFlg = false;
                    // sceneFlg = false;
                    kankyoFlg = true;
                    kankyo2Flg = false;
                }

                if (!line1)
                {
                    line1 = MakeTex(2, 2, new Color(0.0f, 0.0f, 0.0f, 0.3f));
                    line2 = MakeTex(2, 2, new Color(0.7f, 0.7f, 0.7f, 0.6f));
                }

                GUI.DrawTexture(new Rect(GetPix(5), GetPix(20), GetPix(160), 2f), line1);
                GUI.DrawTexture(new Rect(GetPix(5), GetPix(20), GetPix(160), 1f), line2);
                style1.fontSize = GetPix(13);
                style1.alignment = TextAnchor.MiddleCenter;
                GUI.Label(new Rect(GetPix(125), GetPix(25), GetPix(40), GetPix(25)),
                          string.Concat(selectMaidIndex + 1),
                          style1);
                style1.fontSize = GetPix(11);
                style1.alignment = TextAnchor.UpperLeft;
            }

            if (sceneLevel > 0)
            {
                int selectMaidIndex = this.selectMaidIndex;
                if (sceneLevel == 3 || sceneLevel == 5 && (isF7 || maidCnt > 1))
                {
                    if (GUI.Button(new Rect(GetPix(5),
                                             GetPix(53),
                                             GetPix(23),
                                             GetPix(32)),
                                   "＜",
                                   style3))
                    {
                        --this.selectMaidIndex;
                        if (this.selectMaidIndex < 0)
                        {
                            this.selectMaidIndex = selectList.Count - 1;
                        }

                        isPoseInit = true;
                        poseFlg = true;
                        copyIndex = 0;
                        poseCombo.selectedItemIndex = poseIndex[this.selectMaidIndex];
                        faceCombo.selectedItemIndex = faceIndex[this.selectMaidIndex];
                    }

                    if (GUI.Button(new Rect(GetPix(135),
                                             GetPix(53),
                                             GetPix(23),
                                             GetPix(32)),
                                   "＞",
                                   style3))
                    {
                        ++this.selectMaidIndex;
                        if (selectList.Count <= this.selectMaidIndex)
                        {
                            this.selectMaidIndex = 0;
                        }

                        isPoseInit = true;
                        poseFlg = true;
                        copyIndex = 0;
                        poseCombo.selectedItemIndex = poseIndex[this.selectMaidIndex];
                        faceCombo.selectedItemIndex = faceIndex[this.selectMaidIndex];
                    }
                }

                if (maidArray[this.selectMaidIndex].GetThumIcon())
                {
                    GUI.DrawTexture(new Rect(GetPix(30),
                                              GetPix(25),
                                              GetPix(60),
                                              GetPix(60)),
                                     maidArray[this.selectMaidIndex].GetThumIcon());
                }

                GUI.Label(new Rect(GetPix(90), GetPix(50), GetPix(140), GetPix(210)),
                          maidArray[this.selectMaidIndex].status.lastName + "\n" + maidArray[this.selectMaidIndex].status.firstName,
                          style1);
            }

            if (!isF6)
            {
                if (isDanceStop)
                {
                    isStop[selectMaidIndex] = true;
                    isDanceStop = false;
                }

                if (sceneLevel == 5 && maidCnt > 1)
                {
                    bool flag = false;
                    if (selectMaidIndex == isEditNo)
                    {
                        flag = true;
                    }

                    isEdit[selectMaidIndex] =
                            GUI.Toggle(new Rect(GetPix(5),
                                                 GetPix(25),
                                                 GetPix(50),
                                                 GetPix(16)),
                                       flag,
                                       "Edit",
                                       style4);
                    if (isEdit[selectMaidIndex] && selectMaidIndex != isEditNo)
                    {
                        isEditNo = selectMaidIndex;
                        for (int index = 0; index < maidCnt; ++index)
                        {
                            if (index != isEditNo)
                            {
                                isEdit[index] = false;
                            }
                        }

                        SceneEdit component = GameObject.Find("__SceneEdit__").GetComponent<SceneEdit>();
                        SetFieldValue<SceneEdit, Maid>(component, "m_maid", maidArray[selectMaidIndex]);
                        component.PartsTypeCamera(MPN.stkg);
                        editSelectMaid = maidArray[selectMaidIndex];
                        if (selectList[selectMaidIndex] != null && goSlot[(int)selectList[selectMaidIndex]] != null)
                        {
                            maidArray[selectMaidIndex].body0.goSlot =
                                    new List<TBodySkin>(goSlot[(int)selectList[selectMaidIndex]]);
                            for (int index = 0; index < bodyHit[(int)selectList[selectMaidIndex]].Count; ++index)
                            {
                                maidArray[selectMaidIndex].body0.goSlot[index].bonehair.bodyhit =
                                        bodyHit[(int)selectList[selectMaidIndex]][index];
                            }
                        }
                    }
                }

                GUI.enabled = !poseGroupCombo.isClickedComboButton;
                if (isLock[selectMaidIndex])
                {
                    GUI.enabled = false;
                }

                int result;
                Transform transform;
                if (GUI.Button(new Rect(GetPix(5), GetPix(125), GetPix(23), GetPix(23)),
                               "＜",
                               style3))
                {
                    --poseIndex[selectMaidIndex];
                    if (poseGroupIndex > 0)
                    {
                        if ((int)groupList[poseGroupIndex - 1] > poseIndex[selectMaidIndex])
                        {
                            poseIndex[selectMaidIndex] = poseGroupIndex < groupList.Count
                                                                 ? (int)groupList[poseGroupIndex] - 1
                                                                 : poseArray.Length - 1;
                        }
                    }
                    else if (poseIndex[selectMaidIndex] < 0)
                    {
                        poseIndex[selectMaidIndex] = (int)groupList[poseGroupIndex] - 1;
                    }

                    isPoseInit = true;
                    poseCombo.selectedItemIndex = poseGroupIndex <= 0
                                                          ? poseIndex[selectMaidIndex]
                                                          : poseIndex[selectMaidIndex] - (int)groupList[poseGroupIndex - 1];
                    if (!isLock[selectMaidIndex] && maid && maid.Visible)
                    {
                        string[] strArray = poseArray[poseIndex[selectMaidIndex]].Split(',');
                        isStop[selectMaidIndex] = false;
                        poseCount[selectMaidIndex] = 20;
                        if (strArray[0].Contains("_momi") || strArray[0].Contains("paizuri_"))
                        {
                            maid.body0.MuneYureL(0.0f);
                            maid.body0.MuneYureR(0.0f);
                        }
                        else
                        {
                            maid.body0.MuneYureL(1f);
                            maid.body0.MuneYureR(1f);
                        }

                        if (strArray[0].Contains("MultipleMaidsPose"))
                        {
                            string path = strArray[0].Split('/')[1];
                            byte[] numArray = new byte[0];
                            try
                            {
                                using (FileStream fileStream = new FileStream(path, FileMode.Open, FileAccess.Read))
                                {
                                    numArray = new byte[fileStream.Length];
                                    fileStream.Read(numArray, 0, numArray.Length);
                                }
                            }
                            catch { }

                            if (0 < numArray.Length)
                            {
                                long hashCode = Path.GetFileName(path).GetHashCode();
                                maid.body0.CrossFade(hashCode.ToString(), numArray, false, false, false, 0.0f, 1f);
                                Maid.AutoTwist[] autoTwistArray = new Maid.AutoTwist[6]
                                {
                                        Maid.AutoTwist.ShoulderL, Maid.AutoTwist.ShoulderR, Maid.AutoTwist.WristL, Maid.AutoTwist.WristR,
                                        Maid.AutoTwist.ThighL, Maid.AutoTwist.ThighR
                                };
                                foreach (Maid.AutoTwist f_eType in autoTwistArray)
                                {
                                    maid.SetAutoTwist(f_eType, true);
                                }
                            }
                        }
                        else if (strArray[0].StartsWith("p") && int.TryParse(strArray[0].Substring(1), out result))
                        {
                            loadPose[selectMaidIndex] = strArray[0];
                        }
                        else if (!strArray[0].StartsWith("dance_"))
                        {
                            maidArray[selectMaidIndex].CrossFade(strArray[0] + ".anm", false, true, false, 0.0f, 1f);
                        }
                        else
                        {
                            if (!maid.body0.m_Bones.GetComponent<Animation>().GetClip(strArray[0] + ".anm"))
                            {
                                maid.body0.LoadAnime(strArray[0] + ".anm", GameUty.FileSystem, strArray[0] + ".anm", false, false);
                            }

                            maid.body0.m_Bones.GetComponent<Animation>().Play(strArray[0] + ".anm");
                        }

                        if (strArray.Length > 1)
                        {
                            maid.body0.m_Bones.GetComponent<Animation>()[strArray[0] + ".anm"].time = float.Parse(strArray[1]);
                            isDanceStop = true;
                            if (strArray.Length > 2)
                            {
                                transform = CMT.SearchObjName(maidArray[selectMaidIndex].body0.m_Bones.transform, "Bip01", true);
                                isPoseIti[selectMaidIndex] = true;
                                poseIti[selectMaidIndex] = maidArray[selectMaidIndex].transform.position;
                                maidArray[selectMaidIndex].transform.position = new Vector3(100f, 100f, 100f);
                            }
                        }
                    }
                }

                if (GUI.Button(new Rect(GetPix(135),
                                         GetPix(125),
                                         GetPix(23),
                                         GetPix(23)),
                               "＞",
                               style3))
                {
                    ++poseIndex[selectMaidIndex];
                    if (poseIndex[selectMaidIndex] > (int)groupList[groupList.Count - 1])
                    {
                        if (poseIndex[selectMaidIndex] >= poseArray.Length)
                        {
                            poseIndex[selectMaidIndex] = (int)groupList[poseGroupIndex - 1];
                        }
                    }
                    else if (poseIndex[selectMaidIndex] >= (int)groupList[poseGroupIndex])
                    {
                        poseIndex[selectMaidIndex] = poseGroupIndex <= 0 ? 0 : (int)groupList[poseGroupIndex - 1];
                    }

                    isPoseInit = true;
                    poseCombo.selectedItemIndex = poseGroupIndex <= 0
                                                          ? poseIndex[selectMaidIndex]
                                                          : poseIndex[selectMaidIndex] - (int)groupList[poseGroupIndex - 1];
                    if (!isLock[selectMaidIndex] && maid && maid.Visible)
                    {
                        string[] strArray = poseArray[poseIndex[selectMaidIndex]].Split(',');
                        isStop[selectMaidIndex] = false;
                        poseCount[selectMaidIndex] = 20;
                        if (strArray[0].Contains("_momi") || strArray[0].Contains("paizuri_"))
                        {
                            maid.body0.MuneYureL(0.0f);
                            maid.body0.MuneYureR(0.0f);
                        }
                        else
                        {
                            maid.body0.MuneYureL(1f);
                            maid.body0.MuneYureR(1f);
                        }

                        if (strArray[0].Contains("MultipleMaidsPose"))
                        {
                            string path = strArray[0].Split('/')[1];
                            byte[] numArray = new byte[0];
                            try
                            {
                                using (FileStream fileStream = new FileStream(path, FileMode.Open, FileAccess.Read))
                                {
                                    numArray = new byte[fileStream.Length];
                                    fileStream.Read(numArray, 0, numArray.Length);
                                }
                            }
                            catch { }

                            if (0 < numArray.Length)
                            {
                                long hashCode = Path.GetFileName(path).GetHashCode();
                                maid.body0.CrossFade(hashCode.ToString(), numArray, false, false, false, 0.0f, 1f);
                                Maid.AutoTwist[] autoTwistArray = new Maid.AutoTwist[6]
                                {
                                        Maid.AutoTwist.ShoulderL, Maid.AutoTwist.ShoulderR, Maid.AutoTwist.WristL, Maid.AutoTwist.WristR,
                                        Maid.AutoTwist.ThighL, Maid.AutoTwist.ThighR
                                };
                                foreach (Maid.AutoTwist f_eType in autoTwistArray)
                                {
                                    maid.SetAutoTwist(f_eType, true);
                                }
                            }
                        }
                        else if (strArray[0].StartsWith("p") && int.TryParse(strArray[0].Substring(1), out result))
                        {
                            loadPose[selectMaidIndex] = strArray[0];
                        }
                        else if (!strArray[0].StartsWith("dance_"))
                        {
                            maidArray[selectMaidIndex].CrossFade(strArray[0] + ".anm", false, true, false, 0.0f, 1f);
                        }
                        else
                        {
                            if (!maid.body0.m_Bones.GetComponent<Animation>().GetClip(strArray[0] + ".anm"))
                            {
                                maid.body0.LoadAnime(strArray[0] + ".anm", GameUty.FileSystem, strArray[0] + ".anm", false, false);
                            }

                            maid.body0.m_Bones.GetComponent<Animation>().Play(strArray[0] + ".anm");
                        }

                        if (strArray.Length > 1)
                        {
                            maid.body0.m_Bones.GetComponent<Animation>()[strArray[0] + ".anm"].time = float.Parse(strArray[1]);
                            isDanceStop = true;
                            if (strArray.Length > 2)
                            {
                                transform = CMT.SearchObjName(maidArray[selectMaidIndex].body0.m_Bones.transform, "Bip01", true);
                                isPoseIti[selectMaidIndex] = true;
                                poseIti[selectMaidIndex] = maidArray[selectMaidIndex].transform.position;
                                maidArray[selectMaidIndex].transform.position = new Vector3(100f, 100f, 100f);
                            }
                        }
                    }
                }

                GUI.enabled = true;
                int index1 = -1;
                for (int index2 = 0; index2 < groupList.Count; ++index2)
                {
                    if (poseIndex[selectMaidIndex] < (int)groupList[index2])
                    {
                        index1 = index2;
                        break;
                    }
                }

                int length1 = (int)groupList[0];
                int num1 = 0;
                if (index1 > 0)
                {
                    length1 = (int)groupList[index1] - (int)groupList[index1 - 1];
                    num1 = (int)groupList[index1 - 1];
                }

                if (index1 < 0)
                {
                    index1 = groupList.Count;
                    length1 = poseArray.Length - (int)groupList[index1 - 1];
                    num1 = (int)groupList[index1 - 1];
                }

                if (poseGroupCombo.selectedItemIndex != index1)
                {
                    poseComboList = new GUIContent[length1];
                    int index2 = 0;
                    for (int index3 = num1; index3 < num1 + length1; ++index3)
                    {
                        bool flag = false;
                        foreach (IniKey key in Preferences["pose"].Keys)
                        {
                            if (poseArray[index3] == key.Key)
                            {
                                IniKey iniKey = Preferences["pose"][key.Key];
                                if (iniKey.Value != null && iniKey.Value.ToString() != "" && iniKey.Value.ToString() != "del")
                                {
                                    poseComboList[index2] =
                                            new GUIContent((index2 + 1).ToString() + ":" + iniKey.Value.Split('_')[0]
                                                           + "　　　　　　　　　　　　　　　　　　　　" + key.Key);
                                    flag = true;
                                }
                            }
                        }

                        if (!flag)
                        {
                            poseComboList[index2] = new GUIContent((index2 + 1).ToString() + ":" + poseArray[index3]);
                        }

                        ++index2;
                    }

                    poseGroupCombo.selectedItemIndex = index1;
                    poseGroupIndex = index1;
                    poseCombo.selectedItemIndex = 0;
                }

                GUI.enabled = !poseCombo.isClickedComboButton && !poseGroupCombo.isClickedComboButton;
                isLook[selectMaidIndex] =
                        GUI.Toggle(new Rect(GetPix(8),
                                             GetPix(155),
                                             GetPix(65),
                                             GetPix(16)),
                                   isLook[selectMaidIndex],
                                   "顔の向き",
                                   style4);
                isPoseEdit = GUI.Toggle(new Rect(GetPix(86),
                                                  GetPix(155),
                                                  GetPix(90),
                                                  GetPix(16)),
                                        isPoseEdit,
                                        "ポーズ登録",
                                        style4);
                if (isPoseEdit)
                {
                    inName3 = GUI.TextField(new Rect(GetPix(5),
                                                      GetPix(180),
                                                      GetPix(100),
                                                      GetPix(20)),
                                            inName3);
                    if (GUI.Button(new Rect(GetPix(107),
                                             GetPix(180),
                                             GetPix(35),
                                             GetPix(20)),
                                   "追加",
                                   style3))
                    {
                        isSavePose = true;
                        GameMain.Instance.SoundMgr.PlaySe("se002.ogg", false);
                        existPose = true;
                        GUI.FocusControl("");
                    }

                    if (poseGroupComboList[poseGroupCombo.selectedItemIndex].text != "99:登録ポーズ")
                    {
                        GUI.enabled = false;
                    }

                    if (GUI.Button(new Rect(GetPix(144),
                                             GetPix(180),
                                             GetPix(24),
                                             GetPix(20)),
                                   "削",
                                   style3))
                    {
                        GameMain.Instance.SoundMgr.PlaySe("se002.ogg", false);
                        List<string> stringList1 = new List<string>();
                        stringList1.AddRange(poseArray);
                        if (poseComboList[poseCombo.selectedItemIndex].text.Contains("MultipleMaidsPose"))
                        {
                            string pose = poseArray[poseIndex[selectMaidIndex]];
                            stringList1.Remove(pose);
                            string path = poseArray[poseIndex[selectMaidIndex]].Split('/')[1].Replace("　　　　　　　　　　　　　　　　　　　　", "");
                            if (File.Exists(path))
                            {
                                File.Delete(path);
                            }
                        }
                        else
                        {
                            string[] strArray = poseComboList[poseCombo.selectedItemIndex].text.Split('p');
                            string str = strArray[strArray.Length - 1];
                            IniKey iniKey = Preferences["pose"]["p" + str];
                            if (iniKey.Value != "" || iniKey.Value != "del")
                            {
                                Preferences["pose"]["p" + str].Value = "del";
                                SaveConfig();
                            }

                            stringList1.Remove("p" + str);
                        }

                        GUI.FocusControl("");
                        poseArray = stringList1.ToArray();
                        int index2 = -1;
                        for (int index3 = 0; index3 < groupList.Count; ++index3)
                        {
                            if (poseIndex[selectMaidIndex] < (int)groupList[index3])
                            {
                                index2 = index3;
                                break;
                            }
                        }

                        int length2 = (int)groupList[0];
                        int num2 = 0;
                        if (index2 > 0)
                        {
                            length2 = (int)groupList[index2] - (int)groupList[index2 - 1];
                            num2 = (int)groupList[index2 - 1];
                        }

                        if (index2 < 0)
                        {
                            index2 = groupList.Count;
                            length2 = poseArray.Length - (int)groupList[index2 - 1];
                            num2 = (int)groupList[index2 - 1];
                        }

                        poseComboList = new GUIContent[length2];
                        int index4 = 0;
                        bool existEdit = false;
                        for (int index3 = num2; index3 < num2 + length2; ++index3)
                        {
                            bool flag = false;
                            foreach (IniKey key in Preferences["pose"].Keys)
                            {
                                if (poseArray[index3] == key.Key)
                                {
                                    IniKey iniKey = Preferences["pose"][key.Key];
                                    if (iniKey.Value != null && iniKey.Value.ToString() != "" && iniKey.Value.ToString() != "del")
                                    {
                                        poseComboList[index4] =
                                                new GUIContent((index4 + 1).ToString() + ":" + iniKey.Value.Split('_')[0]
                                                               + "　　　　　　　　　　　　　　　　　　　　" + key.Key);
                                        flag = true;
                                        existEdit = true;
                                    }
                                }
                            }

                            if (!flag)
                            {
                                poseComboList[index4] = new GUIContent((index4 + 1).ToString() + ":" + poseArray[index3]);
                            }

                            ++index4;
                        }

                        ((Action<string, List<string>>)((path, result_list) =>
                                                           {
                                                               string[] files = Directory.GetFiles(path);
                                                               countS = 0;
                                                               for (int index = 0; index < files.Length; ++index)
                                                               {
                                                                   if (Path.GetExtension(files[index]) == ".anm")
                                                                   {
                                                                       existEdit = true;
                                                                       break;
                                                                   }
                                                               }
                                                           }))(Path.GetFullPath(".\\") + "Mod\\MultipleMaidsPose", new List<string>());
                        if (!existEdit)
                        {
                            poseIniStr = "";
                            List<string> stringList2 = new List<string>(50 + poseGroupArray2.Length);
                            stringList2.AddRange(poseGroupArray2);
                            stringList2.AddRange(poseGroupArrayVP);
                            stringList2.AddRange(poseGroupArrayFB);
                            stringList2.AddRange(poseGroupArray3);
                            stringList2.Add(poseArray5[0]);
                            stringList2.Add(poseArray6[0]);
                            stringList2.Add(strList2[0]);
                            stringList2.Add(strListE2[0]);
                            existPose = false;
                            poseGroupArray = stringList2.ToArray();
                            groupList = new ArrayList();
                            for (int index3 = 0; index3 < poseArray.Length; ++index3)
                            {
                                for (int index5 = 0; index5 < poseGroupArray.Length; ++index5)
                                {
                                    if (poseGroupArray[index5] == poseArray[index3])
                                    {
                                        groupList.Add(index3);
                                        if (poseGroupArray[index5] == strList2[0])
                                        {
                                            sPoseCount = index3;
                                        }
                                    }
                                }
                            }

                            poseIndex[selectMaidIndex] = 0;
                            poseGroupComboList = new GUIContent[poseGroupArray.Length + 1];
                            poseGroupComboList[0] = new GUIContent("1:通常");
                            for (int index3 = 0; index3 < poseGroupArray.Length; ++index3)
                            {
                                if (poseGroupArray[index3] == "maid_dressroom01")
                                {
                                    poseGroupComboList[index3 + 1] = new GUIContent((index3 + 2).ToString() + ":立ち");
                                }

                                if (poseGroupArray[index3] == "tennis_kamae_f")
                                {
                                    poseGroupComboList[index3 + 1] = new GUIContent((index3 + 2).ToString() + ":中腰");
                                }

                                if (poseGroupArray[index3] == "senakanagasi_f")
                                {
                                    poseGroupComboList[index3 + 1] = new GUIContent((index3 + 2).ToString() + ":膝をつく");
                                }

                                if (poseGroupArray[index3] == "work_hansei")
                                {
                                    poseGroupComboList[index3 + 1] = new GUIContent((index3 + 2).ToString() + ":座り");
                                }

                                if (poseGroupArray[index3] == "inu_taiki_f")
                                {
                                    poseGroupComboList[index3 + 1] = new GUIContent((index3 + 2).ToString() + ":四つん這い");
                                }

                                if (poseGroupArray[index3] == "syagami_pose_f")
                                {
                                    poseGroupComboList[index3 + 1] = new GUIContent((index3 + 2).ToString() + ":床座り");
                                }

                                if (poseGroupArray[index3] == "densyasuwari_taiki_f")
                                {
                                    poseGroupComboList[index3 + 1] = new GUIContent((index3 + 2).ToString() + ":椅子座り");
                                }

                                if (poseGroupArray[index3] == "work_kaiwa")
                                {
                                    poseGroupComboList[index3 + 1] = new GUIContent((index3 + 2).ToString() + ":ソファー座り");
                                }

                                if (poseGroupArray[index3] == "dance_cm3d2_001_f1,14.14")
                                {
                                    poseGroupComboList[index3 + 1] = new GUIContent((index3 + 2).ToString() + ":ドキドキ☆Fallin' Love");
                                }

                                if (poseGroupArray[index3] == "dance_cm3d_001_f1,39.25")
                                {
                                    poseGroupComboList[index3 + 1] = new GUIContent((index3 + 2).ToString() + ":entrance to you");
                                }

                                if (poseGroupArray[index3] == "dance_cm3d_002_end_f1,50.71")
                                {
                                    poseGroupComboList[index3 + 1] = new GUIContent((index3 + 2).ToString() + ":scarlet leap");
                                }

                                if (poseGroupArray[index3] == "dance_cm3d2_002_smt_f,7.76,")
                                {
                                    poseGroupComboList[index3 + 1] = new GUIContent((index3 + 2).ToString() + ":stellar my tears");
                                }

                                if (poseGroupArray[index3] == "dance_cm3d_003_sp2_f1,90.15")
                                {
                                    poseGroupComboList[index3 + 1] = new GUIContent((index3 + 2).ToString() + ":rhythmix to you");
                                }

                                if (poseGroupArray[index3] == "dance_cm3d2_003_hs_f1,0.01,")
                                {
                                    poseGroupComboList[index3 + 1] = new GUIContent((index3 + 2).ToString() + ":happy!happy!スキャンダル!!");
                                }

                                if (poseGroupArray[index3] == "dance_cm3d_004_kano_f1,124.93")
                                {
                                    poseGroupComboList[index3 + 1] = new GUIContent((index3 + 2).ToString() + ":Can Know Two Close");
                                }

                                if (poseGroupArray[index3] == "dance_cm3d2_004_sse_f1,0.01")
                                {
                                    poseGroupComboList[index3 + 1] = new GUIContent((index3 + 2).ToString() + ":sweet sweet everyday");
                                }

                                if (poseGroupArray[index3] == "turusi_sex_in_taiki_f")
                                {
                                    poseGroupComboList[index3 + 1] = new GUIContent((index3 + 2).ToString() + ":拘束");
                                }

                                if (poseGroupArray[index3] == "rosyutu_pose01_f")
                                {
                                    poseGroupComboList[index3 + 1] = new GUIContent((index3 + 2).ToString() + ":エロ");
                                }

                                if (poseGroupArray[index3] == "rosyutu_aruki_f_once_,1.37")
                                {
                                    poseGroupComboList[index3 + 1] = new GUIContent((index3 + 2).ToString() + ":歩き");
                                }

                                if (poseGroupArray[index3] == "stand_desk1")
                                {
                                    poseGroupComboList[index3 + 1] = new GUIContent((index3 + 2).ToString() + ":その他");
                                }

                                if (poseGroupArray[index3] == poseArray5[0])
                                {
                                    poseGroupComboList[index3 + 1] = new GUIContent((index3 + 2).ToString() + ":ダンスMC");
                                }

                                if (poseGroupArray[index3] == poseArray6[0])
                                {
                                    poseGroupComboList[index3 + 1] = new GUIContent((index3 + 2).ToString() + ":ダンス");
                                }

                                if (index3 == poseGroupArray.Length - 2)
                                {
                                    poseGroupComboList[index3 + 1] = new GUIContent((index3 + 2).ToString() + ":通常2");
                                }

                                if (index3 == poseGroupArray.Length - 1)
                                {
                                    poseGroupComboList[index3 + 1] = new GUIContent((index3 + 2).ToString() + ":エロ2");
                                }
                            }
                        }
                        else
                        {
                            poseGroupCombo.selectedItemIndex = index2;
                            poseGroupIndex = index2;
                            poseCombo.selectedItemIndex = 0;
                            poseIndex[selectMaidIndex] = (int)groupList[groupList.Count - 1];
                            if (poseArray.Length <= poseIndex[selectMaidIndex])
                            {
                                --poseIndex[selectMaidIndex];
                            }
                        }
                    }

                    GUI.enabled = !poseCombo.isClickedComboButton && !poseGroupCombo.isClickedComboButton;
                }
                else
                {
                    if (!isLook[selectMaidIndex])
                    {
                        GUI.enabled = false;
                    }

                    GUI.Label(new Rect(GetPix(8), GetPix(175), GetPix(100), GetPix(25)),
                              "顔の向きX",
                              style2);
                    lookX[selectMaidIndex] =
                            GUI.HorizontalSlider(new Rect(GetPix(8),
                                                           GetPix(191),
                                                           GetPix(70),
                                                           GetPix(20)),
                                                 lookX[selectMaidIndex],
                                                 -0.6f,
                                                 0.6f);
                    GUI.Label(new Rect(GetPix(88),
                                        GetPix(175),
                                        GetPix(100),
                                        GetPix(25)),
                              "顔の向きY",
                              style2);
                    lookY[selectMaidIndex] =
                            GUI.HorizontalSlider(new Rect(GetPix(88),
                                                           GetPix(191),
                                                           GetPix(70),
                                                           GetPix(20)),
                                                 lookY[selectMaidIndex],
                                                 0.5f,
                                                 -0.55f);
                    GUI.enabled = !poseCombo.isClickedComboButton && !poseGroupCombo.isClickedComboButton;
                }

                int index6 = poseGroupIndex <= 0
                                     ? poseIndex[selectMaidIndex]
                                     : poseIndex[selectMaidIndex] - (int)groupList[poseGroupIndex - 1];
                string[] strArray1;
                if (GUI.Button(new Rect(GetPix(5), GetPix(215), GetPix(23), GetPix(23)),
                               "＜",
                               style3))
                {
                    --itemIndex[selectMaidIndex];
                    if (itemIndex[selectMaidIndex] <= -1)
                    {
                        itemIndex[selectMaidIndex] = itemArray.Length - 2;
                    }

                    strArray1 = new string[2];
                    string[] strArray2 = itemArray[itemIndex[selectMaidIndex]].Split(',');
                    if (itemIndex[selectMaidIndex] > 13)
                    {
                        strArray2 = itemArray[itemIndex[selectMaidIndex] + 1].Split(',');
                    }

                    maid.DelProp(MPN.handitem, true);
                    maid.DelProp(MPN.accvag, true);
                    maid.DelProp(MPN.accanl, true);
                    bool flag = false;
                    if (itemIndex[selectMaidIndex] == 12 || itemIndex[selectMaidIndex] == 13 || itemIndex[selectMaidIndex] == 23)
                    {
                        flag = true;
                    }

                    if (!flag)
                    {
                        maid.DelProp(MPN.kousoku_upper, true);
                        maid.DelProp(MPN.kousoku_lower, true);
                    }

                    if (strArray2[0] != "")
                    {
                        maid.SetProp(strArray2[0], strArray2[1], 0, true, false);
                    }

                    if (itemIndex[selectMaidIndex] == 12)
                    {
                        string[] strArray3 = itemArray[itemIndex[selectMaidIndex] - 1].Split(',');
                        maid.SetProp(strArray3[0], strArray3[1], 0, true, false);
                    }

                    if (itemIndex[selectMaidIndex] == 13)
                    {
                        string[] strArray3 = itemArray[itemIndex[selectMaidIndex] + 1].Split(',');
                        maid.SetProp(strArray3[0], strArray3[1], 0, true, false);
                    }

                    if (itemIndex[selectMaidIndex] == 23)
                    {
                        string[] strArray3 = itemArray[itemIndex[selectMaidIndex]].Split(',');
                        maid.SetProp(strArray3[0], strArray3[1], 0, true, false);
                        cafeFlg[selectMaidIndex] = true;
                    }

                    maid.AllProcPropSeqStart();
                    itemCombo.selectedItemIndex = itemIndex[selectMaidIndex];
                }

                if (GUI.Button(new Rect(GetPix(135),
                                         GetPix(215),
                                         GetPix(23),
                                         GetPix(23)),
                               "＞",
                               style3))
                {
                    ++itemIndex[selectMaidIndex];
                    if (itemIndex[selectMaidIndex] >= itemArray.Length - 1)
                    {
                        itemIndex[selectMaidIndex] = 0;
                    }

                    strArray1 = new string[2];
                    string[] strArray2 = itemArray[itemIndex[selectMaidIndex]].Split(',');
                    if (itemIndex[selectMaidIndex] > 13)
                    {
                        strArray2 = itemArray[itemIndex[selectMaidIndex] + 1].Split(',');
                    }

                    maid.DelProp(MPN.handitem, true);
                    maid.DelProp(MPN.accvag, true);
                    maid.DelProp(MPN.accanl, true);
                    bool flag = false;
                    if (itemIndex[selectMaidIndex] == 12 || itemIndex[selectMaidIndex] == 13)
                    {
                        flag = true;
                    }

                    if (!flag)
                    {
                        maid.DelProp(MPN.kousoku_upper, true);
                        maid.DelProp(MPN.kousoku_lower, true);
                    }

                    if (strArray2[0] != "")
                    {
                        maid.SetProp(strArray2[0], strArray2[1], 0, true, false);
                    }

                    if (itemIndex[selectMaidIndex] == 12)
                    {
                        string[] strArray3 = itemArray[itemIndex[selectMaidIndex] - 1].Split(',');
                        maid.SetProp(strArray3[0], strArray3[1], 0, true, false);
                    }

                    if (itemIndex[selectMaidIndex] == 13)
                    {
                        string[] strArray3 = itemArray[itemIndex[selectMaidIndex] + 1].Split(',');
                        maid.SetProp(strArray3[0], strArray3[1], 0, true, false);
                    }

                    if (itemIndex[selectMaidIndex] == 23)
                    {
                        string[] strArray3 = itemArray[itemIndex[selectMaidIndex]].Split(',');
                        maid.SetProp(strArray3[0], strArray3[1], 0, true, false);
                        cafeFlg[selectMaidIndex] = true;
                    }

                    maid.AllProcPropSeqStart();
                    itemCombo.selectedItemIndex = itemIndex[selectMaidIndex];
                }

                if (itemCombo.isClickedComboButton)
                {
                    GUI.enabled = false;
                }

                int offsetTop = GetPix(240);
                int UIHeight = GetPix(345);

                Rect poseWindowScrollRect = new Rect(0, offsetTop, rectWin.width, rectWin.height - offsetTop);
                Rect poseWindowScrollView = new Rect(0, offsetTop, rectWin.width - 20, UIHeight);

                poseScrollPos = GUI.BeginScrollView(poseWindowScrollRect, poseScrollPos, poseWindowScrollView);

                isWear = GUI.Toggle(new Rect(GetPix(5),
                                              GetPix(248),
                                              GetPix(70),
                                              GetPix(20)),
                                    isWear,
                                    "トップス",
                                    style4);
                isSkirt = GUI.Toggle(new Rect(GetPix(90),
                                               GetPix(248),
                                               GetPix(70),
                                               GetPix(20)),
                                     isSkirt,
                                     "ボトムス",
                                     style4);
                isBra = GUI.Toggle(new Rect(GetPix(5),
                                             GetPix(273),
                                             GetPix(80),
                                             GetPix(20)),
                                   isBra,
                                   "ブラジャー",
                                   style4);
                isPanz = GUI.Toggle(new Rect(GetPix(90),
                                              GetPix(273),
                                              GetPix(60),
                                              GetPix(20)),
                                    isPanz,
                                    "パンツ",
                                    style4);
                isHeadset = GUI.Toggle(new Rect(GetPix(5),
                                                 GetPix(298),
                                                 GetPix(70),
                                                 GetPix(20)),
                                       isHeadset,
                                       "ヘッド",
                                       style4);
                isMegane = GUI.Toggle(new Rect(GetPix(95),
                                                GetPix(298),
                                                GetPix(70),
                                                GetPix(20)),
                                      isMegane,
                                      "メガネ",
                                      style4);
                isAccUde = GUI.Toggle(new Rect(GetPix(5),
                                                GetPix(323),
                                                GetPix(40),
                                                GetPix(20)),
                                      isAccUde,
                                      "腕",
                                      style4);
                isGlove = GUI.Toggle(new Rect(GetPix(50),
                                               GetPix(323),
                                               GetPix(40),
                                               GetPix(20)),
                                     isGlove,
                                     "手袋",
                                     style4);
                isAccSenaka = GUI.Toggle(new Rect(GetPix(95),
                                                   GetPix(323),
                                                   GetPix(40),
                                                   GetPix(20)),
                                         isAccSenaka,
                                         "背中",
                                         style4);
                isStkg = GUI.Toggle(new Rect(GetPix(5),
                                              GetPix(348),
                                              GetPix(40),
                                              GetPix(20)),
                                    isStkg,
                                    "靴下",
                                    style4);
                isShoes = GUI.Toggle(new Rect(GetPix(50),
                                               GetPix(348),
                                               GetPix(40),
                                               GetPix(20)),
                                     isShoes,
                                     "靴",
                                     style4);
                isMaid = GUI.Toggle(new Rect(GetPix(95),
                                              GetPix(348),
                                              GetPix(70),
                                              GetPix(20)),
                                    isMaid,
                                    "メイド",
                                    style4);
                mekure1[selectMaidIndex] =
                        GUI.Toggle(new Rect(GetPix(5),
                                             GetPix(373),
                                             GetPix(62),
                                             GetPix(20)),
                                   mekure1[selectMaidIndex],
                                   "めくれ前",
                                   style4);
                mekure2[selectMaidIndex] =
                        GUI.Toggle(new Rect(GetPix(67),
                                             GetPix(373),
                                             GetPix(40),
                                             GetPix(20)),
                                   mekure2[selectMaidIndex],
                                   "後ろ",
                                   style4);
                zurasi[selectMaidIndex] =
                        GUI.Toggle(new Rect(GetPix(105),
                                             GetPix(373),
                                             GetPix(50),
                                             GetPix(20)),
                                   zurasi[selectMaidIndex],
                                   "ずらし",
                                   style4);
                voice1[selectMaidIndex] =
                        GUI.Toggle(new Rect(GetPix(5),
                                             GetPix(530),
                                             GetPix(70),
                                             GetPix(20)),
                                   zFlg[selectMaidIndex],
                                   "ボイス",
                                   style4);
                voice2[selectMaidIndex] =
                        GUI.Toggle(new Rect(GetPix(70),
                                             GetPix(530),
                                             GetPix(70),
                                             GetPix(20)),
                                   xFlg[selectMaidIndex],
                                   "Hボイス",
                                   style4);
                GUI.enabled = !poseCombo.isClickedComboButton && !poseGroupCombo.isClickedComboButton && !itemCombo.isClickedComboButton;
                GUI.DrawTexture(new Rect(GetPix(5), GetPix(402), GetPix(160), 2f), line1);
                GUI.DrawTexture(new Rect(GetPix(5), GetPix(402), GetPix(160), 1f), line2);
                isIK[selectMaidIndex] =
                        GUI.Toggle(new Rect(GetPix(5),
                                             GetPix(411),
                                             GetPix(30),
                                             GetPix(20)),
                                   isIK[selectMaidIndex],
                                   "IK",
                                   style4);
                if (!isLock[selectMaidIndex])
                {
                    GUI.enabled = false;
                }

                isLock[selectMaidIndex] =
                        GUI.Toggle(new Rect(GetPix(45),
                                             GetPix(411),
                                             GetPix(40),
                                             GetPix(20)),
                                   isLock[selectMaidIndex],
                                   "解除",
                                   style4);
                GUI.enabled = !poseCombo.isClickedComboButton && !poseGroupCombo.isClickedComboButton && !itemCombo.isClickedComboButton;
                if (!isIK[selectMaidIndex])
                {
                    GUI.enabled = false;
                }

                isBone[selectMaidIndex] =
                        GUI.Toggle(new Rect(GetPix(100),
                                             GetPix(411),
                                             GetPix(60),
                                             GetPix(20)),
                                   isBone[selectMaidIndex],
                                   "ボーン",
                                   style4);
                GUI.enabled = !poseCombo.isClickedComboButton && !poseGroupCombo.isClickedComboButton;
                if (isBone[selectMaidIndex] != isBoneN[selectMaidIndex])
                {
                    isBoneN[selectMaidIndex] = isBone[selectMaidIndex];
                    isChange[selectMaidIndex] = true;
                }

                if (!isLock[selectMaidIndex] && unLockFlg != isLock[selectMaidIndex])
                {
                    string[] strArray2 = poseArray[poseIndex[selectMaidIndex]].Split(',');
                    isStop[selectMaidIndex] = false;
                    poseCount[selectMaidIndex] = 20;
                    if (strArray2[0].Contains("_momi") || strArray2[0].Contains("paizuri_"))
                    {
                        maid.body0.MuneYureL(0.0f);
                        maid.body0.MuneYureR(0.0f);
                    }
                    else
                    {
                        maid.body0.MuneYureL(1f);
                        maid.body0.MuneYureR(1f);
                    }

                    if (strArray2[0].Contains("MultipleMaidsPose"))
                    {
                        string path = strArray2[0].Split('/')[1];
                        byte[] numArray = new byte[0];
                        try
                        {
                            using (FileStream fileStream = new FileStream(path, FileMode.Open, FileAccess.Read))
                            {
                                numArray = new byte[fileStream.Length];
                                fileStream.Read(numArray, 0, numArray.Length);
                            }
                        }
                        catch { }

                        if (0 < numArray.Length)
                        {
                            long hashCode = Path.GetFileName(path).GetHashCode();
                            maid.body0.CrossFade(hashCode.ToString(), numArray, false, false, false, 0.0f, 1f);
                            Maid.AutoTwist[] autoTwistArray = new Maid.AutoTwist[6]
                            {
                                    Maid.AutoTwist.ShoulderL, Maid.AutoTwist.ShoulderR, Maid.AutoTwist.WristL, Maid.AutoTwist.WristR,
                                    Maid.AutoTwist.ThighL, Maid.AutoTwist.ThighR
                            };
                            foreach (Maid.AutoTwist f_eType in autoTwistArray)
                            {
                                maid.SetAutoTwist(f_eType, true);
                            }
                        }
                    }
                    else if (strArray2[0].StartsWith("p") && int.TryParse(strArray2[0].Substring(1), out result))
                    {
                        loadPose[selectMaidIndex] = strArray2[0];
                    }
                    else if (!strArray2[0].StartsWith("dance_"))
                    {
                        maidArray[selectMaidIndex].CrossFade(strArray2[0] + ".anm", false, true, false, 0.0f, 1f);
                    }
                    else
                    {
                        if (!maid.body0.m_Bones.GetComponent<Animation>().GetClip(strArray2[0] + ".anm"))
                        {
                            maid.body0.LoadAnime(strArray2[0] + ".anm", GameUty.FileSystem, strArray2[0] + ".anm", false, false);
                        }

                        maid.body0.m_Bones.GetComponent<Animation>().Play(strArray2[0] + ".anm");
                    }

                    if (strArray2.Length > 1)
                    {
                        maid.body0.m_Bones.GetComponent<Animation>()[strArray2[0] + ".anm"].time = float.Parse(strArray2[1]);
                        isDanceStop = true;
                        if (strArray2.Length > 2)
                        {
                            transform = CMT.SearchObjName(maidArray[selectMaidIndex].body0.m_Bones.transform, "Bip01", true);
                            isPoseIti[selectMaidIndex] = true;
                            poseIti[selectMaidIndex] = maidArray[selectMaidIndex].transform.position;
                            maidArray[selectMaidIndex].transform.position = new Vector3(100f, 100f, 100f);
                        }
                    }

                    mHandL[selectMaidIndex].initFlg = false;
                    mHandR[selectMaidIndex].initFlg = false;
                    mFootL[selectMaidIndex].initFlg = false;
                    mFootR[selectMaidIndex].initFlg = false;
                    pHandL[selectMaidIndex] = 0;
                    pHandR[selectMaidIndex] = 0;
                    hanten[selectMaidIndex] = false;
                    hantenn[selectMaidIndex] = false;
                    muneIKL[selectMaidIndex] = false;
                    muneIKR[selectMaidIndex] = false;
                    maid.body0.jbMuneL.enabled = true;
                    maid.body0.jbMuneR.enabled = true;
                    if (!GameMain.Instance.VRMode)
                    {
                        maidArray[selectMaidIndex].body0.quaDefEyeL.eulerAngles = eyeL[(int)selectList[selectMaidIndex]];
                        maidArray[selectMaidIndex].body0.quaDefEyeR.eulerAngles = eyeR[(int)selectList[selectMaidIndex]];
                    }
                }

                unLockFlg = isLock[selectMaidIndex];
                GUI.enabled = !poseCombo.isClickedComboButton && !poseGroupCombo.isClickedComboButton && !itemCombo.isClickedComboButton;
                if (!isIK[selectMaidIndex])
                {
                    GUI.enabled = false;
                }

                hanten[selectMaidIndex] =
                        GUI.Toggle(new Rect(GetPix(5),
                                             GetPix(479),
                                             GetPix(70),
                                             GetPix(20)),
                                   hanten[selectMaidIndex],
                                   "左右反転",
                                   style4);
                bool flag1 = GUI.Toggle(new Rect(GetPix(80),
                                                  GetPix(479),
                                                  GetPix(100),
                                                  GetPix(20)),
                                        kotei[selectMaidIndex],
                                        "スカート固定",
                                        style4);
                if (kotei[selectMaidIndex] != flag1)
                {
                    kotei[selectMaidIndex] = flag1;
                    if (flag1)
                    {
                        SkirtListArray[selectMaidIndex] = new DynamicSkirtBone[100];
                        for (int index2 = 0; index2 < maid.body0.goSlot.Count; ++index2)
                        {
                            DynamicSkirtBone fieldValue =
                                    GetFieldValue<BoneHair3, DynamicSkirtBone>(maid.body0.goSlot[index2].bonehair3, "m_SkirtBone");
                            SkirtListArray[selectMaidIndex][index2] = fieldValue;
                            SetFieldValue8<BoneHair3, DynamicSkirtBone>(maid.body0.goSlot[index2].bonehair3,
                                                                        "m_SkirtBone",
                                                                         null);
                        }
                    }
                    else
                    {
                        for (int index2 = 0; index2 < maid.body0.goSlot.Count; ++index2)
                        {
                            SetFieldValue8<BoneHair3, DynamicSkirtBone>(maid.body0.goSlot[index2].bonehair3,
                                                                        "m_SkirtBone",
                                                                        SkirtListArray[selectMaidIndex][index2]);
                        }
                    }
                }

                GUI.Label(new Rect(GetPix(29), GetPix(433), GetPix(100), GetPix(25)),
                          "右手",
                          style1);
                GUI.Label(new Rect(GetPix(109), GetPix(433), GetPix(100), GetPix(25)),
                          "左手",
                          style1);
                string text = "未選択";
                if (copyIndex > 0)
                {
                    text = copyIndex.ToString() + ":" + maidArray[copyIndex - 1].status.firstName;
                }

                if (maidCnt <= 1)
                {
                    GUI.enabled = false;
                }

                GUI.Label(new Rect(GetPix(8), GetPix(505), GetPix(100), GetPix(25)),
                          "コピー",
                          style1);
                GUI.Label(new Rect(GetPix(70), GetPix(505), GetPix(100), GetPix(25)),
                          text,
                          style1);
                GUI.enabled = !poseCombo.isClickedComboButton && !poseGroupCombo.isClickedComboButton && !itemCombo.isClickedComboButton
                              && isIK[selectMaidIndex];
                style1.fontSize = GetPix(13);
                style1.alignment = TextAnchor.UpperCenter;
                GUI.Label(new Rect(GetPix(-10), GetPix(449), GetPix(100), GetPix(25)),
                          pHandR[selectMaidIndex].ToString(),
                          style1);
                GUI.Label(new Rect(GetPix(70), GetPix(449), GetPix(100), GetPix(25)),
                          pHandL[selectMaidIndex].ToString(),
                          style1);
                style1.fontSize = GetPix(11);
                style1.alignment = TextAnchor.UpperLeft;
                if (GUI.Button(new Rect(GetPix(5), GetPix(448), GetPix(23), GetPix(23)),
                               "＜",
                               style3))
                {
                    --pHandR[selectMaidIndex];
                    if (pHandR[selectMaidIndex] < 1)
                    {
                        pHandR[selectMaidIndex] = fingerRArray.GetLength(0);
                    }

                    for (int index2 = 0; index2 < 20; ++index2)
                    {
                        string[] strArray2 = fingerRArray[pHandR[selectMaidIndex] - 1, index2].Split(',');
                        Finger[selectMaidIndex, index2 + 20].localEulerAngles =
                                new Vector3(float.Parse(strArray2[0]), float.Parse(strArray2[1]), float.Parse(strArray2[2]));
                    }

                    isStop[selectMaidIndex] = true;
                    isLock[selectMaidIndex] = true;
                    for (int index2 = 0; index2 < 10; ++index2)
                    {
                        if ((index2 == 0 || index2 == 5) && mFinger[selectMaidIndex, index2 * 3])
                        {
                            mFinger[selectMaidIndex, index2 * 3].reset = true;
                        }
                    }
                }

                if (GUI.Button(new Rect(GetPix(55),
                                         GetPix(448),
                                         GetPix(23),
                                         GetPix(23)),
                               "＞",
                               style3))
                {
                    ++pHandR[selectMaidIndex];
                    if (pHandR[selectMaidIndex] > fingerRArray.GetLength(0))
                    {
                        pHandR[selectMaidIndex] = 1;
                    }

                    for (int index2 = 0; index2 < 20; ++index2)
                    {
                        string[] strArray2 = fingerRArray[pHandR[selectMaidIndex] - 1, index2].Split(',');
                        Finger[selectMaidIndex, index2 + 20].localEulerAngles =
                                new Vector3(float.Parse(strArray2[0]), float.Parse(strArray2[1]), float.Parse(strArray2[2]));
                    }

                    isStop[selectMaidIndex] = true;
                    isLock[selectMaidIndex] = true;
                    for (int index2 = 0; index2 < 10; ++index2)
                    {
                        if ((index2 == 0 || index2 == 5) && mFinger[selectMaidIndex, index2 * 3])
                        {
                            mFinger[selectMaidIndex, index2 * 3].reset = true;
                        }
                    }
                }

                if (GUI.Button(new Rect(GetPix(85),
                                         GetPix(448),
                                         GetPix(23),
                                         GetPix(23)),
                               "＜",
                               style3))
                {
                    --pHandL[selectMaidIndex];
                    if (pHandL[selectMaidIndex] < 1)
                    {
                        pHandL[selectMaidIndex] = fingerLArray.GetLength(0);
                    }

                    for (int index2 = 0; index2 < 20; ++index2)
                    {
                        string[] strArray2 = fingerLArray[pHandL[selectMaidIndex] - 1, index2].Split(',');
                        Finger[selectMaidIndex, index2].localEulerAngles =
                                new Vector3(float.Parse(strArray2[0]), float.Parse(strArray2[1]), float.Parse(strArray2[2]));
                    }

                    isStop[selectMaidIndex] = true;
                    isLock[selectMaidIndex] = true;
                }

                if (GUI.Button(new Rect(GetPix(135),
                                         GetPix(448),
                                         GetPix(23),
                                         GetPix(23)),
                               "＞",
                               style3))
                {
                    ++pHandL[selectMaidIndex];
                    if (pHandL[selectMaidIndex] > fingerRArray.GetLength(0))
                    {
                        pHandL[selectMaidIndex] = 1;
                    }

                    for (int index2 = 0; index2 < 20; ++index2)
                    {
                        string[] strArray2 = fingerLArray[pHandL[selectMaidIndex] - 1, index2].Split(',');
                        Finger[selectMaidIndex, index2].localEulerAngles =
                                new Vector3(float.Parse(strArray2[0]), float.Parse(strArray2[1]), float.Parse(strArray2[2]));
                    }

                    isStop[selectMaidIndex] = true;
                    isLock[selectMaidIndex] = true;
                }

                if (maidCnt <= 1)
                {
                    GUI.enabled = false;
                }

                if (GUI.Button(new Rect(GetPix(45),
                                         GetPix(504),
                                         GetPix(22),
                                         GetPix(20)),
                               "＞",
                               style3))
                {
                    ++copyIndex;
                    if (copyIndex - 1 == selectMaidIndex)
                    {
                        ++copyIndex;
                    }

                    if (copyIndex > maidCnt)
                    {
                        copyIndex = 0;
                    }
                }

                if (isCopy)
                {
                    isCopy = false;
                    CopyIK2(maidArray[selectMaidIndex], selectMaidIndex, maidArray[copyIndex - 1], copyIndex - 1);
                }

                if (copyIndex == 0)
                {
                    GUI.enabled = false;
                }

                if (GUI.Button(new Rect(GetPix(123),
                                         GetPix(504),
                                         GetPix(35),
                                         GetPix(20)),
                               "決定",
                               style3))
                {
                    CopyIK(maidArray[selectMaidIndex], selectMaidIndex, maidArray[copyIndex - 1], copyIndex - 1);
                    isCopy = true;
                    pHandL[selectMaidIndex] = pHandL[copyIndex - 1];
                    pHandR[selectMaidIndex] = pHandR[copyIndex - 1];
                    hanten[selectMaidIndex] = hanten[copyIndex - 1];
                    hantenn[selectMaidIndex] = hantenn[copyIndex - 1];
                }

                GUI.enabled = true;
                if (poseCombo.isClickedComboButton || poseGroupCombo.isClickedComboButton)
                {
                    GUI.enabled = false;
                }

                GUI.EndScrollView();

                itemIndex2[selectMaidIndex] =
                        itemCombo.List(new Rect(GetPix(35),
                                                 GetPix(215),
                                                 GetPix(95),
                                                 GetPix(23)),
                                       itemComboList[itemIndex[selectMaidIndex]].text,
                                       itemComboList,
                                       buttonStyle1,
                                        "box",
                                       listStyle3);
                GUI.enabled = true;
                if (poseGroupCombo.isClickedComboButton || isLock[selectMaidIndex])
                {
                    GUI.enabled = false;
                }

                poseCombo.List(new Rect(GetPix(35),
                                         GetPix(125),
                                         GetPix(95),
                                         GetPix(23)),
                               poseComboList[index6].text,
                               poseComboList,
                               buttonStyle1,
                                "box",
                               listStyle2);
                if (!isLock[selectMaidIndex])
                {
                    GUI.enabled = true;
                }

                int index7 = -1;
                for (int index2 = 0; index2 < groupList.Count; ++index2)
                {
                    if (poseIndex[selectMaidIndex] < (int)groupList[index2])
                    {
                        index7 = index2;
                        break;
                    }
                }

                if (index7 < 0)
                {
                    index7 = groupList.Count;
                }

                if (GUI.Button(new Rect(GetPix(5), GetPix(95), GetPix(23), GetPix(23)),
                               "＜",
                               style3))
                {
                    isPoseInit = true;
                    if (!isLock[selectMaidIndex])
                    {
                        for (int index2 = 0; index2 < groupList.Count; ++index2)
                        {
                            if (index2 == 0 && poseIndex[selectMaidIndex] <= (int)groupList[index2])
                            {
                                poseIndex[selectMaidIndex] = poseIndex[selectMaidIndex] != 0 ? 0 : (int)groupList[groupList.Count - 1];
                                break;
                            }

                            if (index2 > 0 && poseIndex[selectMaidIndex] > (int)groupList[index2 - 1]
                                           && poseIndex[selectMaidIndex] <= (int)groupList[index2])
                            {
                                poseIndex[selectMaidIndex] = (int)groupList[index2 - 1];
                                break;
                            }
                        }

                        if (poseIndex[selectMaidIndex] > (int)groupList[groupList.Count - 1])
                        {
                            poseIndex[selectMaidIndex] = (int)groupList[groupList.Count - 1];
                        }

                        if (maid && maid.Visible)
                        {
                            string[] strArray2 = poseArray[poseIndex[selectMaidIndex]].Split(',');
                            isStop[selectMaidIndex] = false;
                            poseCount[selectMaidIndex] = 20;
                            if (strArray2[0].Contains("_momi") || strArray2[0].Contains("paizuri_"))
                            {
                                maid.body0.MuneYureL(0.0f);
                                maid.body0.MuneYureR(0.0f);
                            }
                            else
                            {
                                maid.body0.MuneYureL(1f);
                                maid.body0.MuneYureR(1f);
                            }

                            if (strArray2[0].Contains("MultipleMaidsPose"))
                            {
                                string path = strArray2[0].Split('/')[1];
                                byte[] numArray = new byte[0];
                                try
                                {
                                    using (FileStream fileStream = new FileStream(path, FileMode.Open, FileAccess.Read))
                                    {
                                        numArray = new byte[fileStream.Length];
                                        fileStream.Read(numArray, 0, numArray.Length);
                                    }
                                }
                                catch { }

                                if (0 < numArray.Length)
                                {
                                    long hashCode = Path.GetFileName(path).GetHashCode();
                                    maid.body0.CrossFade(hashCode.ToString(), numArray, false, false, false, 0.0f, 1f);
                                    Maid.AutoTwist[] autoTwistArray = new Maid.AutoTwist[6]
                                    {
                                            Maid.AutoTwist.ShoulderL, Maid.AutoTwist.ShoulderR, Maid.AutoTwist.WristL,
                                            Maid.AutoTwist.WristR, Maid.AutoTwist.ThighL, Maid.AutoTwist.ThighR
                                    };
                                    foreach (Maid.AutoTwist f_eType in autoTwistArray)
                                    {
                                        maid.SetAutoTwist(f_eType, true);
                                    }
                                }
                            }
                            else if (strArray2[0].StartsWith("p") && int.TryParse(strArray2[0].Substring(1), out result))
                            {
                                loadPose[selectMaidIndex] = strArray2[0];
                            }
                            else if (!strArray2[0].StartsWith("dance_"))
                            {
                                maidArray[selectMaidIndex].CrossFade(strArray2[0] + ".anm", false, true, false, 0.0f, 1f);
                            }
                            else
                            {
                                if (!maid.body0.m_Bones.GetComponent<Animation>().GetClip(strArray2[0] + ".anm"))
                                {
                                    maid.body0.LoadAnime(strArray2[0] + ".anm", GameUty.FileSystem, strArray2[0] + ".anm", false, false);
                                }

                                maid.body0.m_Bones.GetComponent<Animation>().Play(strArray2[0] + ".anm");
                            }

                            if (strArray2.Length > 1)
                            {
                                maid.body0.m_Bones.GetComponent<Animation>()[strArray2[0] + ".anm"].time = float.Parse(strArray2[1]);
                                isDanceStop = true;
                                if (strArray2.Length > 2)
                                {
                                    transform = CMT.SearchObjName(maidArray[selectMaidIndex].body0.m_Bones.transform, "Bip01", true);
                                    isPoseIti[selectMaidIndex] = true;
                                    poseIti[selectMaidIndex] = maidArray[selectMaidIndex].transform.position;
                                    maidArray[selectMaidIndex].transform.position = new Vector3(100f, 100f, 100f);
                                }
                            }
                        }
                    }

                    int index3 = -1;
                    for (int index2 = 0; index2 < groupList.Count; ++index2)
                    {
                        if (poseIndex[selectMaidIndex] < (int)groupList[index2])
                        {
                            index3 = index2;
                            break;
                        }
                    }

                    int length2 = (int)groupList[0];
                    int num2 = 0;
                    if (index3 > 0)
                    {
                        length2 = (int)groupList[index3] - (int)groupList[index3 - 1];
                        num2 = (int)groupList[index3 - 1];
                    }

                    if (index3 < 0)
                    {
                        index3 = groupList.Count;
                        length2 = poseArray.Length - (int)groupList[index3 - 1];
                        num2 = (int)groupList[index3 - 1];
                    }

                    poseComboList = new GUIContent[length2];
                    int index4 = 0;
                    for (int index2 = num2; index2 < num2 + length2; ++index2)
                    {
                        bool flag2 = false;
                        foreach (IniKey key in Preferences["pose"].Keys)
                        {
                            if (poseArray[index2] == key.Key)
                            {
                                IniKey iniKey = Preferences["pose"][key.Key];
                                if (iniKey.Value != null && iniKey.Value.ToString() != "" && iniKey.Value.ToString() != "del")
                                {
                                    poseComboList[index4] =
                                            new GUIContent((index4 + 1).ToString() + ":" + iniKey.Value.Split('_')[0]
                                                           + "　　　　　　　　　　　　　　　　　　　　" + key.Key);
                                    flag2 = true;
                                }
                            }
                        }

                        if (!flag2)
                        {
                            poseComboList[index4] = new GUIContent((index4 + 1).ToString() + ":" + poseArray[index2]);
                        }

                        ++index4;
                    }

                    poseCombo.scrollPos = new Vector2(0.0f, 0.0f);
                    poseGroupCombo.selectedItemIndex = index3;
                    poseCombo.selectedItemIndex = 0;
                }

                if (GUI.Button(new Rect(GetPix(135),
                                         GetPix(95),
                                         GetPix(23),
                                         GetPix(23)),
                               "＞",
                               style3))
                {
                    isPoseInit = true;
                    if (!isLock[selectMaidIndex])
                    {
                        int num2 = poseIndex[selectMaidIndex];
                        for (int index2 = 0; index2 < groupList.Count; ++index2)
                        {
                            if (poseIndex[selectMaidIndex] < (int)groupList[index2])
                            {
                                poseIndex[selectMaidIndex] = (int)groupList[index2];
                                break;
                            }
                        }

                        if (num2 == poseIndex[selectMaidIndex] && poseIndex[selectMaidIndex] >= (int)groupList[groupList.Count - 1])
                        {
                            poseIndex[selectMaidIndex] = 0;
                        }

                        if (maid && maid.Visible)
                        {
                            string[] strArray2 = poseArray[poseIndex[selectMaidIndex]].Split(',');
                            isStop[selectMaidIndex] = false;
                            poseCount[selectMaidIndex] = 20;
                            if (strArray2[0].Contains("_momi") || strArray2[0].Contains("paizuri_"))
                            {
                                maid.body0.MuneYureL(0.0f);
                                maid.body0.MuneYureR(0.0f);
                            }
                            else
                            {
                                maid.body0.MuneYureL(1f);
                                maid.body0.MuneYureR(1f);
                            }

                            if (strArray2[0].Contains("MultipleMaidsPose"))
                            {
                                string path = strArray2[0].Split('/')[1];
                                byte[] numArray = new byte[0];
                                try
                                {
                                    using (FileStream fileStream = new FileStream(path, FileMode.Open, FileAccess.Read))
                                    {
                                        numArray = new byte[fileStream.Length];
                                        fileStream.Read(numArray, 0, numArray.Length);
                                    }
                                }
                                catch { }

                                if (0 < numArray.Length)
                                {
                                    long hashCode = Path.GetFileName(path).GetHashCode();
                                    maid.body0.CrossFade(hashCode.ToString(), numArray, false, false, false, 0.0f, 1f);
                                    Maid.AutoTwist[] autoTwistArray = new Maid.AutoTwist[6]
                                    {
                                            Maid.AutoTwist.ShoulderL, Maid.AutoTwist.ShoulderR, Maid.AutoTwist.WristL,
                                            Maid.AutoTwist.WristR, Maid.AutoTwist.ThighL, Maid.AutoTwist.ThighR
                                    };
                                    foreach (Maid.AutoTwist f_eType in autoTwistArray)
                                    {
                                        maid.SetAutoTwist(f_eType, true);
                                    }
                                }
                            }
                            else if (strArray2[0].StartsWith("p") && int.TryParse(strArray2[0].Substring(1), out result))
                            {
                                loadPose[selectMaidIndex] = strArray2[0];
                            }
                            else if (!strArray2[0].StartsWith("dance_"))
                            {
                                maidArray[selectMaidIndex].CrossFade(strArray2[0] + ".anm", false, true, false, 0.0f, 1f);
                            }
                            else
                            {
                                if (!maid.body0.m_Bones.GetComponent<Animation>().GetClip(strArray2[0] + ".anm"))
                                {
                                    maid.body0.LoadAnime(strArray2[0] + ".anm", GameUty.FileSystem, strArray2[0] + ".anm", false, false);
                                }

                                maid.body0.m_Bones.GetComponent<Animation>().Play(strArray2[0] + ".anm");
                            }

                            if (strArray2.Length > 1)
                            {
                                maid.body0.m_Bones.GetComponent<Animation>()[strArray2[0] + ".anm"].time = float.Parse(strArray2[1]);
                                isDanceStop = true;
                                if (strArray2.Length > 2)
                                {
                                    transform = CMT.SearchObjName(maidArray[selectMaidIndex].body0.m_Bones.transform, "Bip01", true);
                                    isPoseIti[selectMaidIndex] = true;
                                    poseIti[selectMaidIndex] = maidArray[selectMaidIndex].transform.position;
                                    maidArray[selectMaidIndex].transform.position = new Vector3(100f, 100f, 100f);
                                }
                            }
                        }
                    }

                    int index3 = -1;
                    for (int index2 = 0; index2 < groupList.Count; ++index2)
                    {
                        if (poseIndex[selectMaidIndex] < (int)groupList[index2])
                        {
                            index3 = index2;
                            break;
                        }
                    }

                    int length2 = (int)groupList[0];
                    int num3 = 0;
                    if (index3 > 0)
                    {
                        length2 = (int)groupList[index3] - (int)groupList[index3 - 1];
                        num3 = (int)groupList[index3 - 1];
                    }

                    if (index3 < 0)
                    {
                        index3 = groupList.Count;
                        length2 = poseArray.Length - (int)groupList[index3 - 1];
                        num3 = (int)groupList[index3 - 1];
                    }

                    poseComboList = new GUIContent[length2];
                    int index4 = 0;
                    for (int index2 = num3; index2 < num3 + length2; ++index2)
                    {
                        bool flag2 = false;
                        foreach (IniKey key in Preferences["pose"].Keys)
                        {
                            if (poseArray[index2] == key.Key)
                            {
                                IniKey iniKey = Preferences["pose"][key.Key];
                                if (iniKey.Value != null && iniKey.Value.ToString() != "" && iniKey.Value.ToString() != "del")
                                {
                                    poseComboList[index4] =
                                            new GUIContent((index4 + 1).ToString() + ":" + iniKey.Value.Split('_')[0]
                                                           + "　　　　　　　　　　　　　　　　　　　　" + key.Key);
                                    flag2 = true;
                                }
                            }
                        }

                        if (!flag2)
                        {
                            poseComboList[index4] = new GUIContent((index4 + 1).ToString() + ":" + poseArray[index2]);
                        }

                        ++index4;
                    }

                    poseCombo.scrollPos = new Vector2(0.0f, 0.0f);
                    poseGroupCombo.selectedItemIndex = index3;
                    poseCombo.selectedItemIndex = 0;
                }

                poseGroupIndex =
                        poseGroupCombo.List(new Rect(GetPix(35),
                                                      GetPix(95),
                                                      GetPix(95),
                                                      GetPix(23)),
                                            poseGroupComboList[index7].text,
                                            poseGroupComboList,
                                            buttonStyle2,
                                             "box",
                                            listStyle4);
                if (poseGroupCombo.isClickedComboButton)
                {
                    isCombo2 = true;
                }
                else if (isCombo2)
                {
                    isCombo2 = false;
                    isPoseInit = true;
                    poseIndex[selectMaidIndex] = poseGroupIndex <= 0 ? 0 : (int)groupList[poseGroupIndex - 1];
                    if (!isLock[selectMaidIndex] && maid && maid.Visible)
                    {
                        string[] strArray2 = poseArray[poseIndex[selectMaidIndex]].Split(',');
                        isStop[selectMaidIndex] = false;
                        poseCount[selectMaidIndex] = 20;
                        if (strArray2[0].Contains("_momi") || strArray2[0].Contains("paizuri_"))
                        {
                            maid.body0.MuneYureL(0.0f);
                            maid.body0.MuneYureR(0.0f);
                        }
                        else
                        {
                            maid.body0.MuneYureL(1f);
                            maid.body0.MuneYureR(1f);
                        }

                        if (strArray2[0].Contains("MultipleMaidsPose"))
                        {
                            string path = strArray2[0].Split('/')[1];
                            byte[] numArray = new byte[0];
                            try
                            {
                                using (FileStream fileStream = new FileStream(path, FileMode.Open, FileAccess.Read))
                                {
                                    numArray = new byte[fileStream.Length];
                                    fileStream.Read(numArray, 0, numArray.Length);
                                }
                            }
                            catch { }

                            if (0 < numArray.Length)
                            {
                                long hashCode = Path.GetFileName(path).GetHashCode();
                                maid.body0.CrossFade(hashCode.ToString(), numArray, false, false, false, 0.0f, 1f);
                                Maid.AutoTwist[] autoTwistArray = new Maid.AutoTwist[6]
                                {
                                        Maid.AutoTwist.ShoulderL, Maid.AutoTwist.ShoulderR, Maid.AutoTwist.WristL, Maid.AutoTwist.WristR,
                                        Maid.AutoTwist.ThighL, Maid.AutoTwist.ThighR
                                };
                                foreach (Maid.AutoTwist f_eType in autoTwistArray)
                                {
                                    maid.SetAutoTwist(f_eType, true);
                                }
                            }
                        }
                        else if (strArray2[0].StartsWith("p") && int.TryParse(strArray2[0].Substring(1), out result))
                        {
                            loadPose[selectMaidIndex] = strArray2[0];
                        }
                        else if (!strArray2[0].StartsWith("dance_"))
                        {
                            maidArray[selectMaidIndex].CrossFade(strArray2[0] + ".anm", false, true, false, 0.0f, 1f);
                        }
                        else
                        {
                            if (!maid.body0.m_Bones.GetComponent<Animation>().GetClip(strArray2[0] + ".anm"))
                            {
                                maid.body0.LoadAnime(strArray2[0] + ".anm", GameUty.FileSystem, strArray2[0] + ".anm", false, false);
                            }

                            maid.body0.m_Bones.GetComponent<Animation>().Play(strArray2[0] + ".anm");
                        }

                        if (strArray2.Length > 1)
                        {
                            maid.body0.m_Bones.GetComponent<Animation>()[strArray2[0] + ".anm"].time = float.Parse(strArray2[1]);
                            isDanceStop = true;
                            if (strArray2.Length > 2)
                            {
                                transform = CMT.SearchObjName(maidArray[selectMaidIndex].body0.m_Bones.transform, "Bip01", true);
                                isPoseIti[selectMaidIndex] = true;
                                poseIti[selectMaidIndex] = maidArray[selectMaidIndex].transform.position;
                                maidArray[selectMaidIndex].transform.position = new Vector3(100f, 100f, 100f);
                            }
                        }
                    }

                    int index2 = -1;
                    for (int index3 = 0; index3 < groupList.Count; ++index3)
                    {
                        if (poseIndex[selectMaidIndex] < (int)groupList[index3])
                        {
                            index2 = index3;
                            break;
                        }
                    }

                    int length2 = (int)groupList[0];
                    int num2 = 0;
                    if (index2 > 0)
                    {
                        length2 = (int)groupList[index2] - (int)groupList[index2 - 1];
                        num2 = (int)groupList[index2 - 1];
                    }

                    if (index2 < 0)
                    {
                        index2 = groupList.Count;
                        length2 = poseArray.Length - (int)groupList[index2 - 1];
                        num2 = (int)groupList[index2 - 1];
                    }

                    poseComboList = new GUIContent[length2];
                    int index4 = 0;
                    for (int index3 = num2; index3 < num2 + length2; ++index3)
                    {
                        bool flag2 = false;
                        foreach (IniKey key in Preferences["pose"].Keys)
                        {
                            if (poseArray[index3] == key.Key)
                            {
                                IniKey iniKey = Preferences["pose"][key.Key];
                                if (iniKey.Value != null && iniKey.Value.ToString() != "" && iniKey.Value.ToString() != "del")
                                {
                                    poseComboList[index4] =
                                            new GUIContent((index4 + 1).ToString() + ":" + iniKey.Value.Split('_')[0]
                                                           + "　　　　　　　　　　　　　　　　　　　　" + key.Key);
                                    flag2 = true;
                                }
                            }
                        }

                        if (!flag2)
                        {
                            poseComboList[index4] = new GUIContent((index4 + 1).ToString() + ":" + poseArray[index3]);
                        }

                        ++index4;
                    }

                    poseCombo.scrollPos = new Vector2(0.0f, 0.0f);
                    poseGroupCombo.selectedItemIndex = index2;
                    poseCombo.selectedItemIndex = 0;
                }

                if (poseCombo.isClickedComboButton)
                {
                    isCombo = true;
                }
                else if (isCombo)
                {
                    isCombo = false;
                    isPoseInit = true;
                    poseIndex[selectMaidIndex] = poseGroupIndex <= 0
                                                         ? poseCombo.selectedItemIndex
                                                         : (int)groupList[poseGroupIndex - 1] + poseCombo.selectedItemIndex;
                    if (poseIndex[selectMaidIndex] == poseArray.Length)
                    {
                        poseIndex[selectMaidIndex] = 0;
                    }

                    if (!isLock[selectMaidIndex] && maid && maid.Visible)
                    {
                        string[] strArray2 = poseArray[poseIndex[selectMaidIndex]].Split(',');
                        isStop[selectMaidIndex] = false;
                        poseCount[selectMaidIndex] = 20;
                        if (strArray2[0].Contains("_momi") || strArray2[0].Contains("paizuri_"))
                        {
                            maid.body0.MuneYureL(0.0f);
                            maid.body0.MuneYureR(0.0f);
                        }
                        else
                        {
                            maid.body0.MuneYureL(1f);
                            maid.body0.MuneYureR(1f);
                        }

                        if (strArray2[0].Contains("MultipleMaidsPose"))
                        {
                            string path = strArray2[0].Split('/')[1];
                            byte[] numArray = new byte[0];
                            try
                            {
                                using (FileStream fileStream = new FileStream(path, FileMode.Open, FileAccess.Read))
                                {
                                    numArray = new byte[fileStream.Length];
                                    fileStream.Read(numArray, 0, numArray.Length);
                                }
                            }
                            catch { }

                            if (0 < numArray.Length)
                            {
                                long hashCode = Path.GetFileName(path).GetHashCode();
                                maid.body0.CrossFade(hashCode.ToString(), numArray, false, false, false, 0.0f, 1f);
                                Maid.AutoTwist[] autoTwistArray = new Maid.AutoTwist[6]
                                {
                                        Maid.AutoTwist.ShoulderL, Maid.AutoTwist.ShoulderR, Maid.AutoTwist.WristL, Maid.AutoTwist.WristR,
                                        Maid.AutoTwist.ThighL, Maid.AutoTwist.ThighR
                                };
                                foreach (Maid.AutoTwist f_eType in autoTwistArray)
                                {
                                    maid.SetAutoTwist(f_eType, true);
                                }
                            }
                        }
                        else if (strArray2[0].StartsWith("p") && int.TryParse(strArray2[0].Substring(1), out result))
                        {
                            loadPose[selectMaidIndex] = strArray2[0];
                        }
                        else if (!strArray2[0].StartsWith("dance_"))
                        {
                            maidArray[selectMaidIndex].CrossFade(strArray2[0] + ".anm", false, true, false, 0.0f, 1f);
                        }
                        else
                        {
                            if (!maid.body0.m_Bones.GetComponent<Animation>().GetClip(strArray2[0] + ".anm"))
                            {
                                maid.body0.LoadAnime(strArray2[0] + ".anm", GameUty.FileSystem, strArray2[0] + ".anm", false, false);
                            }

                            maid.body0.m_Bones.GetComponent<Animation>().Play(strArray2[0] + ".anm");
                        }

                        if (strArray2.Length > 1)
                        {
                            maid.body0.m_Bones.GetComponent<Animation>()[strArray2[0] + ".anm"].time = float.Parse(strArray2[1]);
                            isDanceStop = true;
                            if (strArray2.Length > 2)
                            {
                                transform = CMT.SearchObjName(maidArray[selectMaidIndex].body0.m_Bones.transform, "Bip01", true);
                                isPoseIti[selectMaidIndex] = true;
                                poseIti[selectMaidIndex] = maidArray[selectMaidIndex].transform.position;
                                maidArray[selectMaidIndex].transform.position = new Vector3(100f, 100f, 100f);
                            }
                        }
                    }
                }

                if (itemCombo.isClickedComboButton)
                {
                    isCombo3 = true;
                }
                else if (isCombo3)
                {
                    isCombo3 = false;
                    strArray1 = new string[2];
                    string[] strArray2 = itemArray[itemIndex2[selectMaidIndex]].Split(',');
                    if (itemIndex2[selectMaidIndex] > 13)
                    {
                        strArray2 = itemArray[itemIndex2[selectMaidIndex] + 1].Split(',');
                    }

                    maid.DelProp(MPN.handitem, true);
                    bool flag2 = false;
                    if (itemIndex2[selectMaidIndex] == 0)
                    {
                        maid.DelProp(MPN.accvag, true);
                        maid.DelProp(MPN.accanl, true);
                    }

                    if (itemIndex2[selectMaidIndex] == 12 || itemIndex2[selectMaidIndex] == 13)
                    {
                        flag2 = true;
                    }

                    if (!flag2)
                    {
                        maid.DelProp(MPN.kousoku_upper, true);
                        maid.DelProp(MPN.kousoku_lower, true);
                    }

                    if (strArray2[0] != "")
                    {
                        maid.SetProp(strArray2[0], strArray2[1], 0, true, false);
                    }

                    if (itemIndex2[selectMaidIndex] == 12)
                    {
                        string[] strArray3 = itemArray[itemIndex2[selectMaidIndex] - 1].Split(',');
                        maid.SetProp(strArray3[0], strArray3[1], 0, true, false);
                    }

                    if (itemIndex2[selectMaidIndex] == 13)
                    {
                        string[] strArray3 = itemArray[itemIndex2[selectMaidIndex] + 1].Split(',');
                        maid.SetProp(strArray3[0], strArray3[1], 0, true, false);
                    }

                    if (itemIndex2[selectMaidIndex] == 23)
                    {
                        string[] strArray3 = itemArray[itemIndex2[selectMaidIndex]].Split(',');
                        maid.SetProp(strArray3[0], strArray3[1], 0, true, false);
                        cafeFlg[selectMaidIndex] = true;
                    }

                    maid.AllProcPropSeqStart();
                    itemCombo.selectedItemIndex = itemIndex2[selectMaidIndex];
                    itemIndex[selectMaidIndex] = itemIndex2[selectMaidIndex];
                }
            }
            else
            {
                isWear = GUI.Toggle(new Rect(GetPix(5),
                                              GetPix(98),
                                              GetPix(70),
                                              GetPix(20)),
                                    isWear,
                                    "トップス",
                                    style4);
                isSkirt = GUI.Toggle(new Rect(GetPix(90),
                                               GetPix(98),
                                               GetPix(70),
                                               GetPix(20)),
                                     isSkirt,
                                     "ボトムス",
                                     style4);
                isBra = GUI.Toggle(new Rect(GetPix(5),
                                             GetPix(123),
                                             GetPix(80),
                                             GetPix(20)),
                                   isBra,
                                   "ブラジャー",
                                   style4);
                isPanz = GUI.Toggle(new Rect(GetPix(90),
                                              GetPix(123),
                                              GetPix(60),
                                              GetPix(20)),
                                    isPanz,
                                    "パンツ",
                                    style4);
                isHeadset = GUI.Toggle(new Rect(GetPix(5),
                                                 GetPix(148),
                                                 GetPix(70),
                                                 GetPix(20)),
                                       isHeadset,
                                       "ヘッド",
                                       style4);
                isMegane = GUI.Toggle(new Rect(GetPix(90),
                                                GetPix(148),
                                                GetPix(70),
                                                GetPix(20)),
                                      isMegane,
                                      "メガネ",
                                      style4);
                isAccUde = GUI.Toggle(new Rect(GetPix(5),
                                                GetPix(173),
                                                GetPix(40),
                                                GetPix(20)),
                                      isAccUde,
                                      "腕",
                                      style4);
                isGlove = GUI.Toggle(new Rect(GetPix(45),
                                               GetPix(173),
                                               GetPix(40),
                                               GetPix(20)),
                                     isGlove,
                                     "手袋",
                                     style4);
                isAccSenaka = GUI.Toggle(new Rect(GetPix(97),
                                                   GetPix(173),
                                                   GetPix(40),
                                                   GetPix(20)),
                                         isAccSenaka,
                                         "背中",
                                         style4);
                isStkg = GUI.Toggle(new Rect(GetPix(5),
                                              GetPix(198),
                                              GetPix(70),
                                              GetPix(20)),
                                    isStkg,
                                    "ソックス",
                                    style4);
                isShoes = GUI.Toggle(new Rect(GetPix(90),
                                               GetPix(198),
                                               GetPix(70),
                                               GetPix(20)),
                                     isShoes,
                                     "シューズ",
                                     style4);
                mekure1[selectMaidIndex] =
                        GUI.Toggle(new Rect(GetPix(5),
                                             GetPix(223),
                                             GetPix(62),
                                             GetPix(20)),
                                   mekure1[selectMaidIndex],
                                   "めくれ前",
                                   style4);
                mekure2[selectMaidIndex] =
                        GUI.Toggle(new Rect(GetPix(67),
                                             GetPix(223),
                                             GetPix(40),
                                             GetPix(20)),
                                   mekure2[selectMaidIndex],
                                   "後ろ",
                                   style4);
                zurasi[selectMaidIndex] =
                        GUI.Toggle(new Rect(GetPix(105),
                                             GetPix(223),
                                             GetPix(50),
                                             GetPix(20)),
                                   zurasi[selectMaidIndex],
                                   "ずらし",
                                   style4);
            }

            bool state = GUI.enabled;
            GUI.enabled = true;
            GUI.DragWindow();
            GUI.enabled = state;
        }

        private void FaceWindow(int winID)
        {
            GUIStyle style1 = "label";
            style1.fontSize = GetPix(12);
            style1.alignment = TextAnchor.UpperLeft;
            GUIStyle style2 = "label";
            style2.fontSize = GetPix(11);
            style2.alignment = TextAnchor.UpperLeft;
            GUIStyle style3 = "button";
            style3.fontSize = GetPix(20);
            GUIStyle buttonStyle = "button";
            buttonStyle.fontSize = GetPix(12);
            buttonStyle.alignment = TextAnchor.MiddleLeft;
            GUIStyle style4 = new GUIStyle("toggle")
            {
                fontSize = GetPix(13)
            };
            CharacterMgr characterMgr = GameMain.Instance.CharacterMgr;
            if (!faceInitFlg)
            {
                listStyle2.normal.textColor = Color.white;
                listStyle2.normal.background = MakeTex(2, 2, new Color(0.0f, 0.0f, 0.0f, 0.5f));
                listStyle2.onHover.background = listStyle2.hover.background = new Texture2D(2, 2);
                listStyle2.padding.left = listStyle2.padding.right = listStyle2.padding.top = listStyle2.padding.bottom = GetPix(0);
                listStyle2.fontSize = GetPix(12);
                faceCombo.selectedItemIndex = 0;
                List<string> stringList = new List<string>(300);
                stringList.AddRange(faceArray);
                for (int index = 1; index < 300; ++index)
                {
                    IniKey iniKey = Preferences["face"]["f" + index];
                    if (iniKey.Value != null)
                    {
                        string[] strArray = iniKey.Value.Split(':');
                        if (strArray.Length > 1)
                        {
                            stringList.Add(strArray[0] + "　　　　　　　　　　　　　　　:" + index + ":" + strArray[1]);
                        }
                    }
                    else
                    {
                        break;
                    }
                }

                faceCombo.selectedItemIndex = 0;
                faceComboList = new GUIContent[stringList.ToArray().Length];
                for (int index = 0; index < stringList.ToArray().Length; ++index)
                {
                    faceComboList[index] = new GUIContent(stringList.ToArray()[index]);
                }

                faceInitFlg = true;
            }

            if (faceCombo.isClickedComboButton)
            {
                GUI.enabled = false;
            }

            if (sceneLevel == 3 || sceneLevel == 5 || isF6)
            {
                if (!isF6)
                {
                    bool flag = true;
                    if (faceFlg || poseFlg || sceneFlg || kankyoFlg || kankyo2Flg)
                    {
                        flag = false;
                    }

                    if (GUI.Toggle(new Rect(GetPix(2),
                                             GetPix(2),
                                             GetPix(39),
                                             GetPix(20)),
                                   flag,
                                   "配置",
                                   style4))
                    {
                        faceFlg = false;
                        poseFlg = false;
                        // sceneFlg = false;
                        kankyoFlg = false;
                        kankyo2Flg = false;
                        bGui = true;
                    }
                }

                if (!yotogiFlg && GUI.Toggle(new Rect(GetPix(41),
                                                       GetPix(2),
                                                       GetPix(39),
                                                       GetPix(20)),
                                             poseFlg,
                                             "操作",
                                             style4))
                {
                    poseFlg = true;
                    faceFlg = false;
                    // sceneFlg = false;
                    kankyoFlg = false;
                    kankyo2Flg = false;
                }

                if (GUI.Toggle(new Rect(GetPix(80), GetPix(2), GetPix(39), GetPix(20)),
                               faceFlg,
                               "表情",
                               style4))
                {
                    faceFlg = true;
                    poseFlg = false;
                    // sceneFlg = false;
                    kankyoFlg = false;
                    kankyo2Flg = false;
                    if (!faceFlg2)
                    {
                        isFaceInit = true;
                        faceFlg2 = true;
                        maidArray[selectMaidIndex].boMabataki = false;
                        faceCombo.selectedItemIndex = faceIndex[selectMaidIndex];
                    }

                    faceCombo.selectedItemIndex = faceIndex[selectMaidIndex];
                }

                if (GUI.Toggle(new Rect(GetPix(119), GetPix(2), GetPix(39), GetPix(20)),
                               kankyoFlg,
                               "環境",
                               style4))
                {
                    poseFlg = false;
                    faceFlg = false;
                    // sceneFlg = false;
                    kankyoFlg = true;
                    kankyo2Flg = false;
                }

                if (!line1)
                {
                    line1 = MakeTex(2, 2, new Color(0.0f, 0.0f, 0.0f, 0.3f));
                    line2 = MakeTex(2, 2, new Color(0.7f, 0.7f, 0.7f, 0.6f));
                }

                GUI.DrawTexture(new Rect(GetPix(5), GetPix(20), GetPix(160), 2f), line1);
                GUI.DrawTexture(new Rect(GetPix(5), GetPix(20), GetPix(160), 1f), line2);
                style1.fontSize = GetPix(13);
                style1.alignment = TextAnchor.MiddleCenter;
                GUI.Label(new Rect(GetPix(125), GetPix(25), GetPix(40), GetPix(25)),
                          string.Concat(selectMaidIndex + 1),
                          style1);
                style1.fontSize = GetPix(11);
                style1.alignment = TextAnchor.UpperLeft;
            }

            if (sceneLevel > 0)
            {
                int selectMaidIndex = this.selectMaidIndex;
                if (sceneLevel == 3 || sceneLevel == 5 && (isF7 || maidCnt > 1))
                {
                    if (GUI.Button(new Rect(GetPix(5),
                                             GetPix(53),
                                             GetPix(23),
                                             GetPix(32)),
                                   "＜",
                                   style3))
                    {
                        --this.selectMaidIndex;
                        if (this.selectMaidIndex < 0)
                        {
                            this.selectMaidIndex = selectList.Count - 1;
                        }

                        isFaceInit = true;
                        faceFlg = true;
                        copyIndex = 0;
                        faceCombo.selectedItemIndex = faceIndex[this.selectMaidIndex];
                    }

                    if (GUI.Button(new Rect(GetPix(135),
                                             GetPix(53),
                                             GetPix(23),
                                             GetPix(32)),
                                   "＞",
                                   style3))
                    {
                        ++this.selectMaidIndex;
                        if (selectList.Count <= this.selectMaidIndex)
                        {
                            this.selectMaidIndex = 0;
                        }

                        isFaceInit = true;
                        faceFlg = true;
                        copyIndex = 0;
                        faceCombo.selectedItemIndex = faceIndex[this.selectMaidIndex];
                    }
                }

                if (maidArray[this.selectMaidIndex].GetThumIcon())
                {
                    GUI.DrawTexture(new Rect(GetPix(30),
                                              GetPix(25),
                                              GetPix(60),
                                              GetPix(60)),
                                     maidArray[this.selectMaidIndex].GetThumIcon());
                }

                GUI.Label(new Rect(GetPix(90), GetPix(50), GetPix(140), GetPix(210)),
                          maidArray[this.selectMaidIndex].status.lastName + "\n" + maidArray[this.selectMaidIndex].status.firstName,
                          style1);

                if (isFace[selectMaidIndex])
                {
                    if (GUI.Button(new Rect(GetPix(5),
                                             GetPix(25),
                                             GetPix(23),
                                             GetPix(23)),
                                   "有",
                                   style3))
                    {
                        TMorph morph = maidArray[selectMaidIndex].body0.Face.morph;
                        maidArray[selectMaidIndex].boMabataki = false;
                        isFace[selectMaidIndex] = false;
                    }

                    maidArray[selectMaidIndex].boMabataki = false;
                }
                else
                {
                    if (GUI.Button(new Rect(GetPix(5),
                                             GetPix(25),
                                             GetPix(23),
                                             GetPix(23)),
                                   "無",
                                   style3))
                    {
                        TMorph morph = maidArray[selectMaidIndex].body0.Face.morph;
                        maidArray[selectMaidIndex].boMabataki = false;
                        morph.EyeMabataki = 0.0f;
                        isFaceInit = true;
                        isFace[selectMaidIndex] = true;
                        faceCombo.selectedItemIndex = faceIndex[selectMaidIndex];
                    }

                    GUI.enabled = false;
                    maidArray[selectMaidIndex].boMabataki = true;
                }
            }

            if (GUI.Button(new Rect(GetPix(5), GetPix(95), GetPix(23), GetPix(23)),
                           "＜",
                           style3))
            {
                --faceIndex[selectMaidIndex];
                if (faceIndex[selectMaidIndex] <= -1)
                {
                    faceIndex[selectMaidIndex] = faceComboList.Length - 1;
                }

                TMorph morph = maidArray[selectMaidIndex].body0.Face.morph;
                maidArray[selectMaidIndex].boMabataki = false;
                morph.EyeMabataki = 0.0f;
                if (faceIndex[selectMaidIndex] < faceArray.Length)
                {
                    morph.MulBlendValues(faceArray[faceIndex[selectMaidIndex]], 1f);
                }
                else
                {
                    float[] fieldValue1 = GetFieldValue<TMorph, float[]>(morph, "BlendValues");
                    float[] fieldValue2 = GetFieldValue<TMorph, float[]>(morph, "BlendValuesBackup");
                    if (!isVR)
                    {
                        maidArray[selectMaidIndex].boMabataki = false;
                    }

                    string[] strArray = faceComboList[faceIndex[selectMaidIndex]].text.Split(':')[2].Split(',');
                    fieldValue2[(int)morph.hash["eyeclose"]] = float.Parse(strArray[0]);
                    fieldValue2[(int)morph.hash["eyeclose2"]] = float.Parse(strArray[1]);
                    fieldValue2[(int)morph.hash["eyeclose3"]] = float.Parse(strArray[2]);
                    fieldValue2[(int)morph.hash["eyeclose6"]] = float.Parse(strArray[3]);
                    fieldValue1[(int)morph.hash["hitomih"]] = float.Parse(strArray[4]);
                    fieldValue1[(int)morph.hash["hitomis"]] = float.Parse(strArray[5]);
                    fieldValue1[(int)morph.hash["mayuha"]] = float.Parse(strArray[6]);
                    fieldValue1[(int)morph.hash["mayuup"]] = float.Parse(strArray[7]);
                    fieldValue1[(int)morph.hash["mayuv"]] = float.Parse(strArray[8]);
                    fieldValue1[(int)morph.hash["mayuvhalf"]] = float.Parse(strArray[9]);
                    fieldValue1[(int)morph.hash["moutha"]] = float.Parse(strArray[10]);
                    fieldValue1[(int)morph.hash["mouths"]] = float.Parse(strArray[11]);
                    fieldValue1[(int)morph.hash["mouthdw"]] = float.Parse(strArray[12]);
                    fieldValue1[(int)morph.hash["mouthup"]] = float.Parse(strArray[13]);
                    fieldValue1[(int)morph.hash["tangout"]] = float.Parse(strArray[14]);
                    fieldValue1[(int)morph.hash["tangup"]] = float.Parse(strArray[15]);
                    fieldValue1[(int)morph.hash["eyebig"]] = float.Parse(strArray[16]);
                    fieldValue2[(int)morph.hash["eyeclose5"]] = float.Parse(strArray[17]);
                    fieldValue1[(int)morph.hash["mayuw"]] = float.Parse(strArray[18]);
                    fieldValue1[(int)morph.hash["mouthhe"]] = float.Parse(strArray[19]);
                    fieldValue1[(int)morph.hash["mouthc"]] = float.Parse(strArray[20]);
                    fieldValue1[(int)morph.hash["mouthi"]] = float.Parse(strArray[21]);
                    fieldValue1[(int)morph.hash["mouthuphalf"]] = float.Parse(strArray[22]) + 0.01f;
                    try
                    {
                        fieldValue1[(int)morph.hash["tangopen"]] = float.Parse(strArray[23]);
                    }
                    catch { }

                    if (float.Parse(strArray[24]) == 1.0)
                    {
                        fieldValue1[(int)morph.hash["namida"]] = 1f;
                    }
                    else
                    {
                        fieldValue1[(int)morph.hash["namida"]] = 0.0f;
                    }

                    if (float.Parse(strArray[25]) == 1.0)
                    {
                        fieldValue1[(int)morph.hash["tear1"]] = 1f;
                    }
                    else
                    {
                        fieldValue1[(int)morph.hash["tear1"]] = 0.0f;
                    }

                    if (float.Parse(strArray[26]) == 1.0)
                    {
                        fieldValue1[(int)morph.hash["tear2"]] = 1f;
                    }
                    else
                    {
                        fieldValue1[(int)morph.hash["tear2"]] = 0.0f;
                    }

                    if (float.Parse(strArray[27]) == 1.0)
                    {
                        fieldValue1[(int)morph.hash["tear3"]] = 1f;
                    }
                    else
                    {
                        fieldValue1[(int)morph.hash["tear3"]] = 0.0f;
                    }

                    if (float.Parse(strArray[28]) == 1.0)
                    {
                        fieldValue1[(int)morph.hash["shock"]] = 1f;
                    }
                    else
                    {
                        fieldValue1[(int)morph.hash["shock"]] = 0.0f;
                    }

                    if (float.Parse(strArray[29]) == 1.0)
                    {
                        fieldValue1[(int)morph.hash["yodare"]] = 1f;
                    }
                    else
                    {
                        fieldValue1[(int)morph.hash["yodare"]] = 0.0f;
                    }

                    if (float.Parse(strArray[30]) == 1.0)
                    {
                        fieldValue1[(int)morph.hash["hoho"]] = 0.5f;
                    }
                    else
                    {
                        fieldValue1[(int)morph.hash["hoho"]] = 0.0f;
                    }

                    if (float.Parse(strArray[31]) == 1.0)
                    {
                        fieldValue1[(int)morph.hash["hoho2"]] = 0.5f;
                    }
                    else
                    {
                        fieldValue1[(int)morph.hash["hoho2"]] = 0.0f;
                    }

                    if (float.Parse(strArray[32]) == 1.0)
                    {
                        fieldValue1[(int)morph.hash["hohos"]] = 1f;
                    }
                    else
                    {
                        fieldValue1[(int)morph.hash["hohos"]] = 0.0f;
                    }

                    if (float.Parse(strArray[33]) == 1.0)
                    {
                        fieldValue1[(int)morph.hash["hohol"]] = 1f;
                    }
                    else
                    {
                        fieldValue1[(int)morph.hash["hohol"]] = 0.0f;
                    }

                    if (float.Parse(strArray[34]) == 1.0)
                    {
                        fieldValue1[(int)morph.hash["toothoff"]] = 1f;
                    }
                    else
                    {
                        fieldValue1[(int)morph.hash["toothoff"]] = 0.0f;
                    }

                    if (strArray.Length > 35)
                    {
                        morph.boNoseFook = float.Parse(strArray[35]) == 1.0;
                    }
                }

                maidArray[selectMaidIndex].body0.Face.morph.FixBlendValues_Face();
                isFaceInit = true;
                faceCombo.selectedItemIndex = faceIndex[selectMaidIndex];
            }

            if (GUI.Button(new Rect(GetPix(135), GetPix(95), GetPix(23), GetPix(23)),
                           "＞",
                           style3))
            {
                ++faceIndex[selectMaidIndex];
                if (faceIndex[selectMaidIndex] == faceComboList.Length)
                {
                    faceIndex[selectMaidIndex] = 0;
                }

                TMorph morph = maidArray[selectMaidIndex].body0.Face.morph;
                maidArray[selectMaidIndex].boMabataki = false;
                morph.EyeMabataki = 0.0f;
                if (faceIndex[selectMaidIndex] < faceArray.Length)
                {
                    morph.MulBlendValues(faceArray[faceIndex[selectMaidIndex]], 1f);
                }
                else
                {
                    float[] fieldValue1 = GetFieldValue<TMorph, float[]>(morph, "BlendValues");
                    float[] fieldValue2 = GetFieldValue<TMorph, float[]>(morph, "BlendValuesBackup");
                    if (!isVR)
                    {
                        maidArray[selectMaidIndex].boMabataki = false;
                    }

                    string[] strArray = faceComboList[faceIndex[selectMaidIndex]].text.Split(':')[2].Split(',');
                    fieldValue2[(int)morph.hash["eyeclose"]] = float.Parse(strArray[0]);
                    fieldValue2[(int)morph.hash["eyeclose2"]] = float.Parse(strArray[1]);
                    fieldValue2[(int)morph.hash["eyeclose3"]] = float.Parse(strArray[2]);
                    fieldValue2[(int)morph.hash["eyeclose6"]] = float.Parse(strArray[3]);
                    fieldValue1[(int)morph.hash["hitomih"]] = float.Parse(strArray[4]);
                    fieldValue1[(int)morph.hash["hitomis"]] = float.Parse(strArray[5]);
                    fieldValue1[(int)morph.hash["mayuha"]] = float.Parse(strArray[6]);
                    fieldValue1[(int)morph.hash["mayuup"]] = float.Parse(strArray[7]);
                    fieldValue1[(int)morph.hash["mayuv"]] = float.Parse(strArray[8]);
                    fieldValue1[(int)morph.hash["mayuvhalf"]] = float.Parse(strArray[9]);
                    fieldValue1[(int)morph.hash["moutha"]] = float.Parse(strArray[10]);
                    fieldValue1[(int)morph.hash["mouths"]] = float.Parse(strArray[11]);
                    fieldValue1[(int)morph.hash["mouthdw"]] = float.Parse(strArray[12]);
                    fieldValue1[(int)morph.hash["mouthup"]] = float.Parse(strArray[13]);
                    fieldValue1[(int)morph.hash["tangout"]] = float.Parse(strArray[14]);
                    fieldValue1[(int)morph.hash["tangup"]] = float.Parse(strArray[15]);
                    fieldValue1[(int)morph.hash["eyebig"]] = float.Parse(strArray[16]);
                    fieldValue2[(int)morph.hash["eyeclose5"]] = float.Parse(strArray[17]);
                    fieldValue1[(int)morph.hash["mayuw"]] = float.Parse(strArray[18]);
                    fieldValue1[(int)morph.hash["mouthhe"]] = float.Parse(strArray[19]);
                    fieldValue1[(int)morph.hash["mouthc"]] = float.Parse(strArray[20]);
                    fieldValue1[(int)morph.hash["mouthi"]] = float.Parse(strArray[21]);
                    fieldValue1[(int)morph.hash["mouthuphalf"]] = float.Parse(strArray[22]) + 0.01f;
                    try
                    {
                        fieldValue1[(int)morph.hash["tangopen"]] = float.Parse(strArray[23]);
                    }
                    catch { }

                    if (float.Parse(strArray[24]) == 1.0)
                    {
                        fieldValue1[(int)morph.hash["namida"]] = 1f;
                    }
                    else
                    {
                        fieldValue1[(int)morph.hash["namida"]] = 0.0f;
                    }

                    if (float.Parse(strArray[25]) == 1.0)
                    {
                        fieldValue1[(int)morph.hash["tear1"]] = 1f;
                    }
                    else
                    {
                        fieldValue1[(int)morph.hash["tear1"]] = 0.0f;
                    }

                    if (float.Parse(strArray[26]) == 1.0)
                    {
                        fieldValue1[(int)morph.hash["tear2"]] = 1f;
                    }
                    else
                    {
                        fieldValue1[(int)morph.hash["tear2"]] = 0.0f;
                    }

                    if (float.Parse(strArray[27]) == 1.0)
                    {
                        fieldValue1[(int)morph.hash["tear3"]] = 1f;
                    }
                    else
                    {
                        fieldValue1[(int)morph.hash["tear3"]] = 0.0f;
                    }

                    if (float.Parse(strArray[28]) == 1.0)
                    {
                        fieldValue1[(int)morph.hash["shock"]] = 1f;
                    }
                    else
                    {
                        fieldValue1[(int)morph.hash["shock"]] = 0.0f;
                    }

                    if (float.Parse(strArray[29]) == 1.0)
                    {
                        fieldValue1[(int)morph.hash["yodare"]] = 1f;
                    }
                    else
                    {
                        fieldValue1[(int)morph.hash["yodare"]] = 0.0f;
                    }

                    if (float.Parse(strArray[30]) == 1.0)
                    {
                        fieldValue1[(int)morph.hash["hoho"]] = 0.5f;
                    }
                    else
                    {
                        fieldValue1[(int)morph.hash["hoho"]] = 0.0f;
                    }

                    if (float.Parse(strArray[31]) == 1.0)
                    {
                        fieldValue1[(int)morph.hash["hoho2"]] = 0.5f;
                    }
                    else
                    {
                        fieldValue1[(int)morph.hash["hoho2"]] = 0.0f;
                    }

                    if (float.Parse(strArray[32]) == 1.0)
                    {
                        fieldValue1[(int)morph.hash["hohos"]] = 1f;
                    }
                    else
                    {
                        fieldValue1[(int)morph.hash["hohos"]] = 0.0f;
                    }

                    if (float.Parse(strArray[33]) == 1.0)
                    {
                        fieldValue1[(int)morph.hash["hohol"]] = 1f;
                    }
                    else
                    {
                        fieldValue1[(int)morph.hash["hohol"]] = 0.0f;
                    }

                    if (float.Parse(strArray[34]) == 1.0)
                    {
                        fieldValue1[(int)morph.hash["toothoff"]] = 1f;
                    }
                    else
                    {
                        fieldValue1[(int)morph.hash["toothoff"]] = 0.0f;
                    }

                    if (strArray.Length > 35)
                    {
                        morph.boNoseFook = float.Parse(strArray[35]) == 1.0;
                    }
                }

                maidArray[selectMaidIndex].body0.Face.morph.FixBlendValues_Face();
                isFaceInit = true;
                faceCombo.selectedItemIndex = faceIndex[selectMaidIndex];
            }

            int offsetTop = GetPix(120);
            int UIHeight = GetPix(500);

            Rect faceWindowScrollRect = new Rect(0, offsetTop, rectWin.width, rectWin.height - offsetTop);
            Rect faceWindowScrollView = new Rect(0, 0, rectWin.width - 20, UIHeight);

            faceScrollPos = GUI.BeginScrollView(faceWindowScrollRect, faceScrollPos, faceWindowScrollView);

            #region face sliders
            int sliderWidth = GetPix(70);
            int sliderHeight = GetPix(20);
            int labelWidth = GetPix(100);
            int labelHeight = GetPix(25);
            int sliderLeft = 8;
            int sliderRight = 88;
            int labelPosition = 0;
            int sliderPosition = 15;
            int sliderOffset = 28;

            GUI.Label(new Rect(GetPix(sliderLeft), GetPix(labelPosition),
                labelWidth, labelHeight),
                "目の開閉",
                style2);
            eyeclose = GUI.HorizontalSlider(new Rect(GetPix(sliderLeft),
                GetPix(sliderPosition),
                sliderWidth, sliderHeight),
                eyeclose,
                0.0f,
                1f);
            GUI.Label(new Rect(GetPix(sliderRight), GetPix(labelPosition),
                labelWidth, labelHeight),
                "にっこり",
                style2);
            eyeclose2 = GUI.HorizontalSlider(new Rect(GetPix(sliderRight),
                GetPix(sliderPosition),
                sliderWidth, sliderHeight),
                eyeclose2,
                0.0f,
                1f);
            GUI.Label(new Rect(GetPix(sliderLeft), GetPix(labelPosition + sliderOffset),
                labelWidth, labelHeight),
                    "ジト目",
                style2);
            eyeclose3 = GUI.HorizontalSlider(new Rect(GetPix(sliderLeft),
                GetPix(sliderPosition + sliderOffset),
                sliderWidth, sliderHeight),
                eyeclose3,
                0.0f,
                1f);
            GUI.Label(new Rect(GetPix(88), GetPix(labelPosition + sliderOffset),
                labelWidth, labelHeight),
                "見開く",
                style2);
            eyebig = GUI.HorizontalSlider(new Rect(GetPix(88),
                GetPix(sliderPosition + sliderOffset),
                sliderWidth, sliderHeight),
                eyebig,
                0.0f,
                1f);
            GUI.Label(new Rect(GetPix(sliderLeft), GetPix(labelPosition + sliderOffset * 2),
                labelWidth, labelHeight),
                "ウインク1",
                style2);
            eyeclose6 = GUI.HorizontalSlider(new Rect(GetPix(sliderLeft),
                GetPix(sliderPosition + sliderOffset * 2),
                sliderWidth, sliderHeight),
                eyeclose6,
                0.0f,
                1f);
            GUI.Label(new Rect(GetPix(88), GetPix(labelPosition + sliderOffset * 2),
                labelWidth, labelHeight),
                "ウインク2",
                style2);
            eyeclose5 = GUI.HorizontalSlider(new Rect(GetPix(88),
                GetPix(sliderPosition + sliderOffset * 2),
                sliderWidth, sliderHeight),
                eyeclose5,
                0.0f,
                1f);
            GUI.Label(new Rect(GetPix(sliderLeft), GetPix(labelPosition + sliderOffset * 3),
                labelWidth, labelHeight),
                "ハイライト",
                style2);
            hitomih = GUI.HorizontalSlider(new Rect(GetPix(sliderLeft),
                GetPix(sliderPosition + sliderOffset * 3),
                sliderWidth, sliderHeight),
                hitomih,
                0.0f,
                2f);
            GUI.Label(new Rect(GetPix(88), GetPix(labelPosition + sliderOffset * 3),
                labelWidth, labelHeight),
                "瞳サイズ",
                style2);
            hitomis = GUI.HorizontalSlider(new Rect(GetPix(88),
                GetPix(sliderPosition + sliderOffset * 3),
                sliderWidth, sliderHeight),
                hitomis,
                0.0f,
                1f);
            GUI.Label(new Rect(GetPix(sliderLeft), GetPix(labelPosition + sliderOffset * 4),
                labelWidth, labelHeight),
                "眉角度1",
                style2);
            mayuha = GUI.HorizontalSlider(new Rect(GetPix(sliderLeft),
                GetPix(sliderPosition + sliderOffset * 4),
                sliderWidth, sliderHeight),
                mayuha,
                0.0f,
                1f);
            GUI.Label(new Rect(GetPix(88), GetPix(labelPosition + sliderOffset * 4),
                labelWidth, labelHeight),
                "眉角度2",
                style2);
            mayuw = GUI.HorizontalSlider(new Rect(GetPix(88),
                GetPix(sliderPosition + sliderOffset * 4),
                sliderWidth, sliderHeight),
                mayuw,
                0.0f,
                1f);
            GUI.Label(new Rect(GetPix(sliderLeft), GetPix(labelPosition + sliderOffset * 5),
                labelWidth, labelHeight),
                "眉上げ",
                style2);
            mayuup = GUI.HorizontalSlider(new Rect(GetPix(sliderLeft),
                GetPix(sliderPosition + sliderOffset * 5),
                sliderWidth, sliderHeight),
                mayuup,
                0.0f,
                0.8f);
            GUI.Label(new Rect(GetPix(88), GetPix(labelPosition + sliderOffset * 5),
                labelWidth, labelHeight),
                "眉下げ1",
                style2);
            mayuv = GUI.HorizontalSlider(new Rect(GetPix(88),
                GetPix(sliderPosition + sliderOffset * 5),
                sliderWidth, sliderHeight),
                mayuv,
                0.0f,
                0.8f);
            GUI.Label(new Rect(GetPix(sliderLeft), GetPix(labelPosition + sliderOffset * 6),
                labelWidth, labelHeight),
                "眉下げ2",
                style2);
            mayuvhalf = GUI.HorizontalSlider(new Rect(GetPix(sliderLeft),
                GetPix(sliderPosition + sliderOffset * 6),
                sliderWidth, sliderHeight),
                mayuvhalf,
                0.0f,
                0.9f);
            GUI.Label(new Rect(GetPix(sliderLeft), GetPix(labelPosition + sliderOffset * 7),
                labelWidth, labelHeight),
                "口開け1",
                style2);
            moutha = GUI.HorizontalSlider(new Rect(GetPix(sliderLeft),
                GetPix(sliderPosition + sliderOffset * 7),
                sliderWidth, sliderHeight),
                moutha,
                0.0f,
                1f);
            GUI.Label(new Rect(GetPix(88), GetPix(labelPosition + sliderOffset * 7),
                labelWidth, labelHeight),
                "口開け2",
                style2);
            mouths = GUI.HorizontalSlider(new Rect(GetPix(88),
                GetPix(sliderPosition + sliderOffset * 7),
                sliderWidth, sliderHeight),
                mouths,
                0.0f,
                0.9f);
            GUI.Label(new Rect(GetPix(sliderLeft), GetPix(labelPosition + sliderOffset * 8),
                labelWidth, labelHeight),
                "口幅狭く",
                style2);
            mouthc = GUI.HorizontalSlider(new Rect(GetPix(sliderLeft),
                GetPix(sliderPosition + sliderOffset * 8),
                sliderWidth, sliderHeight),
                mouthc,
                0.0f,
                1f);
            GUI.Label(new Rect(GetPix(88), GetPix(labelPosition + sliderOffset * 8),
                labelWidth, labelHeight),
                "口幅広く",
                style2);
            mouthi = GUI.HorizontalSlider(new Rect(GetPix(88),
                GetPix(sliderPosition + sliderOffset * 8),
                sliderWidth, sliderHeight),
                mouthi,
                0.0f,
                1f);
            GUI.Label(new Rect(GetPix(sliderLeft), GetPix(labelPosition + sliderOffset * 9),
                labelWidth, labelHeight),
                "口角上げ",
                style2);
            mouthup = GUI.HorizontalSlider(new Rect(GetPix(sliderLeft),
                GetPix(sliderPosition + sliderOffset * 9),
                sliderWidth, sliderHeight),
                mouthup,
                0.0f,
                1.4f);
            GUI.Label(new Rect(GetPix(88), GetPix(labelPosition + sliderOffset * 9),
                labelWidth, labelHeight),
                "口角下げ",
                style2);
            mouthdw = GUI.HorizontalSlider(new Rect(GetPix(88),
                GetPix(sliderPosition + sliderOffset * 9),
                sliderWidth, sliderHeight),
                mouthdw,
                0.0f,
                1f);
            GUI.Label(new Rect(GetPix(sliderLeft), GetPix(labelPosition + sliderOffset * 10),
                labelWidth, labelHeight),
                "口中央上げ",
                style2);
            mouthhe = GUI.HorizontalSlider(new Rect(GetPix(sliderLeft),
                GetPix(sliderPosition + sliderOffset * 10),
                sliderWidth, sliderHeight),
                mouthhe,
                0.0f,
                1f);
            GUI.Label(new Rect(GetPix(88), GetPix(labelPosition + sliderOffset * 10),
                labelWidth, labelHeight),
                "左口角上げ",
                style2);
            mouthuphalf = GUI.HorizontalSlider(new Rect(GetPix(88),
                GetPix(sliderPosition + sliderOffset * 10),
                sliderWidth, sliderHeight),
                mouthuphalf,
                0.0f,
                2f);
            GUI.Label(new Rect(GetPix(sliderLeft), GetPix(labelPosition + sliderOffset * 11),
                labelWidth, labelHeight),
                "舌出し",
                style2);
            tangout = GUI.HorizontalSlider(new Rect(GetPix(sliderLeft),
                GetPix(sliderPosition + sliderOffset * 11),
                sliderWidth, sliderHeight),
                tangout,
                0.0f,
                1f);
            GUI.Label(new Rect(GetPix(88), GetPix(labelPosition + sliderOffset * 11),
                labelWidth, labelHeight),
                "舌上げ",
                style2);
            tangup = GUI.HorizontalSlider(new Rect(GetPix(88),
                GetPix(sliderPosition + sliderOffset * 11),
                sliderWidth, sliderHeight),
                tangup,
                0.0f,
                0.7f);
            GUI.Label(new Rect(GetPix(sliderLeft), GetPix(labelPosition + sliderOffset * 12),
                labelWidth, labelHeight),
                "舌根上げ",
                style2);
            tangopen = GUI.HorizontalSlider(new Rect(GetPix(sliderLeft),
                GetPix(sliderPosition + sliderOffset * 12),
                sliderWidth, sliderHeight),
                tangopen,
                0.0f,
                1f);
            #endregion

            #region face toggles
            int togglePositionX = 5;
            int togglePositionY = 370;
            int toggleOffsetX = 55;
            int toggleOffsetY = 22;
            int toggleWidth = GetPix(55);
            int toggleHeight = GetPix(16);

            isHoho2 = GUI.Toggle(new Rect(GetPix(togglePositionX),
                GetPix(togglePositionY),
                toggleWidth, toggleHeight),
                isHoho2,
                "赤面",
                style4);
            isShock = GUI.Toggle(new Rect(GetPix(togglePositionX + toggleOffsetX * 1),
                GetPix(togglePositionY),
                toggleWidth, toggleHeight),
                isShock,
                "ショック",
                style4);
            isNosefook = GUI.Toggle(new Rect(GetPix(togglePositionX + toggleOffsetX * 2),
                GetPix(togglePositionY),
                toggleWidth, toggleHeight),
                isNosefook,
                "鼻フック",
                style4);
            isNamida = GUI.Toggle(new Rect(GetPix(togglePositionX),
                GetPix(togglePositionY + toggleOffsetY * 1),
                toggleWidth, toggleHeight),
                isNamida,
                "涙",
                style4);
            isYodare = GUI.Toggle(new Rect(GetPix(togglePositionX + toggleOffsetX * 1),
                GetPix(togglePositionY + toggleOffsetY * 1),
                toggleWidth, toggleHeight),
                isYodare,
                "涎",
                style4);
            isToothoff = !GUI.Toggle(new Rect(GetPix(togglePositionX + toggleOffsetX * 2),
                GetPix(togglePositionY + toggleOffsetY * 1),
                toggleWidth, toggleHeight),
                !isToothoff,
                "歯",
                style4);
            isTear1 = GUI.Toggle(new Rect(GetPix(togglePositionX),
                GetPix(togglePositionY + toggleOffsetY * 2),
                toggleWidth, toggleHeight),
                isTear1,
                "涙1",
                style4);
            isTear2 = GUI.Toggle(new Rect(GetPix(togglePositionX + toggleOffsetX * 1),
                GetPix(togglePositionY + toggleOffsetY * 2),
                toggleWidth, toggleHeight),
                isTear2,
                "涙2",
                style4);
            isTear3 = GUI.Toggle(new Rect(GetPix(togglePositionX + toggleOffsetX * 2),
                GetPix(togglePositionY + toggleOffsetY * 2),
                toggleWidth, toggleHeight),
                isTear3,
                "涙3",
                style4);
            isHohos = GUI.Toggle(new Rect(GetPix(togglePositionX),
                GetPix(togglePositionY + toggleOffsetY * 3),
                toggleWidth, toggleHeight),
                isHohos,
                "頬1",
                style4);
            isHoho = GUI.Toggle(new Rect(GetPix(togglePositionX + toggleOffsetX * 1),
                GetPix(togglePositionY + toggleOffsetY * 3),
                toggleWidth, toggleHeight),
                isHoho,
                "頬2",
                style4);
            isHohol = GUI.Toggle(new Rect(GetPix(togglePositionX + toggleOffsetX * 2),
                GetPix(togglePositionY + toggleOffsetY * 3),
                toggleWidth, toggleHeight),
                isHohol,
                "頬3",
                style4);
            #endregion

            int faceSaveToggleY = togglePositionY + toggleOffsetY * 4;
            int faceSaveInputY = faceSaveToggleY + 20;

            isFaceEdit = GUI.Toggle(new Rect(GetPix(5),
                GetPix(faceSaveToggleY),
                toggleWidth, toggleHeight),
                isFaceEdit,
                "登録",
                style4);

            if (isFaceEdit)
            {
                inName4 = GUI.TextField(new Rect(GetPix(5),
                                                  GetPix(faceSaveInputY),
                                                  GetPix(100),
                                                  GetPix(20)),
                                        inName4);
                if (GUI.Button(new Rect(GetPix(107),
                                         GetPix(faceSaveInputY),
                                         GetPix(35),
                                         GetPix(20)),
                               "追加",
                               style3))
                {
                    GameMain.Instance.SoundMgr.PlaySe("se002.ogg", false);
                    GUI.FocusControl("");
                    int num2 = 1;
                    for (int index = 1; index < 1000; ++index)
                    {
                        if (Preferences["face"]["f" + index].Value == null)
                        {
                            num2 = index;
                            break;
                        }
                    }

                    TMorph morph = maidArray[selectMaidIndex].body0.Face.morph;
                    float[] fieldValue1 = GetFieldValue<TMorph, float[]>(morph, "BlendValues");
                    float[] fieldValue2 = GetFieldValue<TMorph, float[]>(morph, "BlendValuesBackup");
                    string str1 = inName4 + ":" + fieldValue2[(int)morph.hash["eyeclose"]] + ","
                                  + fieldValue2[(int)morph.hash["eyeclose2"]] + ","
                                  + fieldValue2[(int)morph.hash["eyeclose3"]] + ","
                                  + fieldValue2[(int)morph.hash["eyeclose6"]] + ","
                                  + fieldValue1[(int)morph.hash["hitomih"]] + ","
                                  + fieldValue1[(int)morph.hash["hitomis"]] + ","
                                  + fieldValue1[(int)morph.hash["mayuha"]] + ","
                                  + fieldValue1[(int)morph.hash["mayuup"]] + ","
                                  + fieldValue1[(int)morph.hash["mayuv"]] + ","
                                  + fieldValue1[(int)morph.hash["mayuvhalf"]] + ","
                                  + fieldValue1[(int)morph.hash["moutha"]] + ","
                                  + fieldValue1[(int)morph.hash["mouths"]] + ","
                                  + fieldValue1[(int)morph.hash["mouthdw"]] + ","
                                  + fieldValue1[(int)morph.hash["mouthup"]] + ","
                                  + fieldValue1[(int)morph.hash["tangout"]] + ","
                                  + fieldValue1[(int)morph.hash["tangup"]] + ","
                                  + fieldValue1[(int)morph.hash["eyebig"]] + ","
                                  + fieldValue2[(int)morph.hash["eyeclose5"]] + ","
                                  + fieldValue1[(int)morph.hash["mayuw"]] + ","
                                  + fieldValue1[(int)morph.hash["mouthhe"]] + ","
                                  + fieldValue1[(int)morph.hash["mouthc"]] + ","
                                  + fieldValue1[(int)morph.hash["mouthi"]] + ","
                                  + fieldValue1[(int)morph.hash["mouthuphalf"]] + ",";
                    string str2;
                    try
                    {
                        str2 = str1 + fieldValue1[(int)morph.hash["tangopen"]] + ",";
                    }
                    catch
                    {
                        str2 = str1 + "0,";
                    }

                    string str3 = fieldValue1[(int)morph.hash["namida"]] <= 0.0
                                          ? str2 + 0 + ","
                                          : str2 + 1 + ",";
                    string str4 = fieldValue1[(int)morph.hash["tear1"]] <= 0.0
                                          ? str3 + 0 + ","
                                          : str3 + 1 + ",";
                    string str5 = fieldValue1[(int)morph.hash["tear2"]] <= 0.0
                                          ? str4 + 0 + ","
                                          : str4 + 1 + ",";
                    string str6 = fieldValue1[(int)morph.hash["tear3"]] <= 0.0
                                          ? str5 + 0 + ","
                                          : str5 + 1 + ",";
                    string str7 = fieldValue1[(int)morph.hash["shock"]] <= 0.0
                                          ? str6 + 0 + ","
                                          : str6 + 1 + ",";
                    string str8 = fieldValue1[(int)morph.hash["yodare"]] <= 0.0
                                          ? str7 + 0 + ","
                                          : str7 + 1 + ",";
                    string str9 = fieldValue1[(int)morph.hash["hoho"]] <= 0.0
                                          ? str8 + 0 + ","
                                          : str8 + 1 + ",";
                    string str10 = fieldValue1[(int)morph.hash["hoho2"]] <= 0.0
                                           ? str9 + 0 + ","
                                           : str9 + 1 + ",";
                    string str11 = fieldValue1[(int)morph.hash["hohos"]] <= 0.0
                                           ? str10 + 0 + ","
                                           : str10 + 1 + ",";
                    string str12 = fieldValue1[(int)morph.hash["hohol"]] <= 0.0
                                           ? str11 + 0 + ","
                                           : str11 + 1 + ",";
                    string str13 = fieldValue1[(int)morph.hash["toothoff"]] <= 0.0
                                           ? str12 + 0 + ","
                                           : str12 + 1 + ",";
                    string str14 = fieldValue1[(int)morph.hash["nosefook"]] <= 0.0
                                           ? str13 + 0 + ":"
                                           : str13 + 1 + ":";
                    Preferences["face"]["f" + num2].Value = str14;
                    SaveConfig();
                    List<string> stringList = new List<string>(300);
                    stringList.AddRange(faceArray);
                    for (int index = 1; index < 300; ++index)
                    {
                        IniKey iniKey = Preferences["face"]["f" + index];
                        if (iniKey.Value != null)
                        {
                            string[] strArray = iniKey.Value.Split(':');
                            if (strArray.Length > 1)
                            {
                                stringList.Add(strArray[0] + "　　　　　　　　　　　　　　　:" + index + ":" + strArray[1]);
                            }
                        }
                        else
                        {
                            break;
                        }
                    }

                    faceCombo.selectedItemIndex = 0;
                    faceComboList = new GUIContent[stringList.ToArray().Length];
                    for (int index = 0; index < stringList.ToArray().Length; ++index)
                    {
                        faceComboList[index] = new GUIContent(stringList.ToArray()[index]);
                    }

                    faceCombo.selectedItemIndex = stringList.ToArray().Length - 1;
                    inName4 = "";
                }

                if (faceIndex[selectMaidIndex] < faceArray.Length)
                {
                    GUI.enabled = false;
                }

                if (GUI.Button(new Rect(GetPix(144),
                                         GetPix(faceSaveInputY),
                                         GetPix(24),
                                         GetPix(20)),
                               "削",
                               style3))
                {
                    GameMain.Instance.SoundMgr.PlaySe("se002.ogg", false);
                    Preferences["face"]["f" + faceComboList[faceIndex[selectMaidIndex]].text.Split(':')[1]].Value = "del";
                    SaveConfig();
                    List<string> stringList = new List<string>(300);
                    stringList.AddRange(faceArray);
                    for (int index = 1; index < 300; ++index)
                    {
                        IniKey iniKey = Preferences["face"]["f" + index];
                        if (iniKey.Value != null)
                        {
                            string[] strArray = iniKey.Value.Split(':');
                            if (strArray.Length > 1)
                            {
                                stringList.Add(strArray[0] + "　　　　　　　　　　　　　　　:" + index + ":" + strArray[1]);
                            }
                        }
                        else
                        {
                            break;
                        }
                    }

                    faceCombo.selectedItemIndex = 0;
                    faceComboList = new GUIContent[stringList.ToArray().Length];
                    for (int index = 0; index < stringList.ToArray().Length; ++index)
                    {
                        faceComboList[index] = new GUIContent(stringList.ToArray()[index]);
                    }

                    faceCombo.selectedItemIndex = 0;
                    for (int index = 0; index < maidCnt; ++index)
                    {
                        if (maidArray[index] && maidArray[index].Visible
                                                               && stringList.ToArray().Length <= faceIndex[index])
                        {
                            faceIndex[index] = 0;
                        }
                    }
                }

                GUI.enabled = true;
            }

            GUI.EndScrollView();

            if (faceCombo.isClickedComboButton)
            {
                GUI.enabled = true;
            }

            if (isFace[selectMaidIndex])
            {
                faceIndex[selectMaidIndex] =
                        faceCombo.List(new Rect(GetPix(35),
                                                 GetPix(95),
                                                 GetPix(95),
                                                 GetPix(23)),
                                       faceComboList[faceIndex[selectMaidIndex]].text,
                                       faceComboList,
                                       buttonStyle,
                                        "box",
                                       listStyle2);
            }
            else
            {
                faceCombo.List(new Rect(GetPix(35), GetPix(95), GetPix(95), GetPix(23)),
                               faceComboList[faceIndex[selectMaidIndex]].text,
                               faceComboList,
                               buttonStyle,
                                "box",
                               listStyle2);
            }

            if (faceCombo.isClickedComboButton)
            {
                isCombo = true;
            }
            else if (isCombo)
            {
                isCombo = false;
                TMorph morph = maidArray[selectMaidIndex].body0.Face.morph;
                float[] fieldValue1 = GetFieldValue<TMorph, float[]>(morph, "BlendValues");
                morph.EyeMabataki = 0.0f;
                if (faceIndex[selectMaidIndex] < faceArray.Length)
                {
                    morph.MulBlendValues(faceArray[faceIndex[selectMaidIndex]], 1f);
                }
                else
                {
                    float[] fieldValue2 = GetFieldValue<TMorph, float[]>(morph, "BlendValuesBackup");
                    if (!isVR)
                    {
                        maidArray[selectMaidIndex].boMabataki = false;
                    }

                    string[] strArray = faceComboList[faceIndex[selectMaidIndex]].text.Split(':')[2].Split(',');
                    fieldValue2[(int)morph.hash["eyeclose"]] = float.Parse(strArray[0]);
                    fieldValue2[(int)morph.hash["eyeclose2"]] = float.Parse(strArray[1]);
                    fieldValue2[(int)morph.hash["eyeclose3"]] = float.Parse(strArray[2]);
                    fieldValue2[(int)morph.hash["eyeclose6"]] = float.Parse(strArray[3]);
                    fieldValue1[(int)morph.hash["hitomih"]] = float.Parse(strArray[4]);
                    fieldValue1[(int)morph.hash["hitomis"]] = float.Parse(strArray[5]);
                    fieldValue1[(int)morph.hash["mayuha"]] = float.Parse(strArray[6]);
                    fieldValue1[(int)morph.hash["mayuup"]] = float.Parse(strArray[7]);
                    fieldValue1[(int)morph.hash["mayuv"]] = float.Parse(strArray[8]);
                    fieldValue1[(int)morph.hash["mayuvhalf"]] = float.Parse(strArray[9]);
                    fieldValue1[(int)morph.hash["moutha"]] = float.Parse(strArray[10]);
                    fieldValue1[(int)morph.hash["mouths"]] = float.Parse(strArray[11]);
                    fieldValue1[(int)morph.hash["mouthdw"]] = float.Parse(strArray[12]);
                    fieldValue1[(int)morph.hash["mouthup"]] = float.Parse(strArray[13]);
                    fieldValue1[(int)morph.hash["tangout"]] = float.Parse(strArray[14]);
                    fieldValue1[(int)morph.hash["tangup"]] = float.Parse(strArray[15]);
                    fieldValue1[(int)morph.hash["eyebig"]] = float.Parse(strArray[16]);
                    fieldValue2[(int)morph.hash["eyeclose5"]] = float.Parse(strArray[17]);
                    fieldValue1[(int)morph.hash["mayuw"]] = float.Parse(strArray[18]);
                    fieldValue1[(int)morph.hash["mouthhe"]] = float.Parse(strArray[19]);
                    fieldValue1[(int)morph.hash["mouthc"]] = float.Parse(strArray[20]);
                    fieldValue1[(int)morph.hash["mouthi"]] = float.Parse(strArray[21]);
                    fieldValue1[(int)morph.hash["mouthuphalf"]] = float.Parse(strArray[22]) + 0.01f;
                    try
                    {
                        fieldValue1[(int)morph.hash["tangopen"]] = float.Parse(strArray[23]);
                    }
                    catch { }

                    if (float.Parse(strArray[24]) == 1.0)
                    {
                        fieldValue1[(int)morph.hash["namida"]] = 1f;
                    }
                    else
                    {
                        fieldValue1[(int)morph.hash["namida"]] = 0.0f;
                    }

                    if (float.Parse(strArray[25]) == 1.0)
                    {
                        fieldValue1[(int)morph.hash["tear1"]] = 1f;
                    }
                    else
                    {
                        fieldValue1[(int)morph.hash["tear1"]] = 0.0f;
                    }

                    if (float.Parse(strArray[26]) == 1.0)
                    {
                        fieldValue1[(int)morph.hash["tear2"]] = 1f;
                    }
                    else
                    {
                        fieldValue1[(int)morph.hash["tear2"]] = 0.0f;
                    }

                    if (float.Parse(strArray[27]) == 1.0)
                    {
                        fieldValue1[(int)morph.hash["tear3"]] = 1f;
                    }
                    else
                    {
                        fieldValue1[(int)morph.hash["tear3"]] = 0.0f;
                    }

                    if (float.Parse(strArray[28]) == 1.0)
                    {
                        fieldValue1[(int)morph.hash["shock"]] = 1f;
                    }
                    else
                    {
                        fieldValue1[(int)morph.hash["shock"]] = 0.0f;
                    }

                    if (float.Parse(strArray[29]) == 1.0)
                    {
                        fieldValue1[(int)morph.hash["yodare"]] = 1f;
                    }
                    else
                    {
                        fieldValue1[(int)morph.hash["yodare"]] = 0.0f;
                    }

                    if (float.Parse(strArray[30]) == 1.0)
                    {
                        fieldValue1[(int)morph.hash["hoho"]] = 0.5f;
                    }
                    else
                    {
                        fieldValue1[(int)morph.hash["hoho"]] = 0.0f;
                    }

                    if (float.Parse(strArray[31]) == 1.0)
                    {
                        fieldValue1[(int)morph.hash["hoho2"]] = 0.5f;
                    }
                    else
                    {
                        fieldValue1[(int)morph.hash["hoho2"]] = 0.0f;
                    }

                    if (float.Parse(strArray[32]) == 1.0)
                    {
                        fieldValue1[(int)morph.hash["hohos"]] = 1f;
                    }
                    else
                    {
                        fieldValue1[(int)morph.hash["hohos"]] = 0.0f;
                    }

                    if (float.Parse(strArray[33]) == 1.0)
                    {
                        fieldValue1[(int)morph.hash["hohol"]] = 1f;
                    }
                    else
                    {
                        fieldValue1[(int)morph.hash["hohol"]] = 0.0f;
                    }

                    if (float.Parse(strArray[34]) == 1.0)
                    {
                        fieldValue1[(int)morph.hash["toothoff"]] = 1f;
                    }
                    else
                    {
                        fieldValue1[(int)morph.hash["toothoff"]] = 0.0f;
                    }

                    if (strArray.Length > 35)
                    {
                        morph.boNoseFook = float.Parse(strArray[35]) == 1.0;
                    }
                }

                maidArray[selectMaidIndex].body0.Face.morph.FixBlendValues_Face();
                isFaceInit = true;
                faceCombo.selectedItemIndex = faceIndex[selectMaidIndex];
            }

            GUI.enabled = !faceCombo.isClickedComboButton;

            bool state = GUI.enabled;
            GUI.enabled = true;
            GUI.DragWindow();
            GUI.enabled = state;

            yotogiFlg = false;
            if (sceneLevel != 14
                || !GameObject
                    .Find("/UI Root/YotogiPlayPanel/CommandViewer/SkillViewer/MaskGroup/SkillGroup/CommandParent/CommandUnit"))
            {
                return;
            }

            yotogiFlg = true;
        }

        private void MaidCallWindow(int winID)
        {
            CharacterMgr characterMgr = GameMain.Instance.CharacterMgr;
            GUIStyle style1 = "label";
            style1.fontSize = GetPix(14);
            style1.alignment = TextAnchor.UpperLeft;
            GUIStyle style2 = "button";
            style2.fontSize = GetPix(16);
            style2.alignment = TextAnchor.MiddleCenter;
            GUIStyle style3 = new GUIStyle("toggle")
            {
                fontSize = GetPix(13)
            };
            float pix = GetPix(70);
            if (comboBoxList == null)
            {
                comboBoxControl.selectedItemIndex = 0;
                comboBoxList = new GUIContent[11];
                comboBoxList[0] = new GUIContent("通常");
                comboBoxList[1] = new GUIContent("横一列");
                comboBoxList[2] = new GUIContent("縦一列");
                comboBoxList[3] = new GUIContent("斜め");
                comboBoxList[4] = new GUIContent("円（外向き）");
                comboBoxList[5] = new GUIContent("円（内向き）");
                comboBoxList[6] = new GUIContent("扇");
                comboBoxList[7] = new GUIContent("Ｖ");
                comboBoxList[8] = new GUIContent("^");
                comboBoxList[9] = new GUIContent("Ｍ");
                comboBoxList[10] = new GUIContent("Ｗ");
            }

            bool flag1 = true;
            if (faceFlg || poseFlg || /*sceneFlg ||*/ kankyoFlg || kankyo2Flg)
            {
                flag1 = false;
            }

            if (!isF6 && GUI.Toggle(new Rect(GetPix(2),
                                              GetPix(2),
                                              GetPix(39),
                                              GetPix(20)),
                                    flag1,
                                    "配置",
                                    style3))
            {
                faceFlg = false;
                poseFlg = false;
                // sceneFlg = false;
                kankyoFlg = false;
                kankyo2Flg = false;
                bGui = true;
            }

            if (!yotogiFlg && GUI.Toggle(new Rect(GetPix(41),
                                                   GetPix(2),
                                                   GetPix(39),
                                                   GetPix(20)),
                                         poseFlg,
                                         "操作",
                                         style3))
            {
                poseFlg = true;
                faceFlg = false;
                // sceneFlg = false;
                kankyoFlg = false;
                kankyo2Flg = false;
            }

            if (GUI.Toggle(new Rect(GetPix(80), GetPix(2), GetPix(39), GetPix(20)),
                           faceFlg,
                           "表情",
                           style3))
            {
                faceFlg = true;
                poseFlg = false;
                // sceneFlg = false;
                kankyoFlg = false;
                kankyo2Flg = false;
                if (!faceFlg2)
                {
                    isFaceInit = true;
                    faceFlg2 = true;
                    maidArray[selectMaidIndex].boMabataki = false;
                    faceCombo.selectedItemIndex = faceIndex[selectMaidIndex];
                }
            }

            if (GUI.Toggle(new Rect(GetPix(119), GetPix(2), GetPix(39), GetPix(20)),
                           kankyoFlg,
                           "環境",
                           style3))
            {
                poseFlg = false;
                faceFlg = false;
                // sceneFlg = false;
                kankyoFlg = true;
                kankyo2Flg = false;
            }

            if (!line1)
            {
                line1 = MakeTex(2, 2, new Color(0.0f, 0.0f, 0.0f, 0.3f));
                line2 = MakeTex(2, 2, new Color(0.7f, 0.7f, 0.7f, 0.6f));
            }

            GUI.DrawTexture(new Rect(GetPix(5), GetPix(20), GetPix(160), 2f), line1);
            GUI.DrawTexture(new Rect(GetPix(5), GetPix(20), GetPix(160), 1f), line2);
            int stockMaidCount1 = characterMgr.GetStockMaidCount();
            Rect position;
            Rect viewRect;
            if (sceneLevel != 5)
            {
                position = new Rect(GetPix(7),
                                     GetPix(110),
                                    rectWin.width - GetPix(14),
                                    rectWin.height * 0.83f);
                viewRect = new Rect(0.0f,
                                    0.0f,
                                    position.width * 0.85f,
                                    (pix + GetPix(5)) * stockMaidCount1 + GetPix(15));
            }
            else
            {
                position = new Rect(GetPix(7),
                                     GetPix(110),
                                    rectWin.width - GetPix(14),
                                    (float)(rectWin.height * 0.829999983310699 * 0.980000019073486));
                viewRect = new Rect(0.0f,
                                    0.0f,
                                    position.width * 0.85f,
                                    (float)((pix + (double)GetPix(5)) * stockMaidCount1
                                             + GetPix(15) * 0.920000016689301));
            }

            float y = 0.0f;
            if (comboBoxControl.isClickedComboButton)
            {
                GUI.enabled = false;
            }

            if (GUI.Button(new Rect(GetPix(10), GetPix(78), rectWin.width * 0.85f, GetPix(28)),
                           "呼び出す",
                           style2))
            {
                isYobidashi = true;
                selectMaidIndex = 0;
                copyIndex = 0;
                for (int index = 0; index < maxMaidCnt; ++index)
                {
                    if (!isLock[index] && maidArray[index] && maidArray[index].Visible)
                    {
                        maidArray[index].CrossFade(poseArray[0] + ".anm", false, true, false, 0.0f, 1f);
                        maidArray[index].SetAutoTwistAll(true);
                    }

                    maidArray[index] = null;
                }

                for (int index = 0; index < maxMaidCnt; ++index)
                {
                    isStop[index] = false;
                }

                bGui = false;
                isFadeOut = true;
                GameMain.Instance.MainCamera.FadeOut(0.0f, false, null, true, new Color());
                for (int index = 0; index < characterMgr.GetStockMaidCount(); ++index)
                {
                    characterMgr.GetStockMaidList()[index].Visible = false;
                }
            }

            GUIStyle style4 = "button";
            style4.fontSize = GetPix(13);
            GUIStyleState guiStyleState = new GUIStyleState();
            if (GUI.Button(new Rect(GetPix(10), GetPix(52), rectWin.width * 0.4f, GetPix(23)),
                           "7人選択",
                           style4))
            {
                if (sceneLevel != 5)
                {
                    selectList = new ArrayList
                    {
                        0,
                        1,
                        2,
                        3,
                        4,
                        5,
                        6
                    };
                }
                else
                {
                    int stockMaidCount2 = characterMgr.GetStockMaidCount();
                    selectList = new ArrayList
                    {
                        editMaid
                    };
                    if (stockMaidCount2 > 1)
                    {
                        if (editMaid >= 1)
                        {
                            selectList.Add(0);
                        }
                        else if (stockMaidCount2 > 2)
                        {
                            selectList.Add(1);
                        }
                    }

                    if (stockMaidCount2 > 2)
                    {
                        if (editMaid >= 2)
                        {
                            selectList.Add(1);
                        }
                        else if (stockMaidCount2 > 3)
                        {
                            selectList.Add(2);
                        }
                    }

                    if (stockMaidCount2 > 3)
                    {
                        if (editMaid >= 3)
                        {
                            selectList.Add(2);
                        }
                        else if (stockMaidCount2 > 4)
                        {
                            selectList.Add(3);
                        }
                    }

                    if (stockMaidCount2 > 4)
                    {
                        if (editMaid >= 4)
                        {
                            selectList.Add(3);
                        }
                        else if (stockMaidCount2 > 5)
                        {
                            selectList.Add(4);
                        }
                    }

                    if (stockMaidCount2 > 5)
                    {
                        if (editMaid >= 5)
                        {
                            selectList.Add(4);
                        }
                        else if (stockMaidCount2 > 6)
                        {
                            selectList.Add(5);
                        }
                    }

                    if (stockMaidCount2 > 6)
                    {
                        if (editMaid >= 6)
                        {
                            selectList.Add(5);
                        }
                        else if (stockMaidCount2 > 7)
                        {
                            selectList.Add(6);
                        }
                    }
                }
            }

            if (GUI.Button(new Rect(rectWin.width * 0.5f, GetPix(52), rectWin.width * 0.4f, GetPix(23)),
                           "選択解除",
                           style4))
            {
                selectList = new ArrayList();
                if (sceneLevel == 5)
                {
                    selectList.Add(editMaid);
                }
            }

            GUI.enabled = true;
            maidCallScrollPos = GUI.BeginScrollView(position, maidCallScrollPos, viewRect);
            for (int nStockNo = 0; nStockNo < characterMgr.GetStockMaidCount(); ++nStockNo)
            {
                GUI.enabled = true;
                GUI.DrawTexture(new Rect(2f, y + 2f, (float)(rectWin.width * 0.829999983310699 - 4.0), pix - 4f),
                                 Texture2D.whiteTexture);
                bool flag2 = false;
                for (int index = 0; index < selectList.Count; ++index)
                {
                    if ((int)selectList[index] == nStockNo)
                    {
                        flag2 = true;
                        break;
                    }
                }

                if (comboBoxControl.isClickedComboButton)
                {
                    GUI.enabled = false;
                    GUI.Button(new Rect(0.0f, y, rectWin.width * 0.83f, pix), "", style2);
                    GUI.Button(new Rect(0.0f, y, rectWin.width * 0.83f, pix), "", style2);
                }

                if (GUI.Button(new Rect(0.0f, y, rectWin.width * 0.83f, pix), "", style2))
                {
                    if (flag2)
                    {
                        for (int index = 0; index < selectList.Count; ++index)
                        {
                            if ((int)selectList[index] == nStockNo && (sceneLevel != 5 || (int)selectList[index] != editMaid))
                            {
                                selectList.Remove(nStockNo);
                                break;
                            }
                        }
                    }
                    else
                    {
                        if (selectList.Count > maxMaidCnt - 1)
                        {
                            selectList.Remove(selectList[maxMaidCnt - 1]);
                        }

                        selectList.Add(nStockNo);
                    }
                }

                GUI.enabled = true;
                if (flag2)
                {
                    GUI.DrawTexture(new Rect(5f, y + 5f, (float)(rectWin.width * 0.829999983310699 - 10.0), pix - 10f),
                                     Texture2D.whiteTexture);
                }

                if (characterMgr.GetStockMaid(nStockNo).GetThumIcon())
                {
                    GUI.DrawTexture(new Rect(0.0f, y - 5f, pix, pix), characterMgr.GetStockMaid(nStockNo).GetThumIcon());
                }

                string text = characterMgr.GetStockMaid(nStockNo).status.lastName + "\n"
                                                                                  + characterMgr.GetStockMaid(nStockNo).status.firstName;
                guiStyleState.textColor = Color.black;
                style1.normal = guiStyleState;
                GUI.Label(new Rect(GetPix(65), y + pix / 4f, pix * 2f, pix * 3f), text, style1);
                if (flag2)
                {
                    for (int index = 0; index < selectList.Count; ++index)
                    {
                        if ((int)selectList[index] == nStockNo)
                        {
                            GUI.Label(new Rect(rectWin.width * 0.7f, y + 6f, pix, pix), (index + 1).ToString(), style1);
                            break;
                        }
                    }
                }

                y += pix + GetPix(5);
            }

            GUI.EndScrollView();
            guiStyleState.textColor = Color.white;
            style1.normal = guiStyleState;
            comboBoxControl.List(new Rect(GetPix(10), GetPix(25), rectWin.width * 0.56f, GetPix(24)),
                                 comboBoxList[comboBoxControl.GetSelectedItemIndex()].text,
                                 comboBoxList,
                                 listStyle);
            bool OKButton = GUI.Button(new Rect(rectWin.width * 0.66f, GetPix(25), rectWin.width * 0.24f, GetPix(24)),
                            "決定",
                            style4);

            GUI.DragWindow();

            if (!OKButton)
            {
                return;
            }

            for (int index = 0; index < maxMaidCnt; ++index)
            {
                isStop[index] = false;
            }

            switch (comboBoxControl.GetSelectedItemIndex())
            {
                case 0:
                    for (int index = 0; index < maidCnt; ++index)
                    {
                        Vector3 zero1 = Vector3.zero;
                        Vector3 zero2 = Vector3.zero;
                        if (selectList.Count <= 7)
                        {
                            if (selectList.Count % 2 == 1)
                            {
                                switch (index)
                                {
                                    case 0:
                                        maidArray[index].SetPos(new Vector3(0.0f, 0.0f, 0.0f));
                                        break;
                                    case 1:
                                        maidArray[index].SetPos(new Vector3(-0.6f, 0.0f, 0.26f));
                                        break;
                                    case 2:
                                        maidArray[index].SetPos(new Vector3(0.6f, 0.0f, 0.26f));
                                        break;
                                    case 3:
                                        maidArray[index].SetPos(new Vector3(-1.1f, 0.0f, 0.69f));
                                        break;
                                    case 4:
                                        maidArray[index].SetPos(new Vector3(1.1f, 0.0f, 0.69f));
                                        break;
                                    case 5:
                                        maidArray[index].SetPos(new Vector3(-1.47f, 0.0f, 1.1f));
                                        break;
                                    case 6:
                                        maidArray[index].SetPos(new Vector3(1.47f, 0.0f, 1.1f));
                                        break;
                                }
                            }
                            else
                            {
                                switch (index)
                                {
                                    case 0:
                                        maidArray[index].SetPos(new Vector3(0.3f, 0.0f, 0.0f));
                                        break;
                                    case 1:
                                        maidArray[index].SetPos(new Vector3(-0.3f, 0.0f, 0.0f));
                                        break;
                                    case 2:
                                        maidArray[index].SetPos(new Vector3(0.7f, 0.0f, 0.4f));
                                        break;
                                    case 3:
                                        maidArray[index].SetPos(new Vector3(-0.7f, 0.0f, 0.4f));
                                        break;
                                    case 4:
                                        maidArray[index].SetPos(new Vector3(1f, 0.0f, 0.9f));
                                        break;
                                    case 5:
                                        maidArray[index].SetPos(new Vector3(-1f, 0.0f, 0.9f));
                                        break;
                                }
                            }
                        }
                        else
                        {
                            float num1 = 0.0f;
                            if (selectList.Count >= 11)
                            {
                                float num2 = -0.4f;
                                if (selectList.Count % 2 == 1)
                                {
                                    switch (index)
                                    {
                                        case 0:
                                            maidArray[index].SetPos(new Vector3(0.0f, 0.0f, 0.0f + num2));
                                            break;
                                        case 1:
                                            maidArray[index].SetPos(new Vector3(-0.5f, 0.0f, 0.2f + num2));
                                            break;
                                        case 2:
                                            maidArray[index].SetPos(new Vector3(0.5f, 0.0f, 0.2f + num2));
                                            break;
                                        case 3:
                                            maidArray[index].SetPos(new Vector3(-0.9f, 0.0f, 0.55f + num2));
                                            break;
                                        case 4:
                                            maidArray[index].SetPos(new Vector3(0.9f, 0.0f, 0.55f + num2));
                                            break;
                                        case 5:
                                            maidArray[index].SetPos(new Vector3(-1.25f, 0.0f, 0.9f + num2));
                                            break;
                                        case 6:
                                            maidArray[index].SetPos(new Vector3(1.25f, 0.0f, 0.9f + num2));
                                            break;
                                        case 7:
                                            maidArray[index].SetPos(new Vector3(-1.57f, 0.0f, 1.3f + num2));
                                            break;
                                        case 8:
                                            maidArray[index].SetPos(new Vector3(1.57f, 0.0f, 1.3f + num2));
                                            break;
                                        case 9:
                                            maidArray[index].SetPos(new Vector3(-1.77f, 0.0f, 1.72f + num2));
                                            break;
                                        case 10:
                                            maidArray[index].SetPos(new Vector3(1.77f, 0.0f, 1.72f + num2));
                                            break;
                                        case 11:
                                            maidArray[index].SetPos(new Vector3(-1.85f, 0.0f, 2.17f + num2));
                                            break;
                                        case 12:
                                            maidArray[index].SetPos(new Vector3(1.85f, 0.0f, 2.17f + num2));
                                            break;
                                        default:
                                            maidArray[index].SetPos(new Vector3(0.0f, 0.0f, 0.7f + num2));
                                            break;
                                    }
                                }
                                else
                                {
                                    switch (index)
                                    {
                                        case 0:
                                            maidArray[index].SetPos(new Vector3(0.25f, 0.0f, 0.0f + num2));
                                            break;
                                        case 1:
                                            maidArray[index].SetPos(new Vector3(-0.25f, 0.0f, 0.0f + num2));
                                            break;
                                        case 2:
                                            maidArray[index].SetPos(new Vector3(0.7f, 0.0f, 0.25f + num2));
                                            break;
                                        case 3:
                                            maidArray[index].SetPos(new Vector3(-0.7f, 0.0f, 0.25f + num2));
                                            break;
                                        case 4:
                                            maidArray[index].SetPos(new Vector3(1.05f, 0.0f, 0.6f + num2));
                                            break;
                                        case 5:
                                            maidArray[index].SetPos(new Vector3(-1.05f, 0.0f, 0.6f + num2));
                                            break;
                                        case 6:
                                            maidArray[index].SetPos(new Vector3(1.35f, 0.0f, 0.9f + num2));
                                            break;
                                        case 7:
                                            maidArray[index].SetPos(new Vector3(-1.35f, 0.0f, 0.9f + num2));
                                            break;
                                        case 8:
                                            maidArray[index].SetPos(new Vector3(1.6f, 0.0f, 1.3f + num2));
                                            break;
                                        case 9:
                                            maidArray[index].SetPos(new Vector3(-1.6f, 0.0f, 1.3f + num2));
                                            break;
                                        case 10:
                                            maidArray[index].SetPos(new Vector3(1.8f, 0.0f, 1.72f + num2));
                                            break;
                                        case 11:
                                            maidArray[index].SetPos(new Vector3(-1.8f, 0.0f, 1.72f + num2));
                                            break;
                                        case 12:
                                            maidArray[index].SetPos(new Vector3(1.9f, 0.0f, 2.17f + num2));
                                            break;
                                        case 13:
                                            maidArray[index].SetPos(new Vector3(-1.9f, 0.0f, 2.17f + num2));
                                            break;
                                        default:
                                            maidArray[index].SetPos(new Vector3(0.0f, 0.0f, 0.7f + num2));
                                            break;
                                    }
                                }
                            }
                            else if (selectList.Count >= 8)
                            {
                                if (selectList.Count >= 9)
                                {
                                    num1 = -0.2f;
                                }

                                if (selectList.Count % 2 == 1)
                                {
                                    switch (index)
                                    {
                                        case 0:
                                            maidArray[index].SetPos(new Vector3(0.0f, 0.0f, 0.0f + num1));
                                            break;
                                        case 1:
                                            maidArray[index].SetPos(new Vector3(-0.55f, 0.0f, 0.2f + num1));
                                            break;
                                        case 2:
                                            maidArray[index].SetPos(new Vector3(0.55f, 0.0f, 0.2f + num1));
                                            break;
                                        case 3:
                                            maidArray[index].SetPos(new Vector3(-1f, 0.0f, 0.6f + num1));
                                            break;
                                        case 4:
                                            maidArray[index].SetPos(new Vector3(1f, 0.0f, 0.6f + num1));
                                            break;
                                        case 5:
                                            maidArray[index].SetPos(new Vector3(-1.35f, 0.0f, 1f + num1));
                                            break;
                                        case 6:
                                            maidArray[index].SetPos(new Vector3(1.35f, 0.0f, 1f + num1));
                                            break;
                                        case 7:
                                            maidArray[index].SetPos(new Vector3(-1.6f, 0.0f, 1.4f + num1));
                                            break;
                                        case 8:
                                            maidArray[index].SetPos(new Vector3(1.6f, 0.0f, 1.4f + num1));
                                            break;
                                    }
                                }
                                else
                                {
                                    switch (index)
                                    {
                                        case 0:
                                            maidArray[index].SetPos(new Vector3(0.28f, 0.0f, 0.0f + num1));
                                            break;
                                        case 1:
                                            maidArray[index].SetPos(new Vector3(-0.28f, 0.0f, 0.0f + num1));
                                            break;
                                        case 2:
                                            maidArray[index].SetPos(new Vector3(0.78f, 0.0f, 0.3f + num1));
                                            break;
                                        case 3:
                                            maidArray[index].SetPos(new Vector3(-0.78f, 0.0f, 0.3f + num1));
                                            break;
                                        case 4:
                                            maidArray[index].SetPos(new Vector3(1.22f, 0.0f, 0.7f + num1));
                                            break;
                                        case 5:
                                            maidArray[index].SetPos(new Vector3(-1.22f, 0.0f, 0.7f + num1));
                                            break;
                                        case 6:
                                            maidArray[index].SetPos(new Vector3(1.55f, 0.0f, 1.1f + num1));
                                            break;
                                        case 7:
                                            maidArray[index].SetPos(new Vector3(-1.55f, 0.0f, 1.1f + num1));
                                            break;
                                        case 8:
                                            maidArray[index].SetPos(new Vector3(1.77f, 0.0f, 1.58f + num1));
                                            break;
                                        case 9:
                                            maidArray[index].SetPos(new Vector3(-1.77f, 0.0f, 1.58f + num1));
                                            break;
                                    }
                                }
                            }
                        }

                        zero2.y = (float)(Math.Atan2(maidArray[index].transform.position.x,
                                                       maidArray[index].transform.position.z - 1.5) * 180.0 / Math.PI) + 180f;
                        maidArray[index].SetRot(zero2);
                    }

                    break;
                case 1:
                    for (int index = 0; index < maidCnt; ++index)
                    {
                        Vector3 zero1 = Vector3.zero;
                        Vector3 zero2 = Vector3.zero;
                        if (maidCnt < 9)
                        {
                            switch (index)
                            {
                                case 1:
                                    zero1.x = -0.6f;
                                    break;
                                case 2:
                                    zero1.x = 0.6f;
                                    break;
                                case 3:
                                    zero1.x = -1.2f;
                                    break;
                                case 4:
                                    zero1.x = 1.2f;
                                    break;
                                case 5:
                                    zero1.x = -1.8f;
                                    break;
                                case 6:
                                    zero1.x = 1.8f;
                                    break;
                                case 7:
                                    zero1.x = -2.4f;
                                    break;
                                case 8:
                                    zero1.x = 2.4f;
                                    break;
                                case 9:
                                    zero1.x = -3f;
                                    break;
                                case 10:
                                    zero1.x = 3f;
                                    break;
                            }
                        }
                        else
                        {
                            switch (index)
                            {
                                case 1:
                                    zero1.x = -0.5f;
                                    break;
                                case 2:
                                    zero1.x = 0.5f;
                                    break;
                                case 3:
                                    zero1.x = -1f;
                                    break;
                                case 4:
                                    zero1.x = 1f;
                                    break;
                                case 5:
                                    zero1.x = -1.5f;
                                    break;
                                case 6:
                                    zero1.x = 1.5f;
                                    break;
                                case 7:
                                    zero1.x = -2f;
                                    break;
                                case 8:
                                    zero1.x = 2f;
                                    break;
                                case 9:
                                    zero1.x = -2.5f;
                                    break;
                                case 10:
                                    zero1.x = 2.5f;
                                    break;
                                case 11:
                                    zero1.x = -3f;
                                    break;
                                case 12:
                                    zero1.x = 3f;
                                    break;
                                case 13:
                                    zero1.x = -3.5f;
                                    break;
                            }
                        }

                        maidArray[index].SetPos(zero1);
                        maidArray[index].SetRot(zero2);
                        if (index >= 14)
                        {
                            maidArray[index].SetPos(new Vector3(0.0f, 0.0f, 0.7f));
                        }
                    }

                    break;
                case 2:
                    for (int index = 0; index < maidCnt; ++index)
                    {
                        Vector3 zero1 = Vector3.zero;
                        Vector3 zero2 = Vector3.zero;
                        if (maidCnt < 9)
                        {
                            switch (index)
                            {
                                case 1:
                                    zero1.z = 0.6f;
                                    break;
                                case 2:
                                    zero1.z = -0.6f;
                                    break;
                                case 3:
                                    zero1.z = 1.2f;
                                    break;
                                case 4:
                                    zero1.z = -1.2f;
                                    break;
                                case 5:
                                    zero1.z = 1.8f;
                                    break;
                                case 6:
                                    zero1.z = -1.8f;
                                    break;
                                case 7:
                                    zero1.z = 2.4f;
                                    break;
                                case 8:
                                    zero1.z = -2.4f;
                                    break;
                                case 9:
                                    zero1.z = 3f;
                                    break;
                                case 10:
                                    zero1.z = -3f;
                                    break;
                            }
                        }
                        else
                        {
                            switch (index)
                            {
                                case 1:
                                    zero1.z = 0.5f;
                                    break;
                                case 2:
                                    zero1.z = -0.5f;
                                    break;
                                case 3:
                                    zero1.z = 1f;
                                    break;
                                case 4:
                                    zero1.z = -1f;
                                    break;
                                case 5:
                                    zero1.z = 1.5f;
                                    break;
                                case 6:
                                    zero1.z = -1.5f;
                                    break;
                                case 7:
                                    zero1.z = 2f;
                                    break;
                                case 8:
                                    zero1.z = -2f;
                                    break;
                                case 9:
                                    zero1.z = 2.5f;
                                    break;
                                case 10:
                                    zero1.z = -2.5f;
                                    break;
                                case 11:
                                    zero1.z = 3f;
                                    break;
                                case 12:
                                    zero1.z = -3f;
                                    break;
                                case 13:
                                    zero1.z = 3.5f;
                                    break;
                            }
                        }

                        maidArray[index].SetPos(zero1);
                        maidArray[index].SetRot(zero2);
                        if (index >= 14)
                        {
                            maidArray[index].SetPos(new Vector3(0.0f, 0.0f, 0.7f));
                        }
                    }

                    break;
                case 3:
                    for (int index = 0; index < maidCnt; ++index)
                    {
                        Vector3 zero1 = Vector3.zero;
                        Vector3 zero2 = Vector3.zero;
                        float num = 0.5f;
                        if (maidCnt > 11)
                        {
                            num = 0.25f;
                        }
                        else if (maidCnt > 9)
                        {
                            num = 0.32f;
                        }
                        else if (maidCnt > 7)
                        {
                            num = 0.4f;
                        }

                        switch (index)
                        {
                            case 1:
                                zero1.x = -num;
                                zero1.z = num;
                                break;
                            case 2:
                                zero1.x = num;
                                zero1.z = -num;
                                break;
                            case 3:
                                zero1.x = (float)(-num * 2.0);
                                zero1.z = num * 2f;
                                break;
                            case 4:
                                zero1.x = num * 2f;
                                zero1.z = (float)(-num * 2.0);
                                break;
                            case 5:
                                zero1.x = (float)(-num * 3.0);
                                zero1.z = num * 3f;
                                break;
                            case 6:
                                zero1.x = num * 3f;
                                zero1.z = (float)(-num * 3.0);
                                break;
                            case 7:
                                zero1.x = (float)(-num * 4.0);
                                zero1.z = num * 4f;
                                break;
                            case 8:
                                zero1.x = num * 4f;
                                zero1.z = (float)(-num * 4.0);
                                break;
                            case 9:
                                zero1.x = (float)(-num * 5.0);
                                zero1.z = num * 5f;
                                break;
                            case 10:
                                zero1.x = num * 5f;
                                zero1.z = (float)(-num * 5.0);
                                break;
                            case 11:
                                zero1.x = (float)(-num * 6.0);
                                zero1.z = num * 6f;
                                break;
                            case 12:
                                zero1.x = num * 6f;
                                zero1.z = (float)(-num * 6.0);
                                break;
                            case 13:
                                zero1.x = (float)(-num * 7.0);
                                zero1.z = num * 7f;
                                break;
                        }

                        maidArray[index].SetPos(zero1);
                        maidArray[index].SetRot(zero2);
                        if (index >= 14)
                        {
                            maidArray[index].SetPos(new Vector3(0.0f, 0.0f, 0.7f));
                        }
                    }

                    break;
                case 4:
                    for (int index = 0; index < maidCnt; ++index)
                    {
                        Vector3 zero1 = Vector3.zero;
                        Vector3 zero2 = Vector3.zero;
                        float num = (float)(0.400000005960464 + 0.0799999982118607 * maidCnt);
                        zero1.x = num * (float)Math.Cos(Math.PI / 180.0 * (90 + 360 * index / maidCnt));
                        zero1.z = num * (float)Math.Sin(Math.PI / 180.0 * (90 + 360 * index / maidCnt));
                        maidArray[index].SetPos(zero1);
                        zero2.y = (float)(Math.Atan2(zero1.x, zero1.z) * 180.0 / Math.PI);
                        maidArray[index].SetRot(zero2);
                    }

                    break;
                case 5:
                    for (int index = 0; index < maidCnt; ++index)
                    {
                        Vector3 zero1 = Vector3.zero;
                        Vector3 zero2 = Vector3.zero;
                        float num = (float)(0.400000005960464 + 0.0799999982118607 * maidCnt);
                        zero1.x = num * (float)Math.Cos(Math.PI / 180.0 * (90 + 360 * index / maidCnt));
                        zero1.z = num * (float)Math.Sin(Math.PI / 180.0 * (90 + 360 * index / maidCnt));
                        maidArray[index].SetPos(zero1);
                        zero2.y = (float)(Math.Atan2(zero1.x, zero1.z) * 180.0 / Math.PI) + 180f;
                        maidArray[index].SetRot(zero2);
                    }

                    break;
                case 6:
                    for (int index = 0; index < maidCnt; ++index)
                    {
                        Vector3 zero1 = Vector3.zero;
                        Vector3 zero2 = Vector3.zero;
                        float num = 0.0f;
                        if (maidCnt > 9)
                        {
                            num = -0.4f;
                        }
                        else if (maidCnt > 7)
                        {
                            num = -0.2f;
                        }

                        switch (index)
                        {
                            case 0:
                                zero1.z = 0.3f;
                                break;
                            case 1:
                                zero1.x = -0.9f;
                                zero1.z = -0.4f;
                                zero2.y = 40f;
                                break;
                            case 2:
                                zero1.x = 0.9f;
                                zero1.z = -0.4f;
                                zero2.y = -40f;
                                break;
                            case 3:
                                zero1.x = -0.4f;
                                zero1.z = -0.8f;
                                zero2.y = 20f;
                                break;
                            case 4:
                                zero1.x = 0.4f;
                                zero1.z = -0.8f;
                                zero2.y = -20f;
                                break;
                            case 5:
                                zero1.x = -1.2f;
                                zero1.z = 0.1f;
                                zero2.y = 60f;
                                break;
                            case 6:
                                zero1.x = 1.2f;
                                zero1.z = 0.1f;
                                zero2.y = -60f;
                                break;
                            case 7:
                                zero1.x = -1.5f;
                                zero1.z = 0.6f;
                                zero2.y = 80f;
                                break;
                            case 8:
                                zero1.x = 1.5f;
                                zero1.z = 0.6f;
                                zero2.y = -80f;
                                break;
                            case 9:
                                zero1.x = -1.6f;
                                zero1.z = 1.15f;
                                zero2.y = 100f;
                                break;
                            case 10:
                                zero1.x = 1.6f;
                                zero1.z = 1.15f;
                                zero2.y = -100f;
                                break;
                            case 11:
                                zero1.x = -1.6f;
                                zero1.z = 1.65f;
                                zero2.y = 110f;
                                break;
                            case 12:
                                zero1.x = 1.65f;
                                zero1.z = 1.65f;
                                zero2.y = -110f;
                                break;
                            case 13:
                                zero1.x = -1.65f;
                                zero1.z = 2.15f;
                                zero2.y = 120f;
                                break;
                        }

                        if (index > 0)
                        {
                            zero1.z += num;
                        }
                        else
                        {
                            zero1.z -= num;
                        }

                        maidArray[index].SetPos(zero1);
                        maidArray[index].SetRot(zero2);
                        if (index >= 14)
                        {
                            maidArray[index].SetPos(new Vector3(0.0f, 0.0f, 0.7f));
                        }
                    }

                    break;
                case 7:
                    for (int index = 0; index < maidCnt; ++index)
                    {
                        Vector3 zero1 = Vector3.zero;
                        Vector3 zero2 = Vector3.zero;
                        float num = 0.0f;
                        if (maidCnt > 11)
                        {
                            num = 0.6f;
                        }
                        else if (maidCnt > 9)
                        {
                            num = 0.4f;
                        }
                        else if (maidCnt > 7)
                        {
                            num = 0.2f;
                        }

                        switch (index)
                        {
                            case 0:
                                zero1.z = 0.8f;
                                break;
                            case 1:
                                zero1.x = -0.45f;
                                zero1.z = 0.3f;
                                zero2.y = -10f;
                                break;
                            case 2:
                                zero1.x = 0.45f;
                                zero1.z = 0.3f;
                                zero2.y = 10f;
                                break;
                            case 3:
                                zero1.x = -0.8f;
                                zero1.z = -0.2f;
                                zero2.y = -20f;
                                break;
                            case 4:
                                zero1.x = 0.8f;
                                zero1.z = -0.2f;
                                zero2.y = 20f;
                                break;
                            case 5:
                                zero1.x = -1.2f;
                                zero1.z = -0.75f;
                                zero2.y = -30f;
                                break;
                            case 6:
                                zero1.x = 1.2f;
                                zero1.z = -0.75f;
                                zero2.y = 30f;
                                break;
                            case 7:
                                zero1.x = -1.6f;
                                zero1.z = -1.25f;
                                zero2.y = -40f;
                                break;
                            case 8:
                                zero1.x = 1.6f;
                                zero1.z = -1.25f;
                                zero2.y = 40f;
                                break;
                            case 9:
                                zero1.x = -2f;
                                zero1.z = -1.75f;
                                zero2.y = -50f;
                                break;
                            case 10:
                                zero1.x = 2f;
                                zero1.z = -1.75f;
                                zero2.y = 50f;
                                break;
                            case 11:
                                zero1.x = -2.4f;
                                zero1.z = -2.25f;
                                zero2.y = -60f;
                                break;
                            case 12:
                                zero1.x = 2.4f;
                                zero1.z = -2.25f;
                                zero2.y = 60f;
                                break;
                            case 13:
                                zero1.x = -2.8f;
                                zero1.z = -2.75f;
                                zero2.y = -70f;
                                break;
                        }

                        zero1.z += num;
                        maidArray[index].SetPos(zero1);
                        maidArray[index].SetRot(zero2);
                        if (index >= 14)
                        {
                            maidArray[index].SetPos(new Vector3(0.0f, 0.0f, 0.7f));
                        }
                    }

                    break;
                case 8:
                    for (int index = 0; index < maidCnt; ++index)
                    {
                        Vector3 zero1 = Vector3.zero;
                        Vector3 zero2 = Vector3.zero;
                        float num = 0.0f;
                        if (maidCnt > 11)
                        {
                            num = -0.6f;
                        }
                        else if (maidCnt > 9)
                        {
                            num = -0.4f;
                        }
                        else if (maidCnt > 7)
                        {
                            num = -0.2f;
                        }

                        switch (index)
                        {
                            case 0:
                                zero1.z = -0.75f;
                                break;
                            case 1:
                                zero1.x = -0.45f;
                                zero1.z = -0.2f;
                                zero2.y = 20f;
                                break;
                            case 2:
                                zero1.x = 0.45f;
                                zero1.z = -0.2f;
                                zero2.y = -20f;
                                break;
                            case 3:
                                zero1.x = -0.8f;
                                zero1.z = 0.3f;
                                zero2.y = 35f;
                                break;
                            case 4:
                                zero1.x = 0.8f;
                                zero1.z = 0.3f;
                                zero2.y = -35f;
                                break;
                            case 5:
                                zero1.x = -1.2f;
                                zero1.z = 0.8f;
                                zero2.y = 50f;
                                break;
                            case 6:
                                zero1.x = 1.2f;
                                zero1.z = 0.8f;
                                zero2.y = -50f;
                                break;
                            case 7:
                                zero1.x = -1.6f;
                                zero1.z = 1.3f;
                                zero2.y = 65f;
                                break;
                            case 8:
                                zero1.x = 1.6f;
                                zero1.z = 1.3f;
                                zero2.y = -65f;
                                break;
                            case 9:
                                zero1.x = -2f;
                                zero1.z = 1.8f;
                                zero2.y = 80f;
                                break;
                            case 10:
                                zero1.x = 2f;
                                zero1.z = 1.8f;
                                zero2.y = -80f;
                                break;
                            case 11:
                                zero1.x = -2.4f;
                                zero1.z = 2.3f;
                                zero2.y = 90f;
                                break;
                            case 12:
                                zero1.x = 2.4f;
                                zero1.z = 2.3f;
                                zero2.y = -90f;
                                break;
                            case 13:
                                zero1.x = -2.8f;
                                zero1.z = 2.8f;
                                zero2.y = 100f;
                                break;
                        }

                        zero1.z += num;
                        maidArray[index].SetPos(zero1);
                        maidArray[index].SetRot(zero2);
                        if (index >= 14)
                        {
                            maidArray[index].SetPos(new Vector3(0.0f, 0.0f, 0.7f));
                        }
                    }

                    break;
                case 9:
                    for (int index = 0; index < maidCnt; ++index)
                    {
                        Vector3 zero1 = Vector3.zero;
                        Vector3 zero2 = Vector3.zero;
                        float num = 1f;
                        if (maidCnt > 9)
                        {
                            num = 0.84f;
                        }
                        else if (maidCnt > 7)
                        {
                            num = 0.92f;
                        }

                        switch (index)
                        {
                            case 0:
                                zero1.z = 0.0f;
                                break;
                            case 1:
                                zero1.x = -0.5f;
                                zero1.z = -0.5f;
                                break;
                            case 2:
                                zero1.x = 0.5f;
                                zero1.z = -0.5f;
                                break;
                            case 3:
                                zero1.x = -1f;
                                zero1.z = 0.2f;
                                break;
                            case 4:
                                zero1.x = 1f;
                                zero1.z = 0.2f;
                                break;
                            case 5:
                                zero1.x = -1.5f;
                                zero1.z = -0.5f;
                                break;
                            case 6:
                                zero1.x = 1.5f;
                                zero1.z = -0.5f;
                                break;
                            case 7:
                                zero1.x = -2f;
                                zero1.z = 0.2f;
                                break;
                            case 8:
                                zero1.x = 2f;
                                zero1.z = 0.2f;
                                break;
                            case 9:
                                zero1.x = -2.5f;
                                zero1.z = -0.5f;
                                break;
                            case 10:
                                zero1.x = 2.5f;
                                zero1.z = -0.5f;
                                break;
                            case 11:
                                zero1.x = -3f;
                                zero1.z = 0.2f;
                                break;
                            case 12:
                                zero1.x = 3f;
                                zero1.z = 0.2f;
                                break;
                            case 13:
                                zero1.x = -3.5f;
                                zero1.z = -0.5f;
                                break;
                        }

                        zero1.x *= num;
                        maidArray[index].SetPos(zero1);
                        maidArray[index].SetRot(zero2);
                        if (index >= 14)
                        {
                            maidArray[index].SetPos(new Vector3(0.0f, 0.0f, 0.7f));
                        }
                    }

                    break;
                case 10:
                    for (int index = 0; index < maidCnt; ++index)
                    {
                        Vector3 zero1 = Vector3.zero;
                        Vector3 zero2 = Vector3.zero;
                        float num = 1f;
                        if (maidCnt > 9)
                        {
                            num = 0.84f;
                        }
                        else if (maidCnt > 7)
                        {
                            num = 0.92f;
                        }

                        switch (index)
                        {
                            case 0:
                                zero1.z = -0.4f;
                                break;
                            case 1:
                                zero1.x = -0.5f;
                                zero1.z = 0.2f;
                                break;
                            case 2:
                                zero1.x = 0.5f;
                                zero1.z = 0.2f;
                                break;
                            case 3:
                                zero1.x = -1f;
                                zero1.z = -0.5f;
                                break;
                            case 4:
                                zero1.x = 1f;
                                zero1.z = -0.5f;
                                break;
                            case 5:
                                zero1.x = -1.5f;
                                zero1.z = 0.2f;
                                break;
                            case 6:
                                zero1.x = 1.5f;
                                zero1.z = 0.2f;
                                break;
                            case 7:
                                zero1.x = -2f;
                                zero1.z = -0.5f;
                                break;
                            case 8:
                                zero1.x = 2f;
                                zero1.z = -0.5f;
                                break;
                            case 9:
                                zero1.x = -2.5f;
                                zero1.z = 0.2f;
                                break;
                            case 10:
                                zero1.x = 2.5f;
                                zero1.z = 0.2f;
                                break;
                            case 11:
                                zero1.x = -3f;
                                zero1.z = -0.5f;
                                break;
                            case 12:
                                zero1.x = 3f;
                                zero1.z = -0.5f;
                                break;
                            case 13:
                                zero1.x = -3.5f;
                                zero1.z = 0.2f;
                                break;
                        }

                        zero1.x *= num;
                        maidArray[index].SetPos(zero1);
                        maidArray[index].SetRot(zero2);
                        if (index >= 14)
                        {
                            maidArray[index].SetPos(new Vector3(0.0f, 0.0f, 0.7f));
                        }
                    }

                    break;
            }

            for (int index = 0; index < maxMaidCnt; ++index)
            {
                if (!isLock[index] && maidArray[index] != null && maidArray[index].Visible)
                {
                    maidArray[index].CrossFade(poseArray[0] + ".anm", false, true, false, 0.0f, 1f);
                    maidArray[index].SetAutoTwistAll(true);
                }
            }
        }

        private void MessageWindow(int winID)
        {
            GUIStyle style1 = "label";
            style1.fontSize = GetPix(12);
            style1.alignment = TextAnchor.UpperLeft;
            GUIStyle style2 = "button";
            style2.fontSize = GetPix(16);
            GUI.Label(new Rect(GetPix(8), GetPix(4), GetPix(80), GetPix(25)),
                      "名前",
                      style1);
            inName = GUI.TextField(new Rect(GetPix(35),
                                             GetPix(4),
                                             GetPix(120),
                                             GetPix(20)),
                                   inName);
            GUI.Label(new Rect(GetPix(180), GetPix(4), GetPix(100), GetPix(25)),
                      "サイズ",
                      style1);
            fontSize = (int)GUI.HorizontalSlider(new Rect(GetPix(220),
                                                            GetPix(9),
                                                            GetPix(100),
                                                            GetPix(20)),
                                                   fontSize,
                                                  25f,
                                                  60f);
            if (fontSize != mFontSize)
            {
                mFontSize = fontSize;
                GameObject gameObject = GameObject.Find("__GameMain__/SystemUI Root").transform.Find("MessageWindowPanel").gameObject;
                MessageClass messageClass = new MessageClass(gameObject, GameMain.Instance.ScriptMgr.adv_kag.MessageWindowMgr);
                SetFieldValue2<UILabel, int>(UTY.GetChildObject(gameObject, "MessageViewer/MsgParent/Message", false)
                                                .GetComponent<UILabel>(),
                                             "mFontSize",
                                             fontSize);
            }

            GUI.Label(new Rect(GetPix(325), GetPix(4), GetPix(100), GetPix(25)),
                      fontSize.ToString() + "pt",
                      style1);
            inText = GUI.TextArea(new Rect(GetPix(8),
                                            GetPix(26),
                                           rectWin2.width - GetPix(15),
                                            GetPix(52)),
                                  inText,
                                  300);
            if (GUI.Button(new Rect(GetPix(8), GetPix(82), GetPix(60), GetPix(20)),
                            "決定",
                            style2))
            {
                isMessage = true;
                bGuiMessage = false;
                GameObject gameObject1 = GameObject.Find("__GameMain__/SystemUI Root").transform.Find("MessageWindowPanel").gameObject;
                MessageWindowMgr messageWindowMgr = GameMain.Instance.ScriptMgr.adv_kag.MessageWindowMgr;
                messageWindowMgr.OpenMessageWindowPanel();
                MessageClass inst = new MessageClass(gameObject1, messageWindowMgr);
                UILabel component = UTY.GetChildObject(gameObject1, "MessageViewer/MsgParent/Message", false).GetComponent<UILabel>();
                component.ProcessText();
                SetFieldValue2<UILabel, int>(component, "mFontSize", fontSize);
                SetFieldValue5<MessageClass, UILabel>(inst, "message_label_", component);
                inst.SetText(inName, inText, "", 0, AudioSourceMgr.Type.System);
                inst.FinishChAnime();
            }
            GUI.DragWindow();
        }

        private void SceneManagerWindow(int winID)
        {
            GUIStyle labelStyle = new GUIStyle("label");
            labelStyle.fontSize = GetPix(15);
            labelStyle.alignment = TextAnchor.MiddleCenter;
            GUIStyle newSaveStyle = new GUIStyle("button");
            newSaveStyle.alignment = TextAnchor.MiddleCenter;
            newSaveStyle.fontSize = GetPix(90);
            GUIStyle saveImageStyle = new GUIStyle("label");
            saveImageStyle.fontSize = GetPix(12);
            saveImageStyle.alignment = TextAnchor.MiddleCenter;
            saveImageStyle.padding = new RectOffset(0, 0, 0, 0);
            GUIStyle saveControlStyle = new GUIStyle("button");
            saveControlStyle.fontSize = GetPix(12);
            saveControlStyle.alignment = TextAnchor.MiddleCenter;
            GUIStyle listStyle = new GUIStyle("button");
            listStyle.fontSize = selectedButtonStyle.fontSize = GetPix(12);
            listStyle.alignment = TextAnchor.MiddleLeft;
            selectedButtonStyle.alignment = TextAnchor.MiddleLeft;
            GUIStyle textFieldStyle = new GUIStyle("textfield");
            textFieldStyle.alignment = TextAnchor.MiddleLeft;
            GUIStyle resizeHandleStyle = new GUIStyle("label");
            resizeHandleStyle.fontSize = GetPix(25);
            resizeHandleStyle.alignment = TextAnchor.MiddleCenter;

            // Window variables
            int windowPadding = GetPix(10);
            int windowPaddingY = GetPix(20);
            int buttonSize = GetPix(25);
            int saveGridOffset = GetPix(200);

            if (createSceneFlag || loadSceneFlag || manageSceneFlag || deleteDirectoryFlag || deleteSceneFlag)
            {
                GUI.enabled = false;
            }

            #region Titlebar

            if (GUI.Button(new Rect(
                sceneManagerRect.width - windowPadding - buttonSize,
                windowPadding,
                buttonSize,
                buttonSize
            ), "X", saveControlStyle))
            {
                sceneFlg = false;

                bGui = true;
                copyIndex = 0;
            }

            if (GUI.Button(new Rect(
                saveGridOffset - GetPix(70) + windowPadding,
                windowPadding,
                GetPix(70),
                buttonSize
            ), "Refresh", saveControlStyle))
            {
                RefreshSceneManager();
            }

            Color originalColor = GUI.backgroundColor;
            if (kankyoToggle) GUI.backgroundColor = Color.green;

            kankyoToggle = GUI.Toggle(new Rect(
                windowPadding,
                windowPadding,
                GetPix(75),
                buttonSize
            ), kankyoToggle, "Backgrounds", saveControlStyle);

            GUI.backgroundColor = originalColor;

            GUI.Label(new Rect(
                windowPadding,
                windowPadding,
                sceneManagerRect.width - windowPadding,
                buttonSize
            ), directoryList[selectedDirectory], labelStyle);

            #endregion

            int saveGridX = windowPaddingY + saveGridOffset;
            int saveGridY = windowPaddingY + buttonSize;
            float saveGridWidth = sceneManagerRect.width - saveGridX - windowPadding;
            float saveGridHeight = sceneManagerRect.height - saveGridY;

            int numImages = scenes.Count;

            #region Directory List

            Rect dirListScrollRect = new Rect(
                windowPadding,
                windowPaddingY + buttonSize,
                saveGridOffset,
                saveGridHeight - windowPaddingY - buttonSize
            );

            Rect dirListScrollView = new Rect(0, 0,
                saveGridOffset - 50,
                GetPix(22) * (directoryList.Length + 1) + buttonSize + windowPadding
            );

            GUI.Box(dirListScrollRect, "");

            dirListScrollPos = GUI.BeginScrollView(dirListScrollRect, dirListScrollPos, dirListScrollView);

            for (int i = 0; i < directoryList.Length; i++)
            {
                int listEntrySize = GetPix(30);
                if (GUI.Button(new Rect(0,
                    i * listEntrySize,
                    saveGridOffset,
                    listEntrySize), directoryList[i],
                    i == selectedDirectory ? selectedButtonStyle : listStyle))
                {
                    SwitchDirectory(directoryList[i]);
                }
            }

            GUI.EndScrollView();

            if (!createDirectoryFlag)
            {
                if (GUI.Button(new Rect(
                    windowPadding,
                    saveGridHeight + windowPadding,
                    GetPix(110),
                    buttonSize
                ), "New Folder", saveControlStyle))
                {
                    createDirectoryFlag = true;
                }

                bool enabled = GUI.enabled;

                GUI.enabled = selectedDirectory != 0;

                if (GUI.Button(new Rect(
                    saveGridOffset - GetPix(80) + windowPadding,
                    saveGridHeight + windowPadding,
                    GetPix(80),
                    buttonSize
                ), "Delete", saveControlStyle))
                {
                    deleteDirectoryFlag = true;
                }
                GUI.enabled = enabled;
            }
            else
            {
                float textFieldWidth = saveGridOffset - buttonSize;

                Rect cancelRect = new Rect(
                        textFieldWidth + windowPadding,
                        saveGridHeight + windowPadding,
                        buttonSize,
                        buttonSize
                    );

                bool cancel = GUI.Button(cancelRect, "X", saveControlStyle);

                GUI.SetNextControlName("textEntry");

                GUI.FocusControl("textEntry");

                if (cancel)
                {
                    textFieldValue = "";
                    createDirectoryFlag = false;
                }
                else if (Event.current.Equals(Event.KeyboardEvent("return")) && GUI.GetNameOfFocusedControl() == "textEntry")
                {
                    CreateDirectory(textFieldValue);
                    textFieldValue = "";
                    createDirectoryFlag = false;
                }
                else
                {
                    textFieldValue = GUI.TextField(new Rect(
                        windowPadding,
                        saveGridHeight + windowPadding,
                        textFieldWidth,
                        buttonSize
                    ), textFieldValue, 30, textFieldStyle);
                }
            }
            #endregion

            #region SAVE_GRID

            float scale = 0.55f;
            float imageWidth = 480f * scale;
            float imageHeight = 270f * scale;
            float imagePadding = GetPix(9);

            int maxColumns = Mathf.Max(1, (int)(saveGridWidth / (imageWidth + imagePadding)));
            float imageGridWidth = maxColumns * (imageWidth + imagePadding);
            float imageGridX = saveGridX + (saveGridWidth / 2f - imageGridWidth / 2f) - windowPadding;
            float imageGridOffset = (saveGridWidth - imageGridWidth) / 2f - windowPadding;

            Rect saveGridScrollRect = new Rect(
                saveGridX + windowPadding
                , saveGridY
                , saveGridWidth - windowPadding
                , saveGridHeight - windowPadding
            );

            Rect saveGridScrollView = new Rect(0, 0
                , saveGridWidth - 50
                , (scenes.Count / maxColumns + 1) * (imageHeight + imagePadding) + imagePadding
            );

            GUI.Box(new Rect(
            saveGridX
            , saveGridY
            , saveGridWidth
            , saveGridHeight - windowPadding
            ), "");

            sceneManagerScrollPos = GUI.BeginScrollView(saveGridScrollRect, sceneManagerScrollPos, saveGridScrollView);
            if (GUI.Button(new Rect(
                imageGridOffset
                , imagePadding
                , imageWidth
                , imageHeight)
                , "+", newSaveStyle))
            {
                createSceneFlag = true;
                TakeScreenshot();
            }

            if (scenes.Count > 0)
            {
                int j = 1;
                int i = scenes.Count - 1;

                while (i >= 0)
                {
                    float imageX = (j % maxColumns) * imageWidth + (j % maxColumns) * imagePadding + imageGridOffset;
                    float imageY = (j / maxColumns) * imageHeight + (j / maxColumns + 1) * imagePadding;

                    if (GUI.Button(new Rect(
                        imageX
                        , imageY
                        , imageWidth
                        , imageHeight), scenes[i].screenshot, saveImageStyle))
                    {
                        selectedScene = i;
                        ReadScene();
                        if (sceneData != null)
                        {
                            if (kankyoScene)
                            {
                                infoString = new GUIContent("Background");
                            }
                            else
                            {
                                int numMaids = int.Parse(sceneData.Split(',')[1]);
                                string maids = numMaids == 1 ? "Maid" : "Maids";
                                infoString = new GUIContent($"{numMaids} {maids}");
                            }
                            manageSceneFlag = true;
                        }
                    }

                    i--;
                    j++;
                }
            }

            GUI.EndScrollView();
            #endregion

            GUI.Label(new Rect(
                sceneManagerRect.width - GetPix(15),
                sceneManagerRect.height - GetPix(17),
                GetPix(20),
                GetPix(20)
            ), "□", resizeHandleStyle);

            if (createSceneFlag)
            {
                if (File.Exists(thum_file_path_))
                {
                    try
                    {
                        if (overwriteFlag)
                        {
                            OverwriteScene();
                        }
                        SaveScene();
                    }
                    catch { }
                    finally
                    {
                        overwriteFlag = false;
                        createSceneFlag = false;
                    }
                }
            }

            if (kankyoModeFlag != kankyoToggle)
            {
                kankyoModeFlag = kankyoToggle;
                currentDirectory = kankyoModeFlag ? kankyoDirectoryName : sceneDirectoryName;
                RefreshSceneManager();
            }

            if (!resizeManager)
            {
                GUI.DragWindow(new Rect(0, 0,
                sceneManagerRect.width - windowPaddingY,
                sceneManagerRect.height - windowPaddingY));
            }
        }

        private void SceneManagerModal(int winID)
        {
            GUIStyle titleStyle = new GUIStyle("label");
            titleStyle.fontSize = GetPix(12);
            titleStyle.alignment = TextAnchor.UpperCenter;
            GUIStyle infoLabelStyle = new GUIStyle("label");
            infoLabelStyle.fontSize = GetPix(13);
            infoLabelStyle.alignment = TextAnchor.MiddleCenter;
            // infoLabelStyle.normal.textColor = new Color(1f, 0.44f, 0f);
            GUIStyle infoLabelShadow = new GUIStyle(infoLabelStyle);
            infoLabelShadow.normal.textColor = new Color(0f, 0f, 0f, 0.55f);
            GUIStyle saveControlStyle = new GUIStyle("button");
            saveControlStyle.fontSize = GetPix(12);
            saveControlStyle.alignment = TextAnchor.MiddleCenter;
            GUIStyle infoHighlightStyle = new GUIStyle("box");
            infoHighlightStyle.normal.background = infoHighlight;

            int index = deleteDirectoryFlag ? scenes.Count - 1 : selectedScene;
            Texture2D previewImage = scenes.ElementAtOrDefault(index)?.screenshot;

            int windowPadding = GetPix(10);
            int windowPaddingY = GetPix(20);

            float previewWindowWidth = sceneModalRect.width - windowPaddingY;
            float previewWindowHeight = Mathf.Min(270 - windowPadding, sceneModalRect.height - GetPix(70));

            int texWidth = previewImage?.width ?? 480;
            int texHeight = previewImage?.height ?? 270;

            float scale = Mathf.Min(previewWindowWidth / texWidth, previewWindowHeight / texHeight);
            float previewWidth = (texWidth * scale) - windowPaddingY;
            float previewHeight = (texHeight * scale) - windowPaddingY;

            float previewX = (sceneModalRect.width / 2 - previewWidth / 2);
            float previewY = windowPaddingY;

            GUI.DrawTexture(new Rect(
                previewX - GetPix(6)
                , previewY - GetPix(6)
                , previewWidth + GetPix(12)
                , previewHeight + GetPix(12))
                , frame
            );

            if (previewImage != null)
            {
                GUI.DrawTexture(new Rect(
                    previewX,
                    previewY,
                    previewWidth,
                    previewHeight
                ), previewImage);
            }


            if (!deleteDirectoryFlag)
            {
                Vector2 infoLabelSize = infoLabelStyle.CalcSize(infoString);

                GUI.Box(new Rect(
                    previewX + GetPix(7),
                    previewY + previewHeight - infoLabelSize.y - GetPix(7),
                    infoLabelSize.x + GetPix(8),
                    infoLabelSize.y
                ), "", infoHighlightStyle);

                GUI.Label(new Rect(
                    previewX + GetPix(10),
                    previewY + previewHeight - infoLabelSize.y - GetPix(8),
                    infoLabelSize.x,
                    infoLabelSize.y
                ), infoString, infoLabelStyle);
            }

            string title = deleteDirectoryFlag
                ? $"Are you sure you want to delete \"{directoryList[selectedDirectory]}\" and all of its files?"
                : deleteSceneFlag
                ? $"Are you sure you want to delete \"{scenes[index].info.Name}\"?"
                : scenes[selectedScene].info.Name;

            float labelY = previewY + previewHeight + windowPadding;

            GUI.Label(new Rect(
                windowPadding,
                labelY,
                sceneModalRect.width - windowPaddingY,
                sceneModalRect.height - labelY - windowPadding
            ), title, titleStyle);

            int buttonHeight = GetPix(25);
            int buttonWidth = GetPix(80);
            float buttonY = sceneModalRect.height - windowPadding - buttonHeight;

            if (GUI.Button(new Rect(
                windowPadding,
                buttonY,
                buttonWidth,
                buttonHeight
            ), deleteDirectoryFlag || deleteSceneFlag ? "Delete" : "Overwrite", saveControlStyle))
            {
                if (deleteDirectoryFlag)
                {
                    DeleteDirectory();
                }
                else if (deleteSceneFlag)
                {
                    DeleteScene();
                }
                else
                {
                    overwriteFlag = true;
                    createSceneFlag = true;
                    TakeScreenshot();
                }
                deleteSceneFlag = false;
                deleteDirectoryFlag = false;
                manageSceneFlag = false;
            }

            if (!(deleteDirectoryFlag || deleteSceneFlag))
            {
                if (GUI.Button(new Rect(
                    windowPaddingY + buttonWidth,
                    buttonY,
                    buttonWidth,
                    buttonHeight
                ), "Load", saveControlStyle))
                {
                    manageSceneFlag = false;
                    loadSceneFlag = true;
                    kankyoLoadFlg = kankyoScene;
                    loadScene = 1;
                    FileSystemInfo info = scenes[selectedScene].info;
                    info.LastAccessTime = DateTime.Now;
                }

                if (GUI.Button(new Rect(
                    windowPaddingY + 2 * buttonWidth + windowPadding,
                    buttonY,
                    buttonWidth,
                    buttonHeight
                ), "Delete", saveControlStyle))
                {
                    deleteSceneFlag = true;
                }
            }

            if (GUI.Button(new Rect(
                sceneModalRect.width - buttonWidth - windowPadding,
                buttonY,
                buttonWidth,
                buttonHeight
            ), "Cancel", saveControlStyle))
            {
                manageSceneFlag = false;
                deleteSceneFlag = false;
                deleteDirectoryFlag = false;
            }

            GUI.DragWindow();
        }
        public void TakeScreenshot()
        {
            GameMain.Instance.SoundMgr.PlaySe("se002.ogg", false);
            isScreen2 = true;
            if (!isMessage)
            {
                ui_cam_hide_list_.Clear();
                foreach (UICamera uiCamera in NGUITools.FindActive<UICamera>())
                {
                    if (uiCamera.GetComponent<Camera>().enabled)
                    {
                        uiCamera.GetComponent<Camera>().enabled = false;
                        ui_cam_hide_list_.Add(uiCamera);
                    }
                }
            }
            else
            {
                editUI = GameObject.Find("/UI Root/Camera");
                if (editUI != null)
                {
                    editUI.SetActive(false);
                }

                if (GameMain.Instance.CMSystem.ViewFps)
                {
                    UTY.GetChildObject(GameMain.Instance.gameObject, "SystemUI Root/FpsCounter", false).SetActive(false);
                }

                GameObject childObject1 = UTY.GetChildObject(GameMain.Instance.gameObject, "SystemUI Root/SystemDialog", false);
                GameObject childObject2 = UTY.GetChildObject(GameMain.Instance.gameObject, "SystemUI Root/SystemShortcut", false);
                childObject1.SetActive(false);
                childObject2.SetActive(false);
            }

            isGui = bGui;
            bGui = false;
            try
            {
                thum_byte_to_base64_ = string.Empty;
                thum_file_path_ = Path.Combine(Path.GetTempPath(), "cm3d2_" + Guid.NewGuid().ToString() + ".png");
                GameMain.Instance.MainCamera.ScreenShot(thum_file_path_, 1, true);
            }
            catch { }
        }
    }
}
