public void HandleMarker(int id, int data)
{
if ((_queue_end == _queue_pos) || (_queue_adding && _queueSound == id && data == _queue_marker))
return;
var p = _cmd_queue[_queue_end].array;
if (p[0] != TriggerId || id != p[1] || data != p[2])
return;
_trigger_count--;
_queue_cleared = false;
_queue_end = (uint)((_queue_end + 1) % _cmd_queue.Length);
while (_queue_end != _queue_pos && _cmd_queue[_queue_end].array[0] == CommandId && !_queue_cleared)
{
p = _cmd_queue[_queue_end].array;
DoCommandInternal(p[1], p[2], p[3], p[4], p[5], p[6], p[7], 0);
_queue_end = (uint)((_queue_end + 1) % _cmd_queue.Length);
}
}