]> Dogcows Code - chaz/carfire/commitdiff
New map method Map.GetStartingPositionForPlayer to, uh, get the starting positions...
authorCharles <Charles@92bb83a3-7c8f-8a45-bc97-515c4e399668>
Fri, 16 Apr 2010 18:11:19 +0000 (18:11 +0000)
committerCharles <Charles@92bb83a3-7c8f-8a45-bc97-515c4e399668>
Fri, 16 Apr 2010 18:11:19 +0000 (18:11 +0000)
git-svn-id: https://bd85.net/svn/cs3505_group@96 92bb83a3-7c8f-8a45-bc97-515c4e399668

CarFire/CarFire/CarFire/Map.cs
CarFire/CarFire/CarFire/MapReader.cs
CarFire/CarFire/CarFire/Parse.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
index 3d43f3619a8929152a062d4677032f2528635547..8eb7e16f98fd85af5027e5e79cc1e30a479b42ae 100644 (file)
@@ -96,7 +96,7 @@ namespace CarFire
 \r
             public Map GetMap()\r
             {\r
-                return new Map(mMetadata, mGrid, mEntities);\r
+                return new Map(mMetadata, mGrid, mEntities, mPlayerPositions);\r
             }\r
 \r
 \r
index be11a9ac506046827f06441b31f67aea3adab07c..bb2e9c1115d6d10bfdde9ed296a34cb468bd4add 100644 (file)
@@ -10,7 +10,7 @@ namespace CarFire
     /// <summary>\r
     /// Class with handy static methods taking strings and returning objects\r
     /// parsed from those strings.  For all of these functions, white space is\r
-    /// generally ignored, but any superfluous characters will make the parse fail.\r
+    /// generally ignored, but superfluous characters are not allowed.\r
     /// </summary>\r
     public class Parse\r
     {\r
@@ -30,7 +30,7 @@ namespace CarFire
         /// Parses a comment of an INI file.\r
         /// </summary>\r
         /// <param name="line">Text.</param>\r
-        /// <returns>The comment.</returns>\r
+        /// <returns>The comment, or null if parsing failed.</returns>\r
         public static string IniComment(string line)\r
         {\r
             Match match = Regex.Match(line, @"^;\s*(.*)\s*$");\r
This page took 0.030234 seconds and 4 git commands to generate.