public void SetToRegisters(ref float[] registers)
{
Vector4 v = Vector4.Zero;
Vector2 v2 = Vector2.Zero;
Vector3 v3 = Vector3.Zero;
idRectangle rect = idRectangle.Empty;
if((_enabled == false) || (_var == null) || ((_var != null) && ((_var.Dictionary != null) || (_var.Evaluate == false))))
{
return;
}
switch(_type)
{
case RegisterType.Vector4:
v = (idWinVector4) _var;
break;
case RegisterType.Rectangle:
rect = (idWinRectangle) _var;
v = new Vector4(rect.X, rect.Y, rect.Width, rect.Height);
break;
case RegisterType.Vector2:
v2 = (idWinVector2) _var;
v.X = v2.X;
v.Y = v2.Y;
break;
case RegisterType.Vector3:
v3 = (idWinVector3) _var;
v.X = v3.X;
v.Y = v3.Y;
v.Z = v3.Z;
break;
case RegisterType.Float:
v.X = (idWinFloat) _var;
break;
case RegisterType.Integer:
v.X = (idWinInteger) _var;
break;
case RegisterType.Bool:
v.X = (((idWinBool) _var) == true) ? 1 : 0;
break;
}
registers[_indexes[0]] = v.X;
registers[_indexes[1]] = v.Y;
registers[_indexes[2]] = v.Z;
registers[_indexes[3]] = v.W;
}