From 6d732d65b1e3bf9721c9170c788174085406c22a Mon Sep 17 00:00:00 2001 From: KikooDX Date: Wed, 24 Feb 2021 10:52:54 +0100 Subject: [PATCH] Sample file should now be correct, added check in level loading. --- sample.kble | Bin 0 -> 10 bytes src/level.zig | 11 +++++++++++ 2 files changed, 11 insertions(+) diff --git a/sample.kble b/sample.kble index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..90b7ea85a856bae50e7758a60fafd2b51a4ce2e6 100644 GIT binary patch literal 10 PcmZQ#U}Ruo00Kq;05bpw literal 0 HcmV?d00001 diff --git a/src/level.zig b/src/level.zig index eba4626..466e0ae 100644 --- a/src/level.zig +++ b/src/level.zig @@ -9,6 +9,7 @@ const ray = @cImport({ }); const std = @import("std"); const expect = std.testing.expect; +const assert = std.debug.assert; const Vec2 = @import("vec2.zig"); const Rect = @import("rect.zig"); @@ -58,6 +59,8 @@ pub fn init_load(allocator: *std.mem.Allocator, kble_file_path: []const u8) !Sel .selection = undefined, }; + const expected_bytes_per_cell = @sizeOf(cell_type); + // Open directory. var dir: std.fs.Dir = std.fs.cwd(); // Open file in read mode. @@ -66,6 +69,14 @@ pub fn init_load(allocator: *std.mem.Allocator, kble_file_path: []const u8) !Sel .write = false, }); defer file.close(); + // Get reader. + var reader: std.fs.File.Reader = file.reader(); + + // Read first byte and check than the value matches the size of cell_type. + { + const cell_spec_byte = try(reader.readByte()); + assert(cell_spec_byte == expected_bytes_per_cell); + } return self; }