Example #1
0
        /// <summary>
        /// Add a default sprite to the new document when Spritely is first launched.
        /// This is so that first-time users don't see an empty window - they can
        /// start editing their first sprite immediately.
        /// </summary>
        public void InitializeEmptyDocument()
        {
            // Palettes
            Palette16 pal = m_data.Palettes.AddPalette16(Options.DefaultPaletteName, 0, "");

            pal.SetDefaultPalette();

            // Spritesets
            Spriteset ss = m_data.Spritesets.AddSpriteset(Options.DefaultSpritesetName, Options.DefaultPaletteId, "", pal);

            // Add a single 2x2 sprite.
            ss.AddSprite(2, 2, "", -1, "", 0, null);
            ss.SelectFirstSprite();

            // Background palettes
            Palette16 bgpal = m_data.BackgroundPalettes.AddPalette16(Options.DefaultBgPaletteName, 0, "");

            bgpal.SetDefaultPalette();

            // Background tiles (bgsprites and bgtilegroups)
            Spriteset bss = m_data.BackgroundSpritesets.AddSpriteset(Options.DefaultBgTilesetName, Options.DefaultBgPaletteId, "", bgpal);

            // Add a single blank background tile.
            bss.AddSprite(1, 1, "", -1, "", 0, null);
            bss.SelectFirstSprite();

            // Background tile map
            m_data.BackgroundMaps.AddMap("map", 0, "", m_data.BackgroundSpritesets.Current);

            // The sprites we just added above don't count as document changes.
            HasUnsavedChanges = false;
        }
Example #2
0
        private bool LoadXML(XmlNodeList xnl)
        {
            m_fFoundSpritePalettes     = false;
            m_fFoundSprites            = false;
            m_fFoundBackgroundPalettes = false;
            m_fFoundBackgroundSprites  = false;
            m_fFoundBackgroundMap      = false;

            foreach (XmlNode xn in xnl)
            {
                // Old version 1 file format.
                if (xn.Name == "gba_tileset"
                    // Obsolete name for gba_tileset.
                    // No longer used - included for backwards compatibility.
                    || xn.Name == "gba_sprite_collection"
                    )
                {
                    if (!LoadXML_OLD_gba_tileset(xn.ChildNodes))
                    {
                        return(false);
                    }
                }

                // Version 2 files.
                if (xn.Name == "spritely")
                {
                    if (!LoadXML_spritely(xn))
                    {
                        return(false);
                    }
                }
            }

            if (!m_fFoundSpritePalettes)
            {
                Palette16 pal = m_doc.Palettes.AddPalette16(Options.DefaultPaletteName, 0, "");
                pal.SetDefaultPalette();
            }
            if (!m_fFoundSprites)
            {
                Palette pal = m_doc.Palettes.GetPalette(0);
                m_doc.Spritesets.AddSpriteset(Options.DefaultSpritesetName, Options.DefaultPaletteId, "", pal);
            }
            if (!m_fFoundBackgroundPalettes)
            {
                Palette16 bgpal = m_doc.BackgroundPalettes.AddPalette16(Options.DefaultBgPaletteName, 0, "");
                bgpal.SetDefaultPalette();
            }
            if (!m_fFoundBackgroundSprites)
            {
                Palette bgpal = m_doc.BackgroundPalettes.GetPalette(0);
                m_doc.BackgroundSpritesets.AddSpriteset(Options.DefaultBgPaletteName, Options.DefaultBgPaletteId, "", bgpal);
                m_doc.BackgroundSpritesets.Current.AddSprite(1, 1, "", -1, "", 0, null);
            }
            if (!m_fFoundBackgroundMap)
            {
                m_doc.BackgroundMaps.AddMap("map", 0, "", m_doc.BackgroundSpritesets.Current);
            }

            // Remove any UndoActions since we just loaded from a file.
            m_doc.Owner.ClearUndo();
            m_doc.RecordSnapshot();
            return(true);
        }