コード例 #1
0
        private void btnSelNCG_Click(object sender, EventArgs e)
        {
            m_ROMFileSelect.Text = "Please select a Graphic (NCG) file.";
            var result = m_ROMFileSelect.ShowDialog();

            if (result == DialogResult.OK)
            {
                txtSelNCG.Text = m_ROMFileSelect.m_SelectedFile;
            }
        }
コード例 #2
0
ファイル: MinimapEditor.cs プロジェクト: arahkari/SM64DSe
        private void btnSelNCG_Click(object sender, EventArgs e)
        {
            m_ROMFileSelect.ReInitialize("Please select a Graphic (ICG/NCG) file.", new String[] { "_icg.bin", "_ncg.bin" });
            var result = m_ROMFileSelect.ShowDialog();

            if (result == DialogResult.OK)
            {
                txtSelNCG.Text = m_ROMFileSelect.m_SelectedFile;
            }
        }
コード例 #3
0
        private void btnOpenBMD_Click(object sender, EventArgs e)
        {
            m_ROMFileSelect.ReInitialize("Please select a model (BMD) file to open.", new String[] { ".bmd" });
            var result = m_ROMFileSelect.ShowDialog();

            if (result == DialogResult.OK)
            {
                StopTimer();

                m_BMD           = new BMD(Program.m_ROM.GetFileFromName(m_ROMFileSelect.m_SelectedFile));
                txtBMDName.Text = m_BMD.m_FileName;

                PrerenderModel();
            }
        }
コード例 #4
0
        private void btnSelectInternal_Click(object sender, EventArgs e)
        {
            ROMFileSelect r = new ROMFileSelect();

            r.ShowDialog();
            txtInput.Text = r.m_SelectedFile;
        }
コード例 #5
0
        private void btnOpenBCA_Click(object sender, EventArgs e)
        {
            bool wasRunning = m_Running;

            using (var form = new ROMFileSelect("Please select an animation (BCA) file to open."))
            {
                var result = form.ShowDialog();
                if (result == DialogResult.OK)
                {
                    StopTimer();

                    m_BCA           = new BCA(Program.m_ROM.GetFileFromName(form.m_SelectedFile));
                    txtBCAName.Text = m_BCA.m_FileName;

                    m_AnimationFrameNumber  = 0;
                    m_AnimationNumFrames    = m_BCA.m_NumFrames;
                    txtCurrentFrameNum.Text = "" + m_AnimationFrameNumber;
                    txtNumFrames.Text       = "" + (m_BCA.m_NumFrames - 1);

                    if (wasRunning)
                    {
                        StartTimer();
                    }
                }
            }
        }
コード例 #6
0
        private void bMDKLCEditorToolStripMenuItem_Click(object sender, EventArgs e)
        {
            ROMFileSelect rfs = new ROMFileSelect("Select a BMD or KLC file", new string[] { ".bmd", ".klc" });

            if (rfs.ShowDialog(this) == DialogResult.OK)
            {
                new BMD_KLC_Editor(rfs.m_SelectedFile).Show();
            }
        }
コード例 #7
0
ファイル: TextureEditorForm.cs プロジェクト: arahkari/SM64DSe
        private void TextureEditorForm_Load(object sender, System.EventArgs e)
        {
            if (m_ModelName == null)
            {
                m_ROMFileSelect.ReInitialize("Select a BMD file to load", new String[] { ".bmd" });
                DialogResult result = m_ROMFileSelect.ShowDialog();
                if (result != DialogResult.OK)
                {
                    Close();
                }
                else
                {
                    m_ModelName = m_ROMFileSelect.m_SelectedFile;
                }
            }

            LoadTextures();
            InitTimer();
        }
コード例 #8
0
        private void TextureEditorForm_Load(object sender, System.EventArgs e)
        {
            if (m_Name == null)
            {
                m_ROMFileSelect.ReInitialize("Select a SPT file to load", new string[] { ".spt" });
                DialogResult result = m_ROMFileSelect.ShowDialog();
                if (result != DialogResult.OK)
                {
                    Close();
                }
                else
                {
                    m_Name            = m_ROMFileSelect.m_SelectedFile;
                    m_ParticleTexFile = Program.m_ROM.GetFileFromName(m_Name);

                    cmbRepeatX.Items.Add(Particle.Texture.RepeatMode.CLAMP);
                    cmbRepeatX.Items.Add(Particle.Texture.RepeatMode.REPEAT);
                    cmbRepeatX.Items.Add(Particle.Texture.RepeatMode.FLIP);
                    cmbRepeatX.SelectedIndex = -1;

                    cmbRepeatY.Items.Add(Particle.Texture.RepeatMode.CLAMP);
                    cmbRepeatY.Items.Add(Particle.Texture.RepeatMode.REPEAT);
                    cmbRepeatY.Items.Add(Particle.Texture.RepeatMode.FLIP);
                    cmbRepeatY.SelectedIndex = -1;

                    cmbFormat.Items.Add("A3I5");
                    cmbFormat.Items.Add("Color4");
                    cmbFormat.Items.Add("Color16");
                    cmbFormat.Items.Add("Color256");
                    cmbFormat.Items.Add("Texel4x4 (unsupported)");
                    cmbFormat.Items.Add("A5I3");
                    cmbFormat.Items.Add("Direct");
                    cmbFormat.SelectedIndex = prevFormat = -1;

                    LoadTexture();
                    RefreshImage();
                    PopulatePaletteSettings();
                    UpdateForm();
                    ResetColourButtonValue(btnModelPalettesSelectedColour);
                }
            }
        }
