示例#1
0
 public void Unserialize(UndertaleReader reader)
 {
     EmptyString = reader.ReadUndertaleString();
     Name        = reader.ReadUndertaleString();
     ClassName   = reader.ReadUndertaleString();
     Files       = reader.ReadUndertaleObject <UndertalePointerList <ExtensionFile> >();
 }
 public void Unserialize(UndertaleReader reader)
 {
     InternalCount = reader.ReadInt32();
     if (InternalCount > 0)
     {
         Event = reader.ReadUndertaleString();
     }
 }
示例#3
0
 public void Unserialize(UndertaleReader reader)
 {
     Filename      = reader.ReadUndertaleString();
     CleanupScript = reader.ReadUndertaleString();
     InitScript    = reader.ReadUndertaleString();
     Kind          = (ExtensionKind)reader.ReadUInt32();
     Functions     = reader.ReadUndertaleObject <UndertalePointerList <ExtensionFunction> >();
 }
示例#4
0
 public void Unserialize(UndertaleReader reader)
 {
     Name      = reader.ReadUndertaleString();
     ID        = reader.ReadUInt32();
     Kind      = reader.ReadUInt32();
     RetType   = (ExtensionVarType)reader.ReadUInt32();
     ExtName   = reader.ReadUndertaleString();
     Arguments = reader.ReadUndertaleObject <UndertaleSimpleList <ExtensionFunctionArg> >();
 }
示例#5
0
 public override string ToString()
 {
     if (Name != null)
     {
         return(Name.Content + " (" + GetType().Name + ")");
     }
     else
     {
         Name = new UndertaleString("Texture Unknown Index");
     }
     return(Name.Content + " (" + GetType().Name + ")");
 }
 public override string ToString()
 {
     try
     {
         return(Name.Content + " (" + GetType().Name + ")");
     }
     catch
     {
         Name = new UndertaleString("EmbeddedSound Unknown Index");
     }
     return(Name.Content + " (" + GetType().Name + ")");
 }
        public void Unserialize(UndertaleReader reader)
        {
            Name = reader.ReadUndertaleString();

            // Read the pointers
            TexturePages = reader.ReadUndertaleObjectPointer <UndertaleSimpleResourcesList <UndertaleEmbeddedTexture, UndertaleChunkTXTR> >();
            Sprites      = reader.ReadUndertaleObjectPointer <UndertaleSimpleResourcesList <UndertaleSprite, UndertaleChunkSPRT> >();
            SpineSprites = reader.ReadUndertaleObjectPointer <UndertaleSimpleResourcesList <UndertaleSprite, UndertaleChunkSPRT> >();
            Fonts        = reader.ReadUndertaleObjectPointer <UndertaleSimpleResourcesList <UndertaleFont, UndertaleChunkFONT> >();
            Tilesets     = reader.ReadUndertaleObjectPointer <UndertaleSimpleResourcesList <UndertaleBackground, UndertaleChunkBGND> >();

            // Read the objects, throwing an error if the pointers are invalid
            reader.ReadUndertaleObject(TexturePages);
            reader.ReadUndertaleObject(Sprites);
            reader.ReadUndertaleObject(SpineSprites);
            reader.ReadUndertaleObject(Fonts);
            reader.ReadUndertaleObject(Tilesets);
        }
示例#8
0
        public void Unserialize(UndertaleReader reader)
        {
            Name = reader.ReadUndertaleString();

            // Read the pointers
            TexturePages = reader.ReadUndertaleObjectPointer <UndertaleSimpleResourcesList <UndertaleEmbeddedTexture, UndertaleChunkTXTR> >();
            Sprites      = reader.ReadUndertaleObjectPointer <UndertaleSimpleResourcesList <UndertaleSprite, UndertaleChunkSPRT> >();
            SpineSprites = reader.ReadUndertaleObjectPointer <UndertaleSimpleResourcesList <UndertaleSprite, UndertaleChunkSPRT> >();
            Fonts        = reader.ReadUndertaleObjectPointer <UndertaleSimpleResourcesList <UndertaleFont, UndertaleChunkFONT> >();
            Tilesets     = reader.ReadUndertaleObjectPointer <UndertaleSimpleResourcesList <UndertaleBackground, UndertaleChunkBGND> >();

            // Read the objects, throwing an error if the pointers are invalid
            if (reader.ReadUndertaleObject <UndertaleSimpleResourcesList <UndertaleEmbeddedTexture, UndertaleChunkTXTR> >() != TexturePages ||
                reader.ReadUndertaleObject <UndertaleSimpleResourcesList <UndertaleSprite, UndertaleChunkSPRT> >() != Sprites ||
                reader.ReadUndertaleObject <UndertaleSimpleResourcesList <UndertaleSprite, UndertaleChunkSPRT> >() != SpineSprites ||
                reader.ReadUndertaleObject <UndertaleSimpleResourcesList <UndertaleFont, UndertaleChunkFONT> >() != Fonts ||
                reader.ReadUndertaleObject <UndertaleSimpleResourcesList <UndertaleBackground, UndertaleChunkBGND> >() != Tilesets)
            {
                throw new UndertaleSerializationException("Invalid pointer to SimpleResourcesList");
            }
        }
