コード例 #1
0
        private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
        {
            object Selected = ((TreeView)sender).SelectedNode.Tag;

            if (SelectedDZRChunkElement != null)
            {
                SelectedDZRChunkElement.Highlight = false;
                if (SelectedDZRChunkElement.EditControl != null)
                {
                    SelectedDZRChunkElement.EditControl.Dispose();
                }
            }

            if (SelectedArc != null)
            {
                if (SelectedArc.EditControl != null)
                {
                    SelectedArc.EditControl.Dispose();
                }
            }

            Panel TargetPanel = (Selected is IDZxChunkElement && (IDZxChunkElement)Selected is Generic) ? panel2 : panel1;
            Panel OtherPanel  = (Selected is IDZxChunkElement && (IDZxChunkElement)Selected is Generic) ? panel1 : panel2;

            OtherPanel.Visible = false;

            TargetPanel.SuspendLayout();


            if (Selected is ZeldaArc)
            {
                if (((ZeldaArc)Selected).Filename.Contains("room") || ((ZeldaArc)Selected).Filename.Contains("Room"))
                {
                    SelectedArc = (ZeldaArc)Selected;
                    SelectedArc.ShowControl(TargetPanel);
                }
            }
            else if (Selected is IDZxChunkElement)
            {
                SelectedDZRChunkElement = (IDZxChunkElement)Selected;

                SelectedDZRChunkElement.Highlight = true;
                SelectedDZRChunkElement.ShowControl(TargetPanel);

                if (autoCenterCameraToolStripMenuItem.Checked && (SelectedDZRChunkElement is Generic) == false)
                {
                    Vector3 CamPos = Vector3.Zero;
                    if (SelectedDZRChunkElement is ACTR)
                    {
                        CamPos = (-((ACTR)SelectedDZRChunkElement).Position * 0.005f);
                    }
                    else if (SelectedDZRChunkElement is RPPN)
                    {
                        CamPos = (-((RPPN)SelectedDZRChunkElement).Position * 0.005f);
                    }
                    else if (SelectedDZRChunkElement is SHIP)
                    {
                        CamPos = (-((SHIP)SelectedDZRChunkElement).Position * 0.005f);
                    }
                    else if (SelectedDZRChunkElement is TGDR)
                    {
                        CamPos = (-((TGDR)SelectedDZRChunkElement).Position * 0.005f);
                    }
                    else if (SelectedDZRChunkElement is TRES)
                    {
                        CamPos = (-((TRES)SelectedDZRChunkElement).Position * 0.005f);
                    }
                    else if (SelectedDZRChunkElement is MULT)
                    {
                        CamPos = (-(new Vector3(((MULT)SelectedDZRChunkElement).Translation.X, 0.0f, ((MULT)SelectedDZRChunkElement).Translation.Y) * 0.005f));
                    }

                    Helpers.Camera.Initialize(CamPos - new Vector3(0, 0, 2.0f));
                }
            }
            else
            {
                TargetPanel.Visible = false;
            }

            TargetPanel.ResumeLayout();
        }
コード例 #2
0
ファイル: MainForm.cs プロジェクト: GUIpsp/WindViewer
        private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
        {
            object Selected = ((TreeView)sender).SelectedNode.Tag;

            if (SelectedDZRChunkElement != null)
            {
                SelectedDZRChunkElement.Highlight = false;
                if (SelectedDZRChunkElement.EditControl != null)
                    SelectedDZRChunkElement.EditControl.Dispose();
            }

            Panel TargetPanel = (Selected is IDZxChunkElement && (IDZxChunkElement)Selected is Generic) ? panel2 : panel1;
            Panel OtherPanel = (Selected is IDZxChunkElement && (IDZxChunkElement)Selected is Generic) ? panel1 : panel2;
            OtherPanel.Visible = false;

            TargetPanel.SuspendLayout();

            if (Selected is IDZxChunkElement)
            {
                SelectedDZRChunkElement = (IDZxChunkElement)Selected;

                SelectedDZRChunkElement.Highlight = true;
                SelectedDZRChunkElement.ShowControl(TargetPanel);

                if (autoCenterCameraToolStripMenuItem.Checked && (SelectedDZRChunkElement is Generic) == false)
                {
                    Vector3 CamPos = Vector3.Zero;
                    if (SelectedDZRChunkElement is ACTR)
                        CamPos = (-((ACTR)SelectedDZRChunkElement).Position * 0.005f);
                    else if (SelectedDZRChunkElement is RPPN)
                        CamPos = (-((RPPN)SelectedDZRChunkElement).Position * 0.005f);
                    else if (SelectedDZRChunkElement is SHIP)
                        CamPos = (-((SHIP)SelectedDZRChunkElement).Position * 0.005f);
                    else if (SelectedDZRChunkElement is TGDR)
                        CamPos = (-((TGDR)SelectedDZRChunkElement).Position * 0.005f);
                    else if (SelectedDZRChunkElement is TRES)
                        CamPos = (-((TRES)SelectedDZRChunkElement).Position * 0.005f);
                    else if (SelectedDZRChunkElement is MULT)
                        CamPos = (-(new Vector3(((MULT)SelectedDZRChunkElement).HVTranslation.X, 0.0f, ((MULT)SelectedDZRChunkElement).HVTranslation.Y) * 0.005f));

                    Helpers.Camera.Initialize(CamPos - new Vector3(0, 0, 2.0f));
                }
            }
            else
                TargetPanel.Visible = false;

            TargetPanel.ResumeLayout();
        }