Esempio n. 1
0
 private void MapList_SelectedIndexChanged(object sender, EventArgs e)
 {
     if (MapList.SelectedItem != null)
     {
         lock (MapEditor.MapLock)
         {
             WZCanvas preview = MapEditor.file.Directory.GetIMG(GetSelectedMap()).GetCanvas("miniMap/canvas");
             if (!select.Enabled)
             {
                 select.Enabled = true;
             }
             if (preview != null)
             {
                 Preview.Image = preview.GetBitmap();
             }
             else
             {
                 Preview.Image = null;
             }
             MapName.Text = GetFullMapName(int.Parse(((string)MapList.SelectedItem).Substring(0, 9)).ToString());
         }
     }
     else
     {
         MapName.Text  = "";
         Preview.Image = null;
     }
 }
Esempio n. 2
0
        public void Save(string filename)
        {
            String tempName = Path.GetTempFileName();

            BinaryWriter temp = new BinaryWriter(System.IO.File.OpenWrite(tempName));

            Write(temp);

            temp.Close();

            BinaryReader readTemp = new BinaryReader(System.IO.File.OpenRead(tempName));

            byte[] bytes = new byte[readTemp.BaseStream.Length];

            readTemp.Read(bytes, 0, bytes.Length);

            byte[] compressed = WZCanvas.StrongCompress(bytes);

            BinaryWriter file = new BinaryWriter(System.IO.File.Create(filename));

            byte[] header = { 0x57, 0x7A, 0x50, 0x61, 0x74, 0x63, 0x68, 0x1A, 0x02, 0x00, 0x00, 0x00 };

            file.Write(header);
            file.Write(Crc32.Compute(compressed));
            file.Write(compressed);

            file.Close();

            readTemp.Close();

            System.IO.File.Delete(tempName);
        }
Esempio n. 3
0
 public void SetCanvas(WZCanvas set)
 {
     if (value == null)
     {
         value = set;
     }
     if (value.type == WZObject.WZObjectType.WZ_CANVAS)
     {
         value = set;
     }
 }
Esempio n. 4
0
        private static WZCanvas CanvasFromEntry(IMGEntry entry)
        {
            WZCanvas c   = (WZCanvas)entry.value;
            WZCanvas obj = new WZCanvas(c.file, c.width, c.height, c.size, c.offset, c.format);

            obj.SetBitmap(c.GetBitmap());
            for (int i = 0; i < entry.childs.Count; i++)
            {
                obj.objects.Add(ObjectFromEntry(entry.childs[i]));
            }
            return(obj);
        }
Esempio n. 5
0
        private void button1_Click(object sender, EventArgs e)
        {
            OpenFileDialog ofdOpen = new OpenFileDialog();

            ofdOpen.Filter = "Mark|*.png";
            if (ofdOpen.ShowDialog() != DialogResult.Cancel)
            {
                string FileName  = ofdOpen.FileName;
                string ImageName = Path.GetFileNameWithoutExtension(FileName);
                foreach (ImageViewer iv in Panel.Controls)
                {
                    if (iv.Name == ImageName)
                    {
                        Error.Text = "Error: There is already a mark with this name.";
                        return;
                    }
                }
                Image i = Bitmap.FromFile(FileName);
                if (i.Width > 38 || i.Height > 38)
                {
                    Error.Text = "Error: The size of the image must not be larger than 38x38";
                    return;
                }
                IMGEntry marks = MapEditor.file.Directory.GetIMG("MapHelper.img").GetChild("mark");
                IMGEntry entry = new IMGEntry();

                WZCanvas c = new WZCanvas();
                c.SetBitmap((Bitmap)i);
                c.format = WZCanvas.ImageFormat.FORMAT_4444;
                entry.SetCanvas(c);
                entry.Name = ImageName;

                marks.Add(entry);

                marks.parent.ToSave = true;
                Error.Text          = "";
                ImageViewer imageViewer = new ImageViewer();
                imageViewer.Dock = DockStyle.Bottom;

                imageViewer.Image             = c.GetBitmap();
                imageViewer.Width             = c.GetBitmap().Width + 6;
                imageViewer.Height            = c.GetBitmap().Height + 6;
                imageViewer.Name              = entry.Name;
                imageViewer.MouseClick       += new MouseEventHandler(ImageViewer_MouseClick);
                imageViewer.MouseDoubleClick += new MouseEventHandler(ImageViewer_MouseDoubleClick);
                imageViewer.IsThumbnail       = false;

                Panel.Controls.Add(imageViewer);
            }
        }
Esempio n. 6
0
        public void SetCanvas(string name, WZCanvas set)
        {
            IMGEntry e = GetChild(name);

            if (e == null && name.IndexOf("/") == -1)
            {
                e       = new IMGEntry(this);
                e.Name  = name;
                e.value = set;
                Add(e);
            }
            else if (e != null)
            {
                e.SetCanvas(set);
            }
        }
