Example #1
0
		public override void Serialize(GenericWriter writer)
		{
			base.Serialize(writer);
			int version = 1;								// current version (up to 4095)
			m_flags = m_flags | (SaveFlags)version;			// save the version and flags
			writer.Write((int)m_flags);

			// add your version specific stuffs here.
			// Make sure to use the SaveFlags for conditional Serialization
		}
Example #2
0
//        public LoadService()
//        {
////            this.textureFactory = textureFactory;
////            this.colorFactory = colorFactory;
//        }

        public virtual void ParseFiles(Dictionary <string, byte[]> files, IEngine engine, SaveFlags saveFlags)
        {
            Reset();

            var watch = Stopwatch.StartNew();

            // Save the engine so we can work with it during loading
            targetEngine = engine;

            // Step 1. Load the system snapshot
            if ((saveFlags & SaveFlags.System) == SaveFlags.System)
            {
                LoadSystem(files);
            }



            // Step 3 (optional). Look for new colors
            if ((saveFlags & SaveFlags.Colors) == SaveFlags.Colors)
            {
//                parser = LoadSystemColors(files);
//                if (parser != null)
//                    AddParser(parser);

                // Add the color parser
                parser = LoadColors(files);
                if (parser != null)
                {
                    AddParser(parser);
                }
            }

            // Step 4 (optional). Look for color map for sprites and tile map
            if ((saveFlags & SaveFlags.ColorMap) == SaveFlags.ColorMap)
            {
                // TODO this is a legacy parcer and should be depricated
                parser = LoadColorMap(files);
                if (parser != null)
                {
                    AddParser(parser);
                }

//                // This will be the new parser moving forward
//                parser = LoadColorPalette(files);
//                if(parser != null)
//                    AddParser(parser);

                // TODO need to rename SaveFlags.ColorMap to SaveFlags.ColorPalette
            }

            // Step 5 (optional). Look for new sprites
            if ((saveFlags & SaveFlags.Sprites) == SaveFlags.Sprites)
            {
                parser = LoadSprites(files);
                if (parser != null)
                {
                    AddParser(parser);
                }
            }


            // Step 6 (optional). Look for tile map to load
//            if ((saveFlags & SaveFlags.FlagColors) == SaveFlags.FlagColors) LoadFlagColors(files);

            // Step 6 (optional). Look for tile map to load
            if ((saveFlags & SaveFlags.Tilemap) == SaveFlags.Tilemap)
            {
                LoadTilemap(files);
            }

            // Step 7 (optional). Look for fonts to load
            if ((saveFlags & SaveFlags.Fonts) == SaveFlags.Fonts)
            {
                var fontExtension = ".font.png";

                var paths = files.Keys.Where(s => s.EndsWith(fontExtension)).ToArray();

                foreach (var fileName in paths)
                {
                    var fontName = fileName.Split('.')[0];

                    parser = LoadFont(fontName, files[fileName]);
                    if (parser != null)
                    {
                        AddParser(parser);
                    }
                }
            }

            // Step 8 (optional). Look for meta data and override the game
            if ((saveFlags & SaveFlags.Meta) == SaveFlags.Meta)
            {
                parser = LoadMetaData(files);
                if (parser != null)
                {
                    AddParser(parser);
                }
            }

            // Step 9 (optional). Look for meta data and override the game
            if ((saveFlags & SaveFlags.Sounds) == SaveFlags.Sounds)
            {
                LoadSounds(files);
            }

            // Step 10 (optional). Look for meta data and override the game
            if ((saveFlags & SaveFlags.Music) == SaveFlags.Music)
            {
                LoadMusic(files);
            }

            // Step 11 (optional). Look for meta data and override the game
            if ((saveFlags & SaveFlags.SaveData) == SaveFlags.SaveData)
            {
                LoadSaveData(files);
            }

            ParseExtraFileTypes(files, engine, saveFlags);

            totalParsers    = parsers.Count;
            currentParserID = 0;

            watch.Stop();

//            UnityEngine.Debug.Log("Parser Setup Time - " + watch.ElapsedMilliseconds);
        }
