public void Write(BlamLib.IO.EndianWriter s) { s.Write(X); s.Write(Y); s.Write(Z); s.Write(W); }
public void Write(BlamLib.IO.EndianWriter s) { s.Write(0); s.Write(size); s.Write(0); s.Write(nameHash); offset.Write(s); }
public void Write(BlamLib.IO.EndianWriter s) { s.Write(ulong.MinValue); Count.Write(s); Size.Write(s); OffsetReferences.Write(s); OffsetStrings.Write(s); s.Write(uint.MinValue); }
public void Write(BlamLib.IO.EndianWriter s) { MiscGroups.crdb.Write(s); s.Write(kVersion); s.Write(items.Count); for (int x = 0; x < items.Count; x++) { items[x].Write(s); } }
public void Write(BlamLib.IO.EndianWriter s) { s.WriteTag(Ext); int count = Names.Count; s.Write(count); for (int x = 0; x < count; x++) { s.Write(Names[x]); s.Write(Scenarios[x]); } }
public void Write(BlamLib.IO.EndianWriter s) { s.Write(ResourceBaseAddress); s.Write(DebugSectionSize); s.Write(RuntimeBaseAddress); s.Write(UnknownBaseAddress); foreach (var sec in sections) { sec.Write(s); } }
private MemoryStream PrepareStrings() { MemoryStream ms = new MemoryStream(StringPoolSize + ((MaxCount * 2) * sizeof(int))); IO.EndianWriter s = new BlamLib.IO.EndianWriter(ms); //int offset = 0; //NameOffsets = new List<int>(Names.Count); //foreach (string str in Names) //{ // offset = (int)ms.Position; // NameOffsets.Add(offset); // s.Write(str, true); //} //ScenarioOffsets = new List<int>(Scenarios.Count); //foreach (string str in Scenarios) //{ // offset = (int)ms.Position; // ScenarioOffsets.Add(offset); // s.Write(str, true); //} foreach (string str in Scenarios) s.Write(str, true); int len = StringPoolSize - (int)ms.Position; if (len > 0) for (int x = 0; x < len; x++) s.Write(byte.MinValue); len = MaxCount - ScenarioOffsets.Count; foreach (int i in ScenarioOffsets) s.Write(i); if(len > 0) for (int x = 0; x < len; x++) s.Write(0); foreach (int i in NameOffsets) s.Write(i); if (len > 0) for (int x = 0; x < len; x++) s.Write(0); return ms; }
public virtual void Write(BlamLib.IO.EndianWriter s) { s.Write(m_entries.Count); foreach (var entry in m_entries) { entry.Write(s); } }
public void Write(BlamLib.IO.EndianWriter s) { if (nullBuffer == null) { nullBuffer = new byte[ByteCount]; } s.Write(nullBuffer); }
public void Build(string path) { IO.EndianWriter file = new BlamLib.IO.EndianWriter(path, BlamLib.IO.EndianState.Little, this, true); MemoryStream ms = PrepareStrings(); file.Write(Names.Count); //file.Write(ms.GetBuffer().Length); //foreach (int offset in NameOffsets) // file.Write(offset); //foreach (int offset in ScenarioOffsets) // file.Write(offset); file.Write(ms.GetBuffer()); ms.Close(); file.Close(); }
public void Write(BlamLib.IO.EndianWriter s) { s.Write(Entries.Count); foreach (var entry in Entries) { entry.Write(s); } foreach (var datum in Dependencies) { datum.Write(s); } }
public void Write(BlamLib.IO.EndianWriter s) { s.Write(DataOffset); s.Write(DataSize); s.Write(Name.Length); if (Name.Length > 0) { s.Write(Name.ToCharArray()); } s.Write((int)Type); s.Write(unknown1); s.Write(unknown2); }
public void Write(BlamLib.IO.EndianWriter s) { NameId.Write(s); s.Write(Offset); }
public void Write(BlamLib.IO.EndianWriter s) { s.Write(Value); }
public void Write(BlamLib.IO.EndianWriter s) { s.Write(Start); s.Write(Count); }
public void Write(BlamLib.IO.EndianWriter s) { s.Write(VirtualAddress); s.Write(Size); }
public override void Write(BlamLib.IO.EndianWriter s) { CacheFile cf = s.Owner as CacheFile; if (cf.EngineVersion == BlamVersion.Halo2_PC) { return; } if (cf.EngineVersion == BlamVersion.Halo2_Alpha) { return; } s.WriteTag((char[])MiscGroups.head); s.Write(8); s.Write(fileLength); s.Write(0); s.Write(offsetToIndex); s.Write(indexStreamSize); s.Write(tagBufferSize); s.Write(0); // needs to be calc'd s.Write(new byte[256]); s.Write("02.09.27.09809", false); s.Write((int)cacheType); s.Write(0); // needs to be calc'd s.Write(0); // needs to be calc'd s.Write(0); s.Write(0); s.Write(0); // needs to be calc'd s.Write(0); // needs to be calc'd s.Write(0); // needs to be calc'd s.Write(/*stringIdsBufferAlignedOffset*/ 0); s.Write(stringIdsCount); s.Write(stringIdsBufferSize); s.Write(stringIdIndicesOffset); s.Write(stringIdsBufferOffset); s.Write(0); // 4 bools s.Write(Filetime.dwHighDateTime); s.Write(Filetime.dwHighDateTime); // mainmenu s.Write(SharedFiletimes[0].dwHighDateTime); s.Write(SharedFiletimes[0].dwHighDateTime); // shared s.Write(SharedFiletimes[1].dwHighDateTime); s.Write(SharedFiletimes[1].dwHighDateTime); // shared sp s.Write(SharedFiletimes[2].dwHighDateTime); s.Write(SharedFiletimes[2].dwHighDateTime); s.Write(name, false); s.Write(0); s.Write(scenarioPath, 256); s.Write(Convert.ToInt32(needsShared)); s.Write(tagNamesCount); s.Write(tagNamesBufferOffset); s.Write(tagNamesBufferSize); s.Write(tagNameIndicesOffset); s.Write(0); // checksum s.Write(new byte[1320]); s.WriteTag((char[])MiscGroups.foot); }
private MemoryStream PrepareStrings() { MemoryStream ms = new MemoryStream(StringPoolSize + ((MaxCount * 2) * sizeof(int))); IO.EndianWriter s = new BlamLib.IO.EndianWriter(ms); //int offset = 0; //NameOffsets = new List<int>(Names.Count); //foreach (string str in Names) //{ // offset = (int)ms.Position; // NameOffsets.Add(offset); // s.Write(str, true); //} //ScenarioOffsets = new List<int>(Scenarios.Count); //foreach (string str in Scenarios) //{ // offset = (int)ms.Position; // ScenarioOffsets.Add(offset); // s.Write(str, true); //} foreach (string str in Scenarios) { s.Write(str, true); } int len = StringPoolSize - (int)ms.Position; if (len > 0) { for (int x = 0; x < len; x++) { s.Write(byte.MinValue); } } len = MaxCount - ScenarioOffsets.Count; foreach (int i in ScenarioOffsets) { s.Write(i); } if (len > 0) { for (int x = 0; x < len; x++) { s.Write(0); } } foreach (int i in NameOffsets) { s.Write(i); } if (len > 0) { for (int x = 0; x < len; x++) { s.Write(0); } } return(ms); }
public void Write(BlamLib.IO.EndianWriter s) { s.Write((byte)type); s.Write(flags); }