Example #1
0
        private static void ListBoxChanged(Event <HTMLSelectElement> arg)
        {
            ImageInputSenderID = arg.CurrentTarget.Id;
            ImageInputSenderID = ImageInputSenderID.Substring(0, ImageInputSenderID.Length - 4);

            var tex = t.GetTexture(ImageInputSenderID);

            t.TopScreenFrameType = (uint)TopFrameType.SelectedIndex;
            t.BotScreenFrameType = (uint)BotFrameType.SelectedIndex;

            if (t.TopScreenFrameType == 2)
            {
                t.TopScreenFrameType = 1;                            //Invalid value fix
            }
            if (ImageInputSenderID == Theme.Name_TopScr && !(tex.tex.Width == t.TopImageType.s.x && tex.tex.Height == t.TopImageType.s.y))
            {
                tex.tex = ImageEncoding.WhiteImage(t.TopScreenImageID);
                UpdateShownImg(t.TopImageType, ImageInputSenderID, tex.tex);
                Document.GetElementById <HTMLLabelElement>(ImageInputSenderID + "-LBL").TextContent = ImageInputSenderID.Replace('-', ' ') + " (" + t.TopImageType.s.x.ToString() + "x" + t.TopImageType.s.y.ToString() + ")";
            }
            else if (ImageInputSenderID == Theme.Name_BotScr && !(tex.tex.Width == t.BotImageType.s.x && tex.tex.Height == t.BotImageType.s.y))
            {
                tex.tex = ImageEncoding.WhiteImage(t.BotScreenImageID);
                UpdateShownImg(t.BotImageType, ImageInputSenderID, tex.tex);
                Document.GetElementById <HTMLLabelElement>(ImageInputSenderID + "-LBL").TextContent = ImageInputSenderID.Replace('-', ' ') + " (" + t.BotImageType.s.x.ToString() + "x" + t.BotImageType.s.y.ToString() + ")";
            }
            OnResized(null);
        }
Example #2
0
        public static Theme EmptyTheme()
        {
            Theme t = new Theme();

            t.TopScreenDrawType  = 3;
            t.TopScreenFrameType = 1;
            t.BotScreenDrawType  = 3;
            t.BotScreenFrameType = 1;
            t.textures[0].tex    = ImageEncoding.WhiteImage(t.TopScreenImageID);
            t.textures[1].tex    = ImageEncoding.WhiteImage(t.BotScreenImageID);
            return(t);
        }
Example #3
0
        public byte[] MakeTheme()
        {
            MemoryStream mem = new MemoryStream();
            BinaryWriter bin = new BinaryWriter(mem);

            #region WriteHeader
            bin.Write(1);
            bin.Write((byte)0);
            bin.Write((byte)(BGM ? 1 : 0));
            bin.Write(0);
            bin.Write((short)0);
            bin.Write(TopScreenDrawType);
            bin.Write(TopScreenFrameType);
            bin.Write(0);
            bin.Write(0);
            bin.Write(0);
            bin.Write(BotScreenDrawType);
            bin.Write(BotScreenFrameType); //0x24
            bin.Write(0);
            bin.Write(0);
            bin.Write(0);
            bin.Write(0);
            bin.Write(0);
            bool writeTex78 = textures[2].tex != null && textures[3].tex != null;
            bin.Write((int)(writeTex78 ? 1 : 0));
            bin.Write(0);
            bin.Write(0);
            bin.Write(0);
            bin.Write(0);
            bool writeTex910 = textures[4].tex != null && textures[5].tex != null;
            bin.Write((int)(writeTex910 ? 1 : 0));
            bin.Write(0);
            bin.Write(0);
            for (int i = 0; i < 27; i++)
            {
                bin.Write(0);
            }
            #endregion

            #region WriteColors
            for (int i = 0; i < ColorFieldsOffsets.Length; i++)
            {
                if (!ColorFields[i].IsEnabled || ColorFieldsOffsets[i] == 0)
                {
                    continue;
                }
                uint offset = (uint)bin.BaseStream.Position;
                bin.Write(ColorFields[i].GetData());
                uint NextOffset = (uint)bin.BaseStream.Position;
                bin.BaseStream.Position = ColorFieldsOffsets[i];
                bin.Write(1); //flag enabled
                bin.Write(offset);
                if (ColorFieldsOffsets[i] == 0x6C)
                {
                    bin.Write(NextOffset);                                //the second block will be written here
                }
                bin.BaseStream.Position = NextOffset;
                if (ColorFieldsOffsets[i] == 0x6C)
                {
                    bin.Write(ColorFields[i + 1].GetData());
                }
            }
            #endregion
            #region writeImages
            //top
            {
                if (textures[0].tex == null)
                {
                    textures[0].tex = ImageEncoding.WhiteImage(TopScreenImageID);
                }
                uint offset = (uint)bin.BaseStream.Position;
                bin.Write(ImageEncoding.bitmapToRawImg(textures[0].tex, TopScreenImageID));
                uint NextOffset = (uint)bin.BaseStream.Position;
                bin.BaseStream.Position = 0x18;
                bin.Write(offset);
                bin.BaseStream.Position = NextOffset;
            }

            {
                //bottom screen
                if (textures[1].tex == null)
                {
                    textures[1].tex = ImageEncoding.WhiteImage(BotScreenImageID);
                }
                uint offset = (uint)bin.BaseStream.Position;
                bin.Write(ImageEncoding.bitmapToRawImg(textures[1].tex, BotScreenImageID));
                uint NextOffset = (uint)bin.BaseStream.Position;
                bin.BaseStream.Position = 0x28;
                bin.Write(offset);
                bin.BaseStream.Position = NextOffset;
            }

            if (writeTex78)
            {
                //FolderTextures
                uint offset = (uint)bin.BaseStream.Position;
                bin.Write(ImageEncoding.bitmapToRawImg(textures[2].tex, 7));
                uint NextOffset = (uint)bin.BaseStream.Position;
                bin.BaseStream.Position = 0x40;
                bin.Write(offset);
                bin.BaseStream.Position = NextOffset;

                offset = (uint)bin.BaseStream.Position;
                bin.Write(ImageEncoding.bitmapToRawImg(textures[3].tex, 8));
                NextOffset = (uint)bin.BaseStream.Position;
                bin.BaseStream.Position = 0x44;
                bin.Write(offset);
                bin.BaseStream.Position = NextOffset;
            }

            if (writeTex910)
            {
                //Icon textures
                uint offset = (uint)bin.BaseStream.Position;
                bin.Write(ImageEncoding.bitmapToRawImg(textures[4].tex, 9));
                uint NextOffset = (uint)bin.BaseStream.Position;
                bin.BaseStream.Position = 0x54;
                bin.Write(offset);
                bin.BaseStream.Position = NextOffset;

                offset = (uint)bin.BaseStream.Position;
                bin.Write(ImageEncoding.bitmapToRawImg(textures[5].tex, 10));
                NextOffset = (uint)bin.BaseStream.Position;
                bin.BaseStream.Position = 0x58;
                bin.Write(offset);
                bin.BaseStream.Position = NextOffset;
            }
            #endregion

            while ((bin.BaseStream.Position % 8) != 0)
            {
                bin.Write((byte)0x00);                                        //padding
            }
            return(mem.ToArray());
        }