From 61856ed5407a227aab35d7b800daad883c265dd9 Mon Sep 17 00:00:00 2001 From: tslil clingman <> Date: Fri, 15 Oct 2021 17:11:06 -0400 Subject: Well, there's no reason not to do this ... Multiple polygon layers! --- src/main.zig | 109 ++++++++++++++++++++++++++++++++++++++--------------------- 1 file changed, 71 insertions(+), 38 deletions(-) (limited to 'src/main.zig') diff --git a/src/main.zig b/src/main.zig index 3d74daa..6e535b9 100644 --- a/src/main.zig +++ b/src/main.zig @@ -49,46 +49,79 @@ pub fn main() !void { var map = try level.Map.new(16, 16, &gpa.allocator); defer map.deinit(); - var y: u32 = 0; - while (y < 16) : (y += 1) { - map.cells.items[y * 16 + 00] = level.Cell{ .floor_height = level.Cell.DEFAULT_HEIGHT }; - map.cells.items[y * 16 + 15] = level.Cell{ .floor_height = level.Cell.DEFAULT_HEIGHT, .lower_texture = 2 }; - map.cells.items[15 * 16 + y] = level.Cell{ .floor_height = level.Cell.DEFAULT_HEIGHT }; - map.cells.items[00 * 16 + y] = level.Cell{ .floor_height = level.Cell.DEFAULT_HEIGHT }; - - if (y < 15) { - map.cells.items[y * 16 + 01] = level.Cell{ - .ceiling_height = 3, - .upper_texture = 3, - .draw_down = true, - }; - } + var y: u32 = 5; + while (y < 10) : (y += 1) { + // HACK + const vert_coords0 = [_][2]f32{ + .{ 0.25, 0.25 }, + .{ 0.75, 0.25 }, + .{ 0.75, 0.75 }, + .{ 0.25, 0.75 }, + .{ 0.25, 0.25 }, + }; + var verts = try std.BoundedArray([2]f32, level.Layer.MAX_VERTS).fromSlice(vert_coords0[0..]); + var layer = level.Layer{ .height = 1, .vertices = verts }; + try map.cells.items[07 * 16 + y].lower_layers.append(layer); + + const vert_coords1 = [_][2]f32{ + .{ 0.75, 0.5 }, + .{ 0.72838634, 0.60168415 }, + .{ 0.66728264, 0.68578625 }, + .{ 0.57725424, 0.7377641 }, + .{ 0.47386786, 0.74863046 }, + .{ 0.375, 0.71650636 }, + .{ 0.29774573, 0.6469463 }, + .{ 0.2554631, 0.5519779 }, + .{ 0.25546312, 0.44802207 }, + .{ 0.29774576, 0.35305366 }, + .{ 0.37500003, 0.28349364 }, + .{ 0.47386792, 0.25136954 }, + .{ 0.5772543, 0.26223588 }, + .{ 0.6672827, 0.3142138 }, + .{ 0.7283864, 0.39831588 }, + .{ 0.75, 0.50 }, + }; + verts = try std.BoundedArray([2]f32, level.Layer.MAX_VERTS).fromSlice(vert_coords1[0..]); + + layer = level.Layer{ .height = 2, .vertices = verts, .vertical_texture = 3 }; + try map.cells.items[07 * 16 + y].lower_layers.append(layer); + // map.cells.items[y * 16 + 15] = level.Cell{ .floor_height = level.Cell.DEFAULT_HEIGHT, .lower_texture = 2 }; + // map.cells.items[15 * 16 + y] = level.Cell{ .floor_height = level.Cell.DEFAULT_HEIGHT }; + // map.cells.items[00 * 16 + y] = level.Cell{ .floor_height = level.Cell.DEFAULT_HEIGHT }; + + // if (y < 15) { + // map.cells.items[y * 16 + 01] = level.Cell{ + // .ceiling_height = 3, + // .upper_texture = 3, + // .draw_down = true, + // }; + // } } - map.cells.items[16 * 7 + 7] = level.Cell{ - .floor_height = 0.2, - .ceiling_height = 2, - .lower_texture = 1, - .upper_texture = 1, - .floor_texture = 1, - .ceiling_texture = 2, - .draw_down = true, - .vertices = &[_][2]f32{ - .{ 0.00, 0.50 }, - .{ 0.25, 0.66 }, - .{ 0.25, 1.00 }, - .{ 0.50, 0.66 }, - .{ 0.75, 1.00 }, - .{ 0.75, 0.66 }, - .{ 1.00, 0.50 }, - .{ 0.75, 0.33 }, - .{ 0.75, 0.00 }, - .{ 0.50, 0.33 }, - .{ 0.25, 0.00 }, - .{ 0.25, 0.33 }, - .{ 0.00, 0.50 }, - }, - }; + // map.cells.items[16 * 7 + 7] = level.Cell{ + // .floor_height = 0.2, + // .ceiling_height = 2, + // .lower_texture = 1, + // .upper_texture = 1, + // .floor_texture = 1, + // .ceiling_texture = 2, + // .draw_down = true, + // .vertices = &[_][2]f32{ + // .{ 0.00, 0.50 }, + // .{ 0.25, 0.66 }, + // .{ 0.25, 1.00 }, + // .{ 0.50, 0.66 }, + // .{ 0.75, 1.00 }, + // .{ 0.75, 0.66 }, + // .{ 1.00, 0.50 }, + // .{ 0.75, 0.33 }, + // .{ 0.75, 0.00 }, + // .{ 0.50, 0.33 }, + // .{ 0.25, 0.00 }, + // .{ 0.25, 0.33 }, + // .{ 0.00, 0.50 }, + // }, + // }; try map.objects.append(level.Object{ .pos_x = 1.5, .pos_y = 7.5, .pos_z = 2, .texture = 2, .height = 1, .width = 1 }); try map.objects.append(level.Object{ .pos_x = 4, .pos_y = 8.5, .texture = 0, .height = 1, .width = 1 }); -- cgit v1.3.1