Esempio n. 1
0
        public static void CreateMapFromImage(WzImage mapImage, string mapName, string streetName, PageCollection Tabs, MultiBoard multiBoard, EventHandler rightClickHandler)
        {
            if (!mapImage.Parsed)
            {
                mapImage.ParseImage();
            }
            VerifyMapPropsKnown(mapImage);
            MapInfo info = new MapInfo(mapImage, mapName, streetName);
            MapType type = GetMapType(mapImage);

            if (type == MapType.RegularMap)
            {
                info.id = int.Parse(WzInfoTools.RemoveLeadingZeros(WzInfoTools.RemoveExtension(mapImage.Name)));
            }
            info.mapType = type;
            Point center = new Point();
            Point size   = new Point();

            if (mapImage["miniMap"] == null)
            {
                if (info.VR == null)
                {
                    if (!GetMapVR(mapImage, ref info.VR))
                    {
                        MessageBox.Show("Error - map does not contain size information and HaCreator was unable to generate it. An error has been logged.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        ErrorLogger.Log(ErrorLevel.IncorrectStructure, "no size @map " + info.id.ToString());
                        return;
                    }
                }
                size   = new Point(info.VR.Value.Width + 10, info.VR.Value.Height + 10); //leave 5 pixels on each side
                center = new Point(5 - info.VR.Value.Left, 5 - info.VR.Value.Top);
            }
            else
            {
                IWzImageProperty miniMap = mapImage["miniMap"];
                size   = new Point(InfoTool.GetInt(miniMap["width"]), InfoTool.GetInt(miniMap["height"]));
                center = new Point(InfoTool.GetInt(miniMap["centerX"]), InfoTool.GetInt(miniMap["centerY"]));
            }
            CreateMap(mapName, WzInfoTools.RemoveLeadingZeros(WzInfoTools.RemoveExtension(mapImage.Name)), CreateStandardMapMenu(rightClickHandler), size, center, 8, Tabs, multiBoard);
            Board mapBoard = multiBoard.SelectedBoard;

            mapBoard.MapInfo = info;
            if (mapImage["miniMap"] != null)
            {
                mapBoard.MiniMap = ((WzCanvasProperty)mapImage["miniMap"]["canvas"]).PngProperty.GetPNG(false);
            }
            LoadLayers(mapImage, mapBoard);
            LoadLife(mapImage, mapBoard);
            LoadFootholds(mapImage, mapBoard);
            LoadRopes(mapImage, mapBoard);
            LoadChairs(mapImage, mapBoard);
            LoadPortals(mapImage, mapBoard);
            LoadReactors(mapImage, mapBoard);
            LoadToolTips(mapImage, mapBoard);
            LoadBackgrounds(mapImage, mapBoard);
            mapBoard.BoardItems.Sort();
        }
Esempio n. 2
0
        private List <string> SearchMapWzForObj(string l2)
        {
            List <string> result = new List <string>();

            foreach (WzDirectory mapDir in ((WzDirectory)Program.WzManager["map"]["Map"]).WzDirectories)
            {
                foreach (WzImage mapImg in mapDir.WzImages)
                {
                    bool fastForwardToNext = false;
                    bool parsed            = mapImg.Parsed;
                    if (!parsed)
                    {
                        mapImg.ParseImage();
                    }
                    foreach (WzImageProperty layer in mapImg.WzProperties)
                    {
                        if (layer.Name.Length != 1 || !char.IsDigit(layer.Name[0]))
                        {
                            continue;
                        }
                        WzImageProperty prop = layer["obj"];
                        if (prop == null)
                        {
                            continue;
                        }
                        foreach (WzImageProperty obj in prop.WzProperties)
                        {
                            if (InfoTool.GetOptionalString(obj["oS"]) == UserObjectsManager.oS &&
                                InfoTool.GetOptionalString(obj["l0"]) == Program.APP_NAME &&
                                InfoTool.GetOptionalString(obj["l1"]) == UserObjectsManager.l1 &&
                                InfoTool.GetOptionalString(obj["l2"]) == l2)
                            {
                                result.Add(WzInfoTools.RemoveExtension(mapImg.Name));
                                fastForwardToNext = true;
                                break;
                            }
                        }
                        if (fastForwardToNext)
                        {
                            break;
                        }
                    }
                    if (!parsed)
                    {
                        mapImg.UnparseImage();
                    }
                }
            }
            return(result);
        }
Esempio n. 3
0
 public static ReactorInfo Load(WzImage parentObject)
 {
     return(new ReactorInfo(null, new System.Drawing.Point(), WzInfoTools.RemoveExtension(parentObject.Name), parentObject));
 }
        private static NpcInfo Load(WzImage parentObject)
        {
            string id = WzInfoTools.RemoveExtension(parentObject.Name);

            return(new NpcInfo(null, new System.Drawing.Point(), id, WzInfoTools.GetNpcNameById(id), parentObject));
        }