Example #1
0
        public AssetSHRP(Section_AHDR AHDR, Game game, Endianness endianness) : base(AHDR, game, endianness)
        {
            using (var reader = new EndianBinaryReader(AHDR.data, endianness))
            {
                int amountOfEntries = reader.ReadInt32();
                AssetID_Internal = reader.ReadUInt32();
                Unknown          = reader.ReadInt32();
                SHRPEntries      = new EntrySHRP[amountOfEntries];

                for (int i = 0; i < SHRPEntries.Length; i++)
                {
                    int entryType = reader.ReadInt32();

                    EntrySHRP entry = null;

                    if (entryType == 3)
                    {
                        if (game == Game.BFBB)
                        {
                            entry = new EntrySHRP_Type3_BFBB(reader);
                        }
                        else if (game == Game.Incredibles)
                        {
                            entry = new EntrySHRP_Type3_TSSM(reader);
                        }
                    }
                    else if (entryType == 4)
                    {
                        if (game == Game.BFBB)
                        {
                            entry = new EntrySHRP_Type4_BFBB(reader);
                        }
                        else if (game == Game.Incredibles)
                        {
                            entry = new EntrySHRP_Type4_TSSM(reader);
                        }
                    }
                    else if (entryType == 5)
                    {
                        if (game == Game.BFBB)
                        {
                            entry = new EntrySHRP_Type5_BFBB(reader);
                        }
                        else if (game == Game.Incredibles)
                        {
                            entry = new EntrySHRP_Type5_TSSM(reader);
                        }
                    }
                    else if (entryType == 6)
                    {
                        if (game == Game.BFBB)
                        {
                            entry = new EntrySHRP_Type6_BFBB(reader);
                        }
                        else if (game == Game.Incredibles)
                        {
                            entry = new EntrySHRP_Type6_TSSM(reader);
                        }
                    }
                    else if (entryType == 8)
                    {
                        entry = new EntrySHRP_Type8(reader);
                    }
                    else if (entryType == 9)
                    {
                        entry = new EntrySHRP_Type9(reader);
                    }
                    else
                    {
                        throw new Exception("Unknown SHRP entry type " + entryType.ToString() + " found in asset " + ToString() + ". This SHRP asset cannot be edited by Industrial Park.");
                    }

                    SHRPEntries[i] = entry;
                }
            }
        }
