diff --git a/.vs/Switch_Toolbox/v15/.suo b/.vs/Switch_Toolbox/v15/.suo index 94badcec..04580f60 100644 Binary files a/.vs/Switch_Toolbox/v15/.suo and b/.vs/Switch_Toolbox/v15/.suo differ diff --git a/.vs/Switch_Toolbox/v15/Server/sqlite3/storage.ide b/.vs/Switch_Toolbox/v15/Server/sqlite3/storage.ide index f2646aa7..b475ed4a 100644 Binary files a/.vs/Switch_Toolbox/v15/Server/sqlite3/storage.ide and b/.vs/Switch_Toolbox/v15/Server/sqlite3/storage.ide differ diff --git a/.vs/Switch_Toolbox/v15/Server/sqlite3/storage.ide-shm b/.vs/Switch_Toolbox/v15/Server/sqlite3/storage.ide-shm index 3a2a0e83..a386eb60 100644 Binary files a/.vs/Switch_Toolbox/v15/Server/sqlite3/storage.ide-shm and b/.vs/Switch_Toolbox/v15/Server/sqlite3/storage.ide-shm differ diff --git a/.vs/Switch_Toolbox/v15/Server/sqlite3/storage.ide-wal b/.vs/Switch_Toolbox/v15/Server/sqlite3/storage.ide-wal index 3579f743..710e9d9c 100644 Binary files a/.vs/Switch_Toolbox/v15/Server/sqlite3/storage.ide-wal and b/.vs/Switch_Toolbox/v15/Server/sqlite3/storage.ide-wal differ diff --git a/Switch_FileFormatsMain/FileFormats/Shader/SHARC.cs b/Switch_FileFormatsMain/FileFormats/Shader/SHARC.cs index c5ba9e6b..c18cf900 100644 --- a/Switch_FileFormatsMain/FileFormats/Shader/SHARC.cs +++ b/Switch_FileFormatsMain/FileFormats/Shader/SHARC.cs @@ -207,7 +207,7 @@ namespace FirstPlugin variationSymbolData.Read(reader); variationSymbolDataFull.Read(reader); - UniformBlocks.Read(reader, header.Version); + UniformBlocks.Read(reader, header.Version, true); if (header.Version <= 12) { diff --git a/Switch_FileFormatsMain/FileFormats/Shader/SHARCFB.cs b/Switch_FileFormatsMain/FileFormats/Shader/SHARCFB.cs index 30b5534a..0d0ce7e5 100644 --- a/Switch_FileFormatsMain/FileFormats/Shader/SHARCFB.cs +++ b/Switch_FileFormatsMain/FileFormats/Shader/SHARCFB.cs @@ -313,7 +313,6 @@ namespace FirstPlugin public class VariationMacro { public string Name { get; set; } - public string[] Values { get; set; } public string Value { get; set; } public void Read(FileReader reader, uint Version) @@ -321,38 +320,16 @@ namespace FirstPlugin var pos = reader.Position; uint SectionSize = reader.ReadUInt32(); - if (Version >= 13) - { - uint NameLength = reader.ReadUInt32(); - uint ValueCount = reader.ReadUInt32(); - Name = reader.ReadString((int)NameLength); - Value = reader.ReadString((int)ValueCount); + uint NameLength = reader.ReadUInt32(); + uint ValueLength = reader.ReadUInt32(); + Name = reader.ReadString((int)NameLength); + Value = reader.ReadString((int)ValueLength); - Values = new string[0]; - - Console.WriteLine("VariationMacro ------------------"); - Console.WriteLine(Name); - Console.WriteLine(Value); - Console.WriteLine("------------------"); - } - else - { - uint NameLength = reader.ReadUInt32(); - uint ValueCount = reader.ReadUInt32(); - uint Unk = reader.ReadUInt32(); - - Name = reader.ReadString((int)NameLength); - Values = reader.ReadStrings((int)ValueCount, Syroot.BinaryData.BinaryStringFormat.ZeroTerminated); - - foreach (string vl in Values) - Value += $" {vl}"; - - Console.WriteLine("VariationMacro ------------------"); - Console.WriteLine(Name); - Console.WriteLine(Value); - Console.WriteLine("------------------"); - } + Console.WriteLine("VariationMacro ------------------"); + Console.WriteLine(Name); + Console.WriteLine(Value); + Console.WriteLine("------------------"); reader.Seek(pos + SectionSize, System.IO.SeekOrigin.Begin); @@ -407,18 +384,22 @@ namespace FirstPlugin public class ShaderSymbolData { public List symbols = new List(); - public void Read(FileReader reader, uint Version = 12) + public void Read(FileReader reader, uint Version = 12, bool SkipReading = false) { var SectionPos = reader.Position; uint SectionSize = reader.ReadUInt32(); uint SectionCount = reader.ReadUInt32(); - for (int i = 0; i < SectionCount; i++) + if (!SkipReading) { - ShaderSymbol symbol = new ShaderSymbol(); - symbol.Read(reader, Version); - symbols.Add(symbol); + for (int i = 0; i < SectionCount; i++) + { + ShaderSymbol symbol = new ShaderSymbol(); + symbol.Read(reader, Version); + symbols.Add(symbol); + } } + reader.Seek(SectionPos + SectionSize, System.IO.SeekOrigin.Begin); } } diff --git a/Switch_FileFormatsMain/GUI/Byaml/CourseMuunt/TurboMunntEditor.cs b/Switch_FileFormatsMain/GUI/Byaml/CourseMuunt/TurboMunntEditor.cs index 9d90bb0f..937c520d 100644 --- a/Switch_FileFormatsMain/GUI/Byaml/CourseMuunt/TurboMunntEditor.cs +++ b/Switch_FileFormatsMain/GUI/Byaml/CourseMuunt/TurboMunntEditor.cs @@ -110,16 +110,16 @@ namespace FirstPlugin.Forms foreach (var kcl in scene.KclObjects) { - viewport.AddDrawable(kcl.Renderer); - treeView1.Nodes.Add(kcl); - kcl.Checked = true; + // viewport.AddDrawable(kcl.Renderer); + // treeView1.Nodes.Add(kcl); + // kcl.Checked = true; } foreach (var bfres in scene.BfresObjects) { - viewport.AddDrawable(bfres.BFRESRender); - treeView1.Nodes.Add(bfres); - bfres.Checked = true; + // viewport.AddDrawable(bfres.BFRESRender); + // treeView1.Nodes.Add(bfres); + // bfres.Checked = true; } IsLoaded = true; @@ -190,16 +190,38 @@ namespace FirstPlugin.Forms private void viewIntroCameraToolStripMenuItem_Click(object sender, EventArgs e) { + //Sort list by camera number/id + scene.IntroCameras.Sort((x, y) => x.CameraNum.CompareTo(y.CameraNum)); + foreach (var camera in scene.IntroCameras) { var pathMove = scene.Paths[camera.Camera_Path]; var pathLookAt = scene.Paths[camera.Camera_AtPath]; + //The time elapsed for each point + int PathTime = camera.CameraTime / pathMove.PathPoints.Count; + + //Go through each point for (int p = 0; p < pathMove.PathPoints.Count; p++) { + //If lookat path is higher than the move path, break + if (pathLookAt.PathPoints.Count >= p) + break; + + //Set our points var pathMovePoint = pathMove.PathPoints[p]; var pathLookAtPoint = pathLookAt.PathPoints[p]; + for (int frame = 0; frame < PathTime; frame++) + { + if (viewport.GL_ControlModern != null) + { + viewport.GL_ControlModern.CameraEye = pathLookAtPoint.Translate; + viewport.GL_ControlModern.CameraTarget = pathMovePoint.Translate; + + viewport.UpdateViewport(); + } + } } } } diff --git a/Switch_FileFormatsMain/obj/Release/DesignTimeResolveAssemblyReferences.cache b/Switch_FileFormatsMain/obj/Release/DesignTimeResolveAssemblyReferences.cache index 01df67bb..d7d83ba9 100644 Binary files a/Switch_FileFormatsMain/obj/Release/DesignTimeResolveAssemblyReferences.cache and b/Switch_FileFormatsMain/obj/Release/DesignTimeResolveAssemblyReferences.cache differ diff --git a/Switch_FileFormatsMain/obj/Release/FirstPlugin.Plg.dll b/Switch_FileFormatsMain/obj/Release/FirstPlugin.Plg.dll index 9db4fe02..0dc0b805 100644 Binary files a/Switch_FileFormatsMain/obj/Release/FirstPlugin.Plg.dll and b/Switch_FileFormatsMain/obj/Release/FirstPlugin.Plg.dll differ diff --git a/Switch_FileFormatsMain/obj/Release/FirstPlugin.Plg.pdb b/Switch_FileFormatsMain/obj/Release/FirstPlugin.Plg.pdb index 4b1500f1..403dcc21 100644 Binary files a/Switch_FileFormatsMain/obj/Release/FirstPlugin.Plg.pdb and b/Switch_FileFormatsMain/obj/Release/FirstPlugin.Plg.pdb differ diff --git a/Switch_FileFormatsMain/obj/Release/Switch_FileFormatsMain.csprojAssemblyReference.cache b/Switch_FileFormatsMain/obj/Release/Switch_FileFormatsMain.csprojAssemblyReference.cache index d9690a78..e059c765 100644 Binary files a/Switch_FileFormatsMain/obj/Release/Switch_FileFormatsMain.csprojAssemblyReference.cache and b/Switch_FileFormatsMain/obj/Release/Switch_FileFormatsMain.csprojAssemblyReference.cache differ diff --git a/Switch_Toolbox_Library/FileFormats/Assimp/AssimpSaver.cs b/Switch_Toolbox_Library/FileFormats/Assimp/AssimpSaver.cs index 7db97a6b..2bac246c 100644 --- a/Switch_Toolbox_Library/FileFormats/Assimp/AssimpSaver.cs +++ b/Switch_Toolbox_Library/FileFormats/Assimp/AssimpSaver.cs @@ -110,7 +110,7 @@ namespace Switch_Toolbox.Library else mesh.Bones[boneInd].VertexWeights.Add(new VertexWeight(vertexID, 1)); } - else if ( v.boneWeights[j] > 0) + else if (v.boneWeights.Count == 0 || v.boneWeights[j] > 0) mesh.Bones[boneInd].VertexWeights.Add(new VertexWeight(vertexID, 1)); } } diff --git a/Toolbox/Gl_EditorFramework.dll b/Toolbox/Gl_EditorFramework.dll index ea005a99..ec1e8777 100644 Binary files a/Toolbox/Gl_EditorFramework.dll and b/Toolbox/Gl_EditorFramework.dll differ diff --git a/Toolbox/Gl_EditorFramework.pdb b/Toolbox/Gl_EditorFramework.pdb index d9aef0a8..92a4698d 100644 Binary files a/Toolbox/Gl_EditorFramework.pdb and b/Toolbox/Gl_EditorFramework.pdb differ