public static bool Init(RandomState randomState, SaveManager saveManager) { _saveManager = saveManager; bool result = false; RandomState.State state = randomState.FindState(RngId.Master); if (state == null) { Log.Error(LogGroups.Random, "RandomManager.Init: RansomState has no Master state entry. Determinism will be broken."); randomState.AddState(RngId.Master, 0); state = randomState.FindState(RngId.Master); result = true; } foreach (RngId value in Enum.GetValues(typeof(RngId))) { int num = randomState.FindStateIdx(value); if (num < 0) { num = randomState.AddState(value, GenerateSeed(state.rng)); result = true; } Log.Assert(num >= 0, LogGroups.Random, ""); _rngLookup[(int)value] = num; } _randomState = randomState; return(result); }
private static NiceRNG GetRng(RngId rngId) { RandomState.State state = _randomState.GetState(_rngLookup[(int)rngId]); if (state == null) { return(null); } return(state.rng); }