/// <summary> /// Metoda pro ulozeni mapy /// </summary> public static void SaveMap() { Session.MapData = new MapSerialize(); Session.MapData.keys = Session.Keys; Session.MapData.units = Session.Units; Session.MapData.mapProps = Session.MapProps; Session.MapData.backLayer = BackMap.mapLayers[0]; Session.MapData.backSplatter = BackMap.mapLayers[1]; Session.MapData.frontLayer = FrontMap.mapLayers[0]; Session.MapData.frontSplatter = FrontMap.mapLayers[1]; try { Serializer ser = new Serializer(); ser.SerializeMap("map.xml", Session.MapData); } catch (Exception ex) { string message = ex.Message; } }
/// <summary> /// Metoda pro nahrani vsech map a textur a vsech defaultnich veci /// </summary> /// <param name="mapName"></param> public static void LoadMapAndTextures(string mapName) { //Nahrani mapy #region Tile Sets font = GameRef.Content.Load<SpriteFont>(@"Fonts\editorFont"); Texture2D tilesetTexture = GameRef.Content.Load<Texture2D>(@"Tiles\walkable"); tilesetTexture.Name = "Walkable"; Tileset tileset1 = new Tileset(tilesetTexture, 10, 10, 32, 32); tilesetTexture = GameRef.Content.Load<Texture2D>(@"Tiles\tileset2"); tilesetTexture.Name = "tileset2"; Tileset tileset2 = new Tileset(tilesetTexture, 10, 10, 32, 32); List<Tileset> tilesets = new List<Tileset>(); tilesets.Add(tileset1); tilesets.Add(tileset2); Texture2D pathSetText = GameRef.Content.Load<Texture2D>(@"Tiles\pathSet"); pathSetText.Name = "pathSet"; Tileset pathSet = new Tileset(pathSetText, 5, 5, 32, 32); tilesets.Add(pathSet); charTexture = GameRef.Content.Load<Texture2D>(@"Sprites\characterSet"); keyTexture = GameRef.Content.Load<Texture2D>(@"Sprites\keySet"); #endregion Serializer ser = new Serializer(); MapSerialize ob = ser.DeSerializeMap(mapName); Session.MapProps = ob.mapProps; #region Back Map List<MapLayer> backlayers = new List<MapLayer>(); backlayers.Add(ob.backLayer); backlayers.Add(ob.backSplatter); Session.BackMap = new TileMap(tilesets, backlayers, Session.MapProps.BackSizeX, Session.MapProps.BackSizeY, Session.MapProps.BackEngineX, Session.MapProps.BackEngineY); #endregion #region FrontMap List<MapLayer> frontlayers = new List<MapLayer>(); frontlayers.Add(ob.frontLayer); frontlayers.Add(ob.frontSplatter); Session.FrontMap = new TileMap(tilesets, frontlayers, Session.MapProps.FrontSizeX, Session.MapProps.FrontSizeY, Session.MapProps.FrontEngineX, Session.MapProps.FrontEngineY); #endregion Session.FrontMap.mapLayers[0].map[25, 7].obj = 1; Session.FrontMap.mapLayers[0].map[17, 25].obj = 2; Session.FrontMap.mapLayers[0].map[12, 31].obj = 3; Session.FrontMap.mapLayers[0].map[26, 34].obj = 4; Session.FrontMap.mapLayers[0].map[49, 17].obj = "The End"; LoadBases(); Units = new List<Unit>(); foreach (Unit item in ob.units) { Units.Add(baseUnits[item.Name].Clone(item.Notoriety, item.Cell.X, item.Cell.Y)); } Keys = new List<GameKey>(); foreach (GameKey item in ob.keys) { Keys.Add(baseKeys[item.index].Clone(item.Cell.X, item.Cell.Y)); } }
/// <summary> /// Metoda slouzici pro ulozeni hry /// </summary> /// <param name="gamename"></param> public static void SaveGame(string gamename) { Session.GameData = new GameSerialize(); Session.GameData.mapName = "map.xml"; Session.GameData.hero = Session.CurrentHero; Session.GameData.cam = Session.Camera; Session.GameData.keys = Session.Keys; Session.GameData.units = Session.Units; Session.GameData.frontSplatter = Session.FrontMap.mapLayers[1]; try { Serializer ser = new Serializer(); ser.SerializeGame(gamename, Session.GameData); } catch (Exception ex) { string message = ex.Message; } }
/// <summary> /// Metoda slouzici pro nahrani hry /// </summary> /// <param name="gamename"></param> public static void LoadGame(string gamename) { GameSerialize ob = new GameSerialize(); try { Serializer ser = new Serializer(); ob = ser.DeSerializeGame(gamename); LoadMapAndTextures(ob.mapName); LoadHeroSprite(ob.hero.Gender); //Overrides Units loaded from MapSerialize Units = new List<Unit>(); foreach (Unit item in ob.units) { Unit klon = baseUnits[item.Name].Clone(item.Notoriety, item.Cell.X, item.Cell.Y); Session.FrontMap.GetTile(item.Cell).obj = klon; Units.Add(klon); } //Overrides Keys loaded from MapSerialize Keys = new List<GameKey>(); foreach (GameKey item in ob.keys) { GameKey klon = baseKeys[item.index].Clone(item.Cell.X, item.Cell.Y); Session.FrontMap.GetTile(item.Cell).obj = klon; Keys.Add(klon); } MapLayer frontPath = new MapLayer(Session.MapProps.FrontSizeX, Session.MapProps.FrontSizeY); for (int y = 0; y < frontPath.Height; y++) { for (int x = 0; x < frontPath.Width; x++) { Tile tile = new Tile(-1, -1, y, x); frontPath.SetTile(x, y, tile); } } Session.FrontMap.mapLayers.Add(frontPath); Session.CurrentHero = new Hero(ob.hero, playerSpriteHero); Session.CurrentHero.units = new List<Unit>(); foreach (Unit item in ob.hero.units) { Session.CurrentHero.units.Add(baseUnits[item.Name].Clone(item.Notoriety, item.Cell.X, item.Cell.Y, item.Attack, item.Defense, item.HitPoints, item.isInHero)); } Session.Camera = ob.cam; Session.FrontMap.mapLayers[1] = ob.frontSplatter; } catch (Exception ex) { string message = ex.Message; } }