]> Dogcows Code - chaz/carfire/blobdiff - CarFire/CarFire/CarFire/Map.cs
Implemented tile flags so we can define and determine what a tile is supposed to...
[chaz/carfire] / CarFire / CarFire / CarFire / Map.cs
index 1b8b5a89bc992a9279f324102379674ce0a5ef73..ae49c8a8c3bc2f635329f3e57615de4069020cd5 100644 (file)
@@ -138,8 +138,8 @@ namespace CarFire
         /// </summary>\r
         public Tilemap Tilemap\r
         {\r
-            get { return mView.Tilemap; }\r
-            set { mView.Tilemap = value; }\r
+            get { return mData.Tilemap; }\r
+            set { mData.Tilemap = value; }\r
         }\r
 \r
         /// <summary>\r
@@ -355,6 +355,7 @@ namespace CarFire
             public List<RawEntity> Entities { get { return mEntities; } }\r
             public Point[] PlayerPositions { get { return mPlayerPositions; } }\r
             public bool[,] Grid { get { return mBooleanGrid; } }\r
+            public Tilemap Tilemap;\r
 \r
 \r
             public Model(Metadata metadata, char[,] grid, char defaultTile,\r
@@ -399,17 +400,17 @@ namespace CarFire
 \r
             public bool IsCellOpen(int x, int y)\r
             {\r
-                // TODO: Still need to define characters for types of scenery.\r
-                if (IsOnMap(x, y)) return mGrid[x, y] == ' ';\r
-                return false;\r
+                if (!IsOnMap(x, y)) return false;\r
+                return (Tilemap.GetTileFlags(mGrid[x, y]) & TileFlags.Open) == TileFlags.Open;\r
             }\r
 \r
             //created by Brady for AI precalculations\r
             public bool IsWall(int x, int y)\r
             {\r
-                if (IsOnMap(x, y)) return (mGrid[x, y] == '-' || mGrid[x, y] == '|' || mGrid[x, y] == '+' || mGrid[x, y] == '/' || mGrid[x, y] == '\\');\r
-                return false;\r
+                if (!IsOnMap(x, y)) return false;\r
+                return (Tilemap.GetTileFlags(mGrid[x, y]) & TileFlags.Wall) == TileFlags.Wall;\r
             }\r
+\r
             public void SetCell(int x, int y, char tile)\r
             {\r
                 if (IsOnMap(x, y))\r
@@ -520,7 +521,6 @@ namespace CarFire
         class View\r
         {\r
             public Vector2 CenterCell;\r
-            public Tilemap Tilemap;\r
             public float Zoom;\r
 \r
 \r
@@ -542,14 +542,14 @@ namespace CarFire
 \r
             public void Draw(SpriteBatch spriteBatch)\r
             {\r
-                if (Tilemap == null) throw new Exception("Cannot draw map without first setting the tilemap.");\r
+                if (mData.Tilemap == null) throw new Exception("Cannot draw map without first setting the tilemap.");\r
                 mViewport = spriteBatch.GraphicsDevice.Viewport;\r
 \r
                 for (int y = 0; y < mData.Metadata.GridHeight; y++)\r
                 {\r
                     for (int x = 0; x < mData.Metadata.GridWidth; x++)\r
                     {\r
-                        Tilemap.Draw(spriteBatch, mData.GetCell(x, y), GetRectangleFromCoordinates(x, y));\r
+                        mData.Tilemap.Draw(spriteBatch, mData.GetCell(x, y), GetRectangleFromCoordinates(x, y));\r
                     }\r
                 }\r
             }\r
This page took 0.019233 seconds and 4 git commands to generate.