Example #3
0
        public virtual void ParseFiles(string[] files, IEngine engine, SaveFlags saveFlags)
        {
            Reset();

            // Save the engine so we can work with it during loading
            targetEngine = engine;

            // Step 1. Load the system snapshot
            if ((saveFlags & SaveFlags.System) == SaveFlags.System)
            {
                LoadSystem(files);
            }


            // Step 3 (optional). Look for new colors
            if ((saveFlags & SaveFlags.Colors) == SaveFlags.Colors)
            {
                // Add the color parser
                parser = LoadColors(files);
                if (parser != null)
                {
                    AddParser(parser);
                }
            }

            // Step 4 (optional). Look for color map for sprites and tile map
            if ((saveFlags & SaveFlags.ColorMap) == SaveFlags.ColorMap)
            {
                // TODO this is a legacy parcer and should be depricated
                parser = LoadColorMap(files);
                if (parser != null)
                {
                    AddParser(parser);
                }
            }

            // Step 5 (optional). Look for new sprites
            if ((saveFlags & SaveFlags.Sprites) == SaveFlags.Sprites)
            {
                parser = LoadSprites(files);
                if (parser != null)
                {
                    AddParser(parser);
                }
            }

            // Step 6 (optional). Look for tile map to load
            if ((saveFlags & SaveFlags.Tilemap) == SaveFlags.Tilemap)
            {
                LoadTilemap(files);
            }

            // Step 7 (optional). Look for fonts to load
            if ((saveFlags & SaveFlags.Fonts) == SaveFlags.Fonts)
            {
                var paths = files.Where(s => s.EndsWith(".font.png")).ToArray();

                foreach (var fileName in paths)
                {
                    // var fontName = GetFileName(fileName).Split('.').First();

                    var imageParser = new PNGFileReader(fileName, _fileLoadHelper, targetEngine.ColorChip.maskColor);

                    AddParser(new FontParser(imageParser, targetEngine.ColorChip, targetEngine.FontChip));

                    // parser = LoadFont(fontName, ReadAllBytes(fileName));
                    // if (parser != null)
                    //     AddParser(parser);
                }
            }

            // Step 8 (optional). Look for meta data and override the game
            if ((saveFlags & SaveFlags.Meta) == SaveFlags.Meta)
            {
                parser = LoadMetaData(files);
                if (parser != null)
                {
                    AddParser(parser);
                }
            }

            // Step 9 (optional). Look for meta data and override the game
            if ((saveFlags & SaveFlags.Sounds) == SaveFlags.Sounds)
            {
                LoadSounds(files);

                // Get all of the wav files
                var wavFiles = files.Where(x => x.EndsWith(".wav")).ToArray();

                if (wavFiles.Length > 0)
                {
                    AddParser(new WavParser(wavFiles, _fileLoadHelper, targetEngine));
                }
            }

            // Step 10 (optional). Look for meta data and override the game
            if ((saveFlags & SaveFlags.Music) == SaveFlags.Music)
            {
                LoadMusic(files);
            }

            // Step 11 (optional). Look for meta data and override the game
            if ((saveFlags & SaveFlags.SaveData) == SaveFlags.SaveData)
            {
                LoadSaveData(files);
            }

            // Step 12 (optional). Look for meta sprites
            if ((saveFlags & SaveFlags.MetaSprites) == SaveFlags.MetaSprites)
            {
                LoadMetaSprites(files);
            }

            ParseExtraFileTypes(files, engine, saveFlags);
        }
