/// <summary> /// Loads a level file and returns an ILevel object. /// May throw a FileNotFoundException if the file is not found. /// </summary> public ILevel ImportLevel() { int width = GetIntValue(LevelReader.ReadLine()); int height = GetIntValue(LevelReader.ReadLine()); ILevel level = new Level(width, height); level.Start = GetPosition(LevelReader.ReadLine(), 1); level.Finish = GetPosition(LevelReader.ReadLine(), 1); Point gridObjectPos; GridObjectType gridObjectType = GridObjectType.Tile; string tileLine = LevelReader.ReadLine(); while (tileLine != null) { gridObjectPos = GetPosition(tileLine, 0); switch (GetStringValue(tileLine)) { case "tile": gridObjectType = GridObjectType.Tile; break; case "ghost": gridObjectType = GridObjectType.Ghost; break; case "patrol": gridObjectType = GridObjectType.Patrol; // Skip the range line. tileLine = LevelReader.ReadLine(); break; case "gravityboots": gridObjectType = GridObjectType.GravityBoots; break; case "jumpplatform": gridObjectType = GridObjectType.JumpPlatform; break; } level.SetGridObject(gridObjectPos, new GridObject(gridObjectType)); tileLine = LevelReader.ReadLine(); } LevelReader.Close(); return level; }