// Add a level animation private void ImportLevelAnimation() { importFileDialog.InitialDirectory = modFolder; if (importFileDialog.ShowDialog() != DialogResult.OK) { return; } string animpath = Path.ChangeExtension(importFileDialog.FileName, ".saanim"); // Load saanim file if it isn't found if (!File.Exists(animpath)) { using (OpenFileDialog ofd = new OpenFileDialog { Title = "Import Level Animation", DefaultExt = "saanim", Filter = "Animation Files|*.saanim", Multiselect = false }) { if (ofd.ShowDialog() != DialogResult.OK) { return; } animpath = ofd.FileName; } } // Update level animations LevelAnim newanim = LevelData.ImportLevelAnimation(new ModelFile(importFileDialog.FileName).Model, NJS_MOTION.Load(animpath), selectedItems); if (LevelData.LevelAnims == null) { LevelData.ClearLevelGeoAnims(); } LevelData.geo.Anim.Add(newanim.GeoAnimationData); LevelData.AddLevelAnim(newanim); unsaved = true; selectedItems.Clear(); selectedItems.Add(newanim); LevelData.InvalidateRenderState(); playAnimButton.Enabled = prevFrameButton.Enabled = nextFrameButton.Enabled = resetAnimButton.Enabled = LevelData.LevelAnimCount > 0; }