Example #4
0
 public virtual void ParseExtraFileTypes(string[] files, IEngine engine, SaveFlags saveFlags)
 {
     // TODO Override and add extra file parsers here.
 }
 public static ISaveFlags GetWrapper(SaveFlags src)
 {
     return(default(ISaveFlags));
 }
        public override void Deserialize(GenericReader reader)
        {
            int version = reader.ReadInt();

            switch (version)
            {
                case 6:
                    {
                        m_flags = (SaveFlags)reader.ReadInt32();
                        goto case 5;
                    }
                case 5:
                    {
                        // versions < 6 always read Design & Backup
                        if (version < 6)
                        {
                            m_flags |= SaveFlags.DesignState_Design;
                            m_flags |= SaveFlags.DesignState_Backup;
                        }
                        goto case 4;
                    }
                case 4:
                    {
                        m_Signpost = reader.ReadItem();
                        m_SignpostGraphic = reader.ReadInt();
                        goto case 3;
                    }
                case 3:
                    {
                        m_Type = (FoundationType)reader.ReadInt();
                        goto case 2;
                    }
                case 2:
                    {
                        m_SignHanger = reader.ReadItem();
                        goto case 1;
                    }
                case 1:
                    {
                        if (version < 5)
                            m_DefaultPrice = reader.ReadInt();

                        goto case 0;
                    }
                case 0:
                    {
                        if (version < 3)
                            m_Type = FoundationType.Stone;

                        if (version < 4)
                            m_SignpostGraphic = 9;

                        m_LastRevision = reader.ReadInt();
                        m_Fixtures = reader.ReadItemList();

                        m_Current = new DesignState(this, reader);

                        if ((m_flags & SaveFlags.DesignState_Design) != 0)
                            m_Design = new DesignState(this, reader);

                        if ((m_flags & SaveFlags.DesignState_Backup) != 0)
                            m_Backup = new DesignState(this, reader);

                        break;
                    }
            }

            base.Deserialize(reader);
        }
Example #7
0
        public string Save(string title,
                           string section,
                           string text,
                           string summary,
                           MinorFlags minor,
                           CreateFlags create,
                           WatchFlags watch,
                           SaveFlags mode,
                           bool bot,
                           string basetimestamp,
                           string starttimestamp,
                           string token)
        {
            if (string.IsNullOrEmpty(title))
            {
                throw new ArgumentException("Title shouldn't be empty.", "title");
            }
            if (string.IsNullOrEmpty(token))
            {
                throw new ArgumentException("Token shouldn't be empty.", "token");
            }

            ParameterCollection parameters = new ParameterCollection
            {
                { "title", title },
                { "token", token }
            };
            if (mode == SaveFlags.Replace && !string.IsNullOrEmpty(section))
            {
                parameters.Add("section", section);
            }
            if (minor != MinorFlags.None)
            {
                parameters.Add(minor.ToString().ToLower());
            }
            if (create != CreateFlags.None)
            {
                parameters.Add(create.ToString().ToLower());
            }
            if (watch != WatchFlags.None)
            {
                parameters.Add("watchlist", watch.ToString().ToLower());
            }
            if (mode == SaveFlags.Append)
            {
                parameters.Add("appendtext", text);
            }
            else if (mode == SaveFlags.Prepend)
            {
                parameters.Add("prependtext", text);
            }
            else
            {
                parameters.Add("text", text);
            }
            if (bot)
            {
                parameters.Add("bot");
            }
            if (!string.IsNullOrEmpty(basetimestamp))
            {
                parameters.Add("basetimestamp", basetimestamp);
            }
            if (!string.IsNullOrEmpty(starttimestamp))
            {
                parameters.Add("starttimestamp", starttimestamp);
            }
            if (!string.IsNullOrEmpty(summary))
            {
                parameters.Add("summary", summary);
            }

            try
            {
                XmlDocument xml = MakeRequest(Action.Edit, parameters);
                XmlNode result = xml.SelectSingleNode("//edit[@newrevid]");
                if (result != null)
                {
                    return result.Attributes["newrevid"].Value;
                }
            }
            catch (WebException e)
            {
                throw new WikiException("Saving failed", e);
            }
            return null;
        }
Example #8
0
 public void Save(SaveFlags flags)
 {
 }
