]> Dogcows Code - chaz/carfire/blobdiff - CarFire/CarFire/CarFire/Map.cs
New map method Map.GetStartingPositionForPlayer to, uh, get the starting positions...
[chaz/carfire] / CarFire / CarFire / CarFire / Map.cs
index ddfa9d5457b309f80a9fd8a48bad537fcee7ff06..f3d59d4a705a6e2e341a0177cf4e87f23fb46f7f 100644 (file)
@@ -154,9 +154,9 @@ namespace CarFire
         /// <param name="metadata">The metadata.</param>\r
         /// <param name="grid">The grid.</param>\r
         /// <param name="entities">The entities.</param>\r
-        public Map(Metadata metadata, char[,] grid, List<RawEntity> entities)\r
+        public Map(Metadata metadata, char[,] grid, List<RawEntity> entities, Point[] playerPositions)\r
         {\r
-            mData = new Modal(metadata, grid, entities);\r
+            mData = new Modal(metadata, grid, entities, playerPositions);\r
             mView = new View(mData);\r
         }\r
 \r
@@ -236,6 +236,19 @@ namespace CarFire
         }\r
 \r
 \r
+        /// <summary>\r
+        /// Get the starting position of a player.\r
+        /// </summary>\r
+        /// <param name="playerNumber">The number of the player (i.e. 1-4).\r
+        /// This number must be a valid player number.</param>\r
+        /// <returns>The starting position of the player.</returns>\r
+        public Point GetStartingPositionForPlayer(int playerNumber)\r
+        {\r
+            Debug.Assert(1 <= playerNumber && playerNumber <= NumPlayers.Max());\r
+            return mData.PlayerPositions[playerNumber];\r
+        }\r
+\r
+\r
         /// <summary>\r
         /// Get all the entities loaded from the map file.  Exceptions could be\r
         /// thrown if there are entities without associated classes.\r
@@ -267,8 +280,9 @@ namespace CarFire
             Metadata mMetadata;\r
             char[,] mGrid;\r
             List<RawEntity> mEntities;\r
+            Point[] mPlayerPositions;\r
 \r
-            public Modal(Metadata metadata, char[,] grid, List<RawEntity> entities)\r
+            public Modal(Metadata metadata, char[,] grid, List<RawEntity> entities, Point[] playerPositions)\r
             {\r
                 Debug.Assert(metadata != null);\r
                 Debug.Assert(grid != null);\r
@@ -278,6 +292,7 @@ namespace CarFire
                 mMetadata = metadata;\r
                 mGrid = grid;\r
                 mEntities = entities;\r
+                mPlayerPositions = playerPositions;\r
 \r
 #if DEBUG\r
                 Console.WriteLine("Loaded map {0} of type {1} written by {2}.",\r
@@ -290,6 +305,7 @@ namespace CarFire
 \r
             public Metadata Metadata { get { return mMetadata; } }\r
             public List<RawEntity> Entities { get { return mEntities; } }\r
+            public Point[] PlayerPositions { get { return mPlayerPositions; } }\r
 \r
 \r
             public bool IsCellOpen(int x, int y)\r
This page took 0.018536 seconds and 4 git commands to generate.