Beispiel #1
0
        private unsafe void exportToolStripMenuItem_Click(object sender, EventArgs e)
        {
            BrawlBoxViewerSettings settings = CollectSettings();

            SaveFileDialog sd = new SaveFileDialog();

            sd.Filter   = "Brawlbox Settings (*.settings)|*.settings";
            sd.FileName = Application.StartupPath;
            if (sd.ShowDialog() == DialogResult.OK)
            {
                string path = sd.FileName;
                using (FileStream stream = new FileStream(path, FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite, 8, FileOptions.SequentialScan))
                {
                    CompactStringTable s = new CompactStringTable();
                    s.Add(ScreenCapBgLocText.Text);
                    stream.SetLength((long)BrawlBoxViewerSettings.Size + s.TotalSize);
                    using (FileMap map = FileMap.FromStream(stream))
                    {
                        *(BrawlBoxViewerSettings *)map.Address = settings;
                        s.WriteTable(map.Address + BrawlBoxViewerSettings.Size);
                        ((BrawlBoxViewerSettings *)map.Address)->_screenCapPathOffset = (uint)s[ScreenCapBgLocText.Text] - (uint)map.Address;
                    }
                }
                MessageBox.Show("Settings successfully saved to " + path);
            }
        }
Beispiel #2
0
        public unsafe void ReadSettings()
        {
            string t = BrawlBox.Properties.Settings.Default.ScreenCapBgLocText;

            if (!String.IsNullOrEmpty(t))
            {
                modelEditControl1.ScreenCapBgLocText.Text = t;
            }
            else
            {
                modelEditControl1.ScreenCapBgLocText.Text = Application.StartupPath + "\\ScreenCaptures";
            }

            BrawlBoxViewerSettings?s;

            if (!BrawlBox.Properties.Settings.Default.ViewerSettingsSet)
            {
                s = BrawlBoxViewerSettings.Default;
                BrawlBox.Properties.Settings.Default.ViewerSettingsSet = true;
            }
            else
            {
                s = BrawlBox.Properties.Settings.Default.ViewerSettings;
            }

            if (s == null)
            {
                return;
            }

            BrawlBoxViewerSettings settings = (BrawlBoxViewerSettings)s;

            modelEditControl1.DistributeSettings(settings);
            modelEditControl1.ModelPanel.ResetCamera();

            if (settings.Maximize)
            {
                WindowState = FormWindowState.Maximized;
            }
        }
Beispiel #3
0
        public BrawlBoxViewerSettings CollectSettings()
        {
            BrawlBoxViewerSettings settings = new BrawlBoxViewerSettings();

            settings._tag     = BrawlBoxViewerSettings.Tag;
            settings._version = 4;

            settings.RetrieveCorrAnims    = syncAnimationsTogetherToolStripMenuItem.Checked;
            settings.DisplayExternalAnims = chkExternalAnims.Checked;
            settings.DisplayBRRESAnims    = chkBRRESAnims.Checked;
            settings.DisplayNonBRRESAnims = chkNonBRRESAnims.Checked;
            settings.SyncTexToObj         = syncTexObjToolStripMenuItem.Checked;
            settings.SyncObjToVIS0        = syncObjectsListToVIS0ToolStripMenuItem.Checked;
            settings.DisableBonesOnPlay   = disableBonesWhenPlayingToolStripMenuItem.Checked;

            settings._defaultCam  = ModelPanel.DefaultTranslate;
            settings._defaultRot  = ModelPanel.DefaultRotate;
            settings._amb         = ModelPanel.Ambient;
            settings._pos         = ModelPanel.LightPosition;
            settings._diff        = ModelPanel.Diffuse;
            settings._spec        = ModelPanel.Specular;
            settings._yFov        = ModelPanel._fovY;
            settings._nearZ       = ModelPanel._nearZ;
            settings._farz        = ModelPanel._farZ;
            settings._tScale      = ModelPanel.TranslationScale;
            settings._rScale      = ModelPanel.RotationScale;
            settings._zScale      = ModelPanel.ZoomScale;
            settings._orbColor    = (ARGBPixel)MDL0BoneNode.DefaultNodeColor;
            settings._lineColor   = (ARGBPixel)MDL0BoneNode.DefaultBoneColor;
            settings._floorColor  = (ARGBPixel)StaticMainWindow._floorHue;
            settings._undoCount   = (uint)_allowedUndos;
            settings._shaderCount = 0;
            settings._matCount    = 0;
            settings._emis        = ModelPanel.Emission;

            settings.Maximize        = chkMaximize.Checked;
            settings.CameraSet       = btnSaveCam.Text == "Clear Camera";
            settings.ImageCapFmt     = _imgExtIndex;
            settings.Bones           = _renderBones;
            settings.Polys           = _renderPolygons;
            settings.Wireframe       = _renderWireframe;
            settings.Vertices        = _renderVertices;
            settings.Normals         = _renderNormals;
            settings.HideOffscreen   = _dontRenderOffscreen;
            settings.BoundingBox     = _renderBox;
            settings.ShowCamCoords   = showCameraCoordinatesToolStripMenuItem.Checked;
            settings.Floor           = _renderFloor;
            settings.OrthoCam        = orthographicToolStripMenuItem.Checked;
            settings.EnableSmoothing = enablePointAndLineSmoothingToolStripMenuItem.Checked;
            settings.EnableText      = enableTextOverlaysToolStripMenuItem.Checked;

            settings.LinearCHR   = chkLinearCHR.Checked;
            settings.LinearSRT   = chkLinearSRT.Checked;
            settings.LinearSHP   = chkLinearSHP.Checked;
            settings.LinearLight = chkLinearLight.Checked;
            settings.LinearFog   = chkLinearFog.Checked;
            settings.LinearCam   = chkLinearCamera.Checked;

            settings.GenTansCHR   = chkGenTansCHR.Checked;
            settings.GenTansSRT   = chkGenTansSRT.Checked;
            settings.GenTansSHP   = chkGenTansSHP.Checked;
            settings.GenTansLight = chkGenTansLight.Checked;
            settings.GenTansFog   = chkGenTansFog.Checked;
            settings.GenTansCam   = chkGenTansCamera.Checked;

            return(settings);
        }