Example #9
0
        public override void ParseExtraFileTypes(Dictionary <string, byte[]> files, IEngine engine, SaveFlags saveFlags)
        {
            // Step 2 (optional). Load up the Lua script
            if ((saveFlags & SaveFlags.Code) == SaveFlags.Code)
            {
                //var scriptExtension = ".lua";

                var paths = files.Keys.Where(s => textExtensions.Any(x => s.EndsWith(x))).ToList();

                foreach (var fileName in paths)
                {
                    parser = LoadScript(fileName, files[fileName]);
                    AddParser(parser);
                }
            }
        }
 /// <summary>
 /// Saves the <see cref="PdfDocument"/> to the file system.
 /// </summary>
 /// <param name="version">
 /// The new PDF file version of the saved file.
 /// 14 for 1.4, 15 for 1.5, etc. Values smaller than 10 are ignored.
 /// </param>
 public bool Save(string filename, SaveFlags flags = SaveFlags.None, int version = 0)
 {
     using (var stream = new FileStream(filename, FileMode.Create))
         return(Save(stream, flags, version));
 }
 /// <summary>
 /// Saves the <see cref="PdfDocument"/> to a <paramref name="stream"/>.
 /// </summary>
 /// <param name="version">
 /// The new PDF file version of the saved file.
 /// 14 for 1.4, 15 for 1.5, etc. Values smaller than 10 are ignored.
 /// </param>
 public bool Save(Stream stream, SaveFlags flags = SaveFlags.None, int version = 0)
 {
     return(PDFium.FPDF_SaveAsCopy(Handle, stream, flags, version));
 }
Example #12
0
        public void ParseFiles(Dictionary <string, byte[]> files, IEngine engine, SaveFlags saveFlags)
        {
            Reset();

            var watch = Stopwatch.StartNew();

            // Save the engine so we can work with it during loading
            targetEngine = engine;

            // Step 1. Load the system snapshot
            if ((saveFlags & SaveFlags.System) == SaveFlags.System)
            {
                LoadSystem(files);
            }

            // Step 2 (optional). Load up the Lua script
            if ((saveFlags & SaveFlags.Code) == SaveFlags.Code)
            {
                //var scriptExtension = ".lua";

                var paths = files.Keys.Where(s => textExtensions.Any(x => s.EndsWith(x))).ToList();

                foreach (var fileName in paths)
                {
                    parser = LoadScript(fileName, files[fileName]);
                    AddParser(parser);
                }
            }

            // Step 3 (optional). Look for new colors
            if ((saveFlags & SaveFlags.Colors) == SaveFlags.Colors)
            {
                parser = LoadColors(files);
                if (parser != null)
                {
                    AddParser(parser);
                }
            }

            // Step 4 (optional). Look for color map for sprites and tile map
            if ((saveFlags & SaveFlags.ColorMap) == SaveFlags.ColorMap)
            {
                parser = LoadColorMap(files);
                if (parser != null)
                {
                    AddParser(parser);
                }
            }

            // Step 5 (optional). Look for new sprites
            if ((saveFlags & SaveFlags.Sprites) == SaveFlags.Sprites)
            {
                parser = LoadSprites(files);
                if (parser != null)
                {
                    AddParser(parser);
                }
            }


            // Step 6 (optional). Look for tile map to load
            if ((saveFlags & SaveFlags.FlagColors) == SaveFlags.FlagColors)
            {
                LoadFlagColors(files);
            }

            // Step 6 (optional). Look for tile map to load
            if ((saveFlags & SaveFlags.Tilemap) == SaveFlags.Tilemap)
            {
                LoadTilemap(files);
            }

            // Step 7 (optional). Look for fonts to load
            if ((saveFlags & SaveFlags.Fonts) == SaveFlags.Fonts)
            {
                var fontExtension = ".font.png";

                var paths = files.Keys.Where(s => s.EndsWith(fontExtension)).ToArray();

                foreach (var fileName in paths)
                {
                    var fontName = fileName.Split('.')[0];

                    parser = LoadFont(fontName, files[fileName]);
                    if (parser != null)
                    {
                        AddParser(parser);
                    }
                }
            }

            // Step 8 (optional). Look for meta data and override the game
            if ((saveFlags & SaveFlags.Meta) == SaveFlags.Meta)
            {
                parser = LoadMetaData(files);
                if (parser != null)
                {
                    AddParser(parser);
                }
            }

            // Step 9 (optional). Look for meta data and override the game
            if ((saveFlags & SaveFlags.Sounds) == SaveFlags.Sounds)
            {
                LoadSounds(files);
//                if (parser != null)
//                    AddParser(parser);
            }

            // Step 10 (optional). Look for meta data and override the game
            if ((saveFlags & SaveFlags.Music) == SaveFlags.Music)
            {
                LoadMusic(files);
//                if (parser != null)
//                    AddParser(parser);
            }

            // Step 11 (optional). Look for meta data and override the game
            if ((saveFlags & SaveFlags.SaveData) == SaveFlags.SaveData)
            {
                LoadSaveData(files);
//                if (parser != null)
//                    AddParser(parser);
            }

            totalParsers    = parsers.Count;
            currentParserID = 0;

            watch.Stop();

//            UnityEngine.Debug.Log("Parser Setup Time - " + watch.ElapsedMilliseconds);
        }
