Beispiel #1
0
        int CreateControl_Def(int ParaCode, int i, string lpStr = null)
        {
            int ControlNum = 0;

            switch (ParaCode)
            {
            case 4:
            case 0x102:
                CreateTextBox(m_TextBoxNum++, i, 0, 0x10000, false, lpStr);
                ControlNum = 1;
                break;

            case 5:
                m_DlgAlign.MoveToNextLine();
                CreateStrBox(m_StrBoxNum++, i, lpStr);
                m_DlgAlign.MoveToNextLine();
                break;

            case 0x26:
                if (lpStr == null)
                {
                    lpStr = CScenario.GetParameterName_Int(0x26, 1, cmd.id, i);
                }
                CreateCheckBox(m_CheckBoxNum++, i, lpStr);
                ControlNum = 1;
                break;

            case 0x100:
                CreatePosBox(m_PosBoxNum++, i, lpStr);
                ControlNum = 2;
                break;

            case 0x101:
                CreateAreaBox(m_AreaBoxNum++, i, lpStr);
                ControlNum = 4;
                break;

            default:
            {
                ParaTypeInfo TypeInfo = CScenario.GetParaTypeInfo(ParaCode);
                if (TypeInfo.IsUseCombo)
                {
                    CreateComboBox(m_ComboBoxNum++, i, lpStr);
                }
                else
                {
                    CreateTextBox(m_TextBoxNum++, i, 0, 0xffff, true, lpStr);
                }
                ControlNum = 1;
            }
            break;
            }
            return(ControlNum);
        }
Beispiel #2
0
        public void InitData(ScriptCommand cmd, int paraIndex, int DefValue)
        {
            m_cmd       = cmd;
            m_paraIndex = paraIndex;
            m_DefValue  = DefValue;

            ParaTypeInfo TypeInfo;
            int          Code     = cmd.id;
            int          ParaCode = cmd.keys[paraIndex];

            TypeInfo = CScenario.GetParaTypeInfo(ParaCode);
            Items.Clear();
            if (TypeInfo.IsUseCombo)
            {
                int t, i, it = -1, n = TypeInfo.NameNum;
                if ((Code != 0x6 && Code != 0x4a && Code != 0x46 && Code != 0x47) && (ParaCode == 2 || ParaCode == 0x38 || ParaCode == 0x39))
                {
                    int k = 0;
                    this.ResetText();//?
                    for (i = 0; i < n; i++)
                    {
                        t = CScenario.GetParaTypeNameIndex(ParaCode, i);
                        if (t < 0 || t >= 0x400 || m_DefValue == t || (t < 0x400 /*&& CScenario.gIsShowChar[t]*/))
                        {
                            Items.Add(CScenario.GetParameterName_Int(ParaCode, t));

                            //AddString(CScenario.GetParameterName_Int(ParaCode, t));
                            //SetItemData(k, t);
                            if (m_DefValue == t)
                            {
                                it = k;
                            }
                            k++;
                        }
                    }
                }
                else
                {
                    for (i = 0; i < n; i++)
                    {
                        //if (!m_IsInit)
                        {
                            t = CScenario.GetParaTypeNameIndex(ParaCode, i);
                            Items.Add(CScenario.GetParameterName_Int(ParaCode, t));
                            //AddString(m_Scenario->GetParameterName_Int(ParaCode, t));
                            //SetItemData(i, t);
                        }
                        //else
                        //{
                        //t = GetItemData(i);
                        //}
                        if (m_DefValue == t)
                        {
                            it = i;
                        }
                    }
                }
                if (m_DefValue >= 0 && m_DefValue < Items.Count)
                {
                    SelectedIndex = m_DefValue;
                }
                else if (it != -1)
                {
                    this.SelectedIndex = it;
                }
                else if (TypeInfo.DefIndex != 0x10000)
                {
                    this.SelectedIndex = TypeInfo.DefIndex;
                }
                else
                {
                    this.SelectedIndex = -1;
                }
            }
        }
