X-Git-Url: https://git.dogcows.com/gitweb?p=chaz%2Fcarfire;a=blobdiff_plain;f=CarFire%2FCarFire%2FCarFire%2FMap.cs;fp=CarFire%2FCarFire%2FCarFire%2FMap.cs;h=ae49c8a8c3bc2f635329f3e57615de4069020cd5;hp=1b8b5a89bc992a9279f324102379674ce0a5ef73;hb=d861be5538dfe866f867a6e237311ba6b743e863;hpb=f41d1413bdee1a69450ca6c2bca9932a4c61a6d9 diff --git a/CarFire/CarFire/CarFire/Map.cs b/CarFire/CarFire/CarFire/Map.cs index 1b8b5a8..ae49c8a 100644 --- a/CarFire/CarFire/CarFire/Map.cs +++ b/CarFire/CarFire/CarFire/Map.cs @@ -138,8 +138,8 @@ namespace CarFire /// public Tilemap Tilemap { - get { return mView.Tilemap; } - set { mView.Tilemap = value; } + get { return mData.Tilemap; } + set { mData.Tilemap = value; } } /// @@ -355,6 +355,7 @@ 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, @@ -399,17 +400,17 @@ namespace CarFire public bool IsCellOpen(int x, int y) { - // TODO: Still need to define characters for types of scenery. - if (IsOnMap(x, y)) return mGrid[x, y] == ' '; - return false; + if (!IsOnMap(x, y)) return false; + return (Tilemap.GetTileFlags(mGrid[x, y]) & TileFlags.Open) == TileFlags.Open; } //created by Brady for AI precalculations public bool IsWall(int x, int y) { - if (IsOnMap(x, y)) return (mGrid[x, y] == '-' || mGrid[x, y] == '|' || mGrid[x, y] == '+' || mGrid[x, y] == '/' || mGrid[x, y] == '\\'); - return false; + if (!IsOnMap(x, y)) return false; + return (Tilemap.GetTileFlags(mGrid[x, y]) & TileFlags.Wall) == TileFlags.Wall; } + public void SetCell(int x, int y, char tile) { if (IsOnMap(x, y)) @@ -520,7 +521,6 @@ namespace CarFire class View { public Vector2 CenterCell; - public Tilemap Tilemap; public float Zoom; @@ -542,14 +542,14 @@ namespace CarFire public void Draw(SpriteBatch spriteBatch) { - if (Tilemap == null) throw new Exception("Cannot draw map without first setting the tilemap."); + if (mData.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++) { - Tilemap.Draw(spriteBatch, mData.GetCell(x, y), GetRectangleFromCoordinates(x, y)); + mData.Tilemap.Draw(spriteBatch, mData.GetCell(x, y), GetRectangleFromCoordinates(x, y)); } } }