Example #13
0
        public void ExportGame(string path, IEngine engine, SaveFlags saveFlags, bool useSteps = true)
        {
            Clear();

            // Save the engine so we can work with it during loading
            targetEngine = engine;

            // Step 1. Load the system snapshot
            if ((saveFlags & SaveFlags.System) == SaveFlags.System)
            {
                AddExporter(new SystemExporter(path + "data.json", targetEngine));
            }

            // Step 3 (optional). Look for new colors
            if ((saveFlags & SaveFlags.Colors) == SaveFlags.Colors)
            {
                var colorChip = targetEngine.ColorChip;

                AddExporter(new ColorPaletteExporter(path + "colors.png", colorChip, new PNGWriter()));
            }

            // Step 4 (optional). Look for color map for sprites and tile map
            if ((saveFlags & SaveFlags.ColorMap) == SaveFlags.ColorMap)
            {
                if (targetEngine.GetChip(ColorMapParser.chipName, false) is ColorChip colorChip)
                {
                    AddExporter(new ColorPaletteExporter(path + "color-map.png", colorChip, new PNGWriter()));
                }
            }

            // Step 5 (optional). Look for new sprites
            if ((saveFlags & SaveFlags.Sprites) == SaveFlags.Sprites)
            {
                //                Console.WriteLine("Export Sprite");

                var imageExporter = new PNGWriter();

                AddExporter(new SpriteExporter(path + "sprites.png", targetEngine, imageExporter));
            }

            // Step 7 (optional). Look for fonts to load
            if ((saveFlags & SaveFlags.Fonts) == SaveFlags.Fonts)
            {
                var fontChip       = targetEngine.FontChip;
                var spriteChip     = targetEngine.SpriteChip;
                var tmpTextureData = new TextureData(96, 64);

                var fonts = fontChip.fonts;

                foreach (var font in fonts)
                {
                    var name    = font.Key;
                    var sprites = font.Value;

                    // Clear the texture
                    tmpTextureData.Clear();

                    // Loop through all the characters and copy their texture data over
                    var total = sprites.Length;
                    for (var i = 0; i < total; i++)
                    {
                    }
                }
            }

            if ((saveFlags & SaveFlags.Tilemap) == SaveFlags.Tilemap)
            {
                AddExporter(new TilemapJsonExporter(path + "tilemap.json", targetEngine));
            }

            // Step 8 (optional). Look for meta data and override the game
            if ((saveFlags & SaveFlags.Meta) == SaveFlags.Meta)
            {
                AddExporter(new MetadataExporter(path + "info.json", targetEngine));
            }

            // Step 9 (optional). Look for meta data and override the game
            if ((saveFlags & SaveFlags.Sounds) == SaveFlags.Sounds)
            {
                AddExporter(new SoundExporter(path + "sounds.json", targetEngine));
            }

            // Step 10 (optional). Look for meta data and override the game
            if ((saveFlags & SaveFlags.Music) == SaveFlags.Music)
            {
                AddExporter(new MusicExporter(path + "music.json", targetEngine));
            }

            // Step 11 (optional). Look for meta data and override the game
            if ((saveFlags & SaveFlags.SaveData) == SaveFlags.SaveData)
            {
                AddExporter(new SavedDataExporter(path + "saves.json", targetEngine));
            }

            // Step 11 (optional). Look for meta data and override the game
            if ((saveFlags & SaveFlags.MetaSprites) == SaveFlags.MetaSprites)
            {
                AddExporter(new MetaSpriteExporter(path + "meta-sprites.json", targetEngine));
            }

            StartExport(useSteps);
        }
