A small static helper that computes a per-player seed by running FNV-1a over a Steam ID string. Used to make prefix effects vary between players while staying fixed for each one.
namespace SboxSuperuser.Core.Prefixes;
/// <summary>A number fixed per player (FNV-1a of the Steam ID), so effects can differ between players.</summary>
internal static class PrefixSeed
{
internal static int Of( string steamId )
{
unchecked
{
var hash = 2166136261u;
foreach ( var character in steamId ?? "" ) hash = (hash ^ character) * 16777619u;
return (int)(hash & 0x7FFFFFFF);
}
}
}