public override object ReadData(GomBinaryReader reader) { GomType keyType = GomTypeLoader.Load(reader, false); if ((KeyType != null) && (keyType.TypeId == KeyType.TypeId)) { keyType = KeyType; } GomType valType = GomTypeLoader.Load(reader, false); if ((ValueType != null) && (valType.TypeId == ValueType.TypeId)) { valType = ValueType; } int len = (int)reader.ReadNumber(); int len2 = (int)reader.ReadNumber(); if (len != len2) { throw new InvalidOperationException("Map length values aren't the same?!"); } Dictionary <object, object> result = new Dictionary <object, object>(len); for (var i = 0; i < len; i++) { var key = keyType.ReadItem(reader); var val = valType.ReadItem(reader); result.Add(key, val); } return(result); }
public DomType Load(GomBinaryReader reader) { DomClass result = new DomClass(); LoaderHelper.ParseShared(reader, result); reader.BaseStream.Position = 0x2A; short numComponents = reader.ReadInt16(); short componentOffset = reader.ReadInt16(); short numFields = reader.ReadInt16(); short fieldsOffset = reader.ReadInt16(); if (numComponents > 0) { reader.BaseStream.Position = componentOffset; for (var i = 0; i < numComponents; i++) { result.ComponentIds.Add(reader.ReadUInt64()); } } if (numFields > 0) { reader.BaseStream.Position = fieldsOffset; for (var i = 0; i < numFields; i++) { result.FieldIds.Add(reader.ReadUInt64()); } } return(result); }
public override object ReadData(GomBinaryReader reader) { GomType itemType = GomTypeLoader.Load(reader, false); if ((ContainedType != null) && (itemType.TypeId == ContainedType.TypeId)) { itemType = ContainedType; } int len = (int)reader.ReadNumber(); int len2 = (int)reader.ReadNumber(); if (len != len2) { throw new InvalidOperationException("List length values aren't the same?!"); } List <object> result = new List <object>(len); for (var i = 0; i < len; i++) { var idx = reader.ReadNumber(); var val = itemType.ReadItem(reader); result.Add(val); } return(result); }
public DomType Load(GomBinaryReader reader) { DomAssociation result = new DomAssociation(); LoaderHelper.ParseShared(reader, result); return(result); }
public DomType Load(GomBinaryReader reader) { DomEnum result = new DomEnum(); LoaderHelper.ParseShared(reader, result); reader.BaseStream.Position = 0x12; var nameOffset = reader.ReadInt16(); reader.BaseStream.Position = 0x18; var numVals = reader.ReadInt16(); var valOffset = reader.ReadInt16(); // Read in names reader.BaseStream.Position = nameOffset; for (var i = 0; i < numVals; i++) { var name = reader.ReadNullTerminatedString(); result.AddName(name); } // Read in values reader.BaseStream.Position = valOffset; for (var i = 0; i < numVals; i++) { var val = reader.ReadInt16(); result.AddValue(val); } return(result); }
public override object ReadData(GomBinaryReader reader) { ScriptEnum result = new ScriptEnum(); byte val = (byte)reader.ReadNumber(); result.Value = val; result.EnumType = this.DomEnum; return(result); }
public GomType Load(GomBinaryReader reader, bool fromGom) { var t = new GomTypes.Map(); if (fromGom) { t.KeyType = GomTypeLoader.Load(reader, fromGom); t.ValueType = GomTypeLoader.Load(reader, fromGom); } return(t); }
public GomType Load(GomBinaryReader reader, bool fromGom) { GomTypes.Enum t = new GomTypes.Enum(); if (fromGom) { ulong enumTypeId = reader.ReadUInt64(); t.DomEnumId = enumTypeId; } return(t); }
public GomType Load(GomBinaryReader reader, bool fromGom) { var result = new GomTypes.List(); if (fromGom) { result.ContainedType = GomTypeLoader.Load(reader, fromGom); } return(result); }
public GomType Load(GomBinaryReader reader, bool fromGom) { GomTypes.ClassRef t = new GomTypes.ClassRef(); if (fromGom) { ulong classTypeId = reader.ReadUInt64(); t.DomClassId = classTypeId; } return(t); }
public override object ReadData(GomBinaryReader reader) { ulong instanceId = reader.ReadNumber(); var gomObj = DataObjectModel.Get <GomObject>(instanceId); //if (gomObj != null) //{ // gomObj.Load(); //} return(gomObj); }
public override object ReadData(GomBinaryReader reader) { List <float> vec = new List <float>(3); float x = reader.ReadSingle(); float y = reader.ReadSingle(); float z = reader.ReadSingle(); vec.Add(x); vec.Add(y); vec.Add(z); return(vec); }
public DomType Load(GomBinaryReader reader) { DomField result = new DomField(); LoaderHelper.ParseShared(reader, result); reader.BaseStream.Position = 0x12; short typeOffset = reader.ReadInt16(); reader.BaseStream.Position = typeOffset; result.GomType = reader.ReadGomType(); return(result); }
internal static void ParseShared(GomBinaryReader reader, DomType dom) { long offset = reader.BaseStream.Position; //reader.BaseStream.Position = 0x8; //dom.Id = reader.ReadUInt64(); reader.BaseStream.Position = 0x14; short nameOffset = reader.ReadInt16(); short descOffset = reader.ReadInt16(); reader.BaseStream.Position = nameOffset; dom.Name = reader.ReadNullTerminatedString(); reader.BaseStream.Position = descOffset; dom.Description = reader.ReadNullTerminatedString(); reader.BaseStream.Position = offset; }
public DomType Load(GomBinaryReader reader) { GomObject result = new GomObject(); result.Id = reader.ReadUInt64(); int nameLen = reader.ReadInt32(); result.Name = reader.ReadFixedLengthString(nameLen - 1); reader.ReadByte(); result.Description = String.Empty; reader.ReadByte(); reader.ReadInt32(); reader.ReadInt32(); reader.ReadInt32(); result.ClassId = reader.ReadUInt64(); // reader.ReadBytes(0xC); reader.ReadBytes(0x8); result.ObjectSizeInFile = reader.ReadInt32(); // 0x24 result.IsCompressed = false; // result.NodeDataOffset = 20 + nameLen + 37; // 8 byte file header + node ID + nameLen + node name + 37 byte node header result.NodeDataOffset = 20 + nameLen + 33; // 8 byte file header + node ID + nameLen + node name + 33 byte node header if (result.ObjectSizeInFile > 0) { // Copy the data to the instance //var buff = reader.ReadBytes(result.ObjectSizeInFile); result.DataLength = result.ObjectSizeInFile; //result.DataBuffer = buff; } else { result.DataLength = 0; } // Gom.AddObject(result); return(result); }
public override object ReadData(GomBinaryReader reader) { reader.ReadBytes(0x22); return(null); }
public GomType Load(GomBinaryReader reader, bool fromGom) { return new GomTypes.Vector(); }
public override object ReadData(GomBinaryReader reader) { float val = reader.ReadSingle(); return(val); }
public override object ReadData(GomBinaryReader reader) { return(reader.ReadNumber()); }
public override bool ConfirmType(GomBinaryReader reader) { //return base.ConfirmType(reader) && KeyType.ConfirmType(reader) && ValueType.ConfirmType(reader); return(base.ConfirmType(reader)); }
public override object ReadData(GomBinaryReader reader) { ulong val = reader.ReadNumber(); return(val); }
public override object ReadData(GomBinaryReader reader) { return(reader.ReadLengthPrefixString(Encoding.UTF8)); }
public GomType Load(GomBinaryReader reader, bool fromGom) { return(new GomTypes.TimeSpan()); }
public GomType Load(GomBinaryReader reader, bool fromGom) { return(new GomTypes.Float()); }
public override object ReadData(GomBinaryReader reader) { throw new NotImplementedException(); }
public override object ReadData(GomBinaryReader reader) { byte val = reader.ReadByte(); return(val != 0); }
public DomType Load(GomBinaryReader reader) { GomObject result = new GomObject(); LoaderHelper.ParseShared(reader, result); reader.BaseStream.Position = 0x12; short headerEnd = reader.ReadInt16(); reader.BaseStream.Position = 0x18; //result.Offset20 = reader.ReadInt32(); result.ClassId = reader.ReadUInt64(); // Offset 0x18 result.Offset20 = reader.ReadInt32(); // 0x20 result.NumGlommed = reader.ReadInt16(); // 0x24 result.Offset26 = reader.ReadInt16(); // 0x26 result.ObjectSizeInFile = reader.ReadInt32(); // 0x28 result.Offset2C = reader.ReadInt16(); // 0x2C result.Offset2E = reader.ReadInt16(); // 0x2E result.Offset30 = reader.ReadByte(); // 0x30 result.Offset31 = reader.ReadByte(); // 0x31 reader.BaseStream.Position = headerEnd; if (headerEnd != reader.BaseStream.Length) { //InflaterInputStream istream = new InflaterInputStream(reader.BaseStream); //string outFileName = result.Name; //outFileName = outFileName.Replace('/', '_'); //outFileName = outFileName.Replace('.', '\\'); //outFileName = outFileName + ".node"; //string path = System.IO.Path.Combine("c:\\code\\swtorfiles\\prototypes\\", outFileName); //if (path.Contains("\\con\\")) //{ // path = path.Replace("\\con\\", "\\_con\\"); //} ////path = String.Format("c:\\code\\swtorfiles\\prototypes\\{1}", result.Id, result.Name); //string dir = System.IO.Path.GetDirectoryName(path); //if (!outDirs.Contains(dir)) //{ // try // { // System.IO.Directory.CreateDirectory(dir); // outDirs.Add(dir); // } // catch (System.IO.IOException) // { // Console.WriteLine("Cannot create directory {0} for {1}", dir, path); // return result; // } //} //using (var fs = System.IO.File.Open(path, System.IO.FileMode.Create, System.IO.FileAccess.Write)) //{ // ICSharpCode.SharpZipLib.Core.StreamUtils.Copy(istream, fs, outBuff); //} // Copy the compressed data to the instance int compressedLength = (int)(reader.BaseStream.Length - reader.BaseStream.Position); var buff = reader.ReadBytes(compressedLength); adlerCalc.Update(buff); result.Checksum = adlerCalc.Value; adlerCalc.Reset(); result.IsCompressed = true; result.DataLength = compressedLength; result.DataBuffer = buff; } else { result.DataLength = 0; } // Gom.AddObject(result); return(result); }
public GomType Load(GomBinaryReader reader, bool fromGom) { return(new GomTypes.Integer()); }
public override object ReadData(GomBinaryReader reader) { var obj = ScriptObjectReader.ReadObject(this.DomClass, reader); return(obj); }