public AssetUIFT(Section_AHDR AHDR, Game game, Endianness endianness) : base(AHDR, game, endianness)
        {
            using (var reader = new EndianBinaryReader(AHDR.data, endianness))
            {
                reader.BaseStream.Position = game == Game.BFBB ? 0x80 : 0x7C;

                UIFontFlags.FlagValueShort = reader.ReadUInt16();
                UIFontMode         = reader.ReadByte();
                FontID             = (FontEnum)reader.ReadByte();
                TextAssetID        = reader.ReadUInt32();
                BackgroundColor    = reader.ReadColor();
                FontColor          = reader.ReadColor();
                Padding_Top        = reader.ReadInt16();
                Padding_Bottom     = reader.ReadInt16();
                Padding_Left       = reader.ReadInt16();
                Padding_Right      = reader.ReadInt16();
                Spacing_Horizontal = reader.ReadInt16();
                Spacing_Vertical   = reader.ReadInt16();
                Char_Width         = reader.ReadInt16();
                Char_Height        = reader.ReadInt16();
                if (game != Game.Scooby)
                {
                    MaxHeight = reader.ReadInt32();
                }
            }
        }
        public DynaUIImage(Section_AHDR AHDR, Game game, Endianness endianness) : base(AHDR, DynaType.ui__image, game, endianness)
        {
            using (var reader = new EndianBinaryReader(AHDR.data, endianness))
            {
                reader.BaseStream.Position = dynaUIEnd;

                Texture_AssetID             = reader.ReadUInt32();
                uv1u                        = reader.ReadSingle();
                uv1v                        = reader.ReadSingle();
                uv2u                        = reader.ReadSingle();
                uv2v                        = reader.ReadSingle();
                uv3u                        = reader.ReadSingle();
                uv3v                        = reader.ReadSingle();
                uv4u                        = reader.ReadSingle();
                uv4v                        = reader.ReadSingle();
                rotation                    = reader.ReadSingle();
                UIImageFlags.FlagValueShort = reader.ReadUInt16();
                addreasMoveU                = reader.ReadByte();
                addreasMoveV                = reader.ReadByte();
                Color1                      = reader.ReadColor();
                Color2                      = reader.ReadColor();
                Color3                      = reader.ReadColor();
                Color4                      = reader.ReadColor();

                if (reader.BaseStream.Position != linkStartPosition(reader.BaseStream.Length, _links.Length))
                {
                    extraFieldPresent = true;
                    Unknown           = reader.ReadInt32();
                }
            }
        }
Beispiel #3
0
 public EntryPICK(EndianBinaryReader reader)
 {
     PickupHash   = reader.ReadUInt32();
     PickupType   = reader.ReadByte();
     PickupIndex  = reader.ReadByte();
     PickupFlags  = reader.ReadUInt16();
     Quantity     = reader.ReadUInt32();
     ModelAssetID = reader.ReadUInt32();
     AnimAssetID  = reader.ReadUInt32();
 }
Beispiel #4
0
 public AssetANIM_KeyFrame(EndianBinaryReader reader)
 {
     TimeIndex = reader.ReadUInt16();
     RotationX = reader.ReadInt16();
     RotationY = reader.ReadInt16();
     RotationZ = reader.ReadInt16();
     RotationW = reader.ReadInt16();
     PositionX = reader.ReadInt16();
     PositionY = reader.ReadInt16();
     PositionZ = reader.ReadInt16();
 }
Beispiel #5
0
        public DynaEffectSmokeEmitter(Section_AHDR AHDR, Game game, Endianness endianness) : base(AHDR, DynaType.effect__smoke_emitter, game, endianness)
        {
            using (var reader = new EndianBinaryReader(AHDR.data, endianness))
            {
                reader.BaseStream.Position = dynaDataStartPosition;

                SmokeEmitterFlags.FlagValueInt = reader.ReadUInt32();
                AttachTo        = reader.ReadUInt32();
                _position       = new Vector3(reader.ReadSingle(), reader.ReadSingle(), reader.ReadSingle());
                _yaw            = reader.ReadSingle();
                _pitch          = reader.ReadSingle();
                _roll           = reader.ReadSingle();
                ScaleX          = reader.ReadSingle();
                ScaleY          = reader.ReadSingle();
                ScaleZ          = reader.ReadSingle();
                Texture_AssetID = reader.ReadUInt32();
                TextureRows     = reader.ReadUInt16();
                TextureColumns  = reader.ReadUInt16();
                Rate            = reader.ReadSingle();
                LifeMin         = reader.ReadSingle();
                LifeMax         = reader.ReadSingle();
                SizeMin         = reader.ReadSingle();
                SizeMax         = reader.ReadSingle();
                VelMin          = reader.ReadSingle();
                VelMax          = reader.ReadSingle();
                Growth          = reader.ReadSingle();
                VelDirX         = reader.ReadSingle();
                VelDirY         = reader.ReadSingle();
                VelDirZ         = reader.ReadSingle();
                VelDirVary      = reader.ReadSingle();
                Wind            = reader.ReadSingle();
                UnknownShort_68 = reader.ReadInt16();
                UnknownShort_6A = reader.ReadInt16();
                UnknownShort_6C = reader.ReadInt16();
                UnknownShort_6E = reader.ReadInt16();

                CreateTransformMatrix();
                AddToRenderableAssets(this);
            }
        }
