public void NewMap(int mapWidth, int mapHeight, Texture2D tileset, string mapName) { //set the dimensions this.mapWidth = mapWidth; this.mapHeight = mapHeight; this.mapName = mapName; //Create the map foregroundLayer = new cCell[mapWidth, mapHeight]; interactiveLayer = new cCell[mapWidth, mapHeight]; backgroundLayer = new cCell[mapWidth, mapHeight]; entityLayer = new cCell[mapWidth, mapHeight]; tempVisualLayer = new cCell[mapWidth, mapHeight]; tempInteractiveVisualLayer = new cCell[mapWidth, mapHeight]; tempForegroundVisualLayer = new cCell[mapWidth, mapHeight]; //fill the map with cells for (int x = 0; x < mapWidth; x++) { for (int y = 0; y < mapHeight; y++) { backgroundLayer[x, y] = new cCell(tileWidth, tileHeight, 0, Game1.hud.tilesetManager.tilesetWidth); interactiveLayer[x, y] = new cCell(tileWidth, tileHeight, 0, Game1.hud.tilesetManager.tilesetWidth); foregroundLayer[x, y] = new cCell(tileWidth, tileHeight, 0, Game1.hud.tilesetManager.tilesetWidth); entityLayer[x, y] = new cCell(tileWidth, tileHeight, 0, Game1.hud.tilesetManager.tilesetWidth); tempVisualLayer[x, y] = new cCell(tileWidth, tileHeight, 0, Game1.hud.tilesetManager.tilesetWidth); tempInteractiveVisualLayer[x, y] = new cCell(tileWidth, tileHeight, 0, Game1.hud.tilesetManager.tilesetWidth); tempForegroundVisualLayer[x, y] = new cCell(tileWidth, tileHeight, 0, Game1.hud.tilesetManager.tilesetWidth); } } this.tileset = tileset; }
public void LoadMap(string filepath) { this.filePath = filepath; StreamReader reader = new StreamReader(filepath); //Read the global map data try { // get the tile dimensions from the tileset tileWidth = Game1.mapController.tileWidth; tileHeight = Game1.mapController.tileHeight; mapName = reader.ReadLine(); //set the map dimensions mapWidth = int.Parse(reader.ReadLine()); mapHeight = int.Parse(reader.ReadLine()); Game1.mapController.SetEditableArea(); Game1.mapController.mapWidth = mapWidth; Game1.mapController.mapHeight = mapHeight; reader.ReadLine(); reader.ReadLine(); reader.ReadLine(); reader.ReadLine(); //create an empty map based on the data backgroundLayer = new cCell[mapWidth, mapHeight]; interactiveLayer = new cCell[mapWidth, mapHeight]; foregroundLayer = new cCell[mapWidth, mapHeight]; entityLayer = new cCell[mapWidth, mapHeight]; tempVisualLayer = new cCell[mapWidth, mapHeight]; tempInteractiveVisualLayer = new cCell[mapWidth, mapHeight]; tempForegroundVisualLayer = new cCell[mapWidth, mapHeight]; for (int x = 0; x < mapWidth; x++) { for (int y = 0; y < mapHeight; y++) { backgroundLayer[x, y] = new cCell(tileWidth, tileHeight, 0, Game1.hud.tilesetManager.tilesetWidth); interactiveLayer[x, y] = new cCell(tileWidth, tileHeight, 0, Game1.hud.tilesetManager.tilesetWidth); foregroundLayer[x, y] = new cCell(tileWidth, tileHeight, 0, Game1.hud.tilesetManager.tilesetWidth); entityLayer[x, y] = new cCell(tileWidth, tileHeight, 0, Game1.hud.tilesetManager.tilesetWidth); tempVisualLayer[x, y] = new cCell(tileWidth, tileHeight, 0, Game1.hud.tilesetManager.tilesetWidth); tempInteractiveVisualLayer[x, y] = new cCell(tileWidth, tileHeight, 0, Game1.hud.tilesetManager.tilesetWidth); tempForegroundVisualLayer[x, y] = new cCell(tileWidth, tileHeight, 0, Game1.hud.tilesetManager.tilesetWidth); } } //fill the map with data from the 3 arrays in the map file for (int y = 0; y < mapHeight; y++) { string line = reader.ReadLine(); string[] values = line.Split(','); for (int i = 0; i < values.Length-1; i++) { backgroundLayer[i, y].tileID = int.Parse(values[i]); Console.Write(values[i] + " ."); } } reader.ReadLine(); for (int y = 0; y < mapHeight; y++) { string line = reader.ReadLine(); string[] values = line.Split(','); for (int i = 0; i < values.Length - 1; i++) { interactiveLayer[i, y].tileID = int.Parse(values[i]); Console.Write(values[i] + " ."); } } reader.ReadLine(); for (int y = 0; y < mapHeight; y++) { string line = reader.ReadLine(); string[] values = line.Split(','); for (int i = 0; i < values.Length - 1; i++) { foregroundLayer[i, y].tileID = int.Parse(values[i]); Console.Write(values[i] + " ."); } } reader.ReadLine(); for (int y = 0; y < mapHeight; y++) { string line = reader.ReadLine(); string[] values = line.Split(','); for (int i = 0; i < values.Length - 1; i++) { entityLayer[i, y].tileID = int.Parse(values[i]); Console.Write(values[i] + " ."); } } reader.Close(); } catch { System.Windows.Forms.MessageBox.Show("Failed to load map, possibly incorrect file format."); reader.Close(); } rootPath = filePath.Remove(filePath.Length - mapName.Length - 7); Console.WriteLine(rootPath); Game1.hud.LoadNpc(); Game1.hud.LoadWarp(); }