X-Git-Url: https://git.dogcows.com/gitweb?p=chaz%2Fcarfire;a=blobdiff_plain;f=CarFire%2FCarFire%2FCarFire%2FMap.cs;h=504a68ce7f9dca706131c80835b2c67c3b1fcce1;hp=ae49c8a8c3bc2f635329f3e57615de4069020cd5;hb=08f41ef45f3c41ca6302150bc6d5270c8e7143db;hpb=d861be5538dfe866f867a6e237311ba6b743e863 diff --git a/CarFire/CarFire/CarFire/Map.cs b/CarFire/CarFire/CarFire/Map.cs index ae49c8a..504a68c 100644 --- a/CarFire/CarFire/CarFire/Map.cs +++ b/CarFire/CarFire/CarFire/Map.cs @@ -46,6 +46,7 @@ namespace CarFire public string Name; public Mode Type; public string Author; + public string Next; public HashSet NumPlayers = new HashSet(); public string Tileset; public int GridWidth; @@ -82,6 +83,11 @@ namespace CarFire /// public string Author { get { return mData.Metadata.Author; } } + /// + /// Get the name of the next map to load after this one. + /// + public string Next { get { return mData.Metadata.Next; } } + /// /// Get a set of integers containing each allowable number of players. /// @@ -134,13 +140,11 @@ namespace CarFire /// /// Get and set the tilemap with its associated texture and tile /// character to coordinate mappings. This effects what the map looks - /// like when it is drawn. + /// like when it is drawn. You will need to reset any map instances + /// after setting a new tilemap. You should also set a tilemap before + /// instantiating any maps. /// - public Tilemap Tilemap - { - get { return mData.Tilemap; } - set { mData.Tilemap = value; } - } + public static Tilemap Tilemap; /// /// Get and set the zoom of the map view. The default zoom is @@ -355,7 +359,6 @@ namespace CarFire public List Entities { get { return mEntities; } } public Point[] PlayerPositions { get { return mPlayerPositions; } } public bool[,] Grid { get { return mBooleanGrid; } } - public Tilemap Tilemap; public Model(Metadata metadata, char[,] grid, char defaultTile, @@ -365,6 +368,7 @@ namespace CarFire Debug.Assert(grid != null); Debug.Assert(entities != null); Debug.Assert(metadata.GridWidth * metadata.GridHeight == grid.Length); + Debug.Assert(Tilemap != null); mMetadata = metadata; mCleanGrid = grid; @@ -542,14 +546,14 @@ namespace CarFire public void Draw(SpriteBatch spriteBatch) { - if (mData.Tilemap == null) throw new Exception("Cannot draw map without first setting the tilemap."); + if (Tilemap == null) throw new Exception("Cannot draw map without first setting the tilemap."); mViewport = spriteBatch.GraphicsDevice.Viewport; for (int y = 0; y < mData.Metadata.GridHeight; y++) { for (int x = 0; x < mData.Metadata.GridWidth; x++) { - mData.Tilemap.Draw(spriteBatch, mData.GetCell(x, y), GetRectangleFromCoordinates(x, y)); + Tilemap.Draw(spriteBatch, mData.GetCell(x, y), GetRectangleFromCoordinates(x, y)); } } }