Beispiel #4
0
        public void DistributeSettings(BrawlBoxViewerSettings settings)
        {
            _updating = true;
            ModelPanel.BeginUpdate();

            syncAnimationsTogetherToolStripMenuItem.Checked  = settings.RetrieveCorrAnims;
            syncTexObjToolStripMenuItem.Checked              = settings.SyncTexToObj;
            syncObjectsListToVIS0ToolStripMenuItem.Checked   = settings.SyncObjToVIS0;
            disableBonesWhenPlayingToolStripMenuItem.Checked = settings.DisableBonesOnPlay;
            chkMaximize.Checked      = settings.Maximize;
            chkExternalAnims.Checked = settings.DisplayExternalAnims;
            chkBRRESAnims.Checked    = settings.DisplayBRRESAnims;
            chkNonBRRESAnims.Checked = settings.DisplayNonBRRESAnims;

            ModelPanel.Ambient       = settings._amb;
            ModelPanel.LightPosition = settings._pos;
            ModelPanel.Diffuse       = settings._diff;
            ModelPanel.Specular      = settings._spec;
            ModelPanel.Emission      = settings._emis;

            ModelPanel._fovY  = settings._yFov;
            ModelPanel._nearZ = settings._nearZ;
            ModelPanel._farZ  = settings._farz;

            ModelPanel.ZoomScale        = settings._zScale;
            ModelPanel.TranslationScale = settings._tScale;
            ModelPanel.RotationScale    = settings._rScale;

            MDL0BoneNode.DefaultNodeColor = (Color)settings._orbColor;
            MDL0BoneNode.DefaultBoneColor = (Color)settings._lineColor;
            StaticMainWindow._floorHue    = (Color)settings._floorColor;
            if (settings.CameraSet)
            {
                btnSaveCam.Text             = "Clear Camera";
                ModelPanel.DefaultTranslate = settings._defaultCam;
                ModelPanel.DefaultRotate    = settings._defaultRot;
            }
            else
            {
                btnSaveCam.Text             = "Save Camera";
                ModelPanel.DefaultTranslate = new Vector3();
                ModelPanel.DefaultRotate    = new Vector2();
            }

            _allowedUndos = settings._undoCount;
            ImgExtIndex   = settings.ImageCapFmt;

            RenderBones         = settings.Bones;
            RenderWireframe     = settings.Wireframe;
            RenderPolygons      = settings.Polys;
            RenderVertices      = settings.Vertices;
            RenderBox           = settings.BoundingBox;
            RenderNormals       = settings.Normals;
            DontRenderOffscreen = settings.HideOffscreen;
            showCameraCoordinatesToolStripMenuItem.Checked = settings.ShowCamCoords;
            RenderFloor = settings.Floor;
            enablePointAndLineSmoothingToolStripMenuItem.Checked = settings.EnableSmoothing;
            enableTextOverlaysToolStripMenuItem.Checked          = settings.EnableText;

            chkLinearCHR.Checked    = settings.LinearCHR;
            chkLinearSRT.Checked    = settings.LinearSRT;
            chkLinearSHP.Checked    = settings.LinearSHP;
            chkLinearLight.Checked  = settings.LinearLight;
            chkLinearFog.Checked    = settings.LinearFog;
            chkLinearCamera.Checked = settings.LinearCam;

            chkGenTansCHR.Checked    = settings.GenTansCHR;
            chkGenTansSRT.Checked    = settings.GenTansSRT;
            chkGenTansSHP.Checked    = settings.GenTansSHP;
            chkGenTansLight.Checked  = settings.GenTansLight;
            chkGenTansFog.Checked    = settings.GenTansFog;
            chkGenTansCamera.Checked = settings.GenTansCam;

            ModelPanel.EndUpdate();
            ModelPanel.Invalidate();
            _updating = false;
        }
