Код для стаба ФВ-190.
Код:
protected boolean cutFM(int i, int j, Actor actor)
{
if(!getOp(i))
return false;
switch(i)
{
case 17: // '\021'
cut("StabL");
cutOp(17);
super.FM.setCapableOfACM(false);
if(World.Rnd().nextInt(-1, 8) < ((FlightModelMain) (super.FM)).Skill)
super.FM.setReadyToReturn(true);
if(World.Rnd().nextInt(-1, 16) < ((FlightModelMain) (super.FM)).Skill)
super.FM.setReadyToDie(true);
((FlightModelMain) (super.FM)).Sq.liftStab *= 0.5F * Op(18) + 0.1F;
((FlightModelMain) (super.FM)).Sq.liftWingLIn *= 1.1F;
((FlightModelMain) (super.FM)).Sq.liftWingRIn *= 0.9F;
((FlightModelMain) (super.FM)).Sq.dragProducedCx -= 0.06F;
if(Op(18) == 0.0F)
{
super.FM.SensPitch = 0.0F;
super.FM.setGCenter(0.2F);
} else
{
super.FM.setGCenter(0.1F);
s17 = 0.0F;
super.FM.SensPitch *= s17 + s18 + s31 + s32;
X = 1.0F / (s17 + s18 + s31 + s32);
s18 *= X;
s31 *= X;
s32 *= X;
}
// fall through
case 31: // '\037'
if(Op(31) == 0.0F)
return false;
cut("VatorL");
cutOp(31);
if(Op(32) == 0.0F)
{
bHasElevatorControl = false;
super.FM.setCapableOfACM(false);
if(Op(18) == 0.0F)
super.FM.setReadyToDie(true);
}
((FlightModelMain) (super.FM)).Sq.squareElevators *= 0.5F * Op(32);
((FlightModelMain) (super.FM)).Sq.dragProducedCx += 0.06F;
s31 = 0.0F;
super.FM.SensPitch *= s17 + s18 + s31 + s32;
X = 1.0F / (s17 + s18 + s31 + s32);
s17 *= X;
s18 *= X;
s32 *= X;
return false;
case 18: // '\022'
cut("StabR");
cutOp(18);
super.FM.setCapableOfACM(false);
if(World.Rnd().nextInt(-1, 8) < ((FlightModelMain) (super.FM)).Skill)
super.FM.setReadyToReturn(true);
if(World.Rnd().nextInt(-1, 16) < ((FlightModelMain) (super.FM)).Skill)
super.FM.setReadyToDie(true);
((FlightModelMain) (super.FM)).Sq.liftStab *= 0.5F * Op(17) + 0.1F;
((FlightModelMain) (super.FM)).Sq.liftWingLIn *= 0.9F;
((FlightModelMain) (super.FM)).Sq.liftWingRIn *= 1.1F;
((FlightModelMain) (super.FM)).Sq.dragProducedCx -= 0.06F;
if(Op(17) == 0.0F)
{
super.FM.SensPitch = 0.0F;
super.FM.setGCenter(0.2F);
} else
{
super.FM.setGCenter(0.1F);
s18 = 0.0F;
super.FM.SensPitch *= s17 + s18 + s31 + s32;
X = 1.0F / (s17 + s18 + s31 + s32);
s17 *= X;
s31 *= X;
s32 *= X;
}
// fall through
case 32: // ' '
if(Op(32) == 0.0F)
return false;
cut("VatorR");
cutOp(32);
if(Op(31) == 0.0F)
{
bHasElevatorControl = false;
super.FM.setCapableOfACM(false);
if(Op(17) == 0.0F)
super.FM.setReadyToDie(true);
}
((FlightModelMain) (super.FM)).Sq.squareElevators *= 0.5F * Op(31);
((FlightModelMain) (super.FM)).Sq.dragProducedCx += 0.06F;
s32 = 0.0F;
super.FM.SensPitch *= s17 + s18 + s31 + s32;
X = 1.0F / (s17 + s18 + s31 + s32);
s17 *= X;
s18 *= X;
s31 *= X;
return false;
default:
return super.cutFM(i, j, actor);
}
}
Тоже лет 12 ему.
Прочитал.
Сделали не совсем хорошо - сдвинули центр тяжести вперёд
и изменили площадь крыла.
В принципе может быть будет похожий еффект, но стаб менял именно
угол атаки крыла и в целом самолёта.
Мне кажется, что цель поворота стабилизатора было изменение Су_0.