Example #14
0
 public virtual void ParseExtraFileTypes(Dictionary <string, byte[]> files, IEngine engine, SaveFlags saveFlags)
 {
     // TODO Override and add extra file parsers here.
 }
 /// <summary>
 /// Parse the RopSaveChangesMessageRequest structure.
 /// </summary>
 /// <param name="s">An stream containing RopSaveChangesMessageRequest structure.</param>
 public override void Parse(Stream s)
 {
     base.Parse(s);
     this.RopId = (RopIdType)ReadByte();
     this.LogonId = ReadByte();
     this.ResponseHandleIndex = ReadByte();
     this.InputHandleIndex = ReadByte();
     this.SaveFlags = (SaveFlags)ReadByte();
 }
Example #16
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            int version = reader.ReadInt();

            switch (version)
            {
            case 4:
            {
                m_SecureLevel = (SecureLevel)reader.ReadInt();
                goto case 3;
            }

            case 3:
            case 2:
            {
                BookContent content = this.DefaultContent;

                SaveFlags flags = (SaveFlags)reader.ReadByte();

                if ((flags & SaveFlags.Title) != 0)
                {
                    m_Title = Utility.Intern(reader.ReadString());
                }
                else if (content != null)
                {
                    m_Title = content.Title;
                }

                if ((flags & SaveFlags.Author) != 0)
                {
                    m_Author = reader.ReadString();
                }
                else if (content != null)
                {
                    m_Author = content.Author;
                }

                m_Writable = (flags & SaveFlags.Writable) != 0;

                if ((flags & SaveFlags.Content) != 0)
                {
                    m_Pages = new BookPageInfo[reader.ReadEncodedInt()];

                    for (int i = 0; i < m_Pages.Length; ++i)
                    {
                        m_Pages[i] = new BookPageInfo(reader);
                    }
                }
                else
                {
                    if (content != null)
                    {
                        m_Pages = content.Copy();
                    }
                    else
                    {
                        m_Pages = new BookPageInfo[0];
                    }
                }

                break;
            }

            case 1:
            case 0:
            {
                m_Title    = reader.ReadString();
                m_Author   = reader.ReadString();
                m_Writable = reader.ReadBool();

                if (version == 0 || reader.ReadBool())
                {
                    m_Pages = new BookPageInfo[reader.ReadInt()];

                    for (int i = 0; i < m_Pages.Length; ++i)
                    {
                        m_Pages[i] = new BookPageInfo(reader);
                    }
                }
                else
                {
                    BookContent content = this.DefaultContent;

                    if (content != null)
                    {
                        m_Pages = content.Copy();
                    }
                    else
                    {
                        m_Pages = new BookPageInfo[0];
                    }
                }

                break;
            }
            }

            if (version < 3 && (Weight == 1 || Weight == 2))
            {
                Weight = -1;
            }
        }
Example #17
0
 private bool GetFlag(SaveFlags flag)
 {
     return((m_SaveFlags & flag) != 0);
 }