示例#9
0
 public void Unserialize(UndertaleReader reader)
 {
     Name  = reader.ReadUndertaleString();
     Value = reader.ReadUndertaleString();
 }
            public void Unserialize(UndertaleReader reader)
            {
                // This reads the string content immediately, if necessary (which it should be)
                UndertaleString ForceReadString()
                {
                    UndertaleString res      = reader.ReadUndertaleString();
                    uint            returnTo = reader.Position;

                    reader.Position = reader.GetOffsetMapRev()[res];
                    reader.ReadUndertaleObject <UndertaleString>();
                    reader.Position = returnTo;
                    return(res);
                }

                ModelName       = ForceReadString();
                Name            = reader.ReadUndertaleString();
                BuiltinName     = reader.ReadInt32();
                Traits          = reader.ReadInt32();
                IsCreationTrack = reader.ReadBoolean();

                int tagCount      = reader.ReadInt32();
                int ownedResCount = reader.ReadInt32();
                int trackCount    = reader.ReadInt32();

                Tags = new List <int>();
                for (int i = 0; i < tagCount; i++)
                {
                    Tags.Add(reader.ReadInt32());
                }

                OwnedResources = new List <UndertaleResource>();
                for (int i = 0; i < ownedResCount; i++)
                {
                    GMAnimCurveString = ForceReadString();
                    if (GMAnimCurveString.Content != "GMAnimCurve")
                    {
                        throw new IOException("Expected GMAnimCurve");
                    }
                    UndertaleAnimationCurve res = new UndertaleAnimationCurve();
                    res.Unserialize(reader);
                    OwnedResources.Add(res);
                }

                Tracks = new List <Track>();
                for (int i = 0; i < trackCount; i++)
                {
                    Tracks.Add(reader.ReadUndertaleObject <Track>());
                }

                // Now, handle specific keyframe/etc. data
                switch (ModelName.Content)
                {
                case "GMAudioTrack":
                    Keyframes = reader.ReadUndertaleObject <AudioKeyframes>();
                    break;

                case "GMInstanceTrack":
                    Keyframes = reader.ReadUndertaleObject <InstanceKeyframes>();
                    break;

                case "GMGraphicTrack":
                    Keyframes = reader.ReadUndertaleObject <GraphicKeyframes>();
                    break;

                case "GMSequenceTrack":
                    Keyframes = reader.ReadUndertaleObject <SequenceKeyframes>();
                    break;

                case "GMSpriteFramesTrack":
                    Keyframes = reader.ReadUndertaleObject <SpriteFramesKeyframes>();
                    break;

                case "GMAssetTrack":     // TODO?
                    throw new NotImplementedException("GMAssetTrack not implemented, report this");

                case "GMBoolTrack":
                    Keyframes = reader.ReadUndertaleObject <BoolKeyframes>();
                    break;

                case "GMStringTrack":
                    Keyframes = reader.ReadUndertaleObject <StringKeyframes>();
                    break;

                // TODO?
                //case "GMIntTrack":
                //  Keyframes = reader.ReadUndertaleObject<IntKeyframes>();
                //  break;
                case "GMRealTrack":
                    Keyframes = reader.ReadUndertaleObject <RealKeyframes>();
                    break;
                }
            }
示例#11
0
 public void Unserialize(UndertaleReader reader)
 {
     Name         = reader.ReadUndertaleString();
     TextureEntry = reader.ReadUndertaleObjectPointer <UndertaleTexturePageItem>();
 }
示例#12
0
 public void Unserialize(UndertaleReader reader)
 {
     Index = reader.ReadUInt32();
     Name  = reader.ReadUndertaleString();
 }