void McInitStuff(AdLibVoice voice, Struct10 s10, Struct11 s11, byte flags, InstrumentExtra ie)
{
var part = voice.Part;
s11.ModifyVal = 0;
s11.Flag0x40 = (byte)(flags & 0x40);
s10.Loop = (byte)(flags & 0x20);
s11.Flag0x10 = (byte)(flags & 0x10);
s11.Param = paramTable1[flags & 0xF];
s10.MaxValue = maxValTable[flags & 0xF];
s10.Unk3 = 31;
if (s11.Flag0x40 != 0)
{
s10.ModWheel = (sbyte)(part._modWheel >> 2);
}
else
{
s10.ModWheel = 31;
}
switch (s11.Param)
{
case 0:
s10.StartValue = voice.Vol2;
break;
case 13:
s10.StartValue = voice.Vol1;
break;
case 30:
s10.StartValue = 31;
s11.S10.ModWheel = 0;
break;
case 31:
s10.StartValue = 0;
s11.S10.Unk3 = 0;
break;
default:
s10.StartValue = (short)AdlibGetRegValueParam(voice.Channel, s11.Param);
break;
}
Struct10Init(s10, ie);
}