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=f3d59d4a705a6e2e341a0177cf4e87f23fb46f7f;hp=ddfa9d5457b309f80a9fd8a48bad537fcee7ff06;hb=a67a04fbbf048dc08edd2ed726aa8c6da4c26a6b;hpb=32de3ceb04ed8123614002551d7cecd6dd5f41d0 diff --git a/CarFire/CarFire/CarFire/Map.cs b/CarFire/CarFire/CarFire/Map.cs index ddfa9d5..f3d59d4 100644 --- a/CarFire/CarFire/CarFire/Map.cs +++ b/CarFire/CarFire/CarFire/Map.cs @@ -154,9 +154,9 @@ namespace CarFire /// The metadata. /// The grid. /// The entities. - public Map(Metadata metadata, char[,] grid, List entities) + public Map(Metadata metadata, char[,] grid, List entities, Point[] playerPositions) { - mData = new Modal(metadata, grid, entities); + mData = new Modal(metadata, grid, entities, playerPositions); mView = new View(mData); } @@ -236,6 +236,19 @@ namespace CarFire } + /// + /// Get the starting position of a player. + /// + /// The number of the player (i.e. 1-4). + /// This number must be a valid player number. + /// The starting position of the player. + public Point GetStartingPositionForPlayer(int playerNumber) + { + Debug.Assert(1 <= playerNumber && playerNumber <= NumPlayers.Max()); + return mData.PlayerPositions[playerNumber]; + } + + /// /// Get all the entities loaded from the map file. Exceptions could be /// thrown if there are entities without associated classes. @@ -267,8 +280,9 @@ namespace CarFire Metadata mMetadata; char[,] mGrid; List mEntities; + Point[] mPlayerPositions; - public Modal(Metadata metadata, char[,] grid, List entities) + public Modal(Metadata metadata, char[,] grid, List entities, Point[] playerPositions) { Debug.Assert(metadata != null); Debug.Assert(grid != null); @@ -278,6 +292,7 @@ namespace CarFire mMetadata = metadata; mGrid = grid; mEntities = entities; + mPlayerPositions = playerPositions; #if DEBUG Console.WriteLine("Loaded map {0} of type {1} written by {2}.", @@ -290,6 +305,7 @@ namespace CarFire public Metadata Metadata { get { return mMetadata; } } public List Entities { get { return mEntities; } } + public Point[] PlayerPositions { get { return mPlayerPositions; } } public bool IsCellOpen(int x, int y)