Example #18
0
 public string Save(string title,
                    string section,
                    string text,
                    string summary,
                    MinorFlags minor,
                    CreateFlags create,
                    WatchFlags watch,
                    SaveFlags mode,
                    bool bot)
 {
     ParameterCollection parameters = new ParameterCollection
     {
         { "prop", "info" },
         { "intoken", "edit" }
     };
     XmlDocument doc = Query(QueryBy.Titles, parameters, title);
     XmlNode pageNode = doc.SelectSingleNode("//page");
     string token = pageNode != null ? pageNode.Attributes["edittoken"].Value : "";
     return Save(title,
                 section,
                 text,
                 summary,
                 minor,
                 create,
                 watch,
                 mode,
                 bot,
                 "",
                 "",
                 token);
 }
Example #19
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);
            int version = reader.ReadInt();                             // version

            m_SaveFlags = ReadSaveFlags(reader, version);               // always follows version

            /* begin normal Deserialize here */

            switch (version)
            {
            case 10:
            {
                if (GetFlag(SaveFlags.HasOBAlignment))
                {
                    m_IOBAlignment = (IOBAlignment)reader.ReadInt();
                }
                goto case 9;
            }

            case 9:
            {
                m_Owner = reader.ReadMobile();
                goto case 8;
            }

            case 8:
            {
                m_Trapper = reader.ReadMobile();
                goto case 7;
            }

            case 7:
            {
                m_TrapLevel = reader.ReadInt();
                goto case 6;
            }

            case 6:
            {
                m_OldTrapPower = reader.ReadInt();
                goto case 5;
            }

            case 5:
            {
                goto case 4;
            }

            case 4:
            {
                m_Enabled = reader.ReadBool();
                goto case 3;
            }

            case 3:
            {
                if (version < 5)
                {
                    reader.ReadBool();                                          // deco field
                }
                goto case 2;
            }

            case 2:
            {
                if (version <= 7)
                {
                    reader.ReadBool();                                          // m_TinkerMade
                }
                m_OldTrapType = (TrapType)reader.ReadInt();
                goto case 1;
            }

            case 1:
            {
                m_TrapPower = reader.ReadInt();
                if (version < 6)
                {
                    m_OldTrapPower = m_TrapPower;
                }
                goto case 0;
            }

            case 0:
            {
                m_TrapType = (TrapType)reader.ReadInt();

                break;
            }
            }

            if (version < 7)
            {                   // I guess this is reasonable
                                // Example: a level 5 trap is TrapPower 5*25, and the TrapLevel is 5
                                //	therfore a reasonable m_TrapLevel is TrapPower / 25
                m_TrapLevel = TrapPower / 25;
            }
        }
Example #20
0
		public override void Deserialize(GenericReader reader)
		{
			base.Deserialize(reader);
			m_flags = (SaveFlags)reader.ReadInt();				// grab the version an flags
			int version = (int)(m_flags & (SaveFlags)0xFFF);	// maskout the version

			// add your version specific stuffs here.
			// Make sure to use the SaveFlags for conditional Serialization
			switch (version)
			{
				default: break;
			}

		}
Example #21
0
        public override void Serialize(GenericWriter writer)
        {
            int version = 6;
            writer.Write(version); // version

            // set the save flags.
            // clear
            m_flags &= ~SaveFlags.DesignState_Design;
            m_flags &= ~SaveFlags.DesignState_Backup;
            // set
            if (m_Design != null) m_flags |= SaveFlags.DesignState_Design;
            if (m_Backup != null) m_flags |= SaveFlags.DesignState_Backup;

            // version 6
            writer.WriteInt32((int)m_flags);

            writer.Write(m_Signpost);
            writer.Write((int)m_SignpostGraphic);

            writer.Write((int)m_Type);

            writer.Write(m_SignHanger);

            writer.Write((int)m_LastRevision);
            writer.WriteItemList(m_Fixtures, true);

            CurrentState.Serialize(writer);

            if ((m_flags & SaveFlags.DesignState_Design) != 0)
                DesignState.Serialize(writer);

            if ((m_flags & SaveFlags.DesignState_Backup) != 0)
                BackupState.Serialize(writer);

            base.Serialize(writer);
        }