Exemplo n.º 1
0
 public void InitBasicData(Element.ElementContainer elementContainer, string result)
 {
     if (!string.IsNullOrEmpty(result))
     {
         JObject basicData = JObject.Parse(result);
         //巷道的线
         foreach (JObject itemLine in basicData["lines"])
         {
             Element.LineData lineData = JsonUtility.FromJson <Element.LineData>(itemLine.ToString());
             Transform        tsTemp   = elementContainer.tviewBase.transform.Find("Layer_HD/Lines/Line_" + lineData.id);
             //添加区域的组
             if (elementContainer.dicAreaLines.ContainsKey(!string.IsNullOrEmpty(lineData.a_eCode) ? lineData.a_eCode : "other"))
             {
                 elementContainer.dicAreaLines[!string.IsNullOrEmpty(lineData.a_eCode) ? lineData.a_eCode : "other"].Add(tsTemp);
                 try
                 {
                     tsTemp.parent = elementContainer.tviewBase.transform.Find(!string.IsNullOrEmpty(lineData.a_eCode) ? lineData.a_eCode : "other");
                 }
                 catch (System.Exception E)
                 {
                     Debug.Log("区域id" + lineData.a_eCode + "线段的id" + lineData.id);
                 }
             }
             else
             {
                 GameObject goArea = null;
                 if (elementContainer.tviewBase.transform.Find(!string.IsNullOrEmpty(lineData.a_eCode) ? lineData.a_eCode : "other") == null)
                 {
                     goArea                         = new GameObject();
                     goArea.name                    = !string.IsNullOrEmpty(lineData.a_eCode) ? lineData.a_eCode : "other";
                     goArea.transform.parent        = elementContainer.tviewBase.transform;
                     goArea.transform.localPosition = Vector3.zero;
                 }
                 else
                 {
                     goArea = elementContainer.tviewBase.transform.Find(!string.IsNullOrEmpty(lineData.a_eCode) ? lineData.a_eCode : "other").gameObject;
                 }
                 List <Transform> listGoTemp = new List <Transform>();
                 listGoTemp.Add(tsTemp);
                 elementContainer.dicAreaLines.Add(!string.IsNullOrEmpty(lineData.a_eCode) ? lineData.a_eCode : "other", listGoTemp);
                 tsTemp.parent = goArea.transform;
             }
             //添加巷道名称的组
             if (elementContainer.dicNameLines.ContainsKey(!string.IsNullOrEmpty(lineData.l_eCode) ? lineData.l_eCode : "noName"))
             {
                 elementContainer.dicNameLines[!string.IsNullOrEmpty(lineData.l_eCode) ? lineData.l_eCode : "noName"].Add(tsTemp);
             }
             else
             {
                 List <Transform> listGoTemp = new List <Transform>();
                 listGoTemp.Add(tsTemp);
                 elementContainer.dicNameLines.Add(!string.IsNullOrEmpty(lineData.l_eCode) ? lineData.l_eCode : "noName", listGoTemp);
             }
             if (elementContainer.dicLines.ContainsKey(lineData.id))
             {
                 if (string.IsNullOrEmpty(lineData.a_eCode))
                 {
                     lineData.a_eCode = "other";
                 }
                 elementContainer.dicLines[lineData.id] = lineData;
             }
             else
             {
                 if (string.IsNullOrEmpty(lineData.a_eCode))
                 {
                     lineData.a_eCode = "other";
                 }
                 elementContainer.dicLines.Add(lineData.id, lineData);
             }
         }
         //路径
         foreach (JObject itemWay in basicData["ways"])
         {
             WayData wayData = JsonUtility.FromJson <WayData>(itemWay.ToString());
             if (elementContainer.dicWays.ContainsKey(wayData.type))
             {
                 elementContainer.dicWays[wayData.type].Add(wayData);
             }
             else
             {
                 List <WayData> wayDatas = new List <WayData>();
                 wayDatas.Add(wayData);
                 elementContainer.dicWays.Add(wayData.type, wayDatas);
             }
         }
         //资源类型
         ConfigData configData = JsonUtility.FromJson <ConfigData>(basicData["config"].ToString());
         foreach (ConfigItem itemArea in configData.area)
         {
             if (!elementContainer.dicAreaName.ContainsKey(itemArea.eCode))
             {
                 elementContainer.dicAreaName.Add(itemArea.eCode, itemArea.name);
             }
         }
         foreach (ConfigItem itemLine in configData.line)
         {
             if (!elementContainer.dicLineName.ContainsKey(itemLine.eCode))
             {
                 elementContainer.dicLineName.Add(itemLine.eCode, itemLine.name);
             }
         }
         foreach (ConfigType itemType in configData.eType)
         {
             StartCoroutine(elementContainer.loadConfig.LoadPhoto(elementContainer.diceTypeSprites, itemType));
             if (!elementContainer.diceType.ContainsKey(itemType.eCode))
             {
                 elementContainer.diceType.Add(itemType.eCode, itemType);
             }
         }
     }
 }
