]> Dogcows Code - chaz/carfire/blobdiff - CarFire/CarFire/CarFire/Game.cs
New property IEntity.IsCollidable so entities can let the collision code know whether...
[chaz/carfire] / CarFire / CarFire / CarFire / Game.cs
index 8b9b0759e9bacb46f6756aef25afe6e3075d41c9..1486e6572a66eb31db5b6413620342eb58efe85b 100644 (file)
@@ -261,7 +261,8 @@ namespace CarFire
         public bool IsCellOpen(Point point)\r
         {\r
             if (!State.Map.IsCellOpen(point)) return false;\r
-            if (GetEntityAtCoordinates(point) != null) return false;\r
+            IEntity entity = GetEntityAtCoordinates(point);\r
+            if (entity != null && entity.IsCollidable) return false;\r
             return true;\r
         }\r
 \r
@@ -333,47 +334,49 @@ namespace CarFire
             State.mDisplay = new Display(this);\r
             State.mDisplay.LoadContent(mContentManager);\r
 \r
+            // Load the tilemap.\r
             Texture2D mapTiles = mContentManager.Load<Texture2D>("graphics/wallAndFloorTilesNoEdgeScale");\r
             Tilemap tilemap = new Tilemap(mapTiles, 10, 7);\r
-            tilemap.SetTile(' ', new Point(4, 5));\r
-            tilemap.SetTile('`', new Point(0, 1));\r
-            tilemap.SetTile('~', new Point(1, 1));\r
-            tilemap.SetTile('!', new Point(3, 1));\r
-            tilemap.SetTile('@', new Point(4, 1));\r
-            tilemap.SetTile('#', new Point(5, 1));\r
-            tilemap.SetTile('$', new Point(6, 1));\r
-            tilemap.SetTile('%', new Point(8, 1));\r
-            tilemap.SetTile('^', new Point(9, 1));\r
-            tilemap.SetTile('&', new Point(0, 2));\r
-            tilemap.SetTile('=', new Point(1, 2));\r
-            tilemap.SetTile('*', new Point(2, 2));\r
-            tilemap.SetTile('(', new Point(4, 2));\r
-            tilemap.SetTile(')', new Point(0, 3));\r
-            tilemap.SetTile('_', new Point(2, 3));\r
-            tilemap.SetTile('-', new Point(9, 3));\r
-            tilemap.SetTile(',', new Point(1, 4));\r
-            tilemap.SetTile('+', new Point(2, 4));\r
-            tilemap.SetTile('[', new Point(3, 4));\r
-            tilemap.SetTile(']', new Point(4, 4));\r
-            tilemap.SetTile('{', new Point(5, 4));\r
-            tilemap.SetTile('}', new Point(6, 4));\r
-            tilemap.SetTile('\\', new Point(8, 4));\r
-            tilemap.SetTile('|', new Point(9, 4));\r
-            tilemap.SetTile(';', new Point(0, 5));\r
-            tilemap.SetTile(':', new Point(1, 5));\r
-            tilemap.SetTile('\'', new Point(2, 5));\r
-            tilemap.SetTile('"', new Point(3, 5));\r
-            tilemap.SetTile('.', new Point(5, 5));\r
-            tilemap.SetTile('<', new Point(6, 5));\r
-            tilemap.SetTile('>', new Point(7, 5));\r
-            tilemap.SetTile('/', new Point(8, 5));\r
-            tilemap.SetTile('?', new Point(9, 5));\r
-\r
+            tilemap.SetTile(' ', new Point(4, 5), TileFlags.Default);\r
+            tilemap.SetTile('`', new Point(0, 1), TileFlags.Closed | TileFlags.Wall);\r
+            tilemap.SetTile('~', new Point(1, 1), TileFlags.Closed | TileFlags.Wall);\r
+            tilemap.SetTile('!', new Point(3, 1), TileFlags.Closed | TileFlags.Wall);\r
+            tilemap.SetTile('@', new Point(4, 1), TileFlags.Closed | TileFlags.Wall);\r
+            tilemap.SetTile('#', new Point(5, 1), TileFlags.Closed | TileFlags.Wall);\r
+            tilemap.SetTile('$', new Point(6, 1), TileFlags.Closed | TileFlags.Wall);\r
+            tilemap.SetTile('%', new Point(8, 1), TileFlags.Closed | TileFlags.Wall);\r
+            tilemap.SetTile('^', new Point(9, 1), TileFlags.Closed | TileFlags.Wall);\r
+            tilemap.SetTile('&', new Point(0, 2), TileFlags.Closed | TileFlags.Wall);\r
+            tilemap.SetTile('=', new Point(1, 2), TileFlags.Closed | TileFlags.Wall);\r
+            tilemap.SetTile('*', new Point(2, 2), TileFlags.Closed | TileFlags.Wall);\r
+            tilemap.SetTile('(', new Point(4, 2), TileFlags.Closed | TileFlags.Wall);\r
+            tilemap.SetTile(')', new Point(0, 3), TileFlags.Closed | TileFlags.Wall);\r
+            tilemap.SetTile('_', new Point(2, 3), TileFlags.Closed | TileFlags.Wall);\r
+            tilemap.SetTile('-', new Point(9, 3), TileFlags.Closed | TileFlags.Wall);\r
+            tilemap.SetTile(',', new Point(1, 4), TileFlags.Default);\r
+            tilemap.SetTile('+', new Point(2, 4), TileFlags.Default);\r
+            tilemap.SetTile('[', new Point(3, 4), TileFlags.Default);\r
+            tilemap.SetTile(']', new Point(4, 4), TileFlags.Default);\r
+            tilemap.SetTile('{', new Point(5, 4), TileFlags.Default);\r
+            tilemap.SetTile('}', new Point(6, 4), TileFlags.Default);\r
+            tilemap.SetTile('\\', new Point(8, 4), TileFlags.Default);\r
+            tilemap.SetTile('|', new Point(9, 4), TileFlags.Default);\r
+            tilemap.SetTile(';', new Point(0, 5), TileFlags.Default);\r
+            tilemap.SetTile(':', new Point(1, 5), TileFlags.Default);\r
+            tilemap.SetTile('\'', new Point(2, 5), TileFlags.Default);\r
+            tilemap.SetTile('"', new Point(3, 5), TileFlags.Default);\r
+            tilemap.SetTile('.', new Point(5, 5), TileFlags.Default);\r
+            tilemap.SetTile('<', new Point(6, 5), TileFlags.Default);\r
+            tilemap.SetTile('>', new Point(7, 5), TileFlags.Default);\r
+            tilemap.SetTile('/', new Point(8, 5), TileFlags.Default);\r
+            tilemap.SetTile('?', new Point(9, 5), TileFlags.Default);\r
+            Map.Tilemap = tilemap;\r
+\r
+            // Load the first map.\r
             State.Map = mContentManager.Load<Map>("Maps/level1");\r
-            State.Map.Tilemap = tilemap;\r
             State.Entities = State.Map.GetAllEntities(this);\r
 \r
-            State.AIData = new AI(this);\r
+            //State.AIData = new AI(this);\r
 \r
             /*\r
             mPlayers.Clear();\r
This page took 0.021259 seconds and 4 git commands to generate.