Esempio n. 7
0
        public override void Draw(DevicePanel d)
        {
            if (MapEditor.Instance.EditMode.Checked && MapEditor.Instance.EditClock.Checked)
            {
                d.DrawRectangle(Object.GetInt("x") + Map.Instance.CenterX + 10, Object.GetInt("y") + Map.Instance.CenterY + 76, Object.GetInt("x") + Map.Instance.CenterX + Object.GetInt("width") - 8, Object.GetInt("y") + Map.Instance.CenterY + Object.GetInt("height") - 78, Selected ? Color.FromArgb(150, Color.Blue) : Color.FromArgb(150, 51, 17, 0));
            }
            WZCanvas draw = Image.GetCanvas("am");
            int      x = Object.GetInt("x") + 16 + Map.Instance.CenterX, y = Object.GetInt("y") + 82 + Map.Instance.CenterY;

            d.DrawBitmap(draw.GetTexture(d._device), x, y, draw.width, draw.height, Selected, Transparency);
            x   += draw.width + 17;
            draw = Image.GetCanvas("0");
            d.DrawBitmap(draw.GetTexture(d._device), x, y, draw.width, draw.height, Selected, Transparency);
            x += draw.width + 2;
            d.DrawBitmap(draw.GetTexture(d._device), x, y, draw.width, draw.height, Selected, Transparency);
            x   += draw.width + 2;
            draw = Image.GetCanvas("comma");
            d.DrawBitmap(draw.GetTexture(d._device), x, y, draw.width, draw.height, Selected, Transparency);
            x   += draw.width + 2;
            draw = Image.GetCanvas("0");
            d.DrawBitmap(draw.GetTexture(d._device), x, y, draw.width, draw.height, Selected, Transparency);
            x += draw.width + 2;
            d.DrawBitmap(draw.GetTexture(d._device), x, y, draw.width, draw.height, Selected, Transparency);
        }
Esempio n. 8
0
 private static void CreateEntry(IMGEntry parent, WZCanvas obj)
 {
     parent.value = new WZCanvas(obj.file, obj.width, obj.height, obj.size, obj.offset, obj.format);
     CreateEntryChilds(parent, obj);
 }
Esempio n. 9
0
        WZObject ReadComplex(int end)
        {
            string type = ReadString();

            switch (type)
            {
            case "Property":
            {
                WZProperty p = new WZProperty();
                file.ReadShort();         // null

                int count = file.ReadValue();

                for (int i = 0; i < count; i++)
                {
                    p.objects.Add(ReadObject());
                }

                if (end != 0 && end != file.file.BaseStream.Position)
                {
                    throw new Exception("...");
                }
                return(p);
            }

            case "Shape2D#Convex2D":
            {
                WZConvex c = new WZConvex();

                int count = file.ReadValue();

                for (int i = 0; i < count; i++)
                {
                    c.objects.Add(ReadComplex());
                }

                if (end != 0 && end != file.file.BaseStream.Position)
                {
                    throw new Exception("...");
                }

                return(c);
            }

            case "Shape2D#Vector2D":
            {
                int x = file.ReadValue();
                int y = file.ReadValue();


                if (end != 0 && end != file.file.BaseStream.Position)
                {
                    throw new Exception("...");
                }
                return(new WZVector(x, y));
            }

            case "Canvas":
            {
                WZCanvas c = new WZCanvas();
                c.file = file.file;

                file.ReadByte();         // null

                if (file.ReadByte() != 0)
                {
                    file.ReadShort();         // null
                    int count = file.ReadValue();

                    for (int i = 0; i < count; i++)
                    {
                        c.objects.Add(ReadObject());
                    }
                }

                c.width  = file.ReadValue();
                c.height = file.ReadValue();
                int format = file.ReadValue();
                c.format = (WZCanvas.ImageFormat)(file.ReadValue() + format);
                file.ReadInt();         // null
                c.size   = file.ReadInt();
                c.offset = (int)file.file.BaseStream.Position;
                file.file.BaseStream.Seek(c.size, SeekOrigin.Current);

                if (end != 0 && end != file.file.BaseStream.Position)
                {
                    throw new Exception("...");
                }

                return(c);
            }

            case "Sound_DX8":
            {
                // TODO
                file.file.BaseStream.Seek(end, SeekOrigin.Begin);

                if (end != 0 && end != file.file.BaseStream.Position)
                {
                    throw new Exception("...");
                }
                return(new WZSound());
            }

            case "UOL":
            {
                file.ReadByte();         // null

                //if (end != 0 && end != file.file.BaseStream.Position) throw new Exception("...");

                return(new WZUOL(ReadString()));
            }
            }
            throw new Exception("Invalid Object type: " + type);
        }