From 39066900773e7857faf2d02e7ed51b71d219d97d Mon Sep 17 00:00:00 2001 From: godosa Date: Tue, 6 Oct 2026 23:39:36 +0200 Subject: godosa-engine: initial public history --- src/Godosa.Core/Runs/SeedStreams.cs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 src/Godosa.Core/Runs/SeedStreams.cs (limited to 'src/Godosa.Core/Runs/SeedStreams.cs') diff --git a/src/Godosa.Core/Runs/SeedStreams.cs b/src/Godosa.Core/Runs/SeedStreams.cs new file mode 100644 index 0000000..385d732 --- /dev/null +++ b/src/Godosa.Core/Runs/SeedStreams.cs @@ -0,0 +1,14 @@ +namespace Godosa.Core.Runs; + +/// Independent per-purpose seeds from one run seed: SplitMix64 output number stream + 1 of +/// (audio draws then never shift the game's stream). +public static class SeedStreams +{ + public static ulong Of(ulong seed, int stream) + { + var z = unchecked(seed + (ulong)(stream + 1) * 0x9E3779B97F4A7C15UL); + z = unchecked((z ^ (z >> 30)) * 0xBF58476D1CE4E5B9UL); + z = unchecked((z ^ (z >> 27)) * 0x94D049BB133111EBUL); + return z ^ (z >> 31); + } +} -- cgit