Exemplo n.º 2
0
        public DataObject Process(ResourceID ID, ResourceManager ResourceManager)
        {
            Save.SaveGame gamdat = new Save.SaveGame();
            gamdat.Open(FileSystem.GetFile(ID.File).Stream);
            WayData data = new WayData();

            data.DataName = ID;


            Dictionary <int, Way> ways = new Dictionary <int, Way>();

            data.Cross = new CrossWay[gamdat.Locations.Length];

            for (int i = 0; i < gamdat.Locations.Length; i++)
            {
                Save.Location city = gamdat.Locations[i];

                List <int> cross = new List <int>();

                for (int j = 0; j < Save.Location.MaxNeighborCount; j++)
                {
                    if (city.Neighbors[j] >= 0)
                    {
                        if (!ways.ContainsKey(city.Ways[j]))
                        {
                            Way way = new Way();
                            way.Start = i;
                            way.End   = city.Neighbors[j];
                            ways.Add(city.Ways[j], way);
                        }
                        cross.Add(city.Ways[j]);
                    }
                }

                data.Cross[i].Ways = cross.ToArray();
            }

            Map map = new Map("mat_000.raw");

            //int pos = 28;

            data.Ways = new Way[ways.Count];
            for (int i = 0; i < ways.Count; i++)
            {
                data.Ways[i] = ways[i];

                data.Ways[i].Position   = new Vector2();
                data.Ways[i].Position.x = System.Math.Min(map.Doors[data.Ways[i].Start].Area.Center.x, map.Doors[data.Ways[i].End].Area.Center.x);
                data.Ways[i].Position.y = System.Math.Min(map.Doors[data.Ways[i].Start].Area.Center.y, map.Doors[data.Ways[i].End].Area.Center.y);
            }

            //    Vector2 dist = map.Doors[data.Ways[i].End].Area.Center - map.Doors[data.Ways[i].Start].Area.Center;
            //    if (dist.x < 0)
            //        dist.x = map.Doors[data.Ways[i].Start].Area.Left - map.Doors[data.Ways[i].End].Area.Right;
            //    else
            //        dist.x = map.Doors[data.Ways[i].End].Area.Left - map.Doors[data.Ways[i].Start].Area.Right;
            //    //if (dist.x < 0)
            //    //{
            //    //    int tmp = data.Ways[i].Start;
            //    //    data.Ways[i].Start = data.Ways[i].End;
            //    //    data.Ways[i].End = tmp;
            //    //}
            //    data.Ways[i].Images = new Sprite[(Math.Abs(dist.x) + 31) / 32];
            //    for (int j = 0; j < data.Ways[i].Images.Length; j++)
            //    {
            //        data.Ways[i].Images[j] = ResourceManager.GetImage("syst.raw?" + (pos + j).ToString());
            //    }
            //    pos += data.Ways[i].Images.Length;
            //}

            data.Ways[0].Images     = new Sprite[1];
            data.Ways[0].Images[0]  = ResourceManager.GetImage("syst.raw?28".ToString(), ResourceLoadType.Delayed);
            data.Ways[0].Position  += new Vector2(7, 5);
            data.Ways[1].Images     = new Sprite[1];
            data.Ways[1].Images[0]  = ResourceManager.GetImage("syst.raw?30".ToString(), ResourceLoadType.Delayed);
            data.Ways[1].Position  += new Vector2(10, 6);
            data.Ways[2].Images     = new Sprite[2];
            data.Ways[2].Images[0]  = ResourceManager.GetImage("syst.raw?31".ToString(), ResourceLoadType.Delayed);
            data.Ways[2].Images[1]  = ResourceManager.GetImage("syst.raw?32".ToString(), ResourceLoadType.Delayed);
            data.Ways[2].Position  += new Vector2(20, 3);
            data.Ways[3].Images     = new Sprite[3];
            data.Ways[3].Images[0]  = ResourceManager.GetImage("syst.raw?33".ToString(), ResourceLoadType.Delayed);
            data.Ways[3].Images[1]  = ResourceManager.GetImage("syst.raw?34".ToString(), ResourceLoadType.Delayed);
            data.Ways[3].Images[2]  = ResourceManager.GetImage("syst.raw?35".ToString(), ResourceLoadType.Delayed);
            data.Ways[3].Position  += new Vector2(12, 7);
            data.Ways[4].Images     = new Sprite[3];
            data.Ways[4].Images[0]  = ResourceManager.GetImage("syst.raw?36".ToString(), ResourceLoadType.Delayed);
            data.Ways[4].Images[1]  = ResourceManager.GetImage("syst.raw?37".ToString(), ResourceLoadType.Delayed);
            data.Ways[4].Images[2]  = ResourceManager.GetImage("syst.raw?38".ToString(), ResourceLoadType.Delayed);
            data.Ways[4].Position  += new Vector2(10, -1);
            data.Ways[5].Images     = new Sprite[1];
            data.Ways[5].Images[0]  = ResourceManager.GetImage("syst.raw?39".ToString(), ResourceLoadType.Delayed);
            data.Ways[5].Position  += new Vector2(14, 2);
            data.Ways[6].Images     = new Sprite[1];
            data.Ways[6].Images[0]  = ResourceManager.GetImage("syst.raw?40".ToString(), ResourceLoadType.Delayed);
            data.Ways[6].Position  += new Vector2(6, 0);
            data.Ways[7].Images     = new Sprite[2];
            data.Ways[7].Images[0]  = ResourceManager.GetImage("syst.raw?41".ToString(), ResourceLoadType.Delayed);
            data.Ways[7].Images[1]  = ResourceManager.GetImage("syst.raw?42".ToString(), ResourceLoadType.Delayed);
            data.Ways[7].Position  += new Vector2(4, 6);
            data.Ways[8].Images     = new Sprite[3];
            data.Ways[8].Images[0]  = ResourceManager.GetImage("syst.raw?43".ToString(), ResourceLoadType.Delayed);
            data.Ways[8].Images[1]  = ResourceManager.GetImage("syst.raw?44".ToString(), ResourceLoadType.Delayed);
            data.Ways[8].Images[2]  = ResourceManager.GetImage("syst.raw?45".ToString(), ResourceLoadType.Delayed);
            data.Ways[8].Position  += new Vector2(2, 4);
            data.Ways[9].Images     = new Sprite[2];
            data.Ways[9].Images[0]  = ResourceManager.GetImage("syst.raw?46".ToString(), ResourceLoadType.Delayed);
            data.Ways[9].Images[1]  = ResourceManager.GetImage("syst.raw?47".ToString(), ResourceLoadType.Delayed);
            data.Ways[9].Position  += new Vector2(7, 3);
            data.Ways[10].Images    = new Sprite[1];
            data.Ways[10].Images[0] = ResourceManager.GetImage("syst.raw?48".ToString(), ResourceLoadType.Delayed);
            data.Ways[10].Position += new Vector2(5, 4);
            data.Ways[11].Images    = new Sprite[2];
            data.Ways[11].Images[0] = ResourceManager.GetImage("syst.raw?49".ToString(), ResourceLoadType.Delayed);
            data.Ways[11].Images[1] = ResourceManager.GetImage("syst.raw?50".ToString(), ResourceLoadType.Delayed);
            data.Ways[11].Position += new Vector2(4, 7);
            data.Ways[12].Images    = new Sprite[2];
            data.Ways[12].Images[0] = ResourceManager.GetImage("syst.raw?51".ToString(), ResourceLoadType.Delayed);
            data.Ways[12].Images[1] = ResourceManager.GetImage("syst.raw?52".ToString(), ResourceLoadType.Delayed);
            data.Ways[12].Position += new Vector2(3, 7);
            data.Ways[13].Images    = new Sprite[2];
            data.Ways[13].Images[0] = ResourceManager.GetImage("syst.raw?53".ToString(), ResourceLoadType.Delayed);
            data.Ways[13].Images[1] = ResourceManager.GetImage("syst.raw?54".ToString(), ResourceLoadType.Delayed);
            data.Ways[13].Position += new Vector2(6, 2);
            data.Ways[14].Images    = new Sprite[1];
            data.Ways[14].Images[0] = ResourceManager.GetImage("syst.raw?29".ToString(), ResourceLoadType.Delayed);
            data.Ways[14].Position += new Vector2(10, 3);
            data.Ways[15].Images    = new Sprite[2];
            data.Ways[15].Images[0] = ResourceManager.GetImage("syst.raw?55".ToString(), ResourceLoadType.Delayed);
            data.Ways[15].Images[1] = ResourceManager.GetImage("syst.raw?56".ToString(), ResourceLoadType.Delayed);
            data.Ways[15].Position += new Vector2(3, 7);
            data.Ways[16].Images    = new Sprite[1];
            data.Ways[16].Images[0] = ResourceManager.GetImage("syst.raw?57".ToString(), ResourceLoadType.Delayed);
            data.Ways[16].Position += new Vector2(5, 7);
            data.Ways[17].Images    = new Sprite[1];
            data.Ways[17].Images[0] = ResourceManager.GetImage("syst.raw?58".ToString(), ResourceLoadType.Delayed);
            data.Ways[17].Position += new Vector2(5, 2);
            data.Ways[18].Images    = new Sprite[2];
            data.Ways[18].Images[0] = ResourceManager.GetImage("syst.raw?59".ToString(), ResourceLoadType.Delayed);
            data.Ways[18].Images[1] = ResourceManager.GetImage("syst.raw?60".ToString(), ResourceLoadType.Delayed);
            data.Ways[18].Position += new Vector2(5, 0);
            data.Ways[19].Images    = new Sprite[2];
            data.Ways[19].Images[0] = ResourceManager.GetImage("syst.raw?61".ToString(), ResourceLoadType.Delayed);
            data.Ways[19].Images[1] = ResourceManager.GetImage("syst.raw?62".ToString(), ResourceLoadType.Delayed);
            data.Ways[19].Position += new Vector2(12, 5);
            data.Ways[20].Images    = new Sprite[1];
            data.Ways[20].Images[0] = ResourceManager.GetImage("syst.raw?63".ToString(), ResourceLoadType.Delayed);
            data.Ways[20].Position += new Vector2(8, 9);
            data.Ways[21].Images    = new Sprite[3];
            data.Ways[21].Images[0] = ResourceManager.GetImage("syst.raw?64".ToString(), ResourceLoadType.Delayed);
            data.Ways[21].Images[1] = ResourceManager.GetImage("syst.raw?65".ToString(), ResourceLoadType.Delayed);
            data.Ways[21].Images[2] = ResourceManager.GetImage("syst.raw?66".ToString(), ResourceLoadType.Delayed);
            data.Ways[21].Position += new Vector2(8, -1);
            data.Ways[22].Images    = new Sprite[2];
            data.Ways[22].Images[0] = ResourceManager.GetImage("syst.raw?68".ToString(), ResourceLoadType.Delayed);
            data.Ways[22].Images[1] = ResourceManager.GetImage("syst.raw?69".ToString(), ResourceLoadType.Delayed);
            data.Ways[22].Position += new Vector2(1, 7);
            data.Ways[23].Images    = new Sprite[1];
            data.Ways[23].Images[0] = ResourceManager.GetImage("syst.raw?70".ToString(), ResourceLoadType.Delayed);
            data.Ways[23].Position += new Vector2(-4, 6);
            data.Ways[24].Images    = new Sprite[2];
            data.Ways[24].Images[0] = ResourceManager.GetImage("syst.raw?71".ToString(), ResourceLoadType.Delayed);
            data.Ways[24].Images[1] = ResourceManager.GetImage("syst.raw?72".ToString(), ResourceLoadType.Delayed);
            data.Ways[24].Position += new Vector2(11, 3);
            data.Ways[25].Images    = new Sprite[4];
            data.Ways[25].Images[0] = ResourceManager.GetImage("syst.raw?73".ToString(), ResourceLoadType.Delayed);
            data.Ways[25].Images[1] = ResourceManager.GetImage("syst.raw?74".ToString(), ResourceLoadType.Delayed);
            data.Ways[25].Images[2] = ResourceManager.GetImage("syst.raw?75".ToString(), ResourceLoadType.Delayed);
            data.Ways[25].Images[3] = ResourceManager.GetImage("syst.raw?76".ToString(), ResourceLoadType.Delayed);
            data.Ways[25].Position += new Vector2(8, 4);
            data.Ways[26].Images    = new Sprite[1];
            data.Ways[26].Images[0] = ResourceManager.GetImage("syst.raw?77".ToString(), ResourceLoadType.Delayed);
            data.Ways[26].Position += new Vector2(-20, 10);
            data.Ways[27].Images    = new Sprite[3];
            data.Ways[27].Images[0] = ResourceManager.GetImage("syst.raw?78".ToString(), ResourceLoadType.Delayed);
            data.Ways[27].Images[1] = ResourceManager.GetImage("syst.raw?79".ToString(), ResourceLoadType.Delayed);
            data.Ways[27].Images[2] = ResourceManager.GetImage("syst.raw?80".ToString(), ResourceLoadType.Delayed);
            data.Ways[27].Position += new Vector2(11, 7);
            data.Ways[28].Images    = new Sprite[1];
            data.Ways[28].Images[0] = ResourceManager.GetImage("syst.raw?81".ToString(), ResourceLoadType.Delayed);
            data.Ways[28].Position += new Vector2(2, 7);
            data.Ways[29].Images    = new Sprite[2];
            data.Ways[29].Images[0] = ResourceManager.GetImage("syst.raw?82".ToString(), ResourceLoadType.Delayed);
            data.Ways[29].Images[1] = ResourceManager.GetImage("syst.raw?83".ToString(), ResourceLoadType.Delayed);
            data.Ways[29].Position += new Vector2(20, 3);
            data.Ways[30].Images    = new Sprite[1];
            data.Ways[30].Images[0] = ResourceManager.GetImage("syst.raw?84".ToString(), ResourceLoadType.Delayed);
            data.Ways[30].Position += new Vector2(-3, 8);
            data.Ways[31].Images    = new Sprite[2];
            data.Ways[31].Images[0] = ResourceManager.GetImage("syst.raw?85".ToString(), ResourceLoadType.Delayed);
            data.Ways[31].Images[1] = ResourceManager.GetImage("syst.raw?86".ToString(), ResourceLoadType.Delayed);
            data.Ways[31].Position += new Vector2(10, 3);
            data.Ways[32].Images    = new Sprite[1];
            data.Ways[32].Images[0] = ResourceManager.GetImage("syst.raw?87".ToString(), ResourceLoadType.Delayed);
            data.Ways[32].Position += new Vector2(-2, 8);
            data.Ways[33].Images    = new Sprite[2];
            data.Ways[33].Images[0] = ResourceManager.GetImage("syst.raw?88".ToString(), ResourceLoadType.Delayed);
            data.Ways[33].Position += new Vector2(13, 4);
            data.Ways[34].Images    = new Sprite[2];
            data.Ways[34].Images[0] = ResourceManager.GetImage("syst.raw?89".ToString(), ResourceLoadType.Delayed);
            data.Ways[34].Images[1] = ResourceManager.GetImage("syst.raw?90".ToString(), ResourceLoadType.Delayed);
            data.Ways[34].Position += new Vector2(10, 2);
            data.Ways[35].Images    = new Sprite[1];
            data.Ways[35].Images[0] = ResourceManager.GetImage("syst.raw?91".ToString(), ResourceLoadType.Delayed);
            data.Ways[35].Position += new Vector2(5, 7);
            data.Ways[36].Images    = new Sprite[1];
            data.Ways[36].Images[0] = ResourceManager.GetImage("syst.raw?92".ToString(), ResourceLoadType.Delayed);
            data.Ways[36].Position += new Vector2(3, 3);
            data.Ways[37].Images    = new Sprite[2];
            data.Ways[37].Images[0] = ResourceManager.GetImage("syst.raw?93".ToString(), ResourceLoadType.Delayed);
            data.Ways[37].Images[1] = ResourceManager.GetImage("syst.raw?94".ToString(), ResourceLoadType.Delayed);
            data.Ways[37].Position += new Vector2(4, 4);
            data.Ways[38].Images    = new Sprite[2];
            data.Ways[38].Images[0] = ResourceManager.GetImage("syst.raw?95".ToString(), ResourceLoadType.Delayed);
            data.Ways[38].Images[1] = ResourceManager.GetImage("syst.raw?96".ToString(), ResourceLoadType.Delayed);
            data.Ways[38].Position += new Vector2(13, -1);
            data.Ways[39].Images    = new Sprite[1];
            data.Ways[39].Images[0] = ResourceManager.GetImage("syst.raw?97".ToString(), ResourceLoadType.Delayed);
            data.Ways[39].Position += new Vector2(-3, 8);
            data.Ways[40].Images    = new Sprite[2];
            data.Ways[40].Images[0] = ResourceManager.GetImage("syst.raw?98".ToString(), ResourceLoadType.Delayed);
            data.Ways[40].Images[1] = ResourceManager.GetImage("syst.raw?99".ToString(), ResourceLoadType.Delayed);
            data.Ways[40].Position += new Vector2(19, 5);
            data.Ways[41].Images    = new Sprite[1];
            data.Ways[41].Images[0] = ResourceManager.GetImage("syst.raw?100".ToString(), ResourceLoadType.Delayed);
            data.Ways[41].Position += new Vector2(8, 8);
            data.Ways[42].Images    = new Sprite[2];
            data.Ways[42].Images[0] = ResourceManager.GetImage("syst.raw?101".ToString(), ResourceLoadType.Delayed);
            data.Ways[42].Images[1] = ResourceManager.GetImage("syst.raw?102".ToString(), ResourceLoadType.Delayed);
            data.Ways[42].Position += new Vector2(12, 6);
            data.Ways[43].Images    = new Sprite[4];
            data.Ways[43].Images[0] = ResourceManager.GetImage("syst.raw?103".ToString(), ResourceLoadType.Delayed);
            data.Ways[43].Images[1] = ResourceManager.GetImage("syst.raw?104".ToString(), ResourceLoadType.Delayed);
            data.Ways[43].Images[2] = ResourceManager.GetImage("syst.raw?105".ToString(), ResourceLoadType.Delayed);
            data.Ways[43].Images[3] = ResourceManager.GetImage("syst.raw?106".ToString(), ResourceLoadType.Delayed);
            data.Ways[43].Position += new Vector2(12, 4);
            data.Ways[44].Images    = new Sprite[2];
            data.Ways[44].Images[0] = ResourceManager.GetImage("syst.raw?107".ToString(), ResourceLoadType.Delayed);
            data.Ways[44].Images[1] = ResourceManager.GetImage("syst.raw?108".ToString(), ResourceLoadType.Delayed);
            data.Ways[44].Position += new Vector2(2, 7);
            data.Ways[45].Images    = new Sprite[1];
            data.Ways[45].Images[0] = ResourceManager.GetImage("syst.raw?109".ToString(), ResourceLoadType.Delayed);
            data.Ways[45].Position += new Vector2(-2, 7);
            data.Ways[46].Images    = new Sprite[2];
            data.Ways[46].Images[0] = ResourceManager.GetImage("syst.raw?110".ToString(), ResourceLoadType.Delayed);
            data.Ways[46].Images[1] = ResourceManager.GetImage("syst.raw?111".ToString(), ResourceLoadType.Delayed);
            data.Ways[46].Position += new Vector2(10, 7);

            return(data);
        }