コード例 #9
0
 private void btnSelectFile_Click(object sender, EventArgs e)
 {
     using (var form = new ROMFileSelect("Please select a file to open."))
     {
         var result = form.ShowDialog();
         if (result == DialogResult.OK)
         {
             txtApplyToFile.Text = form.m_SelectedFile;
         }
     }
 }
コード例 #10
0
ファイル: MinimapEditor.cs プロジェクト: RicoPlays/sm64dse
 private void btnSelNSC_Click(object sender, EventArgs e)
 {
     using (var form = new ROMFileSelect("Please select a Tile (NSC) file."))
     {
         var result = form.ShowDialog();
         if (result == DialogResult.OK)
         {
             txtSelNSC.Text = form.m_SelectedFile;
         }
     }
 }
コード例 #11
0
 private void btnLoadBTP_Click(object sender, EventArgs e)
 {
     using (var form = new ROMFileSelect("Please select a BTP file to load."))
     {
         var result = form.ShowDialog();
         if (result == DialogResult.OK)
         {
             ClearBTPTextBoxes();
             LoadBTP(form.m_SelectedFile);
         }
     }
 }
コード例 #12
0
ファイル: KCLEditorForm.cs プロジェクト: awiebe/SM64DSe
        private void btnOpen_Click(object sender, EventArgs e)
        {
            var result = m_ROMFileSelect.ShowDialog();

            if (result == DialogResult.OK)
            {
                LoadKCL((Program.m_ROM.GetFileFromName(m_ROMFileSelect.m_SelectedFile)));
                RenderKCLMesh();
                GL.DeleteLists(m_KCLMeshDLists[2], 1); m_KCLMeshDLists[2] = 0;
                glModelView.Refresh();
            }
        }
コード例 #13
0
ファイル: KCLEditorForm.cs プロジェクト: RicoPlays/sm64dse
 private void btnOpen_Click(object sender, EventArgs e)
 {
     using (var form = new ROMFileSelect("Please select a collision map (KCL) file to open."))
     {
         var result = form.ShowDialog();
         if (result == DialogResult.OK)
         {
             LoadKCL((Program.m_ROM.GetFileFromName(form.m_SelectedFile)));
             RenderKCLMesh();
             GL.DeleteLists(m_KCLMeshDLists[3], 1); m_KCLMeshDLists[3] = 0;
             glModelView.Refresh();
         }
     }
 }
コード例 #14
0
        private void btnOpenBMD_Click(object sender, EventArgs e)
        {
            using (var form = new ROMFileSelect("Please select a model (BMD) file to open."))
            {
                var result = form.ShowDialog();
                if (result == DialogResult.OK)
                {
                    StopTimer();

                    m_BMD           = new BMD(Program.m_ROM.GetFileFromName(form.m_SelectedFile));
                    txtBMDName.Text = m_BMD.m_FileName;

                    PrerenderModel();
                }
            }
        }
コード例 #15
0
        /// <summary>
        /// Open KPS.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void openToolStripMenuItem_Click(object sender, EventArgs e)
        {
            ROMFileSelect r = new ROMFileSelect();

            r.ShowDialog();
            string file = r.m_SelectedFile;

            if (file != null && file != "")
            {
                nf = new NitroFile(Program.m_ROM, Program.m_ROM.GetFileIDFromName(file));

                MemoryStream src = new MemoryStream(nf.m_Data);
                BinaryReader br  = new BinaryReader(src);

                if (src.Length >= 0x10)
                {
                    UInt32 magic1 = br.ReadUInt32();
                    UInt32 magic2 = br.ReadUInt32();
                    if (magic1 == 0x00100001)
                    {
                        if (magic2 == 0x00140018)
                        {
                            OpenDkl(nf.m_Data, false);
                        }
                        else if (magic2 == 0x0018001C)
                        {
                            OpenDkl(nf.m_Data, true);
                        }
                        else
                        {
                            OpenBin(nf.m_Data);
                        }
                    }
                    else
                    {
                        OpenBin(nf.m_Data);
                    }
                }

                else
                {
                    OpenBin(nf.m_Data);
                }
            }
        }
