├── .gitignore ├── BMDReader ├── BMDReader.csproj ├── BTI.cs ├── BigEndian.cs ├── Bmd.cs ├── BmdRenderer.cs ├── FileSystemBase.cs ├── Helper.cs ├── OpenTK.dll.config ├── Properties │ └── AssemblyInfo.cs ├── RendererBase.cs └── packages.config ├── README.md ├── SMSSceneReader.sln ├── SMSSceneReader ├── AboutBox1.cs ├── AboutBox1.designer.cs ├── AboutBox1.resx ├── ActorSelect.Designer.cs ├── ActorSelect.cs ├── ActorSelect.resx ├── App.config ├── ArrayPrompt.Designer.cs ├── ArrayPrompt.cs ├── ArrayPrompt.resx ├── BMGEditor.Designer.cs ├── BMGEditor.cs ├── BMGEditor.resx ├── CameraDemoEditor.Designer.cs ├── CameraDemoEditor.cs ├── CameraDemoEditor.resx ├── Find.Designer.cs ├── Find.cs ├── Find.resx ├── GameParamForm.Designer.cs ├── GameParamForm.cs ├── GameParamForm.resx ├── KeyFramePrompt.Designer.cs ├── KeyFramePrompt.cs ├── KeyFramePrompt.resx ├── MainForm.Designer.cs ├── MainForm.cs ├── MainForm.resx ├── Manager.txt ├── NPC.txt ├── NameCheck.Designer.cs ├── NameCheck.cs ├── NameCheck.resx ├── Object.txt ├── ObjectWizardForm.Designer.cs ├── ObjectWizardForm.cs ├── ObjectWizardForm.resx ├── OpenTK.dll.config ├── Preview.Designer.cs ├── Preview.cs ├── Preview.resx ├── Program.cs ├── ProgressForm.Designer.cs ├── ProgressForm.cs ├── ProgressForm.resx ├── Properties │ ├── AssemblyInfo.cs │ ├── Resources.Designer.cs │ ├── Resources.resx │ ├── Settings.Designer.cs │ └── Settings.settings ├── RallyForm.Designer.cs ├── RallyForm.cs ├── RallyForm.resx ├── SMSSceneReader.csproj ├── SMSSceneReader.csproj.user ├── Settings.Designer.cs ├── Settings.cs ├── Settings.resx ├── SizeSelect.Designer.cs ├── SizeSelect.cs ├── SizeSelect.resx ├── StringInput.Designer.cs ├── StringInput.cs ├── StringInput.resx ├── Subdivide.Designer.cs ├── Subdivide.cs ├── Subdivide.resx ├── Translate Buddy.Designer.cs ├── Translate Buddy.cs ├── Translate Buddy.resx ├── VectorInput.Designer.cs ├── VectorInput.cs ├── VectorInput.resx ├── WarpEdit.Designer.cs ├── WarpEdit.cs ├── WarpEdit.resx ├── WarpFinder.Designer.cs ├── WarpFinder.cs ├── WarpFinder.resx ├── icon.ico ├── icon_s.ico ├── packages.config ├── paramEditor.Designer.cs ├── paramEditor.cs ├── paramEditor.resx └── platform.ico ├── packages ├── OpenTK.Next.1.2.2336.6514-pre │ ├── OpenTK.Next.1.2.2336.6514-pre.nupkg │ ├── content │ │ └── OpenTK.dll.config │ └── lib │ │ └── net20 │ │ ├── OpenTK.dll │ │ └── OpenTK.xml └── OpenTK.Next.GLControl.1.2.2336.6514-pre │ ├── OpenTK.Next.GLControl.1.2.2336.6514-pre.nupkg │ └── lib │ └── net20 │ ├── OpenTK.GLControl.dll │ └── OpenTK.GLControl.xml └── sms-binreader ├── Bck.cs ├── Bin.cs ├── BinReader.csproj ├── BinReader.sln ├── BinReader.v12.suo ├── Bmg.cs ├── Data.cs ├── GCN.cs ├── Prm.cs ├── Properties └── AssemblyInfo.cs ├── Ral.cs ├── SMSData.cs ├── TOC.cs └── packages.config /.gitignore: -------------------------------------------------------------------------------- 1 | ## Ignore Visual Studio temporary files, build results, and 2 | ## files generated by popular Visual Studio add-ons. 3 | 4 | # User-specific files 5 | *.suo 6 | *.user 7 | *.userosscache 8 | *.sln.docstates 9 | 10 | # User-specific files (MonoDevelop/Xamarin Studio) 11 | *.userprefs 12 | 13 | # Build results 14 | [Dd]ebug/ 15 | [Dd]ebugPublic/ 16 | [Rr]elease/ 17 | [Rr]eleases/ 18 | x64/ 19 | x86/ 20 | bld/ 21 | [Bb]in/ 22 | [Oo]bj/ 23 | [Ll]og/ 24 | 25 | # Visual Studio 2015 cache/options directory 26 | .vs/ 27 | # Uncomment if you have tasks that create the project's static files in wwwroot 28 | #wwwroot/ 29 | 30 | # MSTest test Results 31 | [Tt]est[Rr]esult*/ 32 | [Bb]uild[Ll]og.* 33 | 34 | # NUNIT 35 | *.VisualState.xml 36 | TestResult.xml 37 | 38 | # Build Results of an ATL Project 39 | [Dd]ebugPS/ 40 | [Rr]eleasePS/ 41 | dlldata.c 42 | 43 | # DNX 44 | project.lock.json 45 | project.fragment.lock.json 46 | artifacts/ 47 | 48 | *_i.c 49 | *_p.c 50 | *_i.h 51 | *.ilk 52 | *.meta 53 | *.obj 54 | *.pch 55 | *.pdb 56 | *.pgc 57 | *.pgd 58 | *.rsp 59 | *.sbr 60 | *.tlb 61 | *.tli 62 | *.tlh 63 | *.tmp 64 | *.tmp_proj 65 | *.log 66 | *.vspscc 67 | *.vssscc 68 | .builds 69 | *.pidb 70 | *.svclog 71 | *.scc 72 | 73 | # Chutzpah Test files 74 | _Chutzpah* 75 | 76 | # Visual C++ cache files 77 | ipch/ 78 | *.aps 79 | *.ncb 80 | *.opendb 81 | *.opensdf 82 | *.sdf 83 | *.cachefile 84 | *.VC.db 85 | *.VC.VC.opendb 86 | 87 | # Visual Studio profiler 88 | *.psess 89 | *.vsp 90 | *.vspx 91 | *.sap 92 | 93 | # TFS 2012 Local Workspace 94 | $tf/ 95 | 96 | # Guidance Automation Toolkit 97 | *.gpState 98 | 99 | # ReSharper is a .NET coding add-in 100 | _ReSharper*/ 101 | *.[Rr]e[Ss]harper 102 | *.DotSettings.user 103 | 104 | # JustCode is a .NET coding add-in 105 | .JustCode 106 | 107 | # TeamCity is a build add-in 108 | _TeamCity* 109 | 110 | # DotCover is a Code Coverage Tool 111 | *.dotCover 112 | 113 | # NCrunch 114 | _NCrunch_* 115 | .*crunch*.local.xml 116 | nCrunchTemp_* 117 | 118 | # MightyMoose 119 | *.mm.* 120 | AutoTest.Net/ 121 | 122 | # Web workbench (sass) 123 | .sass-cache/ 124 | 125 | # Installshield output folder 126 | [Ee]xpress/ 127 | 128 | # DocProject is a documentation generator add-in 129 | DocProject/buildhelp/ 130 | DocProject/Help/*.HxT 131 | DocProject/Help/*.HxC 132 | DocProject/Help/*.hhc 133 | DocProject/Help/*.hhk 134 | DocProject/Help/*.hhp 135 | DocProject/Help/Html2 136 | DocProject/Help/html 137 | 138 | # Click-Once directory 139 | publish/ 140 | 141 | # Publish Web Output 142 | *.[Pp]ublish.xml 143 | *.azurePubxml 144 | # TODO: Comment the next line if you want to checkin your web deploy settings 145 | # but database connection strings (with potential passwords) will be unencrypted 146 | #*.pubxml 147 | *.publishproj 148 | 149 | # Microsoft Azure Web App publish settings. Comment the next line if you want to 150 | # checkin your Azure Web App publish settings, but sensitive information contained 151 | # in these scripts will be unencrypted 152 | PublishScripts/ 153 | 154 | # NuGet Packages 155 | *.nupkg 156 | # The packages folder can be ignored because of Package Restore 157 | **/packages/* 158 | # except build/, which is used as an MSBuild target. 159 | !**/packages/build/ 160 | # Uncomment if necessary however generally it will be regenerated when needed 161 | #!**/packages/repositories.config 162 | # NuGet v3's project.json files produces more ignoreable files 163 | *.nuget.props 164 | *.nuget.targets 165 | 166 | # Microsoft Azure Build Output 167 | csx/ 168 | *.build.csdef 169 | 170 | # Microsoft Azure Emulator 171 | ecf/ 172 | rcf/ 173 | 174 | # Windows Store app package directories and files 175 | AppPackages/ 176 | BundleArtifacts/ 177 | Package.StoreAssociation.xml 178 | _pkginfo.txt 179 | 180 | # Visual Studio cache files 181 | # files ending in .cache can be ignored 182 | *.[Cc]ache 183 | # but keep track of directories ending in .cache 184 | !*.[Cc]ache/ 185 | 186 | # Others 187 | ClientBin/ 188 | ~$* 189 | *~ 190 | *.dbmdl 191 | *.dbproj.schemaview 192 | *.jfm 193 | *.pfx 194 | *.publishsettings 195 | node_modules/ 196 | orleans.codegen.cs 197 | 198 | # Since there are multiple workflows, uncomment next line to ignore bower_components 199 | # (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) 200 | #bower_components/ 201 | 202 | # RIA/Silverlight projects 203 | Generated_Code/ 204 | 205 | # Backup & report files from converting an old project file 206 | # to a newer Visual Studio version. Backup files are not needed, 207 | # because we have git ;-) 208 | _UpgradeReport_Files/ 209 | Backup*/ 210 | UpgradeLog*.XML 211 | UpgradeLog*.htm 212 | 213 | # SQL Server files 214 | *.mdf 215 | *.ldf 216 | 217 | # Business Intelligence projects 218 | *.rdl.data 219 | *.bim.layout 220 | *.bim_*.settings 221 | 222 | # Microsoft Fakes 223 | FakesAssemblies/ 224 | 225 | # GhostDoc plugin setting file 226 | *.GhostDoc.xml 227 | 228 | # Node.js Tools for Visual Studio 229 | .ntvs_analysis.dat 230 | 231 | # Visual Studio 6 build log 232 | *.plg 233 | 234 | # Visual Studio 6 workspace options file 235 | *.opt 236 | 237 | # Visual Studio LightSwitch build output 238 | **/*.HTMLClient/GeneratedArtifacts 239 | **/*.DesktopClient/GeneratedArtifacts 240 | **/*.DesktopClient/ModelManifest.xml 241 | **/*.Server/GeneratedArtifacts 242 | **/*.Server/ModelManifest.xml 243 | _Pvt_Extensions 244 | 245 | # Paket dependency manager 246 | .paket/paket.exe 247 | paket-files/ 248 | 249 | # FAKE - F# Make 250 | .fake/ 251 | 252 | # JetBrains Rider 253 | .idea/ 254 | *.sln.iml 255 | 256 | # CodeRush 257 | .cr/ 258 | 259 | # Python Tools for Visual Studio (PTVS) 260 | __pycache__/ 261 | *.pyc -------------------------------------------------------------------------------- /BMDReader/BMDReader.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | Debug 6 | AnyCPU 7 | {9D96E82D-C8B7-4148-A902-B5C817862B3A} 8 | Library 9 | Properties 10 | BMDReader 11 | BMDReader 12 | v4.6 13 | 512 14 | 15 | 16 | 17 | true 18 | full 19 | false 20 | bin\Debug\ 21 | DEBUG;TRACE 22 | prompt 23 | 4 24 | true 25 | 26 | 27 | pdbonly 28 | true 29 | bin\Release\ 30 | TRACE 31 | prompt 32 | 4 33 | true 34 | 35 | 36 | 37 | ..\packages\Microsoft.WindowsAPICodePack-Core.1.1.0.2\lib\Microsoft.WindowsAPICodePack.dll 38 | 39 | 40 | ..\packages\Microsoft.WindowsAPICodePack-Shell.1.1.0.0\lib\Microsoft.WindowsAPICodePack.Shell.dll 41 | 42 | 43 | ..\packages\Microsoft.WindowsAPICodePack-Shell.1.1.0.0\lib\Microsoft.WindowsAPICodePack.ShellExtensions.dll 44 | 45 | 46 | ..\packages\Newtonsoft.Json.12.0.3\lib\net45\Newtonsoft.Json.dll 47 | 48 | 49 | ..\packages\OpenTK.Next.1.2.2336.6514-pre\lib\net20\OpenTK.dll 50 | True 51 | 52 | 53 | ..\packages\OpenTK.Next.GLControl.1.2.2336.6514-pre\lib\net20\OpenTK.GLControl.dll 54 | True 55 | 56 | 57 | 58 | 59 | 60 | ..\packages\System.ValueTuple.4.5.0\lib\netstandard1.0\System.ValueTuple.dll 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 91 | -------------------------------------------------------------------------------- /BMDReader/BigEndian.cs: -------------------------------------------------------------------------------- 1 | /* BigEndian.cs by StapleButter */ 2 | 3 | using System; 4 | using System.Collections.Generic; 5 | using System.Linq; 6 | using System.Text; 7 | using System.IO; 8 | 9 | namespace BMDReader 10 | { 11 | public class BinaryReaderBE : BinaryReader 12 | { 13 | public BinaryReaderBE(Stream s) 14 | : base(s) 15 | { } 16 | 17 | public BinaryReaderBE(Stream s, Encoding e) 18 | : base(s, e) 19 | { } 20 | 21 | 22 | public override short ReadInt16() 23 | { 24 | UInt16 val = base.ReadUInt16(); 25 | return (Int16)((val >> 8) | (val << 8)); 26 | } 27 | 28 | public override int ReadInt32() 29 | { 30 | UInt32 val = base.ReadUInt32(); 31 | return (Int32)((val >> 24) | ((val & 0xFF0000) >> 8) | ((val & 0xFF00) << 8) | (val << 24)); 32 | } 33 | 34 | 35 | public override ushort ReadUInt16() 36 | { 37 | UInt16 val = base.ReadUInt16(); 38 | return (UInt16)((val >> 8) | (val << 8)); 39 | } 40 | 41 | public override uint ReadUInt32() 42 | { 43 | UInt32 val = base.ReadUInt32(); 44 | return (UInt32)((val >> 24) | ((val & 0xFF0000) >> 8) | ((val & 0xFF00) << 8) | (val << 24)); 45 | } 46 | 47 | 48 | public override float ReadSingle() 49 | { 50 | byte[] stuff = base.ReadBytes(4); 51 | if (BitConverter.IsLittleEndian) Array.Reverse(stuff); 52 | float val = BitConverter.ToSingle(stuff, 0); 53 | return val; 54 | } 55 | 56 | public override double ReadDouble() 57 | { 58 | byte[] stuff = base.ReadBytes(8); 59 | if (BitConverter.IsLittleEndian) Array.Reverse(stuff); 60 | double val = BitConverter.ToDouble(stuff, 0); 61 | return val; 62 | } 63 | } 64 | 65 | 66 | public class BinaryWriterBE : BinaryWriter 67 | { 68 | public BinaryWriterBE(Stream s) 69 | : base(s) 70 | { } 71 | 72 | public BinaryWriterBE(Stream s, Encoding e) 73 | : base(s, e) 74 | { } 75 | 76 | 77 | public override void Write(short value) 78 | { 79 | ushort val = (ushort)value; 80 | base.Write((short)((val >> 8) | (val << 8))); 81 | } 82 | 83 | public override void Write(int value) 84 | { 85 | uint val = (uint)value; 86 | base.Write((int)((val >> 24) | ((val & 0xFF0000) >> 8) | ((val & 0xFF00) << 8) | (val << 24))); 87 | } 88 | 89 | 90 | public override void Write(ushort value) 91 | { 92 | base.Write((ushort)((value >> 8) | (value << 8))); 93 | } 94 | 95 | public override void Write(uint value) 96 | { 97 | base.Write((uint)((value >> 24) | ((value & 0xFF0000) >> 8) | ((value & 0xFF00) << 8) | (value << 24))); 98 | } 99 | 100 | 101 | public override void Write(float value) 102 | { 103 | byte[] stuff = BitConverter.GetBytes(value); 104 | if (BitConverter.IsLittleEndian) Array.Reverse(stuff); 105 | base.Write(stuff); 106 | } 107 | 108 | public override void Write(double value) 109 | { 110 | byte[] stuff = BitConverter.GetBytes(value); 111 | if (BitConverter.IsLittleEndian) Array.Reverse(stuff); 112 | base.Write(stuff); 113 | } 114 | } 115 | } 116 | -------------------------------------------------------------------------------- /BMDReader/FileSystemBase.cs: -------------------------------------------------------------------------------- 1 | /* FileSystemBase.cs by StapleButter */ 2 | 3 | using System; 4 | using System.Collections.Generic; 5 | using System.Linq; 6 | using System.Text; 7 | using System.IO; 8 | 9 | namespace BMDReader 10 | { 11 | public class FilesystemBase 12 | { 13 | public virtual void Close() { } 14 | 15 | public virtual string[] GetDirectories(string directory) 16 | { throw new NotImplementedException("FilesystemBase.GetDirectories()"); } 17 | 18 | public virtual bool DirectoryExists(string directory) 19 | { throw new NotImplementedException("FilesystemBase.DirectoryExists()"); } 20 | 21 | 22 | public virtual string[] GetFiles(string directory) 23 | { throw new NotImplementedException("FilesystemBase.GetFiles()"); } 24 | 25 | public virtual bool FileExists(string filename) 26 | { throw new NotImplementedException("FilesystemBase.FileExists()"); } 27 | 28 | public virtual FileBase OpenFile(string filename) 29 | { throw new NotImplementedException("FilesystemBase.OpenFile()"); } 30 | } 31 | 32 | public class FileBase 33 | { 34 | public Stream Stream 35 | { 36 | get { return m_Stream; } 37 | set 38 | { 39 | m_Stream = value; 40 | InitRW(); 41 | } 42 | } 43 | 44 | public bool BigEndian 45 | { 46 | get { return m_BigEndian; } 47 | set 48 | { 49 | m_BigEndian = value; 50 | InitRW(); 51 | } 52 | } 53 | 54 | public Encoding Encoding 55 | { 56 | get { return m_Encoding; } 57 | set 58 | { 59 | m_Encoding = value; 60 | InitRW(); 61 | } 62 | } 63 | 64 | public BinaryReader Reader; 65 | public BinaryWriter Writer; 66 | 67 | private Stream m_Stream; 68 | private bool m_BigEndian; 69 | private Encoding m_Encoding = Encoding.ASCII; 70 | 71 | private void InitRW() 72 | { 73 | if (m_Stream.CanRead) 74 | Reader = m_BigEndian ? new BinaryReaderBE(m_Stream, m_Encoding) : new BinaryReader(m_Stream, m_Encoding); 75 | if (m_Stream.CanWrite) 76 | Writer = m_BigEndian ? new BinaryWriterBE(m_Stream, m_Encoding) : new BinaryWriter(m_Stream, m_Encoding); 77 | } 78 | 79 | 80 | public string ReadString() 81 | { 82 | string ret = ""; 83 | char c; 84 | while ((c = Reader.ReadChar()) != '\0') 85 | ret += c; 86 | return ret; 87 | } 88 | 89 | public int WriteString(string str) 90 | { 91 | int oldpos = (int)Stream.Position; 92 | 93 | foreach (char c in str) 94 | Writer.Write(c); 95 | Writer.Write('\0'); 96 | 97 | return (int)(Stream.Position - oldpos); 98 | } 99 | 100 | 101 | public virtual void Flush() 102 | { 103 | m_Stream.Flush(); 104 | } 105 | 106 | public virtual void Close() 107 | { 108 | m_Stream.Close(); 109 | } 110 | } 111 | } 112 | -------------------------------------------------------------------------------- /BMDReader/Helper.cs: -------------------------------------------------------------------------------- 1 | /* Helper.cs by StapleButter */ 2 | 3 | using System; 4 | using System.Collections.Generic; 5 | using System.Linq; 6 | using System.Text; 7 | using OpenTK; 8 | 9 | namespace BMDReader 10 | { 11 | public static class Helper 12 | { 13 | public static Matrix4 SRTToMatrix(Vector3 scale, Vector3 rot, Vector3 trans) 14 | { 15 | Matrix4 ret = Matrix4.Identity; 16 | 17 | Matrix4 mscale = Matrix4.CreateScale(scale); 18 | Matrix4 mxrot = Matrix4.CreateRotationX(rot.X); 19 | Matrix4 myrot = Matrix4.CreateRotationY(rot.Y); 20 | Matrix4 mzrot = Matrix4.CreateRotationZ(rot.Z); 21 | Matrix4 mtrans = Matrix4.CreateTranslation(trans); 22 | 23 | Matrix4.Mult(ref ret, ref mscale, out ret); 24 | Matrix4.Mult(ref ret, ref mxrot, out ret); 25 | Matrix4.Mult(ref ret, ref myrot, out ret); 26 | Matrix4.Mult(ref ret, ref mzrot, out ret); 27 | Matrix4.Mult(ref ret, ref mtrans, out ret); 28 | 29 | return ret; 30 | } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /BMDReader/OpenTK.dll.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /BMDReader/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("BMDReader")] 9 | [assembly: AssemblyDescription("Based off of Whitehole by StapleButter")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("")] 13 | [assembly: AssemblyCopyright("")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("6bb3cc6f-e5ac-4250-ae0f-c64ba6be5f25")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /BMDReader/RendererBase.cs: -------------------------------------------------------------------------------- 1 | /* RendererBase.cs by StapleButter */ 2 | 3 | using System; 4 | using System.Collections.Generic; 5 | using System.Linq; 6 | using System.Text; 7 | 8 | namespace BMDReader 9 | { 10 | public enum RenderMode 11 | { 12 | Picking = 0, 13 | Opaque, 14 | Translucent 15 | } 16 | 17 | public class RenderInfo 18 | { 19 | // rendering mode -- those that saw SM64DSe's renderer will find out 20 | // that Whitehole's renderer works the same way 21 | public RenderMode Mode; 22 | 23 | // those display lists are to be called before rendering billboard parts 24 | // they will be recompiled every time the camera is moved 25 | // PS: probably not the proper way 26 | // who cares about billboards anyway 27 | //public int BillboardDL; 28 | //public int YBillboardDL; 29 | 30 | public static RenderMode[] Modes = { RenderMode.Picking, RenderMode.Opaque, RenderMode.Translucent }; 31 | } 32 | 33 | public class RendererBase 34 | { 35 | public virtual void Close() 36 | { 37 | } 38 | 39 | public virtual bool GottaRender(RenderInfo info) 40 | { 41 | return false; 42 | } 43 | 44 | public virtual void Render(RenderInfo info) 45 | { 46 | } 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /BMDReader/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Credit to miluaces 2 | 3 | Miluaces made this editor, all I did was add a few features. So full credit to him not me. 4 | 5 | # Added features 6 | 7 | * Fixed orthogonal mode. 8 | 9 | Keybinds are the same as blender: 10 | 11 | Numpad1: front view 12 | 13 | Numpad3: side view 14 | 15 | Numpad7: top view 16 | 17 | Numpad5:switch in and out of orthogonal 18 | 19 | * Added "Duplicate" and "Translate" buttons to the bin editor and improved UI, also added a subdivide button. 20 | 21 | * Added Camera Intro editor(WIP) -------------------------------------------------------------------------------- /SMSSceneReader.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 14 4 | VisualStudioVersion = 14.0.25420.1 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SMSSceneReader", "SMSSceneReader\SMSSceneReader.csproj", "{B94A4DF8-A4B5-422B-AF7D-738DAE09A554}" 7 | EndProject 8 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BMDReader", "BMDReader\BMDReader.csproj", "{9D96E82D-C8B7-4148-A902-B5C817862B3A}" 9 | EndProject 10 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SMSManager", "SMSManager\SMSManager.csproj", "{D1FD874C-5393-46F7-AD58-301B3F6E21DB}" 11 | EndProject 12 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SunEditor", "SunEditor\SunEditor.csproj", "{0F7DD344-CE54-4576-890C-E472558E4030}" 13 | EndProject 14 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BinReader", "sms-binreader\BinReader.csproj", "{6EC26C32-4E84-40AC-BE5A-175D41CD59A5}" 15 | EndProject 16 | Global 17 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 18 | Debug|Any CPU = Debug|Any CPU 19 | Release|Any CPU = Release|Any CPU 20 | EndGlobalSection 21 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 22 | {B94A4DF8-A4B5-422B-AF7D-738DAE09A554}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 23 | {B94A4DF8-A4B5-422B-AF7D-738DAE09A554}.Debug|Any CPU.Build.0 = Debug|Any CPU 24 | {B94A4DF8-A4B5-422B-AF7D-738DAE09A554}.Release|Any CPU.ActiveCfg = Release|Any CPU 25 | {B94A4DF8-A4B5-422B-AF7D-738DAE09A554}.Release|Any CPU.Build.0 = Release|Any CPU 26 | {9D96E82D-C8B7-4148-A902-B5C817862B3A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 27 | {9D96E82D-C8B7-4148-A902-B5C817862B3A}.Debug|Any CPU.Build.0 = Debug|Any CPU 28 | {9D96E82D-C8B7-4148-A902-B5C817862B3A}.Release|Any CPU.ActiveCfg = Release|Any CPU 29 | {9D96E82D-C8B7-4148-A902-B5C817862B3A}.Release|Any CPU.Build.0 = Release|Any CPU 30 | {D1FD874C-5393-46F7-AD58-301B3F6E21DB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 31 | {D1FD874C-5393-46F7-AD58-301B3F6E21DB}.Debug|Any CPU.Build.0 = Debug|Any CPU 32 | {D1FD874C-5393-46F7-AD58-301B3F6E21DB}.Release|Any CPU.ActiveCfg = Release|Any CPU 33 | {D1FD874C-5393-46F7-AD58-301B3F6E21DB}.Release|Any CPU.Build.0 = Release|Any CPU 34 | {0F7DD344-CE54-4576-890C-E472558E4030}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 35 | {0F7DD344-CE54-4576-890C-E472558E4030}.Debug|Any CPU.Build.0 = Debug|Any CPU 36 | {0F7DD344-CE54-4576-890C-E472558E4030}.Release|Any CPU.ActiveCfg = Release|Any CPU 37 | {0F7DD344-CE54-4576-890C-E472558E4030}.Release|Any CPU.Build.0 = Release|Any CPU 38 | {6EC26C32-4E84-40AC-BE5A-175D41CD59A5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 39 | {6EC26C32-4E84-40AC-BE5A-175D41CD59A5}.Debug|Any CPU.Build.0 = Debug|Any CPU 40 | {6EC26C32-4E84-40AC-BE5A-175D41CD59A5}.Release|Any CPU.ActiveCfg = Release|Any CPU 41 | {6EC26C32-4E84-40AC-BE5A-175D41CD59A5}.Release|Any CPU.Build.0 = Release|Any CPU 42 | EndGlobalSection 43 | GlobalSection(SolutionProperties) = preSolution 44 | HideSolutionNode = FALSE 45 | EndGlobalSection 46 | EndGlobal 47 | -------------------------------------------------------------------------------- /SMSSceneReader/AboutBox1.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel; 4 | using System.Drawing; 5 | using System.Linq; 6 | using System.Reflection; 7 | using System.Threading.Tasks; 8 | using System.Windows.Forms; 9 | 10 | namespace SMSSceneReader 11 | { 12 | partial class AboutBox1 : Form 13 | { 14 | //Just an about box... 15 | public AboutBox1() 16 | { 17 | InitializeComponent(); 18 | this.Text = String.Format("About {0}", AssemblyTitle); 19 | this.labelProductName.Text = AssemblyProduct; 20 | this.labelVersion.Text = String.Format("Version {0}", AssemblyVersion); 21 | this.labelCopyright.Text = AssemblyCopyright; 22 | this.labelCompanyName.Text = AssemblyCompany; 23 | this.textBoxDescription.Text = AssemblyDescription; 24 | } 25 | 26 | #region Assembly Attribute Accessors 27 | 28 | public string AssemblyTitle 29 | { 30 | get 31 | { 32 | object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyTitleAttribute), false); 33 | if (attributes.Length > 0) 34 | { 35 | AssemblyTitleAttribute titleAttribute = (AssemblyTitleAttribute)attributes[0]; 36 | if (titleAttribute.Title != "") 37 | { 38 | return titleAttribute.Title; 39 | } 40 | } 41 | return System.IO.Path.GetFileNameWithoutExtension(Assembly.GetExecutingAssembly().CodeBase); 42 | } 43 | } 44 | 45 | public string AssemblyVersion 46 | { 47 | get 48 | { 49 | return Assembly.GetExecutingAssembly().GetName().Version.ToString(); 50 | } 51 | } 52 | 53 | public string AssemblyDescription 54 | { 55 | get 56 | { 57 | object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyDescriptionAttribute), false); 58 | if (attributes.Length == 0) 59 | { 60 | return ""; 61 | } 62 | return ((AssemblyDescriptionAttribute)attributes[0]).Description; 63 | } 64 | } 65 | 66 | public string AssemblyProduct 67 | { 68 | get 69 | { 70 | object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyProductAttribute), false); 71 | if (attributes.Length == 0) 72 | { 73 | return ""; 74 | } 75 | return ((AssemblyProductAttribute)attributes[0]).Product; 76 | } 77 | } 78 | 79 | public string AssemblyCopyright 80 | { 81 | get 82 | { 83 | object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyCopyrightAttribute), false); 84 | if (attributes.Length == 0) 85 | { 86 | return ""; 87 | } 88 | return ((AssemblyCopyrightAttribute)attributes[0]).Copyright; 89 | } 90 | } 91 | 92 | public string AssemblyCompany 93 | { 94 | get 95 | { 96 | object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyCompanyAttribute), false); 97 | if (attributes.Length == 0) 98 | { 99 | return ""; 100 | } 101 | return ((AssemblyCompanyAttribute)attributes[0]).Company; 102 | } 103 | } 104 | #endregion 105 | 106 | private void logoPictureBox_Click(object sender, EventArgs e) 107 | { 108 | System.Diagnostics.Process.Start("http://www.blastsoftstudios.com/?smsbineditor"); 109 | } 110 | } 111 | } 112 | -------------------------------------------------------------------------------- /SMSSceneReader/ActorSelect.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace SMSSceneReader 2 | { 3 | partial class ActorSelect 4 | { 5 | /// 6 | /// Required designer variable. 7 | /// 8 | private System.ComponentModel.IContainer components = null; 9 | 10 | /// 11 | /// Clean up any resources being used. 12 | /// 13 | /// true if managed resources should be disposed; otherwise, false. 14 | protected override void Dispose(bool disposing) 15 | { 16 | if (disposing && (components != null)) 17 | { 18 | components.Dispose(); 19 | } 20 | base.Dispose(disposing); 21 | } 22 | 23 | #region Windows Form Designer generated code 24 | 25 | /// 26 | /// Required method for Designer support - do not modify 27 | /// the contents of this method with the code editor. 28 | /// 29 | private void InitializeComponent() 30 | { 31 | this.comboBox1 = new System.Windows.Forms.ComboBox(); 32 | this.button1 = new System.Windows.Forms.Button(); 33 | this.SuspendLayout(); 34 | // 35 | // comboBox1 36 | // 37 | this.comboBox1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; 38 | this.comboBox1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; 39 | this.comboBox1.FormattingEnabled = true; 40 | this.comboBox1.Location = new System.Drawing.Point(12, 12); 41 | this.comboBox1.Name = "comboBox1"; 42 | this.comboBox1.Size = new System.Drawing.Size(200, 21); 43 | this.comboBox1.TabIndex = 0; 44 | // 45 | // button1 46 | // 47 | this.button1.DialogResult = System.Windows.Forms.DialogResult.OK; 48 | this.button1.Location = new System.Drawing.Point(218, 10); 49 | this.button1.Name = "button1"; 50 | this.button1.Size = new System.Drawing.Size(75, 23); 51 | this.button1.TabIndex = 1; 52 | this.button1.Text = "Create"; 53 | this.button1.UseVisualStyleBackColor = true; 54 | this.button1.Click += new System.EventHandler(this.button1_Click); 55 | // 56 | // ActorSelect 57 | // 58 | this.AcceptButton = this.button1; 59 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); 60 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 61 | this.ClientSize = new System.Drawing.Size(305, 41); 62 | this.Controls.Add(this.button1); 63 | this.Controls.Add(this.comboBox1); 64 | this.MaximizeBox = false; 65 | this.MaximumSize = new System.Drawing.Size(321, 80); 66 | this.MinimizeBox = false; 67 | this.MinimumSize = new System.Drawing.Size(321, 80); 68 | this.Name = "ActorSelect"; 69 | this.Text = "ActorSelect"; 70 | this.Load += new System.EventHandler(this.ActorSelect_Load); 71 | this.ResumeLayout(false); 72 | 73 | } 74 | 75 | #endregion 76 | 77 | private System.Windows.Forms.ComboBox comboBox1; 78 | private System.Windows.Forms.Button button1; 79 | } 80 | } -------------------------------------------------------------------------------- /SMSSceneReader/ActorSelect.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel; 4 | using System.Data; 5 | using System.Drawing; 6 | using System.Linq; 7 | using System.Text; 8 | using System.Threading.Tasks; 9 | using System.Windows.Forms; 10 | using System.IO; 11 | 12 | namespace SMSSceneReader 13 | { 14 | public partial class ActorSelect : Form 15 | { 16 | string paramFolder; 17 | 18 | public string SelectedActor; 19 | 20 | public string ButtonText 21 | { 22 | get { return button1.Text; } 23 | set { button1.Text = value; } 24 | } 25 | 26 | public ActorSelect(string paramdir) 27 | { 28 | InitializeComponent(); 29 | 30 | paramFolder = paramdir; 31 | SelectedActor = ""; 32 | } 33 | 34 | private void ActorSelect_Load(object sender, EventArgs e) 35 | { 36 | if (SelectedActor == null) 37 | SelectedActor = ""; 38 | comboBox1.Text = SelectedActor; 39 | 40 | List files = Directory.EnumerateFiles(paramFolder).ToList(); 41 | files.Sort(); 42 | foreach (string str in files) 43 | { 44 | FileInfo fi = new FileInfo(str); 45 | if (fi.Extension != ".txt") 46 | continue; 47 | comboBox1.Items.Add(fi.Name.Substring(0, fi.Name.Length - fi.Extension.Length)); 48 | } 49 | if (SelectedActor != null && SelectedActor != "") 50 | comboBox1.Text = SelectedActor; 51 | else 52 | comboBox1.SelectedIndex = 0; 53 | } 54 | 55 | private void button1_Click(object sender, EventArgs e) 56 | { 57 | SelectedActor = comboBox1.Text; 58 | this.Close(); 59 | } 60 | } 61 | } 62 | -------------------------------------------------------------------------------- /SMSSceneReader/ActorSelect.resx: -------------------------------------------------------------------------------- 1 |  2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | 121 | True 122 | 123 | -------------------------------------------------------------------------------- /SMSSceneReader/ArrayPrompt.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel; 4 | using System.Data; 5 | using System.Drawing; 6 | using System.Linq; 7 | using System.Text; 8 | using System.Threading.Tasks; 9 | using System.Windows.Forms; 10 | using OpenTK; 11 | 12 | namespace SMSSceneReader 13 | { 14 | public partial class ArrayPrompt : Form 15 | { 16 | public Vector3 Displacement; 17 | public int count; 18 | public ArrayPrompt() 19 | { 20 | InitializeComponent(); 21 | Displacement = Vector3.Zero; 22 | AtXUpDn.Value = AtYUpDn.Value = AtZUpDn.Value = 0; 23 | count = 0; 24 | } 25 | 26 | private void OKBtn_Click(object sender, EventArgs e) 27 | { 28 | Displacement = new Vector3((float)AtXUpDn.Value, (float)AtYUpDn.Value, (float)AtZUpDn.Value); 29 | count = (int)CountUpDn.Value; 30 | Close(); 31 | } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /SMSSceneReader/ArrayPrompt.resx: -------------------------------------------------------------------------------- 1 |  2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | -------------------------------------------------------------------------------- /SMSSceneReader/BMGEditor.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel; 4 | using System.Data; 5 | using System.Drawing; 6 | using System.Linq; 7 | using System.Text; 8 | using System.Threading.Tasks; 9 | using System.Windows.Forms; 10 | using SMSReader; 11 | 12 | namespace SMSSceneReader 13 | { 14 | public partial class BMGEditor : Form 15 | { 16 | private const int STRSHOW = 8; 17 | 18 | BmgFile bmgFile; 19 | 20 | public BMGEditor(BmgFile bmg) 21 | { 22 | bmgFile = bmg; 23 | 24 | InitializeComponent(); 25 | } 26 | 27 | /* Initialize lists with bmg file */ 28 | private void BMGEditor_Load(object sender, EventArgs e) 29 | { 30 | listBox1.Items.Clear(); 31 | for (int i = 0; i < bmgFile.Count; i++) 32 | { 33 | int show = STRSHOW; 34 | string str = bmgFile.GetString(i); 35 | if (str.Length < show) 36 | show = str.Length; 37 | listBox1.Items.Add(i.ToString() + " - " + bmgFile.GetString(i).Substring(0, show) + "... (" + bmgFile.GetSoundEffectID(i).ToString() + ")"); 38 | } 39 | } 40 | 41 | /* Show selected message */ 42 | private void listBox1_SelectedIndexChanged(object sender, EventArgs e) 43 | { 44 | if (listBox1.SelectedIndex >= 0) 45 | { 46 | textBox1.Text = bmgFile.GetStringReadable(listBox1.SelectedIndex); 47 | numericUpDown1.Value = bmgFile.GetSoundEffectID(listBox1.SelectedIndex); 48 | numericUpDown1.Enabled = true; 49 | textBox1.Enabled = true; 50 | } 51 | else 52 | { 53 | numericUpDown1.Enabled = false; 54 | textBox1.Enabled = false; 55 | } 56 | } 57 | 58 | /* Save message */ 59 | private void textBox1_TextChanged(object sender, EventArgs e) 60 | { 61 | bmgFile.SetStringReadable(listBox1.SelectedIndex, textBox1.Text); 62 | } 63 | 64 | /* Change message flags/sfx/etc */ 65 | private void numericUpDown1_ValueChanged(object sender, EventArgs e) 66 | { 67 | bmgFile.SetSoundEffectID(listBox1.SelectedIndex, (byte)numericUpDown1.Value); 68 | } 69 | 70 | /* Add new message to the file */ 71 | private void addButton_Click(object sender, EventArgs e) 72 | { 73 | bmgFile.Add(""); 74 | BMGEditor_Load(sender, e); 75 | } 76 | 77 | /* Inserts new message into the selected index */ 78 | private void insertButton_Click(object sender, EventArgs e) 79 | { 80 | bmgFile.Insert(listBox1.SelectedIndex, ""); 81 | BMGEditor_Load(sender, e); 82 | } 83 | 84 | /* Removes selected message */ 85 | private void removeButton_Click(object sender, EventArgs e) 86 | { 87 | int index = listBox1.SelectedIndex; 88 | bmgFile.RemoveAt(listBox1.SelectedIndex); 89 | BMGEditor_Load(sender, e); 90 | if (index >= listBox1.Items.Count) { 91 | listBox1.SelectedIndex = listBox1.Items.Count - 1; 92 | } 93 | else { 94 | listBox1.SelectedIndex = index; 95 | } 96 | } 97 | } 98 | } 99 | -------------------------------------------------------------------------------- /SMSSceneReader/BMGEditor.resx: -------------------------------------------------------------------------------- 1 |  2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | -------------------------------------------------------------------------------- /SMSSceneReader/Find.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace SMSSceneReader 2 | { 3 | partial class Find 4 | { 5 | /// 6 | /// Required designer variable. 7 | /// 8 | private System.ComponentModel.IContainer components = null; 9 | 10 | /// 11 | /// Clean up any resources being used. 12 | /// 13 | /// true if managed resources should be disposed; otherwise, false. 14 | protected override void Dispose(bool disposing) 15 | { 16 | if (disposing && (components != null)) 17 | { 18 | components.Dispose(); 19 | } 20 | base.Dispose(disposing); 21 | } 22 | 23 | #region Windows Form Designer generated code 24 | 25 | /// 26 | /// Required method for Designer support - do not modify 27 | /// the contents of this method with the code editor. 28 | /// 29 | private void InitializeComponent() 30 | { 31 | this.textBox1 = new System.Windows.Forms.TextBox(); 32 | this.button1 = new System.Windows.Forms.Button(); 33 | this.radioButton1 = new System.Windows.Forms.RadioButton(); 34 | this.radioButton2 = new System.Windows.Forms.RadioButton(); 35 | this.radioButton3 = new System.Windows.Forms.RadioButton(); 36 | this.SuspendLayout(); 37 | // 38 | // textBox1 39 | // 40 | this.textBox1.Location = new System.Drawing.Point(13, 13); 41 | this.textBox1.Name = "textBox1"; 42 | this.textBox1.Size = new System.Drawing.Size(199, 20); 43 | this.textBox1.TabIndex = 0; 44 | // 45 | // button1 46 | // 47 | this.button1.Location = new System.Drawing.Point(218, 11); 48 | this.button1.Name = "button1"; 49 | this.button1.Size = new System.Drawing.Size(75, 23); 50 | this.button1.TabIndex = 1; 51 | this.button1.Text = "Find"; 52 | this.button1.UseVisualStyleBackColor = true; 53 | this.button1.Click += new System.EventHandler(this.button1_Click); 54 | // 55 | // radioButton1 56 | // 57 | this.radioButton1.AutoSize = true; 58 | this.radioButton1.Checked = true; 59 | this.radioButton1.Location = new System.Drawing.Point(13, 40); 60 | this.radioButton1.Name = "radioButton1"; 61 | this.radioButton1.Size = new System.Drawing.Size(68, 17); 62 | this.radioButton1.TabIndex = 2; 63 | this.radioButton1.TabStop = true; 64 | this.radioButton1.Text = "By Name"; 65 | this.radioButton1.UseVisualStyleBackColor = true; 66 | // 67 | // radioButton2 68 | // 69 | this.radioButton2.AutoSize = true; 70 | this.radioButton2.Location = new System.Drawing.Point(87, 40); 71 | this.radioButton2.Name = "radioButton2"; 72 | this.radioButton2.Size = new System.Drawing.Size(57, 17); 73 | this.radioButton2.TabIndex = 3; 74 | this.radioButton2.TabStop = true; 75 | this.radioButton2.Text = "By Ref"; 76 | this.radioButton2.UseVisualStyleBackColor = true; 77 | // 78 | // radioButton3 79 | // 80 | this.radioButton3.AutoSize = true; 81 | this.radioButton3.Location = new System.Drawing.Point(150, 40); 82 | this.radioButton3.Name = "radioButton3"; 83 | this.radioButton3.Size = new System.Drawing.Size(67, 17); 84 | this.radioButton3.TabIndex = 4; 85 | this.radioButton3.Text = "By Value"; 86 | this.radioButton3.UseVisualStyleBackColor = true; 87 | // 88 | // Find 89 | // 90 | this.AcceptButton = this.button1; 91 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); 92 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 93 | this.ClientSize = new System.Drawing.Size(305, 64); 94 | this.Controls.Add(this.radioButton3); 95 | this.Controls.Add(this.radioButton2); 96 | this.Controls.Add(this.radioButton1); 97 | this.Controls.Add(this.button1); 98 | this.Controls.Add(this.textBox1); 99 | this.MaximizeBox = false; 100 | this.MaximumSize = new System.Drawing.Size(321, 103); 101 | this.MinimizeBox = false; 102 | this.MinimumSize = new System.Drawing.Size(321, 103); 103 | this.Name = "Find"; 104 | this.Text = "Find"; 105 | this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.Find_Closing); 106 | this.ResumeLayout(false); 107 | this.PerformLayout(); 108 | 109 | } 110 | 111 | #endregion 112 | 113 | private System.Windows.Forms.TextBox textBox1; 114 | private System.Windows.Forms.Button button1; 115 | private System.Windows.Forms.RadioButton radioButton1; 116 | private System.Windows.Forms.RadioButton radioButton2; 117 | private System.Windows.Forms.RadioButton radioButton3; 118 | } 119 | } -------------------------------------------------------------------------------- /SMSSceneReader/Find.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel; 4 | using System.Data; 5 | using System.Drawing; 6 | using System.Linq; 7 | using System.Text; 8 | using System.Threading.Tasks; 9 | using System.Windows.Forms; 10 | using SMSReader; 11 | 12 | namespace SMSSceneReader 13 | { 14 | public partial class Find : Form 15 | { 16 | public MainForm parent; 17 | public TreeView treeview1; 18 | public int index = 0; 19 | 20 | public Find() 21 | { 22 | InitializeComponent(); 23 | } 24 | 25 | /* Search button */ 26 | private void button1_Click(object sender, EventArgs e) 27 | { 28 | if (treeview1 == null) 29 | return; 30 | if (treeview1.Nodes == null) 31 | return; 32 | 33 | int count = 0; 34 | for (int i = 0; i < treeview1.Nodes.Count; i++ ) 35 | { 36 | GameObject gobject = (GameObject)treeview1.Nodes[i].Tag; 37 | 38 | bool comp = false; 39 | if (radioButton1.Checked) 40 | comp = gobject.Name.ToLower().Contains(textBox1.Text.ToLower()); 41 | else if (radioButton2.Checked) 42 | comp = gobject.Description.ToLower().Contains(textBox1.Text.ToLower()); 43 | else if (radioButton3.Checked) 44 | { 45 | int pos = 0; 46 | for (int j = 0; j < gobject.Values.Length; j++) 47 | { 48 | if (textBox1.Text[pos] == (char)gobject.Values[j]) 49 | pos++; 50 | else 51 | pos = 0; 52 | if (pos == textBox1.Text.Length - 1) 53 | { 54 | comp = true; 55 | break; 56 | } 57 | } 58 | } 59 | if (comp) 60 | { 61 | if (count >= index) 62 | { 63 | index = count + 1; 64 | treeview1.SelectedNode = treeview1.Nodes[i]; 65 | parent.Focus(); 66 | treeview1.Focus(); 67 | return; 68 | } 69 | } 70 | else 71 | { 72 | count++; 73 | TreeNode match = SearchNodes(treeview1.Nodes[i], textBox1.Text, ref count); 74 | if (match != null) 75 | { 76 | treeview1.SelectedNode = match; 77 | parent.Focus(); 78 | treeview1.Focus(); 79 | return; 80 | } 81 | } 82 | } 83 | index = 0; 84 | MessageBox.Show("Reached end of file."); 85 | } 86 | 87 | /* Searches through nodes */ 88 | private TreeNode SearchNodes(TreeNode node, string name, ref int count) 89 | { 90 | for (int i = 0; i < node.Nodes.Count; i++ ) 91 | { 92 | GameObject gobject = (GameObject)node.Nodes[i].Tag; 93 | 94 | bool comp = false; 95 | if (radioButton1.Checked) 96 | comp = gobject.Name.ToLower().Contains(textBox1.Text.ToLower()); 97 | else if (radioButton2.Checked) 98 | comp = gobject.Description.ToLower().Contains(textBox1.Text.ToLower()); 99 | else if (radioButton3.Checked) 100 | { 101 | byte[] cmpbyte = Encoding.GetEncoding("shift-jis").GetBytes(textBox1.Text); 102 | int pos = 0; 103 | for (int j = 0; j < gobject.Values.Length; j++) 104 | { 105 | if (cmpbyte[pos] == gobject.Values[j]) 106 | pos++; 107 | else if (pos > 0) 108 | { 109 | pos = 0; 110 | j--; 111 | } 112 | if (pos == cmpbyte.Length - 1) 113 | { 114 | comp = true; 115 | break; 116 | } 117 | } 118 | } 119 | 120 | if (comp) 121 | { 122 | if (count >= index) 123 | { 124 | index = count + 1; 125 | return node.Nodes[i]; 126 | } 127 | } 128 | else 129 | { 130 | count++; 131 | TreeNode match = SearchNodes(node.Nodes[i], name, ref count); 132 | if (match != null) 133 | return match; 134 | } 135 | count++; 136 | } 137 | return null; 138 | } 139 | 140 | /* Close -- Find is always open */ 141 | private void Find_Closing(object sender, FormClosingEventArgs e) 142 | { 143 | e.Cancel = true; 144 | this.Hide(); 145 | } 146 | } 147 | } 148 | -------------------------------------------------------------------------------- /SMSSceneReader/Find.resx: -------------------------------------------------------------------------------- 1 |  2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | 121 | True 122 | 123 | -------------------------------------------------------------------------------- /SMSSceneReader/GameParamForm.resx: -------------------------------------------------------------------------------- 1 |  2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | -------------------------------------------------------------------------------- /SMSSceneReader/KeyFramePrompt.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel; 4 | using System.Data; 5 | using System.Drawing; 6 | using System.Linq; 7 | using System.Text; 8 | using System.Threading.Tasks; 9 | using System.Windows.Forms; 10 | using OpenTK; 11 | 12 | namespace SMSSceneReader 13 | { 14 | public partial class KeyFramePrompt : Form 15 | { 16 | public Vector3 AtPosition; 17 | public Vector3 FromPosition; 18 | public int time; 19 | CameraDemoEditor parent; 20 | 21 | public KeyFramePrompt(CameraDemoEditor parent) 22 | { 23 | InitializeComponent(); 24 | AtPosition = Vector3.Zero; 25 | FromPosition = Vector3.Zero; 26 | AtXUpDn.Value = AtYUpDn.Value = AtZUpDn.Value = FromXUpDn.Value = FromYUpDn.Value = FromZUpDn.Value = 0; 27 | time = 0; 28 | this.parent = parent; 29 | } 30 | 31 | private void OKBtn_Click(object sender, EventArgs e) 32 | { 33 | AtPosition = new Vector3((float)AtXUpDn.Value, (float)AtYUpDn.Value, (float)AtZUpDn.Value); 34 | FromPosition = new Vector3((float)FromXUpDn.Value, (float)FromYUpDn.Value, (float)FromZUpDn.Value); 35 | time = (int)TimeUpDn.Value; 36 | if (this.parent != null) { 37 | this.parent.AddKeyframeFromPrompt(this); 38 | } 39 | Close(); 40 | } 41 | 42 | private void button1_Click(object sender, EventArgs e) { 43 | SMSSceneReader.Preview preview = MainForm.ScenePreview; 44 | if (preview != null) { 45 | AtXUpDn.Value = (decimal)preview.CameraPos.X; 46 | AtYUpDn.Value = (decimal)preview.CameraPos.Y; 47 | AtZUpDn.Value = (decimal)preview.CameraPos.Z; 48 | //applyButton_Click(sender, e); 49 | //preview.ForceDraw(); 50 | } 51 | } 52 | 53 | private void LookFromToCamera_Click(object sender, EventArgs e) { 54 | SMSSceneReader.Preview preview = MainForm.ScenePreview; 55 | if (preview != null) { 56 | FromXUpDn.Value = (decimal)preview.CameraPos.X; 57 | FromYUpDn.Value = (decimal)preview.CameraPos.Y; 58 | FromZUpDn.Value = (decimal)preview.CameraPos.Z; 59 | //applyButton_Click(sender, e); 60 | //preview.ForceDraw(); 61 | } 62 | } 63 | } 64 | } 65 | -------------------------------------------------------------------------------- /SMSSceneReader/KeyFramePrompt.resx: -------------------------------------------------------------------------------- 1 |  2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | -------------------------------------------------------------------------------- /SMSSceneReader/Manager.txt: -------------------------------------------------------------------------------- 1 | 2 | Character STRING "(null)" 3 | Unknown1 INT (null) 4 | Unknown2 INT (null) 5 | Unknown3 INT (null) -------------------------------------------------------------------------------- /SMSSceneReader/NPC.txt: -------------------------------------------------------------------------------- 1 |  2 | X FLOAT (null) 3 | Y FLOAT (null) 4 | Z FLOAT (null) 5 | Pitch FLOAT (null) 6 | Yaw FLOAT (null) 7 | Roll FLOAT (null) 8 | ScaleX FLOAT (null) 9 | ScaleY FLOAT (null) 10 | ScaleZ FLOAT (null) 11 | Manager STRING "(null)" 12 | Unknown INT (null) 13 | Data STRING "(null)" 14 | Rail STRING "(null)" 15 | Padding INT -1 -------------------------------------------------------------------------------- /SMSSceneReader/NameCheck.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace SMSRallyEditor 2 | { 3 | partial class NameCheck 4 | { 5 | /// 6 | /// Required designer variable. 7 | /// 8 | private System.ComponentModel.IContainer components = null; 9 | 10 | /// 11 | /// Clean up any resources being used. 12 | /// 13 | /// true if managed resources should be disposed; otherwise, false. 14 | protected override void Dispose(bool disposing) 15 | { 16 | if (disposing && (components != null)) 17 | { 18 | components.Dispose(); 19 | } 20 | base.Dispose(disposing); 21 | } 22 | 23 | #region Windows Form Designer generated code 24 | 25 | /// 26 | /// Required method for Designer support - do not modify 27 | /// the contents of this method with the code editor. 28 | /// 29 | private void InitializeComponent() 30 | { 31 | this.textBox1 = new System.Windows.Forms.TextBox(); 32 | this.button1 = new System.Windows.Forms.Button(); 33 | this.SuspendLayout(); 34 | // 35 | // textBox1 36 | // 37 | this.textBox1.Location = new System.Drawing.Point(12, 12); 38 | this.textBox1.Name = "textBox1"; 39 | this.textBox1.Size = new System.Drawing.Size(179, 20); 40 | this.textBox1.TabIndex = 0; 41 | // 42 | // button1 43 | // 44 | this.button1.DialogResult = System.Windows.Forms.DialogResult.OK; 45 | this.button1.Location = new System.Drawing.Point(197, 10); 46 | this.button1.Name = "button1"; 47 | this.button1.Size = new System.Drawing.Size(75, 23); 48 | this.button1.TabIndex = 1; 49 | this.button1.Text = "OK"; 50 | this.button1.UseVisualStyleBackColor = true; 51 | this.button1.Click += new System.EventHandler(this.button1_Click); 52 | // 53 | // NameCheck 54 | // 55 | this.AcceptButton = this.button1; 56 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); 57 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 58 | this.ClientSize = new System.Drawing.Size(284, 46); 59 | this.Controls.Add(this.button1); 60 | this.Controls.Add(this.textBox1); 61 | this.MaximumSize = new System.Drawing.Size(300, 85); 62 | this.MinimumSize = new System.Drawing.Size(300, 85); 63 | this.Name = "NameCheck"; 64 | this.Text = "Name Path"; 65 | this.Load += new System.EventHandler(this.NameCheck_Load); 66 | this.ResumeLayout(false); 67 | this.PerformLayout(); 68 | 69 | } 70 | 71 | #endregion 72 | 73 | private System.Windows.Forms.TextBox textBox1; 74 | private System.Windows.Forms.Button button1; 75 | } 76 | } -------------------------------------------------------------------------------- /SMSSceneReader/NameCheck.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel; 4 | using System.Data; 5 | using System.Drawing; 6 | using System.Linq; 7 | using System.Text; 8 | using System.Threading.Tasks; 9 | using System.Windows.Forms; 10 | 11 | namespace SMSRallyEditor 12 | { 13 | /* Pretty boring form */ 14 | public partial class NameCheck : Form 15 | { 16 | public string name; 17 | 18 | public NameCheck(string pathname) 19 | { 20 | InitializeComponent(); 21 | name = pathname; 22 | } 23 | 24 | private void NameCheck_Load(object sender, EventArgs e) 25 | { 26 | textBox1.Focus(); 27 | textBox1.Text = name; 28 | } 29 | 30 | private void button1_Click(object sender, EventArgs e) 31 | { 32 | name = textBox1.Text; 33 | Close(); 34 | } 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /SMSSceneReader/NameCheck.resx: -------------------------------------------------------------------------------- 1 |  2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | 121 | True 122 | 123 | -------------------------------------------------------------------------------- /SMSSceneReader/Object.txt: -------------------------------------------------------------------------------- 1 | 2 | X FLOAT 3 | Y FLOAT 4 | Z FLOAT 5 | Pitch FLOAT 6 | Yaw FLOAT 7 | Roll FLOAT 8 | ScaleX FLOAT 9 | ScaleY FLOAT 10 | ScaleZ FLOAT 11 | Manager STRING 12 | Unknown INT 13 | Model STRING 14 | -------------------------------------------------------------------------------- /SMSSceneReader/ObjectWizardForm.resx: -------------------------------------------------------------------------------- 1 |  2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | -------------------------------------------------------------------------------- /SMSSceneReader/OpenTK.dll.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /SMSSceneReader/Program.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading; 5 | using System.Threading.Tasks; 6 | using System.Windows.Forms; 7 | using System.IO; 8 | using SMSReader; 9 | using System.Globalization; 10 | 11 | namespace SMSSceneReader 12 | { 13 | static class Program 14 | { 15 | /// 16 | /// The main entry point for the application. 17 | /// 18 | [STAThread] 19 | static void Main(string[] args) 20 | { 21 | CultureInfo.CurrentCulture = new CultureInfo("", false); 22 | Application.EnableVisualStyles(); 23 | Application.SetCompatibleTextRenderingDefault(false); 24 | 25 | // Force the CWD to be the directory in which the exe is located 26 | Directory.SetCurrentDirectory(System.IO.Path.GetDirectoryName(AppDomain.CurrentDomain.BaseDirectory)); 27 | //Application.ThreadException += new ThreadExceptionEventHandler(HandleException); 28 | Application.Run(new MainForm(args)); 29 | } 30 | 31 | private static void HandleException(object sender, ThreadExceptionEventArgs t) 32 | { 33 | throw t.Exception; 34 | } 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /SMSSceneReader/ProgressForm.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace SMSSceneReader 2 | { 3 | partial class ProgressForm 4 | { 5 | /// 6 | /// Required designer variable. 7 | /// 8 | private System.ComponentModel.IContainer components = null; 9 | 10 | /// 11 | /// Clean up any resources being used. 12 | /// 13 | /// true if managed resources should be disposed; otherwise, false. 14 | protected override void Dispose(bool disposing) 15 | { 16 | if (disposing && (components != null)) 17 | { 18 | components.Dispose(); 19 | } 20 | base.Dispose(disposing); 21 | } 22 | 23 | #region Windows Form Designer generated code 24 | 25 | /// 26 | /// Required method for Designer support - do not modify 27 | /// the contents of this method with the code editor. 28 | /// 29 | private void InitializeComponent() 30 | { 31 | this.progressBar1 = new System.Windows.Forms.ProgressBar(); 32 | this.SuspendLayout(); 33 | // 34 | // progressBar1 35 | // 36 | this.progressBar1.Location = new System.Drawing.Point(13, 13); 37 | this.progressBar1.Name = "progressBar1"; 38 | this.progressBar1.Size = new System.Drawing.Size(400, 23); 39 | this.progressBar1.TabIndex = 0; 40 | // 41 | // ProgressForm 42 | // 43 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); 44 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 45 | this.ClientSize = new System.Drawing.Size(429, 51); 46 | this.Controls.Add(this.progressBar1); 47 | this.MaximizeBox = false; 48 | this.MaximumSize = new System.Drawing.Size(445, 90); 49 | this.MinimizeBox = false; 50 | this.MinimumSize = new System.Drawing.Size(445, 90); 51 | this.Name = "ProgressForm"; 52 | this.Text = "ProgressForm"; 53 | this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.ProgressForm_Closing); 54 | this.Load += new System.EventHandler(this.ProgressForm_Load); 55 | this.ResumeLayout(false); 56 | 57 | } 58 | 59 | #endregion 60 | 61 | private System.Windows.Forms.ProgressBar progressBar1; 62 | } 63 | } -------------------------------------------------------------------------------- /SMSSceneReader/ProgressForm.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel; 4 | using System.Data; 5 | using System.Drawing; 6 | using System.Linq; 7 | using System.Text; 8 | using System.Threading.Tasks; 9 | using System.Windows.Forms; 10 | 11 | namespace SMSSceneReader 12 | { 13 | public partial class ProgressForm : Form 14 | { 15 | public ProgressForm(string title) 16 | { 17 | InitializeComponent(); 18 | 19 | this.Text = title; 20 | } 21 | 22 | public void UpdateProgress(int progress) 23 | { 24 | progressBar1.Value = progress; 25 | if (progressBar1.Value == progressBar1.Maximum) 26 | this.Close(); 27 | } 28 | 29 | private void ProgressForm_Closing(object sender, FormClosingEventArgs e) 30 | { 31 | if (progressBar1.Value != progressBar1.Maximum) 32 | e.Cancel = true; 33 | } 34 | 35 | public void ForceClosed() 36 | { 37 | UpdateProgress(progressBar1.Maximum); 38 | } 39 | 40 | private void ProgressForm_Load(object sender, EventArgs e) 41 | { 42 | progressBar1.Value = 0; 43 | progressBar1.Maximum = 100; 44 | progressBar1.Minimum = 0; 45 | } 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /SMSSceneReader/ProgressForm.resx: -------------------------------------------------------------------------------- 1 |  2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | 121 | True 122 | 123 | -------------------------------------------------------------------------------- /SMSSceneReader/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("SMS Bin Editor")] 9 | [assembly: AssemblyDescription("Edits .bin scene files in Super Mario Sunshine. Now with a preview! Special thanks to StapleButter (Whitehole Super Mario Galaxy Editor) for the BMD reader and renderer.")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("miluaces")] 12 | [assembly: AssemblyProduct("SMS Bin Editor")] 13 | [assembly: AssemblyCopyright("Copyright © 2015 Blastsoft Studios")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("d2b13a5b-0ef7-4ec2-9696-816b56c12557")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.5.0.2")] 36 | [assembly: AssemblyFileVersion("1.5.0.2")] 37 | -------------------------------------------------------------------------------- /SMSSceneReader/Properties/Resources.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This code was generated by a tool. 4 | // Runtime Version:4.0.30319.42000 5 | // 6 | // Changes to this file may cause incorrect behavior and will be lost if 7 | // the code is regenerated. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace SMSSceneReader.Properties { 12 | using System; 13 | 14 | 15 | /// 16 | /// A strongly-typed resource class, for looking up localized strings, etc. 17 | /// 18 | // This class was auto-generated by the StronglyTypedResourceBuilder 19 | // class via a tool like ResGen or Visual Studio. 20 | // To add or remove a member, edit your .ResX file then rerun ResGen 21 | // with the /str option, or rebuild your VS project. 22 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "15.0.0.0")] 23 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] 24 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 25 | internal class Resources { 26 | 27 | private static global::System.Resources.ResourceManager resourceMan; 28 | 29 | private static global::System.Globalization.CultureInfo resourceCulture; 30 | 31 | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] 32 | internal Resources() { 33 | } 34 | 35 | /// 36 | /// Returns the cached ResourceManager instance used by this class. 37 | /// 38 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] 39 | internal static global::System.Resources.ResourceManager ResourceManager { 40 | get { 41 | if (object.ReferenceEquals(resourceMan, null)) { 42 | global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("SMSSceneReader.Properties.Resources", typeof(Resources).Assembly); 43 | resourceMan = temp; 44 | } 45 | return resourceMan; 46 | } 47 | } 48 | 49 | /// 50 | /// Overrides the current thread's CurrentUICulture property for all 51 | /// resource lookups using this strongly typed resource class. 52 | /// 53 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] 54 | internal static global::System.Globalization.CultureInfo Culture { 55 | get { 56 | return resourceCulture; 57 | } 58 | set { 59 | resourceCulture = value; 60 | } 61 | } 62 | } 63 | } 64 | -------------------------------------------------------------------------------- /SMSSceneReader/Properties/Resources.resx: -------------------------------------------------------------------------------- 1 |  2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | text/microsoft-resx 107 | 108 | 109 | 2.0 110 | 111 | 112 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 113 | 114 | 115 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | -------------------------------------------------------------------------------- /SMSSceneReader/Properties/Settings.settings: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0, 0 10 | 11 | 12 | 0, 0 13 | 14 | 15 | True 16 | 17 | 18 | 3 19 | 20 | 21 | 1 22 | 23 | 24 | 1 25 | 26 | 27 | Green 28 | 29 | 30 | DarkRed 31 | 32 | 33 | YellowGreen 34 | 35 | 36 | Red 37 | 38 | 39 | Blue 40 | 41 | 42 | Red 43 | 44 | 45 | False 46 | 47 | 48 | 0, 0, 32 49 | 50 | 51 | True 52 | 53 | 54 | 500000 55 | 56 | 57 | Normal 58 | 59 | 60 | False 61 | 62 | 63 | True 64 | 65 | 66 | True 67 | 68 | 69 | True 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 1 79 | 80 | 81 | 82 | 83 | 84 | False 85 | 86 | 87 | False 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | NumPad1 97 | 98 | 99 | NumPad3 100 | 101 | 102 | NumPad5 103 | 104 | 105 | NumPad7 106 | 107 | 108 | W 109 | 110 | 111 | S 112 | 113 | 114 | A 115 | 116 | 117 | D 118 | 119 | 120 | E 121 | 122 | 123 | Q 124 | 125 | 126 | G 127 | 128 | 129 | -------------------------------------------------------------------------------- /SMSSceneReader/SMSSceneReader.csproj.user: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | publish\ 5 | 6 | 7 | 8 | 9 | 10 | en-US 11 | false 12 | 13 | 14 | 15 | 16 | 17 | 18 | -file "D:\My Documents\Visual Studio 2012\Projects\SMSSceneReader\SMSManager\bin\Release\Projects\Multi\edit\scene\dolpic10\scene\map\scene.bin" -stagearc "D:\My Documents\Visual Studio 2012\Projects\SMSSceneReader\SMSManager\bin\Release\Projects\Multi\root\data\stageArc.bin" -params "D:\My Documents\Visual Studio 2012\Projects\SMSSceneReader\SMSManager\bin\Release\Projects\Multi\edit\params\params" -common "D:\My Documents\Visual Studio 2012\Projects\SMSSceneReader\SMSManager\bin\Release\Projects\Multi\edit\common\common" -file "D:\My Documents\Visual Studio 2012\Projects\SMSSceneReader\SMSManager\bin\Release\Projects\Multi\scene\dolpic10\map\scene.bin" 19 | 20 | -------------------------------------------------------------------------------- /SMSSceneReader/SizeSelect.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace SMSSceneReader 2 | { 3 | partial class SizeSelect 4 | { 5 | /// 6 | /// Required designer variable. 7 | /// 8 | private System.ComponentModel.IContainer components = null; 9 | 10 | /// 11 | /// Clean up any resources being used. 12 | /// 13 | /// true if managed resources should be disposed; otherwise, false. 14 | protected override void Dispose(bool disposing) 15 | { 16 | if (disposing && (components != null)) 17 | { 18 | components.Dispose(); 19 | } 20 | base.Dispose(disposing); 21 | } 22 | 23 | #region Windows Form Designer generated code 24 | 25 | /// 26 | /// Required method for Designer support - do not modify 27 | /// the contents of this method with the code editor. 28 | /// 29 | private void InitializeComponent() 30 | { 31 | this.numericUpDown1 = new System.Windows.Forms.NumericUpDown(); 32 | this.button1 = new System.Windows.Forms.Button(); 33 | ((System.ComponentModel.ISupportInitialize)(this.numericUpDown1)).BeginInit(); 34 | this.SuspendLayout(); 35 | // 36 | // numericUpDown1 37 | // 38 | this.numericUpDown1.Location = new System.Drawing.Point(12, 12); 39 | this.numericUpDown1.Maximum = new decimal(new int[] { 40 | 65523, 41 | 0, 42 | 0, 43 | 0}); 44 | this.numericUpDown1.Name = "numericUpDown1"; 45 | this.numericUpDown1.Size = new System.Drawing.Size(121, 20); 46 | this.numericUpDown1.TabIndex = 0; 47 | // 48 | // button1 49 | // 50 | this.button1.DialogResult = System.Windows.Forms.DialogResult.OK; 51 | this.button1.Location = new System.Drawing.Point(139, 9); 52 | this.button1.Name = "button1"; 53 | this.button1.Size = new System.Drawing.Size(75, 23); 54 | this.button1.TabIndex = 1; 55 | this.button1.Text = "OK"; 56 | this.button1.UseVisualStyleBackColor = true; 57 | this.button1.Click += new System.EventHandler(this.button1_Click); 58 | // 59 | // SizeSelect 60 | // 61 | this.AcceptButton = this.button1; 62 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); 63 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 64 | this.ClientSize = new System.Drawing.Size(223, 44); 65 | this.Controls.Add(this.button1); 66 | this.Controls.Add(this.numericUpDown1); 67 | this.MaximizeBox = false; 68 | this.MaximumSize = new System.Drawing.Size(239, 83); 69 | this.MinimizeBox = false; 70 | this.MinimumSize = new System.Drawing.Size(239, 83); 71 | this.Name = "SizeSelect"; 72 | this.Text = "SizeSelect"; 73 | this.Load += new System.EventHandler(this.SizeSelect_Load); 74 | ((System.ComponentModel.ISupportInitialize)(this.numericUpDown1)).EndInit(); 75 | this.ResumeLayout(false); 76 | 77 | } 78 | 79 | #endregion 80 | 81 | private System.Windows.Forms.NumericUpDown numericUpDown1; 82 | private System.Windows.Forms.Button button1; 83 | } 84 | } -------------------------------------------------------------------------------- /SMSSceneReader/SizeSelect.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel; 4 | using System.Data; 5 | using System.Drawing; 6 | using System.Linq; 7 | using System.Text; 8 | using System.Threading.Tasks; 9 | using System.Windows.Forms; 10 | 11 | namespace SMSSceneReader 12 | { 13 | public partial class SizeSelect : Form 14 | { 15 | public int SelectedSize; 16 | 17 | public SizeSelect(int defSize) 18 | { 19 | InitializeComponent(); 20 | 21 | SelectedSize = defSize; 22 | } 23 | 24 | private void button1_Click(object sender, EventArgs e) 25 | { 26 | SelectedSize = (int)numericUpDown1.Value; 27 | this.Close(); 28 | } 29 | 30 | private void SizeSelect_Load(object sender, EventArgs e) 31 | { 32 | numericUpDown1.Value = SelectedSize; 33 | } 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /SMSSceneReader/SizeSelect.resx: -------------------------------------------------------------------------------- 1 |  2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | 121 | True 122 | 123 | -------------------------------------------------------------------------------- /SMSSceneReader/StringInput.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace SMSSceneReader 2 | { 3 | partial class StringInput 4 | { 5 | /// 6 | /// Required designer variable. 7 | /// 8 | private System.ComponentModel.IContainer components = null; 9 | 10 | /// 11 | /// Clean up any resources being used. 12 | /// 13 | /// true if managed resources should be disposed; otherwise, false. 14 | protected override void Dispose(bool disposing) 15 | { 16 | if (disposing && (components != null)) 17 | { 18 | components.Dispose(); 19 | } 20 | base.Dispose(disposing); 21 | } 22 | 23 | #region Windows Form Designer generated code 24 | 25 | /// 26 | /// Required method for Designer support - do not modify 27 | /// the contents of this method with the code editor. 28 | /// 29 | private void InitializeComponent() 30 | { 31 | this.textBox1 = new System.Windows.Forms.TextBox(); 32 | this.label1 = new System.Windows.Forms.Label(); 33 | this.button1 = new System.Windows.Forms.Button(); 34 | this.SuspendLayout(); 35 | // 36 | // textBox1 37 | // 38 | this.textBox1.Location = new System.Drawing.Point(12, 29); 39 | this.textBox1.Name = "textBox1"; 40 | this.textBox1.Size = new System.Drawing.Size(314, 20); 41 | this.textBox1.TabIndex = 0; 42 | // 43 | // label1 44 | // 45 | this.label1.AutoSize = true; 46 | this.label1.Location = new System.Drawing.Point(13, 13); 47 | this.label1.Name = "label1"; 48 | this.label1.Size = new System.Drawing.Size(35, 13); 49 | this.label1.TabIndex = 1; 50 | this.label1.Text = "label1"; 51 | // 52 | // button1 53 | // 54 | this.button1.DialogResult = System.Windows.Forms.DialogResult.OK; 55 | this.button1.Location = new System.Drawing.Point(251, 55); 56 | this.button1.Name = "button1"; 57 | this.button1.Size = new System.Drawing.Size(75, 23); 58 | this.button1.TabIndex = 2; 59 | this.button1.Text = "OK"; 60 | this.button1.UseVisualStyleBackColor = true; 61 | this.button1.Click += new System.EventHandler(this.button1_Click); 62 | // 63 | // StringInput 64 | // 65 | this.AcceptButton = this.button1; 66 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); 67 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 68 | this.ClientSize = new System.Drawing.Size(338, 87); 69 | this.Controls.Add(this.button1); 70 | this.Controls.Add(this.label1); 71 | this.Controls.Add(this.textBox1); 72 | this.MaximizeBox = false; 73 | this.MaximumSize = new System.Drawing.Size(354, 126); 74 | this.MinimizeBox = false; 75 | this.MinimumSize = new System.Drawing.Size(354, 126); 76 | this.Name = "StringInput"; 77 | this.Text = "User Input"; 78 | this.ResumeLayout(false); 79 | this.PerformLayout(); 80 | 81 | } 82 | 83 | #endregion 84 | 85 | private System.Windows.Forms.TextBox textBox1; 86 | private System.Windows.Forms.Label label1; 87 | private System.Windows.Forms.Button button1; 88 | } 89 | } -------------------------------------------------------------------------------- /SMSSceneReader/StringInput.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel; 4 | using System.Data; 5 | using System.Drawing; 6 | using System.Linq; 7 | using System.Text; 8 | using System.Threading.Tasks; 9 | using System.Windows.Forms; 10 | 11 | namespace SMSSceneReader 12 | { 13 | public partial class StringInput : Form 14 | { 15 | public string Input; 16 | 17 | public StringInput(string label, string def = "") 18 | { 19 | InitializeComponent(); 20 | 21 | label1.Text = label; 22 | textBox1.Text = def; 23 | } 24 | 25 | private void button1_Click(object sender, EventArgs e) 26 | { 27 | Input = textBox1.Text; 28 | this.Close(); 29 | } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /SMSSceneReader/StringInput.resx: -------------------------------------------------------------------------------- 1 |  2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | 121 | True 122 | 123 | -------------------------------------------------------------------------------- /SMSSceneReader/Subdivide.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel; 4 | using System.Data; 5 | using System.Drawing; 6 | using System.Linq; 7 | using System.Text; 8 | using System.Threading.Tasks; 9 | using System.Windows.Forms; 10 | 11 | namespace SMSRallyEditor 12 | { 13 | public partial class Subdivide : Form 14 | { 15 | public int Count; 16 | public string SelectedScheme; 17 | public Subdivide() 18 | { 19 | InitializeComponent(); 20 | Count = 0; 21 | SelectedScheme = "Chaikin"; 22 | } 23 | 24 | private void OKBtn_Click(object sender, EventArgs e) 25 | { 26 | Count = (int)CountUpDown.Value; 27 | RadioButton SelectedRadio = GetCheckedRadio(RadioGroup); 28 | if (SelectedRadio != null) 29 | SelectedScheme = SelectedRadio.Text; 30 | Close(); 31 | } 32 | RadioButton GetCheckedRadio(Control container) 33 | { 34 | foreach (var control in container.Controls) 35 | { 36 | RadioButton radio = control as RadioButton; 37 | 38 | if (radio != null && radio.Checked) 39 | { 40 | return radio; 41 | } 42 | } 43 | 44 | return null; 45 | } 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /SMSSceneReader/Subdivide.resx: -------------------------------------------------------------------------------- 1 |  2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | -------------------------------------------------------------------------------- /SMSSceneReader/Translate Buddy.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace SMSSceneReader 2 | { 3 | partial class Translate_Buddy 4 | { 5 | /// 6 | /// Required designer variable. 7 | /// 8 | private System.ComponentModel.IContainer components = null; 9 | 10 | /// 11 | /// Clean up any resources being used. 12 | /// 13 | /// true if managed resources should be disposed; otherwise, false. 14 | protected override void Dispose(bool disposing) 15 | { 16 | if (disposing && (components != null)) 17 | { 18 | components.Dispose(); 19 | } 20 | base.Dispose(disposing); 21 | } 22 | 23 | #region Windows Form Designer generated code 24 | 25 | /// 26 | /// Required method for Designer support - do not modify 27 | /// the contents of this method with the code editor. 28 | /// 29 | private void InitializeComponent() 30 | { 31 | this.webBrowser1 = new System.Windows.Forms.WebBrowser(); 32 | this.SuspendLayout(); 33 | // 34 | // webBrowser1 35 | // 36 | this.webBrowser1.Dock = System.Windows.Forms.DockStyle.Fill; 37 | this.webBrowser1.Location = new System.Drawing.Point(0, 0); 38 | this.webBrowser1.MinimumSize = new System.Drawing.Size(20, 20); 39 | this.webBrowser1.Name = "webBrowser1"; 40 | this.webBrowser1.ScriptErrorsSuppressed = true; 41 | this.webBrowser1.Size = new System.Drawing.Size(784, 361); 42 | this.webBrowser1.TabIndex = 0; 43 | // 44 | // Translate_Buddy 45 | // 46 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); 47 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 48 | this.ClientSize = new System.Drawing.Size(784, 361); 49 | this.Controls.Add(this.webBrowser1); 50 | this.Name = "Translate_Buddy"; 51 | this.Text = "Translate Buddy"; 52 | this.Load += new System.EventHandler(this.Translate_Buddy_Load); 53 | this.ResumeLayout(false); 54 | 55 | } 56 | 57 | #endregion 58 | 59 | private System.Windows.Forms.WebBrowser webBrowser1; 60 | } 61 | } -------------------------------------------------------------------------------- /SMSSceneReader/Translate Buddy.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel; 4 | using System.Data; 5 | using System.Drawing; 6 | using System.Linq; 7 | using System.Text; 8 | using System.Threading.Tasks; 9 | using System.Windows.Forms; 10 | 11 | namespace SMSSceneReader 12 | { 13 | public partial class Translate_Buddy : Form 14 | { 15 | const string TRANSLATE_URL = "https://translate.google.com/"; 16 | public const string LANGUAGE_JAPANESE = "ja"; 17 | public const string LANGUAGE_ENGLISH = "en"; 18 | 19 | public Translate_Buddy() 20 | { 21 | InitializeComponent(); 22 | } 23 | public Translate_Buddy(string src, string dst, string text) 24 | { 25 | InitializeComponent(); 26 | Translate(src, dst, text); 27 | } 28 | private void Translate_Buddy_Load(object sender, EventArgs e) 29 | { 30 | this.FormClosing += Translate_Buddy_FormClosing; 31 | } 32 | private void Translate_Buddy_FormClosing(object sender, FormClosingEventArgs e) 33 | { 34 | this.Hide(); 35 | e.Cancel = true; 36 | } 37 | public void Translate(string src, string dst, string text) 38 | { 39 | if (!this.Visible) 40 | this.Show(); 41 | if (!this.Focused) 42 | this.Focus(); 43 | webBrowser1.Navigate(TRANSLATE_URL + "#" + src + "/" + dst + "/" + text); 44 | } 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /SMSSceneReader/Translate Buddy.resx: -------------------------------------------------------------------------------- 1 |  2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | -------------------------------------------------------------------------------- /SMSSceneReader/VectorInput.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel; 4 | using System.Data; 5 | using System.Drawing; 6 | using System.Linq; 7 | using System.Text; 8 | using System.Threading.Tasks; 9 | using System.Windows.Forms; 10 | 11 | namespace SMSRallyEditor 12 | { 13 | public partial class VectorInput : Form 14 | { 15 | 16 | public float X; 17 | public float Y; 18 | public float Z; 19 | 20 | public VectorInput() 21 | { 22 | InitializeComponent(); 23 | X = Y = Z = 0f; 24 | XUpDown.Value = YUpDown.Value = ZUpDown.Value = 0; 25 | } 26 | 27 | private void OKBtn_Click(object sender, EventArgs e) 28 | { 29 | X = (float)XUpDown.Value; 30 | Y = (float)YUpDown.Value; 31 | Z = (float)ZUpDown.Value; 32 | Close(); 33 | } 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /SMSSceneReader/VectorInput.resx: -------------------------------------------------------------------------------- 1 |  2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | -------------------------------------------------------------------------------- /SMSSceneReader/WarpEdit.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace SMSSceneReader 2 | { 3 | partial class WarpEdit 4 | { 5 | /// 6 | /// Required designer variable. 7 | /// 8 | private System.ComponentModel.IContainer components = null; 9 | 10 | /// 11 | /// Clean up any resources being used. 12 | /// 13 | /// true if managed resources should be disposed; otherwise, false. 14 | protected override void Dispose(bool disposing) 15 | { 16 | if (disposing && (components != null)) 17 | { 18 | components.Dispose(); 19 | } 20 | base.Dispose(disposing); 21 | } 22 | 23 | #region Windows Form Designer generated code 24 | 25 | /// 26 | /// Required method for Designer support - do not modify 27 | /// the contents of this method with the code editor. 28 | /// 29 | private void InitializeComponent() 30 | { 31 | this.descBox = new System.Windows.Forms.TextBox(); 32 | this.listBox = new System.Windows.Forms.TextBox(); 33 | this.button1 = new System.Windows.Forms.Button(); 34 | this.button2 = new System.Windows.Forms.Button(); 35 | this.SuspendLayout(); 36 | // 37 | // descBox 38 | // 39 | this.descBox.Location = new System.Drawing.Point(13, 13); 40 | this.descBox.Name = "descBox"; 41 | this.descBox.Size = new System.Drawing.Size(259, 20); 42 | this.descBox.TabIndex = 0; 43 | this.descBox.TextChanged += new System.EventHandler(this.descBox_TextChanged); 44 | // 45 | // listBox 46 | // 47 | this.listBox.Location = new System.Drawing.Point(13, 39); 48 | this.listBox.Multiline = true; 49 | this.listBox.Name = "listBox"; 50 | this.listBox.Size = new System.Drawing.Size(259, 181); 51 | this.listBox.TabIndex = 1; 52 | this.listBox.TextChanged += new System.EventHandler(this.listBox_TextChanged); 53 | // 54 | // button1 55 | // 56 | this.button1.Location = new System.Drawing.Point(116, 226); 57 | this.button1.Name = "button1"; 58 | this.button1.Size = new System.Drawing.Size(75, 23); 59 | this.button1.TabIndex = 2; 60 | this.button1.Text = "Save"; 61 | this.button1.UseVisualStyleBackColor = true; 62 | this.button1.Click += new System.EventHandler(this.button1_Click); 63 | // 64 | // button2 65 | // 66 | this.button2.DialogResult = System.Windows.Forms.DialogResult.Cancel; 67 | this.button2.Location = new System.Drawing.Point(197, 226); 68 | this.button2.Name = "button2"; 69 | this.button2.Size = new System.Drawing.Size(75, 23); 70 | this.button2.TabIndex = 3; 71 | this.button2.Text = "Cancel"; 72 | this.button2.UseVisualStyleBackColor = true; 73 | this.button2.Click += new System.EventHandler(this.button2_Click); 74 | // 75 | // WarpEdit 76 | // 77 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); 78 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 79 | this.CancelButton = this.button2; 80 | this.ClientSize = new System.Drawing.Size(284, 261); 81 | this.Controls.Add(this.button2); 82 | this.Controls.Add(this.button1); 83 | this.Controls.Add(this.listBox); 84 | this.Controls.Add(this.descBox); 85 | this.MaximizeBox = false; 86 | this.MaximumSize = new System.Drawing.Size(300, 300); 87 | this.MinimizeBox = false; 88 | this.MinimumSize = new System.Drawing.Size(300, 300); 89 | this.Name = "WarpEdit"; 90 | this.Text = "WarpEdit"; 91 | this.Load += new System.EventHandler(this.WarpEdit_Load); 92 | this.ResumeLayout(false); 93 | this.PerformLayout(); 94 | 95 | } 96 | 97 | #endregion 98 | 99 | private System.Windows.Forms.TextBox descBox; 100 | private System.Windows.Forms.TextBox listBox; 101 | private System.Windows.Forms.Button button1; 102 | private System.Windows.Forms.Button button2; 103 | } 104 | } -------------------------------------------------------------------------------- /SMSSceneReader/WarpEdit.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel; 4 | using System.Data; 5 | using System.Drawing; 6 | using System.Linq; 7 | using System.Text; 8 | using System.Threading.Tasks; 9 | using System.Windows.Forms; 10 | 11 | namespace SMSSceneReader 12 | { 13 | public partial class WarpEdit : Form 14 | { 15 | public string tableName; 16 | public string[] tableList; 17 | 18 | public WarpEdit() 19 | { 20 | InitializeComponent(); 21 | } 22 | public WarpEdit(string name, string[] list) 23 | { 24 | tableName = name; 25 | tableList = list; 26 | 27 | InitializeComponent(); 28 | } 29 | 30 | private void WarpEdit_Load(object sender, EventArgs e) 31 | { 32 | descBox.Text = tableName; 33 | listBox.Text = ""; 34 | foreach (string str in tableList) 35 | listBox.Text += str + Environment.NewLine; 36 | 37 | if (descBox.Text == "" || listBox.Text == "") 38 | button1.Enabled = false; 39 | else 40 | button1.Enabled = true; 41 | } 42 | 43 | private void button1_Click(object sender, EventArgs e) 44 | { 45 | tableName = descBox.Text; 46 | tableList = listBox.Text.Split(new string[1]{ Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries); 47 | DialogResult = System.Windows.Forms.DialogResult.OK; 48 | this.Close(); 49 | } 50 | 51 | private void descBox_TextChanged(object sender, EventArgs e) 52 | { 53 | if (descBox.Text == "" || listBox.Text == "") 54 | button1.Enabled = false; 55 | else 56 | button1.Enabled = true; 57 | } 58 | 59 | private void listBox_TextChanged(object sender, EventArgs e) 60 | { 61 | if (descBox.Text == "" || listBox.Text == "") 62 | button1.Enabled = false; 63 | else 64 | button1.Enabled = true; 65 | } 66 | 67 | private void button2_Click(object sender, EventArgs e) 68 | { 69 | DialogResult = System.Windows.Forms.DialogResult.Cancel; 70 | this.Close(); 71 | } 72 | } 73 | } 74 | -------------------------------------------------------------------------------- /SMSSceneReader/WarpEdit.resx: -------------------------------------------------------------------------------- 1 |  2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | 121 | True 122 | 123 | -------------------------------------------------------------------------------- /SMSSceneReader/WarpFinder.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace SMSSceneReader 2 | { 3 | partial class WarpFinder 4 | { 5 | /// 6 | /// Required designer variable. 7 | /// 8 | private System.ComponentModel.IContainer components = null; 9 | 10 | /// 11 | /// Clean up any resources being used. 12 | /// 13 | /// true if managed resources should be disposed; otherwise, false. 14 | protected override void Dispose(bool disposing) 15 | { 16 | if (disposing && (components != null)) 17 | { 18 | components.Dispose(); 19 | } 20 | base.Dispose(disposing); 21 | } 22 | 23 | #region Windows Form Designer generated code 24 | 25 | /// 26 | /// Required method for Designer support - do not modify 27 | /// the contents of this method with the code editor. 28 | /// 29 | private void InitializeComponent() 30 | { 31 | this.components = new System.ComponentModel.Container(); 32 | this.listBox1 = new System.Windows.Forms.ListBox(); 33 | this.contextMenuStrip1 = new System.Windows.Forms.ContextMenuStrip(this.components); 34 | this.editToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); 35 | this.addToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); 36 | this.deleteToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); 37 | this.contextMenuStrip1.SuspendLayout(); 38 | this.SuspendLayout(); 39 | // 40 | // listBox1 41 | // 42 | this.listBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 43 | | System.Windows.Forms.AnchorStyles.Left) 44 | | System.Windows.Forms.AnchorStyles.Right))); 45 | this.listBox1.ContextMenuStrip = this.contextMenuStrip1; 46 | this.listBox1.FormattingEnabled = true; 47 | this.listBox1.Location = new System.Drawing.Point(13, 13); 48 | this.listBox1.Name = "listBox1"; 49 | this.listBox1.Size = new System.Drawing.Size(259, 238); 50 | this.listBox1.TabIndex = 0; 51 | // 52 | // contextMenuStrip1 53 | // 54 | this.contextMenuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { 55 | this.editToolStripMenuItem, 56 | this.addToolStripMenuItem, 57 | this.deleteToolStripMenuItem}); 58 | this.contextMenuStrip1.Name = "contextMenuStrip1"; 59 | this.contextMenuStrip1.Size = new System.Drawing.Size(153, 92); 60 | this.contextMenuStrip1.Opening += new System.ComponentModel.CancelEventHandler(this.contextMenuStrip1_Opening); 61 | // 62 | // editToolStripMenuItem 63 | // 64 | this.editToolStripMenuItem.Name = "editToolStripMenuItem"; 65 | this.editToolStripMenuItem.Size = new System.Drawing.Size(152, 22); 66 | this.editToolStripMenuItem.Text = "Edit"; 67 | this.editToolStripMenuItem.Click += new System.EventHandler(this.editToolStripMenuItem_Click); 68 | // 69 | // addToolStripMenuItem 70 | // 71 | this.addToolStripMenuItem.Name = "addToolStripMenuItem"; 72 | this.addToolStripMenuItem.Size = new System.Drawing.Size(152, 22); 73 | this.addToolStripMenuItem.Text = "Add"; 74 | this.addToolStripMenuItem.Click += new System.EventHandler(this.addToolStripMenuItem_Click); 75 | // 76 | // deleteToolStripMenuItem 77 | // 78 | this.deleteToolStripMenuItem.Name = "deleteToolStripMenuItem"; 79 | this.deleteToolStripMenuItem.Size = new System.Drawing.Size(152, 22); 80 | this.deleteToolStripMenuItem.Text = "Delete"; 81 | this.deleteToolStripMenuItem.Click += new System.EventHandler(this.deleteToolStripMenuItem_Click); 82 | // 83 | // WarpFinder 84 | // 85 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); 86 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 87 | this.ClientSize = new System.Drawing.Size(284, 261); 88 | this.Controls.Add(this.listBox1); 89 | this.Name = "WarpFinder"; 90 | this.Text = "Warp Finder"; 91 | this.Load += new System.EventHandler(this.WarpFinder_Load); 92 | this.contextMenuStrip1.ResumeLayout(false); 93 | this.ResumeLayout(false); 94 | 95 | } 96 | 97 | #endregion 98 | 99 | private System.Windows.Forms.ListBox listBox1; 100 | private System.Windows.Forms.ContextMenuStrip contextMenuStrip1; 101 | private System.Windows.Forms.ToolStripMenuItem editToolStripMenuItem; 102 | private System.Windows.Forms.ToolStripMenuItem addToolStripMenuItem; 103 | private System.Windows.Forms.ToolStripMenuItem deleteToolStripMenuItem; 104 | } 105 | } -------------------------------------------------------------------------------- /SMSSceneReader/icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AugsEU/Bin-editor-improvements/a1741704e162329836f5f0a94974acc4831b3a01/SMSSceneReader/icon.ico -------------------------------------------------------------------------------- /SMSSceneReader/icon_s.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AugsEU/Bin-editor-improvements/a1741704e162329836f5f0a94974acc4831b3a01/SMSSceneReader/icon_s.ico -------------------------------------------------------------------------------- /SMSSceneReader/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /SMSSceneReader/paramEditor.resx: -------------------------------------------------------------------------------- 1 |  2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | -------------------------------------------------------------------------------- /SMSSceneReader/platform.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AugsEU/Bin-editor-improvements/a1741704e162329836f5f0a94974acc4831b3a01/SMSSceneReader/platform.ico -------------------------------------------------------------------------------- /packages/OpenTK.Next.1.2.2336.6514-pre/OpenTK.Next.1.2.2336.6514-pre.nupkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AugsEU/Bin-editor-improvements/a1741704e162329836f5f0a94974acc4831b3a01/packages/OpenTK.Next.1.2.2336.6514-pre/OpenTK.Next.1.2.2336.6514-pre.nupkg -------------------------------------------------------------------------------- /packages/OpenTK.Next.1.2.2336.6514-pre/content/OpenTK.dll.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /packages/OpenTK.Next.1.2.2336.6514-pre/lib/net20/OpenTK.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AugsEU/Bin-editor-improvements/a1741704e162329836f5f0a94974acc4831b3a01/packages/OpenTK.Next.1.2.2336.6514-pre/lib/net20/OpenTK.dll -------------------------------------------------------------------------------- /packages/OpenTK.Next.GLControl.1.2.2336.6514-pre/OpenTK.Next.GLControl.1.2.2336.6514-pre.nupkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AugsEU/Bin-editor-improvements/a1741704e162329836f5f0a94974acc4831b3a01/packages/OpenTK.Next.GLControl.1.2.2336.6514-pre/OpenTK.Next.GLControl.1.2.2336.6514-pre.nupkg -------------------------------------------------------------------------------- /packages/OpenTK.Next.GLControl.1.2.2336.6514-pre/lib/net20/OpenTK.GLControl.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AugsEU/Bin-editor-improvements/a1741704e162329836f5f0a94974acc4831b3a01/packages/OpenTK.Next.GLControl.1.2.2336.6514-pre/lib/net20/OpenTK.GLControl.dll -------------------------------------------------------------------------------- /sms-binreader/BinReader.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | Debug 6 | AnyCPU 7 | {6EC26C32-4E84-40AC-BE5A-175D41CD59A5} 8 | Library 9 | Properties 10 | BinReader 11 | BinReader 12 | v4.6 13 | 512 14 | 15 | 16 | 17 | true 18 | full 19 | false 20 | bin\Debug\ 21 | DEBUG;TRACE 22 | prompt 23 | 4 24 | false 25 | 26 | 27 | pdbonly 28 | true 29 | bin\Release\ 30 | TRACE 31 | prompt 32 | 4 33 | false 34 | 35 | 36 | 37 | ..\packages\Microsoft.WindowsAPICodePack-Core.1.1.0.2\lib\Microsoft.WindowsAPICodePack.dll 38 | 39 | 40 | ..\packages\Microsoft.WindowsAPICodePack-Shell.1.1.0.0\lib\Microsoft.WindowsAPICodePack.Shell.dll 41 | 42 | 43 | ..\packages\Microsoft.WindowsAPICodePack-Shell.1.1.0.0\lib\Microsoft.WindowsAPICodePack.ShellExtensions.dll 44 | 45 | 46 | ..\packages\Newtonsoft.Json.12.0.3\lib\net45\Newtonsoft.Json.dll 47 | 48 | 49 | 50 | 51 | ..\packages\System.ValueTuple.4.5.0\lib\netstandard1.0\System.ValueTuple.dll 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 82 | -------------------------------------------------------------------------------- /sms-binreader/BinReader.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 2013 4 | VisualStudioVersion = 12.0.31101.0 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BinReader", "BinReader.csproj", "{6EC26C32-4E84-40AC-BE5A-175D41CD59A5}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|Any CPU = Debug|Any CPU 11 | Release|Any CPU = Release|Any CPU 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {6EC26C32-4E84-40AC-BE5A-175D41CD59A5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 15 | {6EC26C32-4E84-40AC-BE5A-175D41CD59A5}.Debug|Any CPU.Build.0 = Debug|Any CPU 16 | {6EC26C32-4E84-40AC-BE5A-175D41CD59A5}.Release|Any CPU.ActiveCfg = Release|Any CPU 17 | {6EC26C32-4E84-40AC-BE5A-175D41CD59A5}.Release|Any CPU.Build.0 = Release|Any CPU 18 | EndGlobalSection 19 | GlobalSection(SolutionProperties) = preSolution 20 | HideSolutionNode = FALSE 21 | EndGlobalSection 22 | EndGlobal 23 | -------------------------------------------------------------------------------- /sms-binreader/BinReader.v12.suo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AugsEU/Bin-editor-improvements/a1741704e162329836f5f0a94974acc4831b3a01/sms-binreader/BinReader.v12.suo -------------------------------------------------------------------------------- /sms-binreader/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("BinReader")] 9 | [assembly: AssemblyDescription("Reads Super Mario Sunshine bin files. http://blastsoftstudios.com/")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("miluaces")] 12 | [assembly: AssemblyProduct("BinReader")] 13 | [assembly: AssemblyCopyright("Copyright © 2013")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("17700e98-2721-40e0-86ad-4d3516605f6b")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /sms-binreader/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | --------------------------------------------------------------------------------