public BitmapData(CacheBase Cache, int Address) { EndianReader Reader = Cache.Reader; Reader.SeekTo(Address); Class = Reader.ReadString(4); Width = Reader.ReadInt16(); Height = Reader.ReadInt16(); Depth = Reader.ReadByte(); Flags = new Bitmask(Reader.ReadByte()); Type = (BitmapType)Reader.ReadByte(); Reader.ReadByte(); //dunno what this is Format = (BitmapFormat)Reader.ReadInt16(); if ((int)Format > 31) //change to match defined format list Format -= 5; MoreFlags = new Bitmask(Reader.ReadInt16()); RegX = Reader.ReadInt16(); RegY = Reader.ReadInt16(); MipmapCount = Reader.ReadByte(); Reader.ReadByte(); InterleavedIndex = Reader.ReadByte(); Index2 = Reader.ReadByte(); PixelsOffset = Reader.ReadInt32(); PixelsSize = Reader.ReadInt32(); }
public gbxmodel(CacheBase Cache, int Address) { cache = Cache; EndianReader Reader = Cache.Reader; Reader.SeekTo(Address); Name = "gbxmodel"; Flags = new Bitmask(Reader.ReadInt16()); Reader.SeekTo(Address + 0x30); uScale = Reader.ReadSingle(); vScale = Reader.ReadSingle(); #region MarkerGroups Block Reader.SeekTo(Address + 0xAC); int iCount = Reader.ReadInt32(); int iOffset = Reader.ReadInt32() - Cache.Magic; for (int i = 0; i < iCount; i++) MarkerGroups.Add(new MarkerGroup(Cache, iOffset + 64 * i)); #endregion #region Nodes Block Reader.SeekTo(Address + 0xB8); iCount = Reader.ReadInt32(); iOffset = Reader.ReadInt32() - Cache.Magic; for (int i = 0; i < iCount; i++) Nodes.Add(new Node(Cache, iOffset + 156 * i)); #endregion #region Regions Block Reader.SeekTo(Address + 0xC4); iCount = Reader.ReadInt32(); iOffset = Reader.ReadInt32() - Cache.Magic; for (int i = 0; i < iCount; i++) Regions.Add(new Region(Cache, iOffset + 76 * i)); #endregion #region ModelParts Block Reader.SeekTo(Address + 0xD0); iCount = Reader.ReadInt32(); iOffset = Reader.ReadInt32() - Cache.Magic; for (int i = 0; i < iCount; i++) ModelSections.Add(new ModelSection(Cache, iOffset + 48 * i) { FacesIndex = i, VertsIndex = i, NodeIndex = 255 }); #endregion #region Shaders Block Reader.SeekTo(Address + 0xDC); iCount = Reader.ReadInt32(); iOffset = Reader.ReadInt32() - Cache.Magic; for (int i = 0; i < iCount; i++) Shaders.Add(new Shader(Cache, iOffset + 32 * i)); #endregion #region BoundingBox Block BoundingBoxes.Add(new BoundingBox()); #endregion }
public Codec(CacheBase Cache, int Address) { EndianReader Reader = Cache.Reader; Reader.SeekTo(Address); Unknown = Reader.ReadByte(); Type = (SoundType)Reader.ReadByte(); Flags = new Bitmask(Reader.ReadByte()); }
public sound(CacheBase Cache, int Address) { EndianReader Reader = Cache.Reader; Reader.SeekTo(Address); Flags = new Bitmask(Reader.ReadInt16()); SoundClass = Reader.ReadByte(); SampleRate = (SampleRate)Reader.ReadByte(); Encoding = Reader.ReadByte(); CodecIndex = Reader.ReadByte(); PlaybackIndex = Reader.ReadInt16(); DialogueUnknown = Reader.ReadInt16(); Reader.SeekTo(Address + 28); RawID = Reader.ReadInt32(); }
public BitmapData(EndianReader Reader, int Address) { Reader.SeekTo(Address); Class = Reader.ReadString(4); Width = Reader.ReadUInt16(); Height = Reader.ReadUInt16(); Depth = Reader.ReadUInt16(); //Flags = new Bitmask(Reader.ReadByte()); Type = (BitmapType)Reader.ReadUInt16(); Format = (BitmapFormat)Reader.ReadUInt16(); Flags = new Bitmask(Reader.ReadUInt16()); RegX = Reader.ReadUInt16(); RegY = Reader.ReadUInt16(); MipmapCount = Reader.ReadInt32(); PixelsOffset = Reader.ReadInt32(); PixelsSize = Reader.ReadInt32(); Reader.SeekTo(Address + 48); }
public BitmapData(CacheBase Cache, int Address) { EndianReader Reader = Cache.Reader; Reader.SeekTo(Address); Class = Reader.ReadString(4); Width = Reader.ReadUInt16(); Height = Reader.ReadUInt16(); Depth = Reader.ReadUInt16(); //Flags = new Bitmask(Reader.ReadByte()); Type = (BitmapType)Reader.ReadUInt16(); Format = (BitmapFormat)Reader.ReadUInt16(); Flags = new Bitmask(Reader.ReadUInt16()); RegX = Reader.ReadUInt16(); RegY = Reader.ReadUInt16(); MipmapCount = Reader.ReadInt32(); PixelsOffset = Reader.ReadInt32() | int.MinValue; //add 'extenal' flag: all PC bitmaps are external PixelsSize = Reader.ReadInt32(); Reader.SeekTo(Address + 48); }
public BitmapData(CacheBase Cache, int Address) { EndianReader Reader = Cache.Reader; Reader.SeekTo(Address); Class = Reader.ReadString(4); Width = Reader.ReadInt16(); Height = Reader.ReadInt16(); Depth = Reader.ReadByte(); Flags = new Bitmask(Reader.ReadByte()); Type = (BitmapType)Reader.ReadInt16(); Format = (BitmapFormat)Reader.ReadInt16(); MoreFlags = new Bitmask(Reader.ReadInt16()); RegX = Reader.ReadInt16(); RegY = Reader.ReadInt16(); MipmapCount = Reader.ReadByte(); Reader.ReadByte(); InterleavedIndex = Reader.ReadByte(); Index2 = Reader.ReadByte(); PixelsOffset = Reader.ReadInt32(); PixelsSize = Reader.ReadInt32(); }
public sound(CacheBase Cache, int Address) { EndianReader Reader = Cache.Reader; Reader.SeekTo(Address); Flags = new Bitmask(Reader.ReadInt16()); SoundClass = Reader.ReadByte(); SampleRate = (SampleRate)Reader.ReadByte(); Encoding = Reader.ReadByte(); CodecIndex = Reader.ReadByte(); PlaybackIndex = Reader.ReadInt16(); DialogueUnknown = Reader.ReadInt16(); Unknown0 = Reader.ReadInt16(); PitchRangeIndex1 = Reader.ReadInt16(); PitchRangeIndex2 = Reader.ReadByte(); ScaleIndex = Reader.ReadByte(); PromotionIndex = Reader.ReadByte(); CustomPlaybackIndex = Reader.ReadByte(); ExtraInfoIndex = Reader.ReadInt16(); Unknown1 = Reader.ReadInt32(); RawID = Reader.ReadInt32(); MaxPlaytime = Reader.ReadInt32(); }
public BitmapData(CacheBase Cache, int Address) { EndianReader Reader = Cache.Reader; Reader.SeekTo(Address); Class = Reader.ReadString(4); Width = Reader.ReadUInt16(); Height = Reader.ReadUInt16(); Depth = Reader.ReadUInt16(); //Flags = new Bitmask(Reader.ReadByte()); Type = (BitmapType)Reader.ReadUInt16(); Format = (BitmapFormat)Reader.ReadUInt16(); Flags = new Bitmask(Reader.ReadUInt16()); RegX = Reader.ReadUInt16(); RegY = Reader.ReadUInt16(); MipmapCount = Reader.ReadUInt16(); Reader.ReadUInt16(); Reader.ReadInt32(); LODOffset = new int[3]; LODSize = new int[3]; LODOffset[0] = Reader.ReadInt32(); LODOffset[1] = Reader.ReadInt32(); LODOffset[2] = Reader.ReadInt32(); Reader.ReadInt32(); Reader.ReadInt32(); Reader.ReadInt32(); LODSize[0] = Reader.ReadInt32(); LODSize[1] = Reader.ReadInt32(); LODSize[2] = Reader.ReadInt32(); PixelsOffset = LODOffset[0]; PixelsSize = LODSize[0]; Reader.SeekTo(Address + 116); }
public render_model(CacheBase Cache, int Address) { cache = Cache; EndianReader Reader = Cache.Reader; Reader.SeekTo(Address); Name = Cache.Strings.GetItemByID(Reader.ReadInt32()); Flags = new Bitmask(Reader.ReadInt32()); #region Regions Block Reader.SeekTo(Address + 12); int iCount = Reader.ReadInt32(); int iOffset = Reader.ReadInt32() - Cache.Magic; for (int i = 0; i < iCount; i++) Regions.Add(new Region(Cache, iOffset + 16 * i)); #endregion Reader.SeekTo(Address + 28); InstancedGeometryIndex = Reader.ReadInt32(); #region Instanced Geometry Block Reader.SeekTo(Address + 32); iCount = Reader.ReadInt32(); iOffset = Reader.ReadInt32() - Cache.Magic; for (int i = 0; i < iCount; i++) GeomInstances.Add(new InstancedGeometry(Cache, iOffset + 60 * i)); #endregion #region Nodes Block Reader.SeekTo(Address + 48); iCount = Reader.ReadInt32(); iOffset = Reader.ReadInt32() - Cache.Magic; for (int i = 0; i < iCount; i++) Nodes.Add(new Node(Cache, iOffset + 112 * i)); #endregion #region MarkerGroups Block Reader.SeekTo(Address + 60); iCount = Reader.ReadInt32(); iOffset = Reader.ReadInt32() - Cache.Magic; for (int i = 0; i < iCount; i++) MarkerGroups.Add(new MarkerGroup(Cache, iOffset + 16 * i)); #endregion #region Shaders Block Reader.SeekTo(Address + 72); iCount = Reader.ReadInt32(); iOffset = Reader.ReadInt32() - Cache.Magic; for (int i = 0; i < iCount; i++) Shaders.Add(new Shader(Cache, iOffset + 44 * i)); #endregion #region ModelSections Block Reader.SeekTo(Address + 312); iCount = Reader.ReadInt32(); iOffset = Reader.ReadInt32() - Cache.Magic; for (int i = 0; i < iCount; i++) ModelSections.Add(new ModelSection(Cache, iOffset + 112 * i)); #endregion #region BoundingBox Block Reader.SeekTo(Address + 336); iCount = Reader.ReadInt32(); iOffset = Reader.ReadInt32() - Cache.Magic; for (int i = 0; i < iCount; i++) BoundingBoxes.Add(new BoundingBox(Cache, iOffset + 52 * i)); #endregion #region NodeMapGroup Block Reader.SeekTo(Address + 396); iCount = Reader.ReadInt32(); iOffset = Reader.ReadInt32() - Cache.Magic; for (int i = 0; i < iCount; i++) NodeIndexGroups.Add(new NodeIndexGroup(Cache, iOffset + 12 * i)); #endregion Reader.SeekTo(Address + 444); RawID = Reader.ReadInt32(); }
public RawChunk(CacheBase Cache, int Address) { EndianReader Reader = Cache.Reader; Reader.SeekTo(Address); FileOffset = Reader.ReadInt32(); Flags = new Bitmask(Reader.ReadInt16()); Size = Reader.ReadUInt16(); RuntimeIndex = Reader.ReadInt32(); Unknown0 = Reader.ReadInt32(); Unknown1 = Reader.ReadInt32(); }