/// <summary>
        /// 
        /// </summary>
        /// <param name="packlist"></param>
        /// <returns></returns>
        public static byte[] GenerateIndexFile(ref CAlphaSpritePack[] packlist)
        {
            MemoryStream stream = new MemoryStream();
            stream.Position = 2;

            UInt16 sprcount = 0;
            UInt32 offset = 2;

            for (int q = 0; q < packlist.Length; q++)
            {
                sprcount += (UInt16)packlist[q].Sprites.Count;

                for (int i = 0; i < packlist[q].Sprites.Count; i++)
                {
                    stream.Write(BitConverter.GetBytes(offset), 0, 4);

                    offset += (UInt32)packlist[q].Sprites[i].ByteCount;

                    //packlist[i] = null;
                }
            }

            stream.Position = 0;
            stream.Write(BitConverter.GetBytes(sprcount), 0, 2);
            stream.Position = 0;

            byte[] file = new byte[stream.Length];
            stream.Read(file, 0, file.Length);

            return file;
        }
        public frmAlphaSpritePackBrowser(string title)
        {
            InitializeComponent();

            this.loadedASPK = new CAlphaSpritePack();

            this.Text = WindowManager.GetTitle(title, WindowManager.WindowType.SPKWindow);
        }
        /// <summary>
        /// Loads an Alpha Sprite Pack from an existing file.
        /// </summary>
        /// <param name="filename">The path of the alpha sprite pack file (.aspk)</param>
        /// <returns></returns>
        public static CAlphaSpritePack LoadFromFile(string filename)
        {
            DirectoryInfo dir = new DirectoryInfo(filename);

            CAlphaSpritePack aspk;

            FileStream filestream = File.Open(filename, FileMode.Open);

            //byte[] buffer = new byte[filestream.Length];
            //filestream.Read(buffer, 0, buffer.Length);

            aspk = new CAlphaSpritePack(ref filestream, dir.Name);

            filestream.Close();

            return aspk;
        }
        /// <summary>
        /// Loads an Alpha Sprite Pack from an existing file.
        /// </summary>
        /// <param name="filename">The path of the alpha sprite pack file (.aspk)</param>
        /// <returns></returns>
        public static CAlphaSpritePack LoadFromFile(string filename)
        {
            DirectoryInfo dir = new DirectoryInfo(filename);

            CAlphaSpritePack aspk;

            FileStream filestream = File.Open(filename, FileMode.Open);

            //byte[] buffer = new byte[filestream.Length];
            //filestream.Read(buffer, 0, buffer.Length);

            aspk = new CAlphaSpritePack(ref filestream, dir.Name);

            filestream.Close();

            return(aspk);
        }
        public frmAlphaSpritePackBrowser(CAlphaSpritePack aspk, string filename)
        {
            InitializeComponent();

            loadedASPK = aspk;
            dirInfo = new DirectoryInfo(filename);
            Text = WindowManager.GetTitle(dirInfo.Name, WindowManager.WindowType.SPKWindow);

            Image[] imgs = new Image[loadedASPK.Sprites.Count];

            pbSprite.Image = loadedASPK.Sprites[0].ToImage();

            foreach (CAlphaSprite spr in loadedASPK.Sprites)
            {
                lbSprites.Items.Add(spr.Name);
            }

            lbSprites.SelectedIndices.Add(0);

            UpdateStatusLabel();
        }