Bumping this thread since I'm trying to fly this....
It works, but it seems that the feathering animation isn't working in D3D9. Can someone test the version posted by gattispilot in post #32 and see if that works? :shrug:
Orbited WK1 :rofl: , there limit lift height at all? How to separate from WK1 spaceship?
There are separate upper and lower rudders, and elevons.
CreateControlSurface (AIRCTRL_ELEVATOR, 0.3, 0.7, _V( 0, 0, -10.0), AIRCTRL_AXIS_XPOS,anim_ELEVATOR);
CreateControlSurface (AIRCTRL_RUDDER, 0.3, 0.9, _V( 2.5,0, -10.0), AIRCTRL_AXIS_YPOS,anim_RUDDER);
//CreateControlSurface (AIRCTRL_RUDDER, 0.3, 0.9, _V(-2.5,0, -10.0), AIRCTRL_AXIS_YPOS);
CreateControlSurface(AIRCTRL_AILERON, 0.7, -0.35, _V(-3.0, 0.1, 0.5), AIRCTRL_AXIS_XPOS, anim_LAILERON);
CreateControlSurface(AIRCTRL_AILERON, 0.7, -0.35, _V(3.0, 0.1, 0.5), AIRCTRL_AXIS_XNEG, anim_RAILERON);
CreateControlSurface (AIRCTRL_ELEVATORTRIM, 0.2, 0.7, _V( 0, 0, -10.0), AIRCTRL_AXIS_XPOS);
//LEFT elevator
static UINT elevGrp1[1] = {4};
elevator1 = new MGROUP_ROTATE (0,elevGrp1, 1, _V(-3.252906 ,0.446, -2.931583), _V(1,0,0), (float)(50*RAD));
elevator4 = new MGROUP_ROTATE(0, elevGrp1, 1, _V(-3.252906, 0.446, -2.931583), _V(-1, 0, 0), (float)(50 * RAD));
//RIGHT
static UINT elevGrp2[2] = {10};
elevator2 = new MGROUP_ROTATE (0,elevGrp2, 1, _V(3.252906 ,0.446, -2.931583), _V(1,0,0), (float)(50*RAD));
elevator3= new MGROUP_ROTATE(0, elevGrp2, 1, _V(3.252906, 0.446, -2.931583), _V(-1, 0, 0), (float)(50 * RAD));
anim_ELEVATOR = CreateAnimation (0.5);
anim_RAILERON = CreateAnimation(0.5);
anim_LAILERON = CreateAnimation(0.5);
AddAnimationComponent (anim_ELEVATOR, 0, 1, elevator1,parent);
AddAnimationComponent (anim_ELEVATOR, 0, 1, elevator2,parent);
AddAnimationComponent(anim_RAILERON, 0, 1, elevator1, parent);
AddAnimationComponent(anim_RAILERON, 0, 1, elevator3, parent);
AddAnimationComponent(anim_LAILERON, 0, 1, elevator2, parent);
AddAnimationComponent(anim_LAILERON, 0, 1, elevator4, parent);
// ***** Elevator animation *****
static UINT ElevatorGrp[8] = {29,30,35,36,51,52,54,55};
static MGROUP_ROTATE Elevator (0, ElevatorGrp, 8,
_V(0,-0.4,-6.0), _V(1,0,0), (float)(40*RAD));
anim_elevator = CreateAnimation (0.5);
AddAnimationComponent (anim_elevator, 0, 1, &Elevator);
// ***** Elevator trim animation *****
static MGROUP_ROTATE ElevatorTrim (0, ElevatorGrp, 8,
_V(0,-0.4,-6.0), _V(1,0,0), (float)(10*RAD));
anim_elevatortrim = CreateAnimation (0.5);
AddAnimationComponent (anim_elevatortrim, 0, 1, &ElevatorTrim);
// ***** Aileron animation *****
static UINT LAileronGrp[4] = {29,30,51,52};
static MGROUP_ROTATE LAileron (0, LAileronGrp, 4,
_V(0,-0.4,-6.0), _V(1,0,0), (float)(-20*RAD));
anim_laileron = CreateAnimation (0.5);
AddAnimationComponent (anim_laileron, 0, 1, &LAileron);
static UINT RAileronGrp[4] = {35,36,54,55};
static MGROUP_ROTATE RAileron (0, RAileronGrp, 4,
_V(0,-0.4,-6.0), _V(1,0,0), (float)(20*RAD));
anim_raileron = CreateAnimation (0.5);
AddAnimationComponent (anim_raileron, 0, 1, &RAileron);
anim_ELEVATOR = CreateAnimation(0.5);
anim_RAILERON = CreateAnimation(0.5);
anim_LAILERON = CreateAnimation(0.5);
static UINT ElevatorGrp[2] = { 4,10};
static MGROUP_ROTATE Elevator(0, ElevatorGrp, 2,
_V(0, 0.446, -2.931583), _V(1, 0, 0), (float)(50 * RAD));
AddAnimationComponent(anim_ELEVATOR, 0, 1, &Elevator,parent);
//LEFT elevator
static UINT elevGrp3[1] = { 28 };//ghost piece
elevator1 = new MGROUP_ROTATE (0,elevGrp3, 1, _V(0 ,0.446, -2.931583), _V(1,0,0), (float)(-50*RAD));
// elevator4 = new MGROUP_ROTATE(0, elevGrp1, 1, _V(-3.252906, 0.446, -2.931583), _V(-1, 0, 0), (float)(50 * RAD));
PARENTL = AddAnimationComponent(anim_LAILERON, 0, 1, elevator1,parent);
static UINT elevGrp5[1] = { 4 };
elevator4 = new MGROUP_ROTATE(0, elevGrp5, 1, _V(0, 0.446, -2.931583), _V(1, 0, 0), (float)(-50 * RAD));
AddAnimationComponent(anim_LAILERON, 0, 1, elevator4, PARENTL);
static UINT Elevator1Grp[1] = { 4};//left elevator
static UINT Elevator2Grp[1] = { 10 };
static MGROUP_ROTATE Elevator(0, Elevator1Grp, 1,_V(0, 0.446, -2.931583), _V(1, 0, 0), (float)(50 * RAD));
static MGROUP_ROTATE Elevator1(0, Elevator2Grp, 1, _V(0, 0.446, -2.931583), _V(1, 0, 0), (float)(50 * RAD));
AddAnimationComponent(anim_ELEVATOR, 0, 1, &Elevator, parentwing);
AddAnimationComponent(anim_ELEVATOR, 0, 1, &Elevator1, parentwing);
static UINT elevGrp5[2] = { 28 };//ghost piece
elevator4 = new MGROUP_ROTATE(0, elevGrp5, 1, _V(0, 0.446, -2.931583), _V(1, 0, 0), (float)(-50 * RAD));
PARENTL = AddAnimationComponent(anim_LAILERON, 0, 1, elevator4, parentwing);
// static UINT elevGrp3[1] = { 4 };left elevator
elevator1 = new MGROUP_ROTATE(0, Elevator1Grp, 1, _V(0, 0.446, -2.931583), _V(1, 0, 0), (float)(-50 * RAD));
AddAnimationComponent(anim_LAILERONnoanim, 0, 1, elevator1, PARENTL);
static UINT Elevator1Grp[1] = { 4};//left elevator
static UINT Elevator2Grp[1] = { 10 };//RIGHT ELEVATOR
static UINT Elevator3Grp[1] = { 28 };//ghost piece
static UINT Elevator4Grp[1] = { 27 };//ghost piece
rms_anim[0] = new MGROUP_ROTATE(0, Elevator3Grp, 1, _V(0, 0.446, -2.931583), _V(1, 0, 0), (float)(-50 * RAD)); //ELEVELATOR PARENT
PARENTELEV1 = AddAnimationComponent(anim_ELEVATOR, 0, 1, rms_anim[0], parentwing);
rms_anim[1] = new MGROUP_ROTATE(0, Elevator1Grp, 1, _V(0, 0.446, -2.931583), _V(1, 0, 0), (float)(-50 * RAD));
// anim_ELEVATORnoanim = CreateAnimation(0.0);
AddAnimationComponent(anim_ELEVATOR, 0, 1, rms_anim[1], PARENTELEV1);//CHILD ELEVATOR PART
rms1_anim[0] = new MGROUP_ROTATE(0, Elevator4Grp, 1, _V(0, 0.446, -2.931583), _V(1, 0, 0), (float)(-50 * RAD)); //AILERONPARENT
PARENTL = AddAnimationComponent(anim_LAILERON, 0, 1, rms1_anim[0], parentwing);
// rms1_anim[1] = new MGROUP_ROTATE(0, Elevator1Grp, 1, _V(0, 0.446, -2.931583), _V(1, 0, 0), (float)(-50 * RAD));
// anim_LAILERONnoanim = CreateAnimation(0.0);
AddAnimationComponent(anim_LAILERON, 0, 1, rms_anim[1], PARENTL);//CHILD ELEVATOR PART