public void Write(BinaryWriterEx bw) { bw.WriteArrayUInt32(uintDat.ToArray()); for (int i = 0; i < ttl; i++) { smth[i].Write(bw); } }
public void Write(BinaryWriterEx bw) { int pos = (int)bw.BaseStream.Position; if (isAnimated) { if ((pos & 1) != 1) { bw.BaseStream.Position -= 1; } bw.Write(texpos); bw.Write(numFrames); bw.Write(numFrames); bw.Write(0); bw.WriteArrayUInt32(ptrs); int i = 0; foreach (uint ptr in ptrs) { bw.Seek((int)ptr + 4, SeekOrigin.Begin); animframes[i].Write(bw); i++; } bw.Seek((int)texpos + 4, SeekOrigin.Begin); } bool isWritten = false; //are we trying to re-write data, if so skip writing. for (int i = 0; i < 3; i++) { isWritten = midlods[i].Write(bw); } if (isWritten == false) { bw.Write(ptrHi); //loosely assume we got a valid pointer if (ptrHi > 0x30000 && ptrHi < 0xB0000) { bw.Seek((int)ptrHi + 4, SeekOrigin.Begin); for (int i = 0; i < 16; i++) { hi[i].Write(bw); } } } }
public void Write(BinaryWriterEx bw) { bw.Write(cntVertex); bw.Write(ptrVertex); bw.WriteArrayInt16(sizes); bw.WriteArrayUInt32(offs); for (int i = 0; i < cntVertex; i++) { verts[i].Write(bw); } foreach (var face in faces) { face.Write(bw); } }
public void Write(BinaryWriterEx bw) { bw.WriteArrayInt16(ind); bw.Write((ushort)quadFlags); //bw.Write(unk1); // bw.Write(drawOrderLow); bw.Write(bitvalue); bw.Write(drawOrderHigh); bw.WriteArrayUInt32(ptrTexMid); bb.Write(bw); bw.Write((byte)terrainFlag); bw.Write(WeatherIntensity); bw.Write(WeatherType); bw.Write(TerrainFlagUnknown); bw.Write(id); bw.Write(trackPos); bw.Write(midunk); Debug.Log(bw.BaseStream.Position); bw.Write(ptrTexLow); bw.Write(offset2); Debug.Log(offset2); foreach (Vector2s v in unk3) { v.Write(bw); Debug.Log(v); } Debug.Log(ptrTexLow); long texpos = bw.BaseStream.Position; bw.Seek((int)ptrTexLow + 4, SeekOrigin.Begin); texlow.Write(bw); int texIndex = 0; Debug.Log((ptrTexLow + 4) / 16 + ", " + ptrTexMid.Length / 16); if (38435 == (ptrTexLow + 4) / 16) { Debug.Log("----------THE INTERESTING ONE----------"); } foreach (uint u in ptrTexMid) { bw.Seek((int)u + 4, SeekOrigin.Begin); if (tex[texIndex] != null) { tex[texIndex].Write(bw); } texIndex++; } if (38435 == (ptrTexLow + 4) / 16) { Debug.Log("----------THE INTERESTING ONE----------"); } bw.Seek((int)texpos, SeekOrigin.Begin); }