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) { f.writeHex(magic); f.writeByte(1); f.writeString(name.PadRight(0x38, (char)0)); f.writeByte(1); f.writeString(subname.PadRight(0x40, (char)0)); f.writeByte(1); for (int i = 0; i < 3; i++) { f.writeFloat(startPos[i]); } f.writeFlag(useStartPos); f.writeByte(1); f.writeInt(unk1); f.writeByte(1); foreach (float i in unk2) { f.writeFloat(i); } f.writeInt(unk3); f.writeByte(1); f.writeChars(boneName); }
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.writeHex("000000000000000000000000000000000101"); f.writeInt(points.Count); foreach (Vector2D point in points) { f.writeByte(1); f.writeFloat(point.x); f.writeFloat(point.y); } }
public void save(FileOutput f) { f.writeHex("010401017735BB750000000201"); f.writeChars(name.PadRight(0x38, (char)0).ToCharArray()); f.writeByte(1); f.writeChars(subname.PadRight(0x40, (char)0).ToCharArray()); f.writeHex("0100000000000000000000000000010000000001000000000000000000000000FFFFFFFF010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001098400010101"); f.writeInt(sections.Count); foreach (Section s in sections) { f.writeHex("010300000004000000000000000000000000000000000101"); f.writeInt(s.points.Count); foreach (Vector2D p in s.points) { f.writeByte(1); f.writeFloat(p.x); f.writeFloat(p.y); } } }
public void save(FileOutput f) { f.writeHex("030401017735BB750000000201"); f.writeString(name.PadRight(0x38, (char)0)); f.writeByte(1); f.writeString(subname.PadRight(0x40, (char)0)); f.writeByte(1); foreach (float i in startPos) { f.writeFloat(i); } f.writeFlag(useStartPos); f.writeByte(1); f.writeInt(unk2); f.writeByte(1); f.writeBytes(unk3); f.writeHex("FFFFFFFF01"); f.writeChars(unk4); f.writeFlag(flag1); f.writeFlag(flag2); f.writeFlag(flag3); f.writeFlag(flag4); f.writeByte(1); f.writeInt(verts.Count); foreach (Vector2D v in verts) { f.writeByte(1); f.writeFloat(v.x); f.writeFloat(v.y); } f.writeByte(1); f.writeInt(normals.Count); foreach (Vector2D n in normals) { f.writeByte(1); f.writeFloat(n.x); f.writeFloat(n.y); } f.writeByte(1); f.writeInt(0); f.writeByte(1); f.writeInt(materials.Count); foreach (CollisionMat m in materials) { f.writeByte(1); f.writeBytes(m.material); } }
public void Save(string filename) { FileOutput f = new FileOutput(); f.Endian = System.IO.Endianness.Big; f.writeChars("ATKD".ToCharArray()); f.writeInt(entries.Count); f.writeUInt(commonSubactions); f.writeUInt(uniqueSubactions); foreach (Entry e in entries) { f.writeUShort(e.subaction); f.writeUShort(0); f.writeUShort(e.startFrame); f.writeUShort(e.lastFrame); f.writeFloat(e.xmin); f.writeFloat(e.xmax); f.writeFloat(e.ymin); f.writeFloat(e.ymax); } f.save(filename); }
public override byte[] Rebuild() { FileOutput f = new FileOutput(); f.Endian = Endianness.Big; f.writeHex("000000010A014C56443101"); f.writeInt(collisions.Count); foreach (Collision c in collisions) { c.save(f); } f.writeByte(1); f.writeInt(spawns.Count); foreach (Point p in spawns) { f.writeHex("020401017735BB750000000201"); f.writeString(p.name.PadRight(0x38, (char)0)); f.writeByte(1); f.writeString(p.subname.PadRight(0x40, (char)0)); f.writeByte(1); f.writeHex("00000000000000000000000000010000000001000000000000000000000000FFFFFFFF010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001"); f.writeFloat(p.x); f.writeFloat(p.y); } f.writeByte(1); f.writeInt(respawns.Count); foreach (Point p in respawns) { f.writeHex("020401017735BB750000000201"); f.writeString(p.name.PadRight(0x38, (char)0)); f.writeByte(1); f.writeString(p.subname.PadRight(0x40, (char)0)); f.writeByte(1); f.writeHex("00000000000000000000000000010000000001000000000000000000000000FFFFFFFF010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001"); f.writeFloat(p.x); f.writeFloat(p.y); } f.writeByte(1); f.writeInt(cameraBounds.Count); foreach (Bounds b in cameraBounds) { f.writeHex("020401017735BB750000000201"); f.writeString(b.name.PadRight(0x38, (char)0)); f.writeByte(1); f.writeString(b.subname.PadRight(0x40, (char)0)); f.writeByte(1); f.writeHex("00000000000000000000000000010000000001000000000000000000000000FFFFFFFF010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001"); f.writeFloat(b.left); f.writeFloat(b.right); f.writeFloat(b.top); f.writeFloat(b.bottom); } f.writeByte(1); f.writeInt(blastzones.Count); foreach (Bounds b in blastzones) { f.writeHex("020401017735BB750000000201"); f.writeString(b.name.PadRight(0x38, (char)0)); f.writeByte(1); f.writeString(b.subname.PadRight(0x40, (char)0)); f.writeByte(1); f.writeHex("00000000000000000000000000010000000001000000000000000000000000FFFFFFFF010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001"); f.writeFloat(b.left); f.writeFloat(b.right); f.writeFloat(b.top); f.writeFloat(b.bottom); } for (int i = 0; i < 7; i++) { f.writeByte(1); f.writeInt(0); } f.writeByte(1); f.writeInt(items.Count); foreach (ItemSpawner item in items) { item.save(f); } f.writeByte(1); f.writeInt(generalShapes.Count); foreach (LVDGeneralShape shape in generalShapes) { shape.save(f); } f.writeByte(1); f.writeInt(generalPoints.Count); foreach (Point p in generalPoints) { f.writeHex("010401017735BB750000000201"); f.writeChars(p.name.PadRight(0x38, (char)0).ToCharArray()); f.writeByte(1); f.writeChars(p.subname.PadRight(0x40, (char)0).ToCharArray()); f.writeByte(1); f.writeHex("00000000432100000000000000010000000001000000000000000000000000FFFFFFFF010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000100000004"); f.writeFloat(p.x); f.writeFloat(p.y); f.writeBytes(new byte[0x14]); } for (int i = 0; i < 4; i++) { f.writeByte(1); f.writeInt(0); } return(f.getBytes()); }