Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
 private static NiceRNG GetRng(RngId rngId)
 {
     RandomState.State state = _randomState.GetState(_rngLookup[(int)rngId]);
     if (state == null)
     {
         return(null);
     }
     return(state.rng);
 }