Beispiel #3
0
        void OnInitDialog()
        {
            int i = 0;
            int t;
            int CharLimit = CAOCAO_CHARLIMIT;
            int m_Code    = cmd.Id;
            int Num       = cmd.Keys.Length;
            int ParaCode;

            switch (m_Code)
            {
            case 5:
                CreateCodeSelBox(m_CodeSelBoxNum++);
                break;

            case 6:
            case 0x4a:
            {
                if (m_Code == 6)
                {
                    CreateCheckBox(m_CheckBoxNum++, i++, ("出场限制"));
                }
                CreateTextBox(m_TextBoxNum++, i++, 0, 0x10000 + 15, false, ("人数限制"));
                m_DlgAlign.MoveToNextLine();
                t = i;
                CreateListBox(0, (-1), ("出场限制"), 10);
                m_DlgAlign.MoveToNextLine(false, false);
                m_DlgAlign.MoveTopBack();
                m_DlgAlign.MoveToRight();
                int ListBoxWidth = m_DlgAlign.GetLastWidth();
                for (i = 0; i < CharLimit + CharLimit; i++)
                {
                    m_ListBox[0].Items.Add((i < CharLimit) ? ("强制出场") : ("强制不出场"));
                    //m_ListBox[0].SetItemData(i,i);
                }

                m_ListBox[0].SelectedIndex = 0;
                m_DlgAlign.MoveToNextLine();
                m_DlgAlign.MoveTopBack();

                m_DlgAlign.SetLastWidth(ListBoxWidth);
                m_DlgAlign.MoveToRight();
                ParaCode = cmd.Keys[t];
                CreateControl_Def(ParaCode, t, ("武将"));
            }
            break;

            case 0x32:
            case 0x4c:
            case 0x55:
            case 0x6d:
                CreateControl_Def(0x40, i++);
                t = m_ComboBox[m_ComboBoxNum - 1].SelectedIndex;
                CreateControl_Def(0x2, i++);
                m_DlgAlign.MoveLeftBack();
                ShowComboBox(m_ComboBoxNum - 1, (t == 0));
                CreateTextBox(m_TextBoxNum++, i++, 0, 0x10000 + 114, false, ("BFIndex"));
                m_DlgAlign.MoveLeftBack();
                ShowTextBox(m_TextBoxNum - 1, (t == 1));
                if (m_Code == 0x32 || m_Code == 0x55)
                {
                    m_DlgAlign.MoveToNextLine();
                    CreateControl_Def(0x100, i++);
                    CreateControl_Def(0x2b, i++);
                }
                if (m_Code == 0x6d)
                {
                    m_DlgAlign.MoveToNextLine();
                    for (; i < Num; i++)
                    {
                        if (i == 5)
                        {
                            m_DlgAlign.MoveToNextLine();
                        }
                        ParaCode = cmd.Keys[i];
                        CreateControl_Def(ParaCode, i);
                    }
                }
                break;

            case 0x46:
            {
                ParaTypeInfo TypeInfo = CScenario.GetParaTypeInfo(2);
                CreateListBox(0, (-1), ("友军出场人物"), TypeInfo.MaxNameLen);
                m_DlgAlign.MoveToNextLine(false, false);
                m_DlgAlign.MoveTopBack();
                m_DlgAlign.MoveToRight();
                int ListBoxWidth = m_DlgAlign.GetLastWidth();
                for (i = 0; i < 20; i++)
                {
                    //t=CScenario.GetStepPara_Int(m_StepIndex,i*9);
                    t = (int)cmd.ArrayValues[i][0];
                    //m_ListBox[0].AddString(CScenario.GetParameterName_Int(0x2,t));
                    //m_ListBox[0].SetItemData(i,i);
                }
                m_ListBox[0].SelectedIndex = 0;
                m_DlgAlign.MoveToNextLine();
                m_DlgAlign.MoveTopBack();
                t = 0;               //in case "potentially uninitialized local variable 't' used"
                for (i = 0; i < Num / 20; i++)
                {
                    m_DlgAlign.SetLastWidth(ListBoxWidth);
                    if (i != 8)
                    {
                        m_DlgAlign.MoveToRight();
                    }
                    ParaCode = cmd.Keys[i];
                    CreateControl_Def(ParaCode, i);
                    if (i != 7)
                    {
                        m_DlgAlign.MoveToNextLine();
                    }
                    //if (i==2 || i==5)
                    //m_DlgAlign.MoveToNextLine();
                    if (i == 6)
                    {
                        t = m_ComboBox[m_ComboBoxNum - 1].SelectedIndex;
                    }
                    else if (i == 7)
                    {
                        m_DlgAlign.MoveLeftBack();
                        ShowComboBox(m_ComboBoxNum - 1, (t == 3 || t == 5));
                    }
                    else if (i == 8)
                    {
                        //m_DlgAlign.MoveLeftBack();
                        ShowPosBox(m_PosBoxNum - 1, (t == 4 || t == 6));
                    }
                }
            }
            break;

            case 0x47:
            {
                ParaTypeInfo TypeInfo = CScenario.GetParaTypeInfo(2);
                CreateListBox(0, (-1), ("敌军出场人物"), TypeInfo.MaxNameLen);
                m_DlgAlign.MoveToNextLine(false, false);
                m_DlgAlign.MoveTopBack();
                m_DlgAlign.MoveToRight();
                int ListBoxWidth = m_DlgAlign.GetLastWidth();
                for (i = 0; i < 80; i++)
                {
                    //t=CScenario.GetStepPara_Int(m_StepIndex,i*10);
                    t = (int)cmd.ArrayValues[i][0];
                    m_ListBox[0].Items.Add(CScenario.GetParameterName_Int(0x2, t));
                    //m_ListBox[0].AddString(CScenario.GetParameterName_Int(0x2,t));
                    //m_ListBox[0].SetItemData(i,i);
                }
                m_ListBox[0].SelectedIndex = (0);
                m_DlgAlign.MoveToNextLine();
                m_DlgAlign.MoveTopBack();
                t = 0;                       //in case "potentially uninitialized local variable 't' used"
                for (i = 0; i < Num / 80; i++)
                {
                    m_DlgAlign.SetLastWidth(ListBoxWidth);
                    if (i != 2 && i != 9)
                    {
                        m_DlgAlign.MoveToRight();
                    }
                    ParaCode = cmd.Keys[i];
                    CreateControl_Def(ParaCode, i);
                    if (i != 1 && i != 8)
                    {
                        m_DlgAlign.MoveToNextLine();
                    }
                    if (i == 7)
                    {
                        t = m_ComboBox[m_ComboBoxNum - 1].SelectedIndex;
                    }
                    else if (i == 8)
                    {
                        m_DlgAlign.MoveLeftBack();
                        ShowComboBox(m_ComboBoxNum - 1, (t == 3 || t == 5));
                    }
                    else if (i == 9)
                    {
                        ShowPosBox(m_PosBoxNum - 1, (t == 4 || t == 6));
                    }
                }
            }
            break;

            case 0x4b:
                CreateTextBox(m_TextBoxNum++, i++, 0, 0x10000 + 14, false, ("BFIndex"));
                for (; i < Num; i++)
                {
                    ParaCode = cmd.Keys[i];
                    CreateControl_Def(ParaCode, i);
                }
                break;

            case 0x4d:
                CreateControl_Def(0x41, i++);
                t = m_ComboBox[m_ComboBoxNum - 1].SelectedIndex;
                m_DlgAlign.MoveToNextLine();
                CreateControl_Def(0x2, i++);
                m_DlgAlign.MoveLeftBack();
                ShowComboBox(m_ComboBoxNum - 1, (t == 0));
                CreateTextBox(m_TextBoxNum++, i++, 0, 0x10000 + 114, false, ("BFIndex"));
                m_DlgAlign.MoveLeftBack();
                ShowTextBox(m_TextBoxNum - 1, (t == 1));
                CreateControl_Def(0x101, i++);
                CreateControl_Def(0x3, i++);
                m_DlgAlign.MoveLeftBack();
                ShowAreaBox(m_AreaBoxNum - 1, (t == 2));
                ShowComboBox(m_ComboBoxNum - 1, (t == 2));
                m_DlgAlign.MoveToNextLine();
                CreateControl_Def(0x2f, i++);
                CreateControl_Def(0x18, i++);
                CreateControl_Def(0x30, i++);
                m_DlgAlign.MoveToNextLine();
                CreateControl_Def(0x4, i++, ("-HP"));
                CreateControl_Def(0x4, i++, ("-MP"));
                break;

            case 0x100:
            {
                ParaTypeInfo TypeInfo = CScenario.GetParaTypeInfo(0x100);
                CreateComboBox(0, (-1), ("代码"), TypeInfo.MaxNameLen);
                //m_ComboBox[0].SetScrollRange()
                for (i = 0; i < TypeInfo.NameNum; i++)
                {
                    //t=CScenario.GetParaTypeNameIndex(0x100,i);
                    //m_ComboBox[0].AddString(CScenario.GetParameterName_Int(0x100,t));
                    //m_ComboBox[0].SetItemData(i,t);
                    //if (int(m_CodeSelect)==t || (m_CodeSelect==-1 && t==5)) m_ComboBox[0].SetCurSel(i);
                }
            }
            break;

            default:
            {
                int ControlNum = 0;
                t = 0;       //in case "potentially uninitialized local variable 't' used"
                for (i = 0; i < Num; i++)
                {
                    ParaCode    = cmd.Keys[i];
                    ControlNum += CreateControl_Def(ParaCode, i);
                    switch (m_Code)
                    {
                    case 0x27:
                        if (i == 0)
                        {
                            m_DlgAlign.MoveToNextLine();
                            t = m_ComboBox[m_ComboBoxNum - 1].SelectedIndex;
                        }
                        else
                        {
                            m_DlgAlign.MoveLeftBack();
                            ShowComboBox(m_ComboBoxNum - 1, (i == t + 1));
                        }
                        break;

                    case 0x31:
                    case 0x4e:
                    case 0x53:
                        //0x31 i==0 || i==1
                        switch (i)
                        {
                        case 0:
                            m_DlgAlign.MoveToNextLine();
                            t = m_ComboBox[m_ComboBoxNum - 1].SelectedIndex;
                            break;

                        case 1:
                            ShowComboBox(m_ComboBoxNum - 1, (t == 0));
                            m_DlgAlign.MoveLeftBack();
                            break;

                        case 2:
                            ShowAreaBox(m_AreaBoxNum - 1, (t == 1));
                            break;

                        case 3:
                            m_DlgAlign.MoveToNextLine();
                            ShowComboBox(m_ComboBoxNum - 1, (t == 1));
                            break;

                        case 4:
                            if (m_Code == 0x4e)
                            {
                                t = m_ComboBox[m_ComboBoxNum - 1].SelectedIndex;
                            }
                            break;

                        case 5:
                            if (m_Code == 0x4e)
                            {
                                m_DlgAlign.MoveLeftBack();
                                ShowComboBox(m_ComboBoxNum - 1, (t == 3 || t == 5));
                            }
                            break;

                        case 6:
                            if (m_Code == 0x4e)
                            {
                                m_DlgAlign.MoveLeftBack();
                                ShowPosBox(m_PosBoxNum - 1, (t == 4 || t == 6));
                            }
                            break;
                        }
                        break;

                    case 0x3d:
                    case 0x4f:
                        if (i == 2)
                        {
                            m_DlgAlign.MoveToNextLine();
                        }
                        break;

                    case 0x3e:
                    case 0x48:
                        if (i == 0 || i == 2 || i == 4)
                        {
                            m_DlgAlign.MoveToNextLine();
                        }
                        break;

                    case 0x41:
                        if (i == 2)
                        {
                            m_DlgAlign.MoveToNextLine();
                        }
                        else if (i == 3)
                        {
                            t = m_ComboBox[m_ComboBoxNum - 1].SelectedIndex;
                        }
                        else if (i == 4)
                        {
                            ShowAreaBox(m_AreaBoxNum - 1, (t == 1));
                        }
                        break;

                    case 0x45:
                        if (i == 1 || i == 3 || i == 7)
                        {
                            m_DlgAlign.MoveToNextLine();
                        }
                        break;

                    case 0x50:
                        if (i == 1)
                        {
                            m_DlgAlign.MoveToNextLine();
                        }
                        break;

                    case 0x58:
                        if (i == 3)
                        {
                            m_DlgAlign.MoveToNextLine();
                        }
                        break;

                    case 0x59:
                        if (i == 0 || i == 2 || i == 4 || i == 6)
                        {
                            m_DlgAlign.MoveToNextLine();
                        }
                        break;

                    case 0x67:
                        if (i == 0)
                        {
                            m_DlgAlign.MoveToNextLine();
                        }
                        break;

                    default:
                        if (ControlNum >= 5)
                        {
                            m_DlgAlign.MoveToNextLine();
                            ControlNum = 0;
                        }
                        break;
                    }
                }
            }
            break;
            }
            m_DlgAlign.MoveToNextLine();
            if (m_DlgAlign.GetWidthMax() < 200)
            {
                this.Width = m_DlgAlign.GetWidthMax();
            }
            else
            {
                this.Width = m_DlgAlign.GetWidthMax() + 30;
            }
            this.Height = m_DlgAlign.GetHeightMax() + 80;



            //PlaceOKCancelButton();

            string WinCaption = CScenario.GetCodeName(m_Code);

            if (m_Code < 0x100)
            {
                this.Text = ("修改-") + WinCaption;
            }
            else if (m_Code >= 0x100 && m_Code <= 0x100)
            {
                this.Text = "选择代码";
            }
        }