Ejemplo n.º 1
0
        /// <summary>
        /// Loads a U8 file.
        /// </summary>
        /// <param name="u8File"></param>
        /// <returns></returns>
        public static U8 Load(Stream u8File)
        {
            U8 u = new U8();

            u.parseU8(u8File);
            return(u);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Creates a U8 file.
        /// </summary>
        /// <param name="pathToDirectory"></param>
        /// <returns></returns>
        public static U8 FromDirectory(string pathToDirectory)
        {
            U8 u = new U8();

            u.createFromDir(pathToDirectory);
            return(u);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Gets all TPLs that are required by the brlyt.
        /// </summary>
        /// <param name="wad"></param>
        /// <param name="banner"></param>
        /// <returns></returns>
        public static string[] GetBrlytTpls(WAD wad, bool banner)
        {
            if (!wad.HasBanner)
            {
                return(new string[0]);
            }

            string bannerName = "banner";

            if (!banner)
            {
                bannerName = "icon";
            }

            for (int i = 0; i < wad.BannerApp.Nodes.Count; i++)
            {
                if (wad.BannerApp.StringTable[i].ToLower() == bannerName + ".bin")
                {
                    U8       bannerFile = U8.Load(wad.BannerApp.Data[i]);
                    string[] tpls       = new string[0];

                    for (int y = 0; y < bannerFile.Nodes.Count; y++)
                    {
                        if (bannerFile.StringTable[y].ToLower() == bannerName + ".brlyt")
                        {
                            tpls = Shared.MergeStringArrays(tpls, getBrlytTpls(bannerFile.Data[y]));
                        }
                    }

                    return(tpls);
                }
            }

            return(new string[0]);
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Gets all TPLs that are required by the brlyt.
        /// </summary>
        /// <param name="wad"></param>
        /// <param name="banner"></param>
        /// <returns></returns>
        public static string[] GetBrlytTpls(WAD wad, bool banner)
        {
            if (!wad.HasBanner)
            {
                return(new string[0]);
            }

            string str = nameof(banner);

            if (!banner)
            {
                str = "icon";
            }

            for (int index1 = 0; index1 < wad.BannerApp.Nodes.Count; ++index1)
            {
                if (wad.BannerApp.StringTable[index1].ToLower() == str + ".bin")
                {
                    U8       u8 = U8.Load(wad.BannerApp.Data[index1]);
                    string[] a  = new string[0];
                    for (int index2 = 0; index2 < u8.Nodes.Count; ++index2)
                    {
                        if (u8.StringTable[index2].ToLower() == str + ".brlyt")
                        {
                            a = Shared.MergeStringArrays(a, GetBrlytTpls(u8.Data[index2]));
                        }
                    }
                    return(a);
                }
            }
            return(new string[0]);
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Loads a U8 file.
        /// </summary>
        /// <param name="u8File"></param>
        /// <returns></returns>
        public static U8 Load(byte[] u8File)
        {
            U8           u  = new U8();
            MemoryStream ms = new MemoryStream(u8File);

            try { u.parseU8(ms); }
            catch { ms.Dispose(); throw; }

            ms.Dispose();
            return(u);
        }
Ejemplo n.º 6
0
 /// <summary>
 /// Creates a U8 file.
 /// </summary>
 /// <param name="pathToDirectory"></param>
 /// <returns></returns>
 public static U8 FromDirectory(string pathToDirectory)
 {
     U8 u = new U8();
     u.createFromDir(pathToDirectory);
     return u;
 }
Ejemplo n.º 7
0
 /// <summary>
 /// Loads a U8 file.
 /// </summary>
 /// <param name="u8File"></param>
 /// <returns></returns>
 public static U8 Load(Stream u8File)
 {
     U8 u = new U8();
     u.parseU8(u8File);
     return u;
 }
Ejemplo n.º 8
0
        /// <summary>
        /// Loads a U8 file.
        /// </summary>
        /// <param name="u8File"></param>
        /// <returns></returns>
        public static U8 Load(byte[] u8File)
        {
            U8 u = new U8();
            MemoryStream ms = new MemoryStream(u8File);

            try { u.parseU8(ms); }
            catch { ms.Dispose(); throw; }

            ms.Dispose();
            return u;
        }
Ejemplo n.º 9
0
        private void doUnpack(object files)
        {
            setControls(false, false);
            string input = ((string[])files)[0];
            string output = ((string[])files)[1];

            try
            {
                U8 u = new U8();
                u.Progress += new EventHandler<System.ComponentModel.ProgressChangedEventArgs>(unpack_Progress);

                u.LoadFile(input);

                u.Extract(output);

                MessageBox.Show("Successfully unpacked U8 file to:\n" + output, "Information", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            catch (Exception ex) { MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); }
            finally { setControls(true, false); }
        }
Ejemplo n.º 10
0
        private void doPack(object files)
        {
            setControls(false, true);
            string input = ((string[])files)[0];
            string output = ((string[])files)[1];

            try
            {
                U8 u = new U8();
                u.Progress += new EventHandler<System.ComponentModel.ProgressChangedEventArgs>(pack_Progress);

                u.CreateFromDirectory(input);

                u.Lz77Compress = lz77;
                if (imd5) u.AddHeaderImd5();

                u.Save(output);

                MessageBox.Show("Successfully packed U8 file to:\n" + output, "Information", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            catch (Exception ex) { MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); }
            finally { setControls(true, true); }
        }
Ejemplo n.º 11
0
        private void btnBrowseReplace_Click(object sender, EventArgs e)
        {
            if (btnBrowseReplace.Text.ToLower() == "clear")
            {
                if (cmbReplace.SelectedIndex == 2) //sound
                {
                    replacedSound = string.Empty;
                    setControlText(tbReplace, string.Empty);

                    newSoundBin = new byte[0];
                }
                else if (cmbReplace.SelectedIndex == 1) //icon
                {
                    replacedIcon = string.Empty;
                    setControlText(tbReplace, string.Empty);

                    newIconBin = new U8();

                    iconTransparents.Clear();

                    addTpls();
                    addBrlans();
                    addBrlyts();
                }
                else //banner
                {
                    replacedBanner = string.Empty;
                    setControlText(tbReplace, string.Empty);

                    newBannerBin = new U8();

                    bannerTransparents.Clear();

                    addTpls();
                    addBrlans();
                    addBrlyts();
                }
            }
            else replacePart();
        }
Ejemplo n.º 12
0
        private void clearAll()
        {
            tbAllLanguages.Text = string.Empty;
            tbDol.Text = string.Empty;
            tbDutch.Text = string.Empty;
            tbEnglish.Text = string.Empty;
            tbFrench.Text = string.Empty;
            tbGerman.Text = string.Empty;
            tbItalian.Text = string.Empty;
            tbKorean.Text = string.Empty;
            tbJapanese.Text = string.Empty;
            tbReplace.Text = string.Empty;
            tbSound.Text = string.Empty;
            tbSourceWad.Text = string.Empty;
            tbSpanish.Text = string.Empty;
            tbTitleID.Text = string.Empty;
            tbStartupIos.Text = string.Empty;

            lbCreatedValue.Text = string.Empty;

            lbxBannerTpls.Items.Clear();
            lbxBrlanBanner.Items.Clear();
            lbxBrlanIcon.Items.Clear();
            lbxBrlytBanner.Items.Clear();
            lbxBrlytIcon.Items.Clear();
            lbxIconTpls.Items.Clear();

            replacedBanner = string.Empty;
            replacedIcon = string.Empty;
            replacedSound = string.Empty;

            sourceWad = new WAD();
            bannerBin = new U8();
            newBannerBin = new U8();
            iconBin = new U8();
            newIconBin = new U8();
            newSoundBin = new byte[0];
            newDol = new byte[0];

            sourceWad.Warning += new EventHandler<MessageEventArgs>(sourceWad_Warning);

            cbLz77.Checked = true;
            cbIconMakeTransparent.Checked = false;
            cbBannerMakeTransparent.Checked = false;

            bannerTransparents.Clear();
            iconTransparents.Clear();

            simpleForwarder.Clear();
            complexForwarder.Clear();
        }