Example #2
0
        public DynaEffectParticleGenerator(Section_AHDR AHDR, Game game, Endianness endianness) : base(AHDR, DynaType.Effect__particle_generator, game, endianness)
        {
            using (var reader = new EndianBinaryReader(AHDR.data, endianness))
            {
                reader.BaseStream.Position = dynaDataStartPosition;

                ParticleGeneratorFlags.FlagValueByte = reader.ReadByte();
                AttachFlags.FlagValueByte            = reader.ReadByte();
                MotionFlags.FlagValueByte            = reader.ReadByte();
                VolumeFlags.FlagValueByte            = reader.ReadByte();
                Rate            = reader.ReadSingle();
                Texture_AssetID = reader.ReadUInt32();
                AttachType      = (DynaEffectParticleGeneratorAttachType)reader.ReadByte();
                MotionType      = (DynaEffectParticleGeneratorMotionType)reader.ReadByte();
                VolumeType      = (DynaEffectParticleGeneratorVolumeType)reader.ReadByte();
                SystemType      = reader.ReadByte();
                _position       = new Vector3(reader.ReadSingle(), reader.ReadSingle(), reader.ReadSingle());
                _yaw            = reader.ReadSingle();
                _pitch          = reader.ReadSingle();
                _roll           = reader.ReadSingle();

                Entity_AssetID = reader.ReadUInt32();
                if (AttachType == DynaEffectParticleGeneratorAttachType.attach_entity_tag)
                {
                    AttachEntityTagX = reader.ReadSingle();
                    AttachEntityTagY = reader.ReadSingle();
                    AttachEntityTagZ = reader.ReadSingle();
                }
                else
                {
                    Bone = reader.ReadByte();
                    reader.BaseStream.Position += 11;
                }

                MotionSpiralFlags.FlagValueByte = reader.ReadByte();
                Points = reader.ReadByte();
                reader.BaseStream.Position += 2;
                RadiusInner = reader.ReadSingle();
                RadiusOuter = reader.ReadSingle();
                Duration    = reader.ReadSingle();
                Frequency   = reader.ReadSingle();

                if (VolumeType == DynaEffectParticleGeneratorVolumeType.volume_point)
                {
                    reader.BaseStream.Position += 12;
                }
                else if (VolumeType == DynaEffectParticleGeneratorVolumeType.volume_sphere || VolumeType == DynaEffectParticleGeneratorVolumeType.volume_circle)
                {
                    Radius                      = reader.ReadSingle();
                    CircleArcLength             = reader.ReadSingle();
                    reader.BaseStream.Position += 4;
                }
                else if (VolumeType == DynaEffectParticleGeneratorVolumeType.volume_line)
                {
                    LineFlags.FlagValueByte     = reader.ReadByte();
                    reader.BaseStream.Position += 3;
                    LineRadius = reader.ReadSingle();
                    LineLength = reader.ReadSingle();
                }
                else if (VolumeType == DynaEffectParticleGeneratorVolumeType.volume_model)
                {
                    ModelFlags.FlagValueByte    = reader.ReadByte();
                    ModelExclude                = reader.ReadByte();
                    reader.BaseStream.Position += 2;
                    ModelExpand = reader.ReadSingle();
                    reader.BaseStream.Position += 4;
                }

                UnknownFlags.FlagValueInt = reader.ReadUInt32();

                Unknown01    = reader.ReadSingle();
                Unknown02    = reader.ReadSingle();
                Unknown03    = reader.ReadSingle();
                Unknown04    = reader.ReadSingle();
                Unknown05    = reader.ReadSingle();
                Unknown06    = reader.ReadSingle();
                Unknown07    = reader.ReadSingle();
                Unknown08    = reader.ReadSingle();
                Unknown09    = reader.ReadSingle();
                Unknown10    = reader.ReadSingle();
                Unknown11    = reader.ReadSingle();
                Unknown12    = reader.ReadSingle();
                Unknown13    = reader.ReadSingle();
                Unknown14    = reader.ReadSingle();
                Unknown15    = reader.ReadSingle();
                UnknownColor = reader.ReadColor();
                Unknown16    = reader.ReadSingle();
                Unknown17    = reader.ReadSingle();

                CreateTransformMatrix();
                AddToRenderableAssets(this);
            }
        }
 public CamSpecific_Path(EndianBinaryReader reader)
 {
     Unknown_AssetID = reader.ReadUInt32();
     TimeEnd         = reader.ReadSingle();
     TimeDelay       = reader.ReadSingle();
 }
 public PareSpecific_tagEmitVolume(EndianBinaryReader reader)
 {
     VolumeAssetID = reader.ReadUInt32();
 }
Example #5
0
 public EntrySHDW(EndianBinaryReader reader)
 {
     ModelAssetID       = reader.ReadUInt32();
     ShadowModelAssetID = reader.ReadUInt32();
     Unknown            = reader.ReadInt32();
 }
