DOOM's fire algo, in zig, for 256 color terminals w/no dependencies
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

Changes needed to compile with 0.14.0-dev.2569+30169d1d2

+6 -4
+2
build.zig
··· 22 22 .optimize = optimize, 23 23 }); 24 24 25 + exe.linkLibC(); 26 + 25 27 // This declares intent for the executable to be installed into the 26 28 // standard location when the user invokes the "install" step (the default 27 29 // step when running `zig build`).
+4 -4
src/main.zig
··· 43 43 /////////////////////////////////// 44 44 45 45 //// consts, vars, settings 46 - var rand: std.rand.Random = undefined; 46 + var rand: std.Random = undefined; 47 47 48 48 //// functions 49 49 50 50 // seed & prep for rng 51 51 pub fn initRNG() !void { 52 52 //rnd setup -- https://ziglearn.org/chapter-2/#random-numbers 53 - var prng = std.rand.DefaultPrng.init(blk: { 53 + var prng = std.Random.DefaultPrng.init(blk: { 54 54 var seed: u64 = undefined; 55 55 try std.posix.getrandom(std.mem.asBytes(&seed)); 56 56 break :blk seed; ··· 156 156 }; 157 157 } else { 158 158 //Linux-MacOS Case 159 - var winsz = std.c.winsize{ .ws_col = 0, .ws_row = 0, .ws_xpixel = 0, .ws_ypixel = 0 }; 159 + var winsz = std.c.winsize{ .col = 0, .row = 0, .xpixel = 0, .ypixel = 0 }; 160 160 const rv = std.c.ioctl(tty, TIOCGWINSZ, @intFromPtr(&winsz)); 161 161 const err = std.posix.errno(rv); 162 162 163 163 if (rv >= 0) { 164 - return TermSz{ .height = winsz.ws_row, .width = winsz.ws_col }; 164 + return TermSz{ .height = winsz.row, .width = winsz.col }; 165 165 } else { 166 166 std.process.exit(0); 167 167 //TODO this is a pretty terrible way to handle issues...