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));
}
}
}