Example #6
0
        public AssetSURF(Section_AHDR AHDR, Game game, Endianness endianness) : base(AHDR, game, endianness)
        {
            using (var reader = new EndianBinaryReader(AHDR.data, endianness))
            {
                reader.BaseStream.Position = baseHeaderEndPosition;

                DamageType  = reader.ReadByte();
                Sticky      = reader.ReadByte();
                DamageFlags = reader.ReadByte();
                SurfaceType = reader.ReadByte();
                Phys_Pad    = reader.ReadByte();
                SlideStart  = reader.ReadByte();
                SlideStop   = reader.ReadByte();
                PhysicsFlags.FlagValueByte = reader.ReadByte();
                Friction     = reader.ReadSingle();
                zSurfMatFX   = new zSurfMatFX(reader);
                zSurfColorFX = new zSurfColorFX(reader);
                TextureAnimFlags.FlagValueInt = reader.ReadUInt32();
                zSurfTextureAnim1             = new zSurfTextureAnim(reader);
                zSurfTextureAnim2             = new zSurfTextureAnim(reader);
                UVEffectsFlags.FlagValueInt   = reader.ReadUInt32();
                zSurfUVFX = new zSurfUVFX(reader);

                if (game != Game.Scooby)
                {
                    zSurfUVFX2 = new zSurfUVFX(reader);
                    On         = reader.ReadByte();
                    reader.ReadByte();
                    reader.ReadByte();
                    reader.ReadByte();
                }
                else
                {
                    zSurfUVFX2 = null;
                }

                OutOfBoundsDelay = reader.ReadSingle();
                WalljumpScaleXZ  = reader.ReadSingle();
                WalljumpScaleY   = reader.ReadSingle();
                DamageTimer      = reader.ReadSingle();
                DamageBounce     = reader.ReadSingle();

                if (game == Game.Scooby)
                {
                    UnknownInt = reader.ReadInt32();
                    On         = reader.ReadByte();
                    reader.ReadByte();
                    reader.ReadByte();
                    reader.ReadByte();
                }

                if (game == Game.Incredibles)
                {
                    ImpactSound_AssetID = reader.ReadUInt32();
                    DashImpactType      = reader.ReadByte();
                    reader.ReadByte();
                    reader.ReadByte();
                    reader.ReadByte();
                    DashImpactThrowBack = reader.ReadSingle();
                    DashSprayMagnitude  = reader.ReadSingle();
                    DashCoolRate        = reader.ReadSingle();
                    DashCoolAmount      = reader.ReadSingle();
                    DashPass            = reader.ReadSingle();
                    DashRampMaxDistance = reader.ReadSingle();
                    DashRampMinDistance = reader.ReadSingle();
                    DashRampKeySpeed    = reader.ReadSingle();
                    DashRampMaxHeight   = reader.ReadSingle();
                    DashRampTarget_MovePoint_AssetID = reader.ReadUInt32();
                    DamageAmount        = reader.ReadInt32();
                    HitSourceDamageType = (zHitSource)reader.ReadInt32();
                    OffSurface          = new zFootstepsData(reader);
                    OnSurface           = new zFootstepsData(reader);
                    HitDecalData0       = new zHitDecalData(reader);
                    HitDecalData1       = new zHitDecalData(reader);
                    HitDecalData2       = new zHitDecalData(reader);
                    OffSurfaceTime      = reader.ReadSingle();
                    SwimmableSurface    = reader.ReadByte();
                    DashFall            = reader.ReadByte();
                    NeedButtonPress     = reader.ReadByte();
                    DashAttack          = reader.ReadByte();
                    FootstepDecals      = reader.ReadByte();
                    reader.ReadInt32();
                    DrivingSurfaceType = reader.ReadByte();
                    reader.ReadByte();
                    reader.ReadByte();
                }
            }
        }
Example #7
0
 public zHitDecalData(EndianBinaryReader reader)
 {
     Texture_AssetID = reader.ReadUInt32();
     SizeX           = reader.ReadSingle();
     SizeY           = reader.ReadSingle();
 }
 public EntrySoundInfo_GCN_V1(EndianBinaryReader reader)
 {
     SoundHeader  = reader.ReadBytes(0x60);
     SoundAssetID = reader.ReadUInt32();
 }
Example #9
0
 public EntryCOLL(EndianBinaryReader reader)
 {
     ModelAssetID                 = reader.ReadUInt32();
     Collision_ModelAssetID       = reader.ReadUInt32();
     CameraCollision_ModelAssetID = reader.ReadUInt32();
 }
 public PlatSpecific_FallingPlatform(EndianBinaryReader reader)
 {
     Speed             = reader.ReadSingle();
     BustModel_AssetID = reader.ReadUInt32();
 }