示例#1
0
 private void addToolStripMenuItem_Click(object sender, EventArgs e)
 {
     listBox1.Items.Add("<new link>");
     ChunkLinks.ChunkLink link = new ChunkLinks.ChunkLink(0, "<new link>", 0x80102);
     controller.Data.Links.Add(link);
     controller.UpdateText();
 }
 private void addToolStripMenuItem_Click(object sender, EventArgs e)
 {
     listBox1.Items.Add("link");
     ChunkLinks.ChunkLink link = new ChunkLinks.ChunkLink {
         Path = "link".ToCharArray(), ObjectMatrix = new Pos[4], ChunkMatrix = new Pos[4], LoadWall = new Pos[4], LoadArea = new Pos[8], AreaMatrix = new Pos[6], UnknownMatrix = new Pos[6]
     };
     link.ObjectMatrix[3].W                  = link.ChunkMatrix[3].W =
         link.LoadWall[0].W                  = link.LoadWall[1].W = link.LoadWall[2].W = link.LoadWall[3].W =
             link.LoadArea[0].W              = link.LoadArea[1].W = link.LoadArea[2].W = link.LoadArea[3].W =
                 link.LoadArea[4].W          = link.LoadArea[5].W = link.LoadArea[6].W = link.LoadArea[7].W =
                     link.UnknownMatrix[0].W = link.UnknownMatrix[1].W = link.UnknownMatrix[2].W = link.UnknownMatrix[3].W = link.UnknownMatrix[4].W = link.UnknownMatrix[5].W = 1;
     link.Unknown = new short[15] {
         0, 0, 8, 12, 6, 3, 3, 128, 224, 272, 320, 326, 356, 380, 0
     };
     link.Bytes = new byte[60] {
         0, 5, 10, 15, 20, 25, 4, 2, 3, 1, 0, 4, 4, 5, 3, 2, 4, 6, 7, 5, 4, 4, 0, 1, 7, 6, 4, 3, 5, 7, 1, 4, 4, 2, 0, 6, 0, 1, 1, 3, 3, 2, 2, 0, 3, 5, 5, 4, 4, 2, 5, 7, 7, 6, 6, 4, 7, 1, 0, 6,
     };
     controller.Data.Links.Add(link);
     controller.UpdateText();
 }
        private void listBox1_SelectedIndexChanged(object sender, System.EventArgs e)
        {
            if (listBox1.SelectedIndex == -1)
            {
                return;
            }
            ignore_value_change = true;

            link = controller.Data.Links[listBox1.SelectedIndex];
            groupBox1.Enabled = groupBox2.Enabled = groupBox3.Enabled = true;

            textBox1.Text = new string(link.Path);

            comboBox1.SelectedIndex = link.Type;

            textBox2.Text = Convert.ToString(link.Flags, 16).ToUpper();

            numericUpDown4.Value = (decimal)link.ObjectMatrix[3].W;

            numericUpDown1.Value = (decimal)link.ObjectMatrix[3].X;
            numericUpDown2.Value = (decimal)link.ObjectMatrix[3].Y;
            numericUpDown3.Value = (decimal)link.ObjectMatrix[3].Z;

            numericUpDown7.Value = (decimal)link.ObjectMatrix[0].X;
            numericUpDown6.Value = (decimal)link.ObjectMatrix[0].Y;
            numericUpDown5.Value = (decimal)link.ObjectMatrix[0].Z;

            numericUpDown10.Value = (decimal)link.ObjectMatrix[1].X;
            numericUpDown9.Value  = (decimal)link.ObjectMatrix[1].Y;
            numericUpDown8.Value  = (decimal)link.ObjectMatrix[1].Z;

            numericUpDown39.Value = (decimal)link.ObjectMatrix[2].X;
            numericUpDown38.Value = (decimal)link.ObjectMatrix[2].Y;
            numericUpDown37.Value = (decimal)link.ObjectMatrix[2].Z;

            numericUpDown20.Value = (decimal)link.ChunkMatrix[3].W;

            numericUpDown42.Value = (decimal)link.ChunkMatrix[3].X;
            numericUpDown41.Value = (decimal)link.ChunkMatrix[3].Y;
            numericUpDown40.Value = (decimal)link.ChunkMatrix[3].Z;

            numericUpDown19.Value = (decimal)link.ChunkMatrix[0].X;
            numericUpDown18.Value = (decimal)link.ChunkMatrix[0].Y;
            numericUpDown17.Value = (decimal)link.ChunkMatrix[0].Z;

            numericUpDown16.Value = (decimal)link.ChunkMatrix[1].X;
            numericUpDown15.Value = (decimal)link.ChunkMatrix[1].Y;
            numericUpDown14.Value = (decimal)link.ChunkMatrix[1].Z;

            numericUpDown13.Value = (decimal)link.ChunkMatrix[2].X;
            numericUpDown12.Value = (decimal)link.ChunkMatrix[2].Y;
            numericUpDown11.Value = (decimal)link.ChunkMatrix[2].Z;

            if (groupBox6.Enabled = (link.Flags & 0x80000) != 0)
            {
                GetLoadWallPos();
            }

            if (groupBox9.Enabled = groupBox8.Enabled = groupBox7.Enabled = link.Type == 1 || link.Type == 3)
            {
                GetLoadAreaPos();
                GetAreaMatrix1Pos();
                GetAreaMatrix2Pos();
            }

            ignore_value_change = false;
            return;
            //broken
            //Vector3 pos = new Vector3(), rot = new Vector3(), sca = new Vector3();
            //float w = 1;
            //Matrix4 m = new Matrix4(
            //    link.ObjectMatrix[0].X, link.ObjectMatrix[1].X, link.ObjectMatrix[2].X, link.ObjectMatrix[3].X,
            //    link.ObjectMatrix[0].Y, link.ObjectMatrix[1].Y, link.ObjectMatrix[2].Y, link.ObjectMatrix[3].Y,
            //    link.ObjectMatrix[0].Z, link.ObjectMatrix[1].Z, link.ObjectMatrix[2].Z, link.ObjectMatrix[3].Z,
            //    link.ObjectMatrix[0].W, link.ObjectMatrix[1].W, link.ObjectMatrix[2].W, link.ObjectMatrix[3].W
            //    );
            //MatrixWrapper.DecomposeMatrix(ref m, ref pos, ref rot, ref sca, ref w);
            ////no touchy
            //numericUpDown4.Value = (decimal)w;

            ////position
            //numericUpDown1.Value = (decimal)pos.X;
            //numericUpDown2.Value = (decimal)pos.Y;
            //numericUpDown3.Value = (decimal)pos.Z;

            ////scale
            //numericUpDown10.Value = (decimal)sca.X;
            //numericUpDown9.Value = (decimal)sca.Y;
            //numericUpDown8.Value = (decimal)sca.Z;

            ////rotation
            //numericUpDown7.Value = (decimal)rot.X;
            //numericUpDown6.Value = (decimal)rot.Y;
            //numericUpDown5.Value = (decimal)rot.Z;

            //m = new Matrix4(link.ChunkMatrix[0].X, link.ChunkMatrix[1].X, link.ChunkMatrix[2].X, link.ChunkMatrix[3].X,
            //    link.ChunkMatrix[0].Y, link.ChunkMatrix[1].Y, link.ChunkMatrix[2].Y, link.ChunkMatrix[3].Y,
            //    link.ChunkMatrix[0].Z, link.ChunkMatrix[1].Z, link.ChunkMatrix[2].Z, link.ChunkMatrix[3].Z,
            //    link.ChunkMatrix[0].W, link.ChunkMatrix[1].W, link.ChunkMatrix[2].W, link.ChunkMatrix[3].W
            //    );
            //MatrixWrapper.DecomposeMatrix(ref m, ref pos, ref rot, ref sca, ref w);
            ////no touchy
            //numericUpDown17.Value = (decimal)w;

            ////position
            //numericUpDown20.Value = (decimal)pos.X;
            //numericUpDown19.Value = (decimal)pos.Y;
            //numericUpDown18.Value = (decimal)pos.Z;

            ////scale
            //numericUpDown13.Value = (decimal)sca.X;
            //numericUpDown12.Value = (decimal)sca.Y;
            //numericUpDown11.Value = (decimal)sca.Z;

            ////rotation
            //numericUpDown16.Value = (decimal)rot.X;
            //numericUpDown15.Value = (decimal)rot.Y;
            //numericUpDown14.Value = (decimal)rot.Z;
        }