private void OpenRegion(ProjectRegion pRegion)
{
try
{
Region region = new Region(pRegion.setor[0], pRegion.setor[1], pRegion.setor[2], pRegion.setor[3]);
region.name = pRegion.name;
int i;
for (i = 0; i < pRegion.layer.Length; i++)
{
ProjectLayer pLayer = pRegion.layer[i];
Layer layer = new Layer();
layer.name = pLayer.name;
layer.visible = pLayer.visible;
layer.tiles = new Dictionary<int, Dictionary<int, Tile>>();
int j;
if (pLayer.tiles != null)
{
for (j = 0; j < pLayer.tiles.Length; j++)
{
ProjectTile pTile = pLayer.tiles[j];
if (pTile == null)
continue;
Tile tile = new Tile();
tile.point = new Point(pTile.point[0], pTile.point[1]);
tile.tile_code = pTile.tile_code;
tile.tile_crop = pTile.tile_crop;
tile.tileset_code = pTile.tileset_code;
if (!layer.tiles.ContainsKey(pTile.point[0]))
{
layer.tiles.Add(pTile.point[0], new Dictionary<int, Tile>());
}
Dictionary<int, Tile> coluna = layer.tiles[pTile.point[0]];
if (!coluna.ContainsKey(pTile.point[1]))
{
coluna.Add(pTile.point[1], tile);
}
else
{
coluna[pTile.point[1]] = tile;
}
}
}
if (pLayer.events != null)
{
for (j = 0; j < pLayer.events.GetLongLength(0); j++)
{
int code = pLayer.events[j, 0];
int x = pLayer.events[j, 1];
int y = pLayer.events[j, 2];
layer.addEvent(new Point(x, y), code);
}
}
region.addLayer(layer);
}
i = world.AddRegion(region);
insert_region(region.name, i);
}
catch (Exception ex)
{
string error = ex.Message;
}
}