|
@@ -1,7 +1,8 @@
|
|
|
const std = @import("std");
|
|
|
-const PriorityQueue = @import("std").PriorityQueue;
|
|
|
-const AutoHashMap = @import("std").AutoHashMap;
|
|
|
+const PriorityQueue = std.PriorityQueue;
|
|
|
+const AutoHashMap = std.AutoHashMap;
|
|
|
|
|
|
+const CellCharType = @import("constants.zig").CellCharType;
|
|
|
const LevelReader = @import("level_reader.zig").LevelReader;
|
|
|
const PipeType = @import("pipe.zig").PipeType;
|
|
|
const Pipes = @import("pipes.zig").Pipes;
|
|
@@ -17,7 +18,7 @@ pub const Level = struct {
|
|
|
|
|
|
|
|
|
pub fn init(self: *Level, filename: []const u8) !void {
|
|
|
- var level_reader = LevelReader{};
|
|
|
+ var level_reader = LevelReader(CellCharType){};
|
|
|
try level_reader.init(filename);
|
|
|
defer level_reader.deinit();
|
|
|
|
|
@@ -119,17 +120,18 @@ pub const Level = struct {
|
|
|
}
|
|
|
|
|
|
|
|
|
- fn create_pipes(self: *Level, level_reader: *const LevelReader) !void {
|
|
|
- const horiz_pipes = level_reader.get_positions('-');
|
|
|
- const vert_pipes = level_reader.get_positions('|');
|
|
|
- const corner_1_pipes = level_reader.get_positions('1');
|
|
|
- const corner_2_pipes = level_reader.get_positions('2');
|
|
|
- const corner_3_pipes = level_reader.get_positions('3');
|
|
|
- const corner_4_pipes = level_reader.get_positions('4');
|
|
|
- const end_1_pipes = level_reader.get_positions('a');
|
|
|
- const end_2_pipes = level_reader.get_positions('b');
|
|
|
- const end_3_pipes = level_reader.get_positions('c');
|
|
|
- const end_4_pipes = level_reader.get_positions('d');
|
|
|
+ fn create_pipes(self: *Level, level_reader: *const LevelReader(CellCharType)
|
|
|
+ ) !void {
|
|
|
+ const horiz_pipes = level_reader.get_positions('═');
|
|
|
+ const vert_pipes = level_reader.get_positions('║');
|
|
|
+ const corner_1_pipes = level_reader.get_positions('╔');
|
|
|
+ const corner_2_pipes = level_reader.get_positions('╗');
|
|
|
+ const corner_3_pipes = level_reader.get_positions('╝');
|
|
|
+ const corner_4_pipes = level_reader.get_positions('╚');
|
|
|
+ const end_1_pipes = level_reader.get_positions('╞');
|
|
|
+ const end_2_pipes = level_reader.get_positions('╥');
|
|
|
+ const end_3_pipes = level_reader.get_positions('╡');
|
|
|
+ const end_4_pipes = level_reader.get_positions('╨');
|
|
|
|
|
|
var end_pipe_pos: u2 = 0;
|
|
|
|