Beispiel #6
0
        public AssetANIM(Section_AHDR AHDR, Game game, Endianness endianness) : base(AHDR, game, endianness)
        {
            using (var reader = new EndianBinaryReader(AHDR.data, endianness))
            {
                reader.ReadUInt32();
                Flags.FlagValueInt = reader.ReadUInt32();
                var boneCount = reader.ReadUInt16();
                var timeCount = reader.ReadUInt16();
                var keyCount  = reader.ReadUInt32();
                ScaleX = reader.ReadSingle();
                ScaleY = reader.ReadSingle();
                ScaleZ = reader.ReadSingle();

                var keyFrames = new List <AssetANIM_KeyFrame>();
                for (int i = 0; i < keyCount; i++)
                {
                    keyFrames.Add(new AssetANIM_KeyFrame(reader));
                }
                KeyFrames = keyFrames.ToArray();

                var times = new List <AssetSingle>();
                for (int i = 0; i < timeCount; i++)
                {
                    times.Add(reader.ReadSingle());
                }
                Times = times.ToArray();

                var offsets = new List <short[]>();
                for (int i = 0; i < timeCount - 1; i++)
                {
                    var offset = new List <short>();
                    for (int j = 0; j < boneCount; j++)
                    {
                        offset.Add(reader.ReadInt16());
                    }
                    offsets.Add(offset.ToArray());
                }
                Offsets = offsets.ToArray();
            }
        }
        public AssetGRUP(Section_AHDR AHDR, Game game, Endianness endianness) : base(AHDR, game, endianness)
        {
            using (var reader = new EndianBinaryReader(AHDR.data, endianness))
            {
                reader.BaseStream.Position = baseHeaderEndPosition;

                var itemCount = reader.ReadUInt16();
                ReceiveEventDelegation = (Delegation)reader.ReadInt16();

                GroupItems = new AssetID[itemCount];
                for (int i = 0; i < GroupItems.Length; i++)
                {
                    GroupItems[i] = reader.ReadUInt32();
                }
            }
        }
Beispiel #8
0
 public MinfReference(EndianBinaryReader reader)
 {
     Model_AssetID = reader.ReadUInt32();
     Flags         = reader.ReadUInt16();
     Parent        = reader.ReadByte();
     Bone          = reader.ReadByte();
     RightX        = reader.ReadSingle();
     RightY        = reader.ReadSingle();
     RightZ        = reader.ReadSingle();
     UpX           = reader.ReadSingle();
     UpY           = reader.ReadSingle();
     UpZ           = reader.ReadSingle();
     AtX           = reader.ReadSingle();
     AtY           = reader.ReadSingle();
     AtZ           = reader.ReadSingle();
     PosX          = reader.ReadSingle();
     PosY          = reader.ReadSingle();
     PosZ          = reader.ReadSingle();
 }
 public DashTrackPortal(EndianBinaryReader reader)
 {
     Vertex1 = reader.ReadUInt16();
     Vertex2 = reader.ReadUInt16();
     Vertex3 = reader.ReadUInt16();
 }
Beispiel #10
0
 public Line(EndianBinaryReader reader)
 {
     Vertex0 = reader.ReadUInt16();
     Vertex1 = reader.ReadUInt16();
 }
Beispiel #11
0
 public Motion(EndianBinaryReader reader) : this((MotionType)reader.ReadByte())
 {
     UseBanking = reader.ReadByte();
     MotionFlags.FlagValueShort = reader.ReadUInt16();
 }
Beispiel #12
0
 public zSurfColorFX(EndianBinaryReader reader)
 {
     Flags.FlagValueShort = reader.ReadUInt16();
     Mode  = reader.ReadInt16();
     Speed = reader.ReadSingle();
 }