aboutsummaryrefslogtreecommitdiff
path: root/src/main.zig
diff options
context:
space:
mode:
authortslil clingman <>2021-10-15 17:11:06 -0400
committertslil clingman <>2021-10-15 17:11:06 -0400
commit61856ed5407a227aab35d7b800daad883c265dd9 (patch)
treea864bf8f06835fa6b1723f9d1271864d5ec4721b /src/main.zig
parentb45b9388cfd96fa5e89ea11db99ee11a1c95386a (diff)
Well, there's no reason not to do this ... Multiple polygon layers!
Diffstat (limited to 'src/main.zig')
-rw-r--r--src/main.zig107
1 files changed, 70 insertions, 37 deletions
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 };
+ 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);
- if (y < 15) {
- map.cells.items[y * 16 + 01] = level.Cell{
- .ceiling_height = 3,
- .upper_texture = 3,
- .draw_down = true,
- };
- }
+ 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 });