예제 #1
0
 private void pbDmMap_MouseDown(object sender, MouseEventArgs e)
 {
     if (e.Button == MouseButtons.Left)
     {
         if (ModifierKeys == Keys.Shift)
         {
             Mini mini = new Mini(Resources.DefaultMini);
             pbDmMap.Controls.Add(mini);
             mini.BringToFront();
             mini.Show();
             mini.CreatePlayerMini(pMap.pbPlayerMap);
             mini.Location      = pbDmMap.PointToClient(Cursor.Position);
             zoomScroll.Visible = false;
             zoomScroll.Enabled = false;
         }
         else
         {
             currentLine.Add(e.Location);
             drawOntoImage(Color.Transparent, penRadius);
         }
     }
     else if (e.Button == MouseButtons.Right)
     {
     }
 }
예제 #2
0
        private void btnLoad_Click(object sender, EventArgs e)
        {
            OpenFileDialog openFile = new OpenFileDialog()
            {
                Filter = "Map File |*.jpg;*.jpeg;*.png;*.sesh",
            };

            if (openFile.ShowDialog() == DialogResult.OK)
            {
                pbDmMap.Controls.Clear();
                pMap.pbPlayerMap.Controls.Clear();

                pbDmMap.Update();
                pMap.pbPlayerMap.Update();
                string FileName = openFile.FileName;
                if (Path.GetExtension(openFile.FileName) == ".sesh")
                {
                    string mapFile       = Path.GetFileName(openFile.FileName).Replace(".sesh", ".map");
                    string playerMapFile = Path.GetFileName(openFile.FileName).Replace(".sesh", ".pmap");
                    string fogPlayerFile = Path.GetFileName(openFile.FileName).Replace(".sesh", ".pfog");
                    string fogDMFile     = Path.GetFileName(openFile.FileName).Replace(".sesh", ".dmfog");
                    string jsonFile      = Path.GetFileName(openFile.FileName).Replace(".sesh", ".json");
                    using (FileStream seshFile = new FileStream(openFile.FileName, FileMode.Open))
                    {
                        using (ZipArchive archive = new ZipArchive(seshFile, ZipArchiveMode.Read))
                        {
                            ZipArchiveEntry mapEntry = archive.GetEntry(mapFile);
                            using (StreamReader readerMap = new StreamReader(mapEntry.Open()))
                                dmMap = Image.FromStream(readerMap.BaseStream);
                            ZipArchiveEntry playerMapEntry = archive.GetEntry(playerMapFile);
                            using (StreamReader readerMap = new StreamReader(playerMapEntry.Open()))
                                playerMap = Image.FromStream(readerMap.BaseStream);
                            ZipArchiveEntry dmfogEntry = archive.GetEntry(fogDMFile);
                            using (StreamReader readerDMFog = new StreamReader(dmfogEntry.Open()))
                                pbDmMap.Image = Image.FromStream(readerDMFog.BaseStream);
                            ZipArchiveEntry pfogEntry = archive.GetEntry(fogPlayerFile);
                            using (StreamReader readerPFog = new StreamReader(pfogEntry.Open()))
                                pMap.pbPlayerMap.Image = Image.FromStream(readerPFog.BaseStream);
                            ZipArchiveEntry miniEntry = archive.GetEntry(jsonFile);
                            using (StreamReader readerMini = new StreamReader(miniEntry.Open()))
                            {
                                JavaScriptSerializer       serializer = new JavaScriptSerializer();
                                List <Mini.MiniProperties> minis      =
                                    serializer.Deserialize <List <Mini.MiniProperties> >(readerMini.ReadToEnd());
                                zoomScroll.Enabled = minis.Count == 0;
                                zoomScroll.Visible = minis.Count == 0;
                                foreach (Mini.MiniProperties mini in minis)
                                {
                                    ZipArchiveEntry miniImgEntry = archive.GetEntry(mini.ImgName);
                                    using (StreamReader readerMiniImg = new StreamReader(miniImgEntry.Open()))
                                    {
                                        Image image   = Image.FromStream(readerMiniImg.BaseStream);
                                        Mini  addMini = new Mini(image);
                                        addMini.Name        = mini.Name;
                                        addMini.imgFileName = mini.ImgName;
                                        pbDmMap.Controls.Add(addMini);
                                        addMini.BringToFront();
                                        addMini.Show();
                                        addMini.Location = new Point(mini.X, mini.Y);
                                        addMini.Size     = new Size(mini.Size, mini.Size);
                                        addMini.CreatePlayerMini(pMap.pbPlayerMap);
                                        addMini.PlayerMini.Location = addMini.Location;
                                        addMini.PlayerMini.Size     = addMini.Size;
                                        if (mini.Active)
                                        {
                                            addMini.ShowMini();
                                        }
                                        if (mini.Dead)
                                        {
                                            addMini.KillMini();
                                        }
                                    }
                                }
                            }
                        }
                    }
                    pbDmMap.BackgroundImage = dmMap;
                    //pbDmMap.Width = dmMap.Width;
                    //pbDmMap.Height = dmMap.Height;
                    pMap.Show();
                    pMap.Location = panel1.PointToScreen(Point.Empty);
                    pMap.Size     = panel1.Size;
                    pMap.pbPlayerMap.BackgroundImage = dmMap;
                }
                else
                {
                    dmMap = Image.FromFile(openFile.FileName);
                    //dmMap = ResizeImage(dmMap, false);
                    pbDmMap.Width           = dmMap.Width;
                    pbDmMap.Height          = dmMap.Height;
                    pbDmMap.BackgroundImage = dmMap;
                    pMap.Show();
                    pMap.Location = panel1.PointToScreen(Point.Empty);
                    pMap.Size     = panel1.Size;
                    if (Path.GetFileName(openFile.FileName).Contains("-DM"))
                    {
                        string path = openFile.FileName.Replace(
                            Path.GetFileName(openFile.FileName),
                            Path.GetFileName(openFile.FileName).Replace("-DM", ""));
                        pMap.pbPlayerMap.BackgroundImage = Image.FromFile(path); //ResizeImage(Image.FromFile(path), false);
                    }
                    else
                    {
                        pMap.pbPlayerMap.BackgroundImage = dmMap;
                    }
                    FillMap();
                    zoomScroll.Enabled = true;
                    zoomScroll.Visible = true;
                }
                btnSave.Enabled       = true;
                btnClear.Enabled      = true;
                btnFill.Enabled       = true;
                btnPlayerView.Enabled = true;
                zoomScroll.Value      = 100;
                lblZoom.Enabled       = true;

                mapRes = pbDmMap.Image.Size;
                Activate();
            }
        }