Exemplo n.º 3
0
        public DataObject Process(ResourceID id, ResourceManager resourceManager)
        {
            var     burngfxProcessor = new Burntime.Data.BurnGfx.ResourceProcessor.WayProcessor();
            WayData burngfx          = burngfxProcessor.Process("gam.dat", resourceManager) as WayData;

            WayData data = new WayData();

            data.DataName = id;

            ConfigFile config = new ConfigFile();

            config.Open(FileSystem.GetFile(id.File));

            Map map       = LogicFactory.GetParameter <Map>("mainmap");
            int cityCount = map.Entrances.Length;

            //int cityCount = config[""].GetInt("cities");
            int     wayCount = config[""].GetInt("ways");
            Vector2 offset   = config[""].GetVector2("burngfx_offset");

            data.Cross = new CrossWay[System.Math.Max(cityCount, burngfx.Cross.Length)];

            // add cross ways defined in burngfx
            for (int i = 0; i < burngfx.Cross.Length; i++)
            {
                data.Cross[i] = burngfx.Cross[i];
            }

            // add cross ways defined in ways.txt
            for (int i = 0; i < cityCount; i++)
            {
                if (data.Cross[i].Ways == null)
                {
                    data.Cross[i].Ways = new int[0];
                }
            }

            List <Way> ways = new List <Way>();

            // add ways defined in burngfx
            foreach (Way way in burngfx.Ways)
            {
                Way add = way;
                add.Position += offset;
                ways.Add(add);
            }

            // add ways defined in ways.txt
            for (int i = 0; i < wayCount; i++)
            {
                Way way = new Way();
                way.Start = config["ways"].GetInts("way" + i)[0];
                way.End   = config["ways"].GetInts("way" + i)[1];

                way.Position   = new Vector2();
                way.Position.x = System.Math.Min(map.Entrances[way.Start].Area.Center.x, map.Entrances[way.End].Area.Center.x);
                way.Position.y = System.Math.Min(map.Entrances[way.Start].Area.Center.y, map.Entrances[way.End].Area.Center.y);

                way.Images    = new Platform.Graphics.Sprite[1];
                way.Images[0] = resourceManager.GetImage(config["images"].GetString("way" + i), ResourceLoadType.Delayed);

                ways.Add(way);

#warning // TODO make more performant
                data.Cross[way.Start].Ways = data.Cross[way.Start].Ways.Concat(new int [] { ways.Count - 1 }).ToArray();
                data.Cross[way.End].Ways   = data.Cross[way.End].Ways.Concat(new int[] { ways.Count - 1 }).ToArray();
            }

            //// add ways defined in burnmap
            //for (int i = 0; i < map.MapData.Ways.Length; i++)
            //{
            //    Way way = map.MapData.Ways[i];

            //    ways.Add(way);

            //    data.Cross[way.Start].Ways = data.Cross[way.Start].Ways.Push(ways.Count - 1);
            //    data.Cross[way.End].Ways = data.Cross[way.End].Ways.Push(ways.Count - 1);
            //}

            data.Ways = ways.ToArray();

            return(data);
        }