Beispiel #1
0
 private void btnPrevTexture_Click(object sender, EventArgs e)
 {
     TextureIndex--;
     if (TextureIndex < 0)
     {
         TextureIndex = PTCs.Count - 1;
     }
     SelectedPTC = PTCs[TextureIndex];
     Refresh();
 }
Beispiel #2
0
 private void btnNextTexture_Click(object sender, EventArgs e)
 {
     TextureIndex++;
     if (TextureIndex >= PTCs.Count)
     {
         TextureIndex = 0;
     }
     SelectedPTC = PTCs[TextureIndex];
     Refresh();
 }
Beispiel #3
0
        internal void PSViewer_OnClick(object sender, EventArgs e)
        {
            if (viewer != null && !viewer.IsDisposed)
            {
                viewer.Close();
                viewer = null;
                GC.Collect(); // Collect all created references instantly just in case to avoid more memory leaks than we already have
            }
            viewer = new PTCViewer();
            var    menu   = (MenuItem)sender;
            var    record = (BH_Record)menu.Tag;
            string name   = Path.GetFileName(record.Path);
            var    bdPath = $"{path}\\{this.name}.BD";

            using (FileStream fileStream = new FileStream(bdPath, FileMode.Open, FileAccess.Read))
                using (BinaryReader reader = new BinaryReader(fileStream))
                {
                    reader.BaseStream.Position = record.Offset;
                    if (name.EndsWith("psf"))
                    {
                        TwinsPSF psf = new TwinsPSF();
                        psf.Load(reader, record.Length);
                        viewer.PTCs = psf.FontPages;
                    }
                    else if (name.EndsWith("ptc"))
                    {
                        TwinsPTC ptc = new TwinsPTC();
                        ptc.Load(reader, record.Length);
                        viewer.PTCs.Add(ptc);
                    }
                    else if (name.EndsWith("psm"))
                    {
                        TwinsPSM psm = new TwinsPSM();
                        psm.Load(reader, record.Length);
                        viewer.PTCs = psm.PTCs;
                        viewer.EnablePSMCheckbox();
                    }
                }
            viewer.SelectedPTC = viewer.PTCs[0];
            viewer.UpdateTextureLabel();
            viewer.Show();
        }