mirror of
https://github.com/exoticorn/curlywas.git
synced 2026-01-20 11:46:43 +01:00
36 lines
868 B
Plaintext
36 lines
868 B
Plaintext
import "env.memory" memory(4);
|
|
|
|
global mut randomState: i64 = 37i64;
|
|
|
|
fn random() -> i32 {
|
|
(random64() >> 32i64) as i32
|
|
}
|
|
|
|
fn random64() -> i64 {
|
|
let state: i64;
|
|
randomState = (state := (
|
|
state := randomState ^ (randomState #>> 12i64)
|
|
) ^ (state << 25i64)
|
|
) ^ (state #>> 27i64);
|
|
randomState * 2685821657736338717i64
|
|
}
|
|
|
|
fn randomf() -> f32 {
|
|
f32.reinterpret_i32(1065353216 | (random() #>> 9)) - 1 as f32
|
|
}
|
|
|
|
fn seed(s: i32) {
|
|
randomState = (s as i64 << 32i64) ^ ((63 - s) as i64);
|
|
randomState = random64();
|
|
randomState = random64();
|
|
}
|
|
|
|
export fn tic(time: i32) {
|
|
let i: i32;
|
|
loop pixels {
|
|
seed(i + (time / 10) * 320);
|
|
i?120 = (randomf() * 256 as f32 + time as f32 / 10 as f32) as i32 & 128;
|
|
branch_if (i := i + 1) < 320*256: pixels
|
|
}
|
|
}
|