コード例 #16
0
 private void btnSelectFile_Click(object sender, EventArgs e)
 {
     using (var form = new ROMFileSelect("Please select a file to open."))
     {
         var result = form.ShowDialog();
         if (result == DialogResult.OK)
         {
             txtApplyToFile.Text = form.m_SelectedFile;
         }
     }
 }
コード例 #17
0
ファイル: KCLEditorForm.cs プロジェクト: RicoPlays/sm64dse
 private void btnOpen_Click(object sender, EventArgs e)
 {
     using (var form = new ROMFileSelect("Please select a collision map (KCL) file to open."))
     {
         var result = form.ShowDialog();
         if (result == DialogResult.OK)
         {
             LoadKCL((Program.m_ROM.GetFileFromName(form.m_SelectedFile)));
             RenderKCLMesh();
             GL.DeleteLists(m_KCLMeshDLists[3], 1); m_KCLMeshDLists[3] = 0;
             glModelView.Refresh();
         }
     }
 }
コード例 #18
0
ファイル: MinimapEditor.cs プロジェクト: RicoPlays/sm64dse
 private void btnSelNSC_Click(object sender, EventArgs e)
 {
     using (var form = new ROMFileSelect("Please select a Tile (NSC) file."))
     {
         var result = form.ShowDialog();
         if (result == DialogResult.OK)
         {
             txtSelNSC.Text = form.m_SelectedFile;
         }
     }
 }
コード例 #19
0
 private void btnLoadBTP_Click(object sender, EventArgs e)
 {
     using (var form = new ROMFileSelect("Please select a BTP file to load."))
     {
         var result = form.ShowDialog();
         if (result == DialogResult.OK)
         {
             ClearBTPTextBoxes();
             LoadBTP(form.m_SelectedFile);
         }
     }
 }
コード例 #20
0
        private void loadExternalToolStripMenuItem_Click(object sender, EventArgs e)
        {
            int texDefID = lbxTexDef.SelectedIndex;

            // this shouldn't happen but you never know
            if (texDefID == -1)
            {
                return;
            }

            m_ROMFileSelect.ReInitialize("Select a SPT file to load", new String[] { ".spt" });
            DialogResult result = m_ROMFileSelect.ShowDialog();

            if (result != DialogResult.OK)
            {
                return;
            }
            else
            {
                try
                {
                    NitroFile SPT = Program.m_ROM.GetFileFromName(m_ROMFileSelect.m_SelectedFile);

                    if (SPT.Read32(0x0) != 0x53505420)
                    {
                        throw new Exception("Invalid SPT header.");
                    }

                    uint flags        = SPT.Read32(0x04);
                    uint texelArrSize = SPT.Read32(0x08);
                    uint palOffset    = SPT.Read32(0x0c);
                    uint palSize      = SPT.Read32(0x10);
                    uint totalSize    = SPT.Read32(0x1c);

                    byte[] texels  = SPT.ReadBlock(0x20, texelArrSize);
                    byte[] palette = SPT.ReadBlock(palOffset, palSize);

                    int  width        = 1 << (((int)flags >> 4 & 0xf) + 3);
                    int  height       = 1 << (((int)flags >> 8 & 0xf) + 3);
                    bool color0Transp = ((flags & 0x8) | (flags & 0x10000)) != 0;
                    int  type         = (int)flags & 0x7;
                    Particle.Texture.RepeatMode repeatX = (flags & 0x4000) != 0 ?
                                                          Particle.Texture.RepeatMode.FLIP : (flags & 0x1000) != 0 ?
                                                          Particle.Texture.RepeatMode.REPEAT :
                                                          Particle.Texture.RepeatMode.CLAMP;
                    Particle.Texture.RepeatMode repeatY = (flags & 0x8000) != 0 ?
                                                          Particle.Texture.RepeatMode.FLIP : (flags & 0x2000) != 0 ?
                                                          Particle.Texture.RepeatMode.REPEAT :
                                                          Particle.Texture.RepeatMode.CLAMP;

                    m_TexDefs[texDefID].Unload();

                    m_TexDefs[texDefID] = new Particle.Texture(texels, palette, width, height,
                                                               (byte)(color0Transp ? 1 : 0), type, repeatX, repeatY, texDefID);

                    m_TexDefs[texDefID].Load();

                    UpdateParticleTextures(texDefID);
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Failed to load external SPT. Details:\n" + ex.Message, "Failed to load SPT");
                }

                RefreshImage();
                PopulatePaletteSettings();
            }
        }