NScumm.Scumm.ScummEngine7.akos_processQueue C# (CSharp) Метод

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

private akos_processQueue ( ) : void
Результат void
        void akos_processQueue()
        {
            byte cmd;
            int actor, param_1, param_2;

            while (_akosQueuePos != 0)
            {
                cmd = (byte)_akosQueue[_akosQueuePos].cmd;
                actor = _akosQueue[_akosQueuePos].actor;
                param_1 = _akosQueue[_akosQueuePos].param1;
                param_2 = _akosQueue[_akosQueuePos].param2;
                _akosQueuePos--;

                var a = Actors[actor];

                switch (cmd)
                {
                    case 1:
                        a.PutActor(new Point(), 0);
                        break;
                    case 3:
                        if (param_1 != 0)
                        {
                            if (IMuseDigital != null)
                            {
                                IMuseDigital.StartSfx(param_1, 63);
                            }
                        }
                        break;
                    case 4:
                        a.StartAnimActor(param_1);
                        break;
                    case 5:
                        a.ForceClip = (byte)param_1;
                        break;
//                    case 6:
//                        a._heOffsX = param_1;
//                        a._heOffsY = param_2;
//                        break;
                    case 7:
                        if (param_1 != 0)
                        {
                            if (IMuseDigital != null)
                            {
                                IMuseDigital.SetVolume(param_1, param_2);
                            }
                        }
                        break;
                    case 8:
                        if (param_1 != 0)
                        {
                            if (IMuseDigital != null)
                            {
                                IMuseDigital.SetPan(param_1, param_2);
                            }
                        }
                        break;
                    case 9:
                        if (param_1 != 0)
                        {
                            if (IMuseDigital != null)
                            {
                                IMuseDigital.SetPriority(param_1, param_2);
                            }
                        }
                        break;
                    default:
                        throw new InvalidOperationException(string.Format("akos_queCommand({0},{1},{2},{3})", cmd, a.Number, param_1, param_2));
                }
            }
        }