public void ExtractPortals() { WzSubProperty portalParent = (WzSubProperty)this["map"]["MapHelper.img"]["portal"]; WzSubProperty editorParent = (WzSubProperty)portalParent["editor"]; for (int i = 0; i < editorParent.WzProperties.Count; i++) { WzCanvasProperty portal = (WzCanvasProperty)editorParent.WzProperties[i]; Program.InfoManager.PortalTypeById.Add(portal.Name); PortalInfo.Load(portal); } WzSubProperty gameParent = (WzSubProperty)portalParent["game"]["pv"]; foreach (WzImageProperty portal in gameParent.WzProperties) { if (portal.WzProperties[0] is WzSubProperty) { Dictionary <string, Bitmap> images = new Dictionary <string, Bitmap>(); Bitmap defaultImage = null; foreach (WzSubProperty image in portal.WzProperties) { //WzSubProperty portalContinue = (WzSubProperty)image["portalContinue"]; //if (portalContinue == null) continue; Bitmap portalImage = image["0"].GetBitmap(); if (image.Name == "default") { defaultImage = portalImage; } else { images.Add(image.Name, portalImage); } } Program.InfoManager.GamePortals.Add(portal.Name, new PortalGameImageInfo(defaultImage, images)); } else if (portal.WzProperties[0] is WzCanvasProperty) { Dictionary <string, Bitmap> images = new Dictionary <string, Bitmap>(); Bitmap defaultImage = null; try { foreach (WzCanvasProperty image in portal.WzProperties) { //WzSubProperty portalContinue = (WzSubProperty)image["portalContinue"]; //if (portalContinue == null) continue; Bitmap portalImage = image.GetLinkedWzCanvasBitmap(); defaultImage = portalImage; images.Add(image.Name, portalImage); } Program.InfoManager.GamePortals.Add(portal.Name, new PortalGameImageInfo(defaultImage, images)); } catch (InvalidCastException) { continue; } //nexon likes to toss ints in here zType etc } } for (int i = 0; i < Program.InfoManager.PortalTypeById.Count; i++) { Program.InfoManager.PortalIdByType[Program.InfoManager.PortalTypeById[i]] = i; } }
public void ExtractPortals() { WzSubProperty portalParent = (WzSubProperty)this["map"]["MapHelper.img"]["portal"]; WzSubProperty editorParent = (WzSubProperty)portalParent["editor"]; for (int i = 0; i < editorParent.WzProperties.Count; i++) { WzCanvasProperty portal = (WzCanvasProperty)editorParent.WzProperties[i]; Program.InfoManager.PortalTypeById.Add(portal.Name); PortalInfo.Load(portal); } WzSubProperty gameParent = (WzSubProperty)portalParent["game"]; foreach (WzSubProperty portal in gameParent.WzProperties) { if (portal.WzProperties[0] is WzSubProperty) { Dictionary <string, Bitmap> images = new Dictionary <string, Bitmap>(); Bitmap defaultImage = null; foreach (WzSubProperty image in portal.WzProperties) { WzSubProperty portalContinue = (WzSubProperty)image["portalContinue"]; if (portalContinue == null) { continue; } Bitmap portalImage = portalContinue["0"].GetBitmap(); if (image.Name == "default") { defaultImage = portalImage; } else { images.Add(image.Name, portalImage); } } Program.InfoManager.GamePortals.Add(portal.Name, new PortalGameImageInfo(defaultImage, images)); } } for (int i = 0; i < Program.InfoManager.PortalTypeById.Count; i++) { Program.InfoManager.PortalIdByType[Program.InfoManager.PortalTypeById[i]] = i; } }