NScumm.Scumm.ScummEngine6.PickVarRandom C# (CSharp) Метод

PickVarRandom() приватный Метод

private PickVarRandom ( int args ) : void
args int
Результат void
        protected void PickVarRandom(int[] args)
        {
            var value = ReadWord();

            if (ReadVariable(value) == 0)
            {
                DefineArray(value, ArrayType.IntArray, 0, args.Length);
                if (args.Length > 0)
                {
                    int counter = 0;
                    do
                    {
                        WriteArray(value, 0, counter + 1, args[counter]);
                    } while (++counter < args.Length);
                }

                ShuffleArray(value, 1, args.Length);
                WriteArray(value, 0, 0, 2);
                Push(ReadArray(value, 0, 1));
                return;
            }

            var num = ReadArray(value, 0, 0);

            var ah = GetArray(value);
            var dim1 = ah.Dim1 - 1;

            if (dim1 < num)
            {
                var var_2 = ReadArray(value, 0, num - 1);
                ShuffleArray(value, 1, dim1);
                if (ReadArray(value, 0, 1) == var_2)
                {
                    num = 2;
                }
                else
                {
                    num = 1;
                }
            }

            WriteArray(value, 0, 0, num + 1);
            Push(ReadArray(value, 0, num));
        }
ScummEngine6