Beispiel #5
0
        public unsafe void SaveSettings(bool maximize)
        {
            try
            {
                BrawlBoxViewerSettings settings = new BrawlBoxViewerSettings();
                settings._tag        = BrawlBoxViewerSettings.Tag;
                settings._version    = 2;
                settings._defaultCam = modelPanel.DefaultTranslate;
                settings._defaultRot = modelPanel.DefaultRotate;
                settings._amb        = modelPanel.Ambient;
                settings._pos        = modelPanel.LightPosition;
                settings._diff       = modelPanel.Diffuse;
                settings._spec       = modelPanel.Specular;
                settings._yFov       = modelPanel._fovY;
                settings._nearZ      = modelPanel._nearZ;
                settings._farz       = modelPanel._farZ;
                settings._tScale     = modelPanel.TranslationScale;
                settings._rScale     = modelPanel.RotationScale;
                settings._zScale     = modelPanel.ZoomScale;
                settings._orbColor   = (ARGBPixel)MDL0BoneNode.DefaultNodeColor;
                settings._lineColor  = (ARGBPixel)MDL0BoneNode.DefaultBoneColor;
                settings._floorColor = (ARGBPixel)StaticMainWindow._floorHue;
                //settings.SetFlags1(
                //    syncAnimationsTogetherToolStripMenuItem.Checked,
                //    true,
                //    syncLoopToAnimationToolStripMenuItem.Checked,
                //    syncTexObjToolStripMenuItem.Checked,
                //    syncObjectsListToVIS0ToolStripMenuItem.Checked,
                //    disableBonesWhenPlayingToolStripMenuItem.Checked,
                //    maximize,
                //    btnSaveCam.Text == "Clear Camera");
                settings._undoCount      = (uint)_allowedUndos;
                settings._shaderCount    = 0;
                settings._matCount       = 0;
                settings._emis           = modelPanel.Emission;
                settings.ImageCapFmt     = _imgExtIndex;
                settings.Bones           = _renderBones;
                settings.Polys           = _renderPolygons;
                settings.Wireframe       = _renderWireframe;
                settings.Vertices        = _renderVertices;
                settings.Normals         = _renderNormals;
                settings.HideOffscreen   = _dontRenderOffscreen;
                settings.BoundingBox     = _renderBox;
                settings.ShowCamCoords   = showCameraCoordinatesToolStripMenuItem.Checked;
                settings.Floor           = _renderFloor;
                settings.OrthoCam        = orthographicToolStripMenuItem.Checked;
                settings.EnableSmoothing = enablePointAndLineSmoothingToolStripMenuItem.Checked;
                settings.EnableText      = enableTextOverlaysToolStripMenuItem.Checked;

                //if (BrawlLib.Properties.Settings.Default.External)
                //{
                //    using (FileStream stream = new FileStream(Application.StartupPath + "/brawlbox.settings", FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite, 8, FileOptions.SequentialScan))
                //    {
                //        CompactStringTable s = new CompactStringTable();
                //        s.Add(ScreenCapBgLocText.Text);
                //        stream.SetLength((long)BrawlBoxViewerSettings.Size + s.TotalSize);
                //        using (FileMap map = FileMap.FromStream(stream))
                //        {
                //            *(BrawlBoxViewerSettings*)map.Address = settings;
                //            s.WriteTable(map.Address + BrawlBoxViewerSettings.Size);
                //            ((BrawlBoxViewerSettings*)map.Address)->_screenCapPathOffset = (uint)s[ScreenCapBgLocText.Text] - (uint)map.Address;
                //        }
                //    }
                //}
                //else
                //{
                //    BrawlLib.Properties.Settings.Default.ViewerSettings = settings;
                //    BrawlLib.Properties.Settings.Default.ScreenCapBgLocText = ScreenCapBgLocText.Text;
                //    BrawlLib.Properties.Settings.Default.Save();
                //}

                clearSavedSettingsToolStripMenuItem.Enabled = true;
            }
            catch (Exception ex) { MessageBox.Show(ex.ToString()); }
        }