// reads a class body ConfigClass ReadClassBody(string name, long bodyOffset) { // Class bodies are distributed separately from their definitions // so before we go looking we need to take note of where we started var currentOffset = _input.Position; //read the parent name _input.Seek(bodyOffset, SeekOrigin.Begin); var parentName = BinaryFile.ReadString(_input); var cfgClass = new ConfigClass(name, parentName); //read all entries in the class body var entryCount = BinaryFile.ReadCompressedInteger(_input); for (var c = 0; c < entryCount; c++) { cfgClass.Add(ReadConfigEntry()); } //ensure we haven't disturbed the seek position _input.Seek(currentOffset, SeekOrigin.Begin); return(cfgClass); }
static void BinariseEnum(MemoryStream mem, string name, long val) { BinaryFile.WriteString(mem, name); BinaryFile.WriteUInt32(mem, (UInt32)val); }
static void BinariseDelete(MemoryStream mem, string name) { BinaryFile.WriteByte(mem, 4); BinaryFile.WriteString(mem, name); }
static void BinariseExtern(MemoryStream mem, string name) { BinaryFile.WriteByte(mem, 3); BinaryFile.WriteString(mem, name); }
static void BinariseEmbeddedArray(MemoryStream mem) { BinaryFile.WriteByte(mem, 3); }
static void BinariseEmbedded(MemoryStream mem, UInt32 n) { BinaryFile.WriteByte(mem, 2); BinaryFile.WriteUInt32(mem, n); }
static void BinariseEmbedded(MemoryStream mem, float n) { BinaryFile.WriteByte(mem, 1); BinaryFile.WriteFloat32(mem, n); }
static void BinariseEmbedded(MemoryStream mem, string n) { BinaryFile.WriteByte(mem, 0); BinaryFile.WriteString(mem, n); }
static void BinariseArray(MemoryStream mem, string name, int n) { BinaryFile.WriteByte(mem, 2); BinaryFile.WriteString(mem, name); BinaryFile.WriteCompressedInteger(mem, n); }
static void BinariseClassBody(MemoryStream mem, string parent, int n) { BinaryFile.WriteString(mem, parent); BinaryFile.WriteCompressedInteger(mem, n); }
static void BinariseClass(MemoryStream mem, string name, UInt32 offset) { BinaryFile.WriteByte(mem, 0); BinaryFile.WriteString(mem, name); BinaryFile.WriteUInt32(mem, offset); }
DeleteReference ReadConfigDelete() { var className = BinaryFile.ReadString(_input); return(new DeleteReference(className)); }
ExternReference ReadConfigExtern() { var className = BinaryFile.ReadString(_input); return(new ExternReference(className)); }
IntProperty ReadConfigInt(string name) { var value = BinaryFile.ReadInt32(_input); return(new IntProperty(name, value)); }
FloatProperty ReadConfigFloat(string name) { var value = BinaryFile.ReadFloat32(_input); return(new FloatProperty(name, value)); }
StringProperty ReadConfigString(string name) { var value = BinaryFile.ReadString(_input); return(new StringProperty(name, value)); }