public void Save(string filePath)
        {
            this.Path   = filePath;
            FileHandler = new RoseFileHandler(filePath, FileMode.Create, Encoding.GetEncoding("EUC-KR"));
            FileHandler.Write <short>((short)listDDS.Count);
            int totalElementCount = 0;

            listDDS.ForEach(delegate(DDS dds){
                FileHandler.WriteSString(dds.Path);
                FileHandler.Write <int>(dds.ColourKey);
                totalElementCount += dds.ListDDS_element.Count;
            });

            FileHandler.Write <short>((short)totalElementCount);

            listDDS.ForEach(delegate(DDS dds){
                FileHandler.Write <short>((short)dds.ListDDS_element.Count);
                dds.ListDDS_element.ForEach(delegate(DDS.DDSElement dds_element)
                {
                    FileHandler.Write <short>(dds_element.OwnerId);
                    FileHandler.Write <int>(dds_element.X);
                    FileHandler.Write <int>(dds_element.Y);
                    FileHandler.Write <int>(dds_element.Width + dds_element.X);
                    FileHandler.Write <int>(dds_element.Height + dds_element.Y);
                    FileHandler.Write <int>(dds_element.Color);
                    FileHandler.Write <string>(dds_element.Name);
                });
            });
            FileHandler.Dispose();
        }
        public void Load(string filePath)
        {
            this.Path   = filePath;
            FileHandler = new RoseFileHandler(filePath, FileMode.Open, Encoding.GetEncoding("EUC-KR"));
            short DDSCount = FileHandler.Read <short>();

            this.listDDS = new List <DDS>(DDSCount);
            for (int i = 0; i < DDSCount; i++)
            {
                DDS newDDS = new DDS();
                newDDS.Path      = FileHandler.ReadSString();
                newDDS.ColourKey = FileHandler.Read <int>();
                this.listDDS.Add(newDDS);
            }

            short TotalementCount = FileHandler.Read <short>();

            for (int i = 0; i < DDSCount; i++)
            {
                short ElementCount = FileHandler.Read <short>();
                listDDS[i].ListDDS_element = new List <DDS.DDSElement>(ElementCount);
                for (int a = 0; a < ElementCount; a++)
                {
                    DDS.DDSElement newElement = new DDS.DDSElement();
                    newElement.OwnerId = FileHandler.Read <short>();
                    newElement.X       = FileHandler.Read <int>();
                    newElement.Y       = FileHandler.Read <int>();
                    newElement.Width   = FileHandler.Read <int>() - newElement.X;
                    newElement.Height  = FileHandler.Read <int>() - newElement.Y;
                    newElement.Color   = FileHandler.Read <int>();
                    newElement.Name    = FileHandler.Read <string>(0x20);
                    listDDS[i].ListDDS_element.Add(newElement);
                }
            }
            FileHandler.Dispose();
        }