public void Write(FileOutput o) { o.writeInt((int)TagType.RemoveObject); o.writeInt(2); o.writeInt(Unk1); o.writeShort(Depth); o.writeShort(Unk2); }
public void ExportBNTX(string filename) { FileOutput o = new FileOutput(); o.Endian = Endianness.Little; o.save(filename); }
public void Write(FileOutput o) { Console.WriteLine($"unk_{(int)Type:X4} (size=0x{Size * 4:X4}) // offset=0x{o.size():X2}\n"); o.writeInt((int)Type); o.writeInt(Size); o.writeBytes(Data); }
public void Write(FileOutput o) { o.writeInt((int)TagType.FrameLabel); o.writeInt(3); o.writeInt(NameId); o.writeInt(StartFrame); o.writeInt(Unk1); }
public void WriteOffset(int i, FileOutput fo) { Offsets.Add(new RelocOffset() { Value = i, output = fo, Position = data.Count }); writeInt(i); }
public void save(FileOutput f) { base.save(f); f.writeByte(1); f.writeFloat(x); f.writeFloat(y); }
public override void Save() { FileOutput o = new FileOutput(); byte[] n = Lumen.Rebuild(); o.writeBytes(n); o.save(Lumen.Filename); }
public DRP(string fname) { Text = Path.GetFileNameWithoutExtension(fname); var o = new FileOutput(); o.writeBytes(Decrypt(new FileData(fname))); o.save(fname + "_dec"); Read(new FileData(Decrypt(new FileData(fname)))); }
public void save(FileOutput f) { base.save(f); f.writeByte(1); f.writeFloat(left); f.writeFloat(right); f.writeFloat(top); f.writeFloat(bottom); }
public void Write(FileOutput file) { file.writeInt((int)hash); file.writeShort(type); file.writeShort(frame); file.writeShort(unk1); file.writeShort(unk2); file.writeShort(unk3); file.writeShort(unk4); }
public void save(FileOutput f) { base.save(f); f.writeByte(1); f.writeFloat(pos.x); f.writeFloat(pos.y); f.writeFloat(angle.x); f.writeFloat(angle.y); }
public override byte[] Rebuild() { FileOutput buf = new FileOutput(); buf.Endian = Endianness.Little; var flagsOffset = 0x10; var entriesOffset = flagsOffset + (atlases.Count * 4); var stringsOffset = entriesOffset + (textures.Count * 0x20); buf.writeInt(0x544C5354); // TLST buf.writeShort(0); // idk buf.writeShort((short)atlases.Count); buf.writeShort((short)textures.Count); buf.writeShort((short)flagsOffset); buf.writeShort((short)entriesOffset); buf.writeShort((short)stringsOffset); // flags foreach (var flag in atlases) { buf.writeInt((int)flag); } // entries int namePtr = 0; foreach (var texture in textures) { buf.writeInt(namePtr); buf.writeInt(namePtr); namePtr += texture.name.Length + 1; buf.writeFloat(texture.topLeft.X); buf.writeFloat(texture.topLeft.Y); buf.writeFloat(texture.botRight.X); buf.writeFloat(texture.botRight.Y); buf.writeShort(texture.width); buf.writeShort(texture.height); buf.writeShort(texture.atlasId); buf.writeShort(0); // pad } //strings foreach (var texture in textures) { buf.writeString(texture.name); buf.writeByte(0); } buf.writeByte(0); return(buf.getBytes()); }
public void SaveAs(object sender, EventArgs args) { if (Runtime.TargetVBN == null) { MessageBox.Show("You must have a bone-set (VBN) selected to save animations."); return; } using (var sfd = new SaveFileDialog()) { sfd.Filter = "Supported Files (.omo, .anim, .smd)|*.omo;*.anim;*.smd|" + "Maya Anim (.anim)|*.anim|" + "Object Motion (.omo)|*.omo|" + "Source Animation (.smd)|*.smd|" + "All Files (*.*)|*.*"; sfd.DefaultExt = "smd"; //Set a default extension to prevent crashing if not specified by user if (sfd.ShowDialog() == DialogResult.OK) { sfd.FileName = sfd.FileName; if (sfd.FileName.EndsWith(".anim")) { if (Tag is AnimTrack) { ((AnimTrack)Tag).createANIM(sfd.FileName, Runtime.TargetVBN); } else { ANIM.CreateANIM(sfd.FileName, this, Runtime.TargetVBN); } } if (sfd.FileName.EndsWith(".omo")) { if (Tag is FileData) { FileOutput o = new FileOutput(); o.writeBytes(((FileData)Tag).getSection(0, ((FileData)Tag).size())); o.save(sfd.FileName); } else { File.WriteAllBytes(sfd.FileName, OMOOld.CreateOMOFromAnimation(this, Runtime.TargetVBN)); } } if (sfd.FileName.EndsWith(".smd")) { SMD.Save(this, Runtime.TargetVBN, sfd.FileName); } } } }
public void SaveAs(object sender, EventArgs args) { if (Runtime.TargetVBN == null) { MessageBox.Show("You must have a bone set (VBN) open before saving animations"); return; } using (var sfd = new SaveFileDialog()) { sfd.Filter = "Supported Files (.omo, .anim, .smd)|*.omo;*.anim;*.smd|" + "Maya Anim (.anim)|*.anim|" + "Object Motion (.omo)|*.omo|" + "Source Animation (.smd)|*.smd|" + "All Files (*.*)|*.*"; if (sfd.ShowDialog() == DialogResult.OK) { sfd.FileName = sfd.FileName; if (sfd.FileName.EndsWith(".anim")) { if (Tag is AnimTrack) { ((AnimTrack)Tag).createANIM(sfd.FileName, Runtime.TargetVBN); } else { ANIM.CreateANIM(sfd.FileName, this, Runtime.TargetVBN); } } if (sfd.FileName.EndsWith(".omo")) { if (Tag is FileData) { FileOutput o = new FileOutput(); o.writeBytes(((FileData)Tag).getSection(0, ((FileData)Tag).size())); o.save(sfd.FileName); } else { OMOOld.CreateOMOFromAnimation(this, Runtime.TargetVBN); } } if (sfd.FileName.EndsWith(".smd")) { SMD.Save(this, Runtime.TargetVBN, sfd.FileName); } } } }
public void Write(FileOutput file) { file.writeShort(unk1); file.writeShort(events.Count); file.writeShort(unk2); file.writeShort(unk3); for (int i = 0; i < events.Count; ++i) { events[i].Write(file); } }
public void WriteDescription(FileOutput f) { // TODO: Calculate Length f.writeInt(type.Length); for (int i = 0; i < type.Length; i++) { f.writeInt(type[i]); f.writeInt(format[i]); f.writeFloat(scale[i]); } }
public override void save(FileOutput f) { f.writeHex("010401017735BB750000000201"); f.writeChars(name.PadRight(0x38).ToCharArray()); f.writeByte(1); f.writeChars(subname.PadRight(0x40).ToCharArray()); f.writeHex("0100000000000000000000000000010000000001000000000000000000000000FFFFFFFF010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001014C800203"); f.writeInt(type); f.writeFloat(x); f.writeFloat(y); f.writeHex("0000000000000000010100000000"); }
public void save(FileOutput f) { base.save(f); f.writeByte(1); f.writeInt(type); f.writeFloat(x); f.writeFloat(y); f.writeFloat(z); f.writeHex("00000000000000000000000000000000"); }
public override byte[] Rebuild() { FileOutput o = new FileOutput(); o.Endian = Endianness.Little; o.writeString(" BWS"); o.writeShort(0x05); o.writeShort(0x01); o.writeInt(bones.Count); foreach (SBEntry s in bones) { o.writeInt((int)s.hash); o.writeFloat(s.param1_1); o.writeInt(s.param1_2); o.writeInt(s.param1_3); o.writeFloat(s.param2_1); o.writeFloat(s.param2_2); o.writeInt(s.param2_3); o.writeFloat(s.rx1); o.writeFloat(s.rx2); o.writeFloat(s.ry1); o.writeFloat(s.ry2); o.writeFloat(s.rz1); o.writeFloat(s.rz2); for (int j = 0; j < 8; j++) { o.writeInt((int)s.boneHashes[j]); } for (int j = 0; j < 4; j++) { o.writeFloat(s.unks1[j]); } for (int j = 0; j < 6; j++) { o.writeFloat(s.unks2[j]); } o.writeFloat(s.factor); for (int j = 0; j < 3; j++) { o.writeInt(s.ints[j]); } } return(o.getBytes()); }
public void save(FileOutput f) { f.writeHex("0103"); f.writeInt(type); f.writeFloat(x); f.writeFloat(y); f.writeFloat(z); f.writeFloat(unk); f.writeHex("0101"); f.writeInt(0); }
public override byte[] Rebuild() { FileOutput file = new FileOutput(); if (file != null) { if (Endian == Endianness.Little) { file.Endian = Endianness.Little; file.writeString(" NBV"); } if (Endian == Endianness.Big) { file.Endian = Endianness.Big; file.writeString("VBN "); } file.writeShort(0x01); file.writeShort(0x02); file.writeInt(bones.Count); if (boneCountPerType[0] == 0) boneCountPerType[0] = (uint)bones.Count; for (int i = 0; i < 4; i++) file.writeInt((int)boneCountPerType[i]); for (int i = 0; i < bones.Count; i++) { file.writeString(new string(bones[i].boneName)); for (int j = 0; j < 64 - bones[i].boneName.Length; j++) file.writeByte(0); file.writeInt((int)bones[i].boneType); if(bones[i].parentIndex == -1) file.writeInt(0x0FFFFFFF); else file.writeInt(bones[i].parentIndex); file.writeInt((int)bones[i].boneId); } for (int i = 0; i < bones.Count; i++) { file.writeFloat(bones[i].position[0]); file.writeFloat(bones[i].position[1]); file.writeFloat(bones[i].position[2]); file.writeFloat(bones[i].rotation[0]); file.writeFloat(bones[i].rotation[1]); file.writeFloat(bones[i].rotation[2]); file.writeFloat(bones[i].scale[0]); file.writeFloat(bones[i].scale[1]); file.writeFloat(bones[i].scale[2]); } } return file.getBytes(); }
public int Rebuild(FileOutput o) { int size = o.size(); o.writeInt(hash); o.writeInt(unk1); o.writeByte(name.Length + 1); o.writeString(name); o.writeByte(0); o.align(4); o.writeInt(0); o.writeInt(8); o.writeInt(offset); o.writeInt(this.size); // write data foreach (float f in param) { o.writeFloat(f); } o.writeInt(offsets.Length); foreach (int f in offsets) { o.writeInt(f); } o.writeInt(unkvalues.Length); int v = 0; foreach (float f in unkvalues) { o.writeInt(v++); o.writeFloat(f); } foreach (int f in unkending) { o.writeInt(f); } foreach (int f in end) { o.writeInt(f); } return(o.size() - size); }
public static byte[] FromIDSP(byte[] idsp) { File.WriteAllBytes("temp.idsp", idsp); IntPtr vgm = VGMStreamNative.InitVGMStream("temp.idsp"); if (vgm == IntPtr.Zero) { throw new Exception("Error loading idsp"); } int channelCount = VGMStreamNative.GetVGMStreamChannelCount(vgm); int bitsPerFrame = VGMStreamNative.GetVGMStreamFrameSize(vgm); int size = VGMStreamNative.GetVGMStreamTotalSamples(vgm); int samplerate = VGMStreamNative.GetVGMStreamSampleRate(vgm); int total = (int)((samplerate * bitsPerFrame * channelCount * (size / 24576000f)) / 8 * 1024); short[] buffer = new short[total]; VGMStreamNative.RenderVGMStream(buffer, buffer.Length / 2, vgm); FileOutput o = new FileOutput(); o.Endian = Endianness.Little; o.writeString("RIFF"); o.writeInt(0); o.writeString("WAVEfmt "); o.writeInt(0x10); o.writeShort(1); o.writeShort(channelCount); o.writeInt(samplerate); o.writeInt(size); o.writeShort(2); o.writeShort(0x10); o.writeString("data"); o.writeInt(buffer.Length); for (int i = 0; i < buffer.Length / 2; i++) { o.writeShort(buffer[i]); } o.writeIntAt(o.size() - 8, 4); VGMStreamNative.CloseVGMStream(vgm); File.Delete("temp.idsp"); return(o.getBytes()); }
public override void Save() { if (String.IsNullOrEmpty(FilePath)) { SaveAs(); return; } FileOutput o = new FileOutput(); byte[] n = swag.Rebuild(); o.writeBytes(n); o.save(FilePath); Edited = false; }
public override void Save() { if (FilePath.Equals("")) { SaveAs(); return; } FileOutput o = new FileOutput(); byte[] n = VBN.Rebuild(); o.writeBytes(n); o.save(FilePath); Edited = false; }
public override byte[] Rebuild() { FileOutput o = new FileOutput(); o.Endian = Endianness.Little; FileOutput d = new FileOutput(); d.Endian = Endianness.Little; o.writeString("NUS3"); o.writeInt(0); o.writeString("BANKTOC "); o.writeInt(0x3C); o.writeInt(0x07); // write each section o.writeString("PROP"); o.writeInt(prop.Rebuild(d)); o.writeString("BINF"); o.writeInt(binf.Rebuild(d)); o.writeString("GRP "); o.writeInt(grp.Rebuild(d)); o.writeString("DTON"); o.writeInt(dton.Rebuild(d)); o.writeString("TONE"); o.writeInt(tone.Rebuild(d)); o.writeString("JUNK"); o.writeInt(4); //d.writeString("JUNK"); d.writeInt(4); d.writeInt(0); o.writeString("PACK"); o.writeInt(0); o.writeOutput(d); o.writeIntAt(o.size(), 4); // something extra with bgm?? return(o.getBytes()); }
public void save(FileOutput f) { base.save(f); f.writeByte(1); f.writeHex("0984000101"); f.writeByte(1); f.writeInt(sections.Count); foreach (Section s in sections) { s.save(f); } }
public void save(FileOutput f) { f.writeByte(1); f.writeHex("03000000040000000000000000000000000000000001"); f.writeByte(1); f.writeInt(points.Count); foreach (Vector2D v in points) { f.writeByte(1); f.writeFloat(v.x); f.writeFloat(v.y); } }
public override void Save() { if (FilePath.Equals("")) { SaveAs(); return; } FileOutput fileOutput = new FileOutput(); byte[] n = currentNut.Rebuild(); fileOutput.writeBytes(n); fileOutput.save(FilePath); Edited = false; }
public override void Save() { if (FilePath.Equals("")) { SaveAs(); return; } FileOutput o = new FileOutput(); mta.Compile(new List <string>(richTextBox1.Text.Split('\n'))); byte[] n = mta.Rebuild(); o.writeBytes(n); o.save(FilePath); Edited = false; }