public void LoadData()
        {
            var enter = new EnterTeleData(rom);
            var tele  = new NormTeleData(rom);

            enter.LoadData();
            tele.LoadData();

            NormalTele = tele;

            foreach (var e in EnterMapping)
            {
                var x = Get(e.Value);
                x.SetEntrance(new Coordinate(enter[(int)e.Key].X, enter[(int)e.Key].Y, CoordinateLocale.Standard));
                Set(e.Value, x);
            }

            foreach (var t in TeleMapping)
            {
                var x = Get(t.Value);
                x.SetEntrance(new Coordinate((byte)(tele[(int)t.Key].X | (x.CoordinateX & 0x80)), tele[(int)t.Key].Y, CoordinateLocale.Standard));
                Set(t.Value, x);
            }
        }
        public void Work()
        {
            tele.LoadData();
            enter.LoadData();

            SwapTilesAndTele(MapId.TempleOfFiends, 0x14, 0x1E, 0x14, 0x06);

            SwapTilesAndTele(MapId.EarthCaveB1, 0x17, 0x18, 0x13, 0x24, 0x1C, 0x2F);

            SwapTilesAndTele(MapId.GurguVolcanoB1, 0x1B, 0x0F, 0x15, 0x17, 0x06, 0x10);

            SwapTilesAndTele(MapId.IceCaveB1, 0x07, 0x01, 0x1E, 0x0B);

            SwapTilesAndTele(MapId.IceCaveB1, 0x06, 0x14, 0x19, 0x12);

            SwapTilesAndTele(MapId.BahamutsRoomB1, 0x02, 0x02, 0x02, 0x35);

            SwapTilesAndTele(MapId.MarshCaveB1, 0x15, 0x1B, 0x01, 0x07, 0x2D, 0x1A);

            SwapTilesAndTele(MapId.MirageTower1F, 0x0E, 0x1F, 0x0E, 0x01);
            SwapTilesAndTele(MapId.MirageTower1F, 0x11, 0x1F, 0x11, 0x01);
            DuplicateTile(MapId.MirageTower1F, 0x0F, 0x1F, 0x0F, 0x01);
            DuplicateTile(MapId.MirageTower1F, 0x10, 0x1F, 0x10, 0x01);

            SwapTilesAndTele(MapId.MarshCaveB2, 0x12, 0x10, 0x01, 0x0E, 0x12, 0x03);

            SwapTilesAndTele(MapId.MarshCaveB2, 0x22, 0x25, 0x0E, 0x32, 0x34, 0x20);

            SwapTilesAndTele(MapId.MarshCaveB3, 0x05, 0x06, 0x38, 0x06, 0x2C, 0x27);

            SwapTilesAndTele(MapId.EarthCaveB2, 0x0A, 0x09, 0x1B, 0x0A, 0x14, 0x23);

            SwapTilesAndTele(MapId.EarthCaveB3, 0x1B, 0x2D, 0x34, 0x13);

            SwapTilesAndTele(MapId.EarthCaveB4, 0x3D, 0x21, 0x09, 0x09);
            SwapTilesAndTele(MapId.EarthCaveB4, 0x09, 0x09, 0x13, 0x0B);
            SwapTilesAndTele(MapId.EarthCaveB4, 0x3D, 0x21, 0x35, 0x28);

            SwapTilesAndTele(MapId.EarthCaveB5, 0x19, 0x35, 0x26, 0x37, 0x11, 0x17);

            SwapTilesAndTele(MapId.GurguVolcanoB2, 0x1E, 0x20, 0x01, 0x20);

            SwapVolcanoB3(MapId.GurguVolcanoB3, 0x12, 0x02, 0x15, 0x02);

            SwapTilesAndTele(MapId.GurguVolcanoB3, 0x2E, 0x17, 0x01, 0x14, 0x2C, 0x31);

            SwapTilesAndTele(MapId.GurguVolcanoB4, 0x03, 0x17, 0x17, 0x2D);

            //SwapTilesAndTele(MapId.GurguVolcanoB4, 0x23, 0x06, 0x01, 0x06, 0x31, 0x11);
            SwapTilesAndTele(MapId.GurguVolcanoB4, 0x23, 0x06, 0x28, 0x2D);

            SwapTilesAndTele(MapId.GurguVolcanoB5, 0x20, 0x1F, 0x32, 0x05, 0x0D, 0x05);

            SwapTilesAndTele(MapId.IceCaveB2, 0x1E, 0x02, 0x05, 0x02);

            //SwapTilesAndTele(MapId.IceCaveB2, 0x37, 0x05, 0x34, 0x01);

            SwapIceB3(MapId.IceCaveB3, 0x27, 0x06, 0x1F, 0x15, 0x35, 0x1D);

            SwapTwoTilesAndTele(MapId.MirageTower2F, 0x10, 0x1F, 0x17, 0x03, 0x10, 0x03, 0x12, 0x1C);

            SwapTilesAndTele(MapId.SeaShrineB1, 0x0C, 0x1A, 0x1E, 0x13, 0x0C, 0x01);

            SwapSeaShrineB2();

            //SwapTilesAndTele(MapId.SeaShrineB3, 0x15, 0x2A, 0x03, 0x1B, 0x1E, 0x13);
            SwapTilesAndTele(MapId.SeaShrineB3, 0x15, 0x2A, 0x02, 0x02, 0x1F, 0x07);

            SwapTilesAndTele(MapId.SeaShrineB3, 0x30, 0x0A, 0x2F, 0x1D);

            SwapTilesAndTele(MapId.SeaShrineB4, 0x3D, 0x31, 0x26, 0x31, 0x14, 0x30);

            SwapTilesAndTele(MapId.SeaShrineB4, 0x2D, 0x14, 0x28, 0x0E, 0x1B, 0x1A);

            SwapTilesAndTele(MapId.SeaShrineB5, 0x32, 0x30, 0x34, 0x18, 0x14, 0x37);

            SwapSky1F(MapId.SkyPalace1F, 0x11, 0x11, 0x11, 0x22, 0x01, 0x11);

            SwapTwoTilesAndTele(MapId.SkyPalace2F, 0x13, 0x04, 0x07, 0x23, 0x13, 0x26, 0x20, 0x08);

            SwapTilesAndTele(MapId.SkyPalace3F, 0x18, 0x17, 0x11, 0x29, 0x1B, 0x37);

            SwapTilesAndTele(MapId.SkyPalace4F, 0x23, 0x23, 0x33, 0x13, 0x13, 0x33);

            //SwapTilesAndTele(MapId.TitansTunnel, 0x0B, 0x0E, 0x05, 0x03);

            SwapTilesAndTele(MapId.IceCaveB3, 0x03, 0x02, 0x05, 0x04);

            SwapTwoTilesAndTele(MapId.SeaShrineB2, 0x3D, 0x31, 0x35, 0x2C, 0x36, 0x29, 0x3C, 0x2C);

            SwapTilesAndTele(MapId.SeaShrineB3, 0x2F, 0x27, 0x31, 0x25);

            SwapMirage3F();

            tele.StoreData();
            enter.StoreData();
        }