Where are you putting NULL?
In the last line:
void ShuttlePB::clbkSetClassCaps (FILEHANDLE cfg)
{
anim_x = CreateAnimation (0);
THRUSTER_HANDLE th_main;
SetSize (10);
SetEmptyMass (25.0);
//make wings
CreateAirfoil3 (LIFT_VERTICAL, _V(0,0,-0.3), VLiftCoeff, 0, 1, 1.8, 1.2);
// wing and body lift+drag components
CreateAirfoil3 (LIFT_HORIZONTAL, _V(0,0,-4), HLiftCoeff, 0, 1, 1.8, 1.2);
// vertical stabiliser and body lift and drag components
CreateControlSurface (AIRCTRL_ELEVATOR, 0.4, 2.5, _V( 0,0,-7.2), AIRCTRL_AXIS_XPOS, anim_x);
CreateControlSurface (AIRCTRL_RUDDER, 0.4, 2.5, _V( 0,0,-7.2), AIRCTRL_AXIS_YPOS, anim_x);
CreateControlSurface2 (AIRCTRL_AILERON, 0.4, 2.5, _V( 7.5,0,-7.2), AIRCTRL_AXIS_XPOS, anim_x);
CreateControlSurface2 (AIRCTRL_AILERON, 0.4, 2.5, _V(-7.5,0,-7.2), AIRCTRL_AXIS_XNEG, anim_x);
CreateControlSurface (AIRCTRL_ELEVATORTRIM, 0.4, 2.5, _V( 0,0,-7.2), AIRCTRL_AXIS_XPOS, anim_x);
PROPELLANT_HANDLE hpr = CreatePropellantResource (PB_FUELMASS);
th_main = CreateThruster (_V(0,0,-4.35), _V(0,0,1), PB_MAXMAINTH, hpr, PB_ISP);
CreateThrusterGroup (&th_main, 1, THGROUP_MAIN);
// visual specs
PARTICLESTREAMSPEC contrail_main = {
0, 5.0, 16, 200, 0.15, 1.0, 5, 3.0, PARTICLESTREAMSPEC:

IFFUSE,
PARTICLESTREAMSPEC::LVL_PSQRT, 0, 2,
PARTICLESTREAMSPEC::ATM_PLOG, 1e-4, 1
};
PARTICLESTREAMSPEC exhaust_main = {
0, 2.0, 20, 200, 0.05, 0.1, 8, 1.0, PARTICLESTREAMSPEC::EMISSIVE,
PARTICLESTREAMSPEC::LVL_SQRT, 0, 1,
PARTICLESTREAMSPEC::ATM_PLOG, 1e-5, 0.1
};
AddExhaust (th_main, 4, 0.5, _V(0,0,-1.7), _V(0,0,-1));
AddExhaustStream (th_main, _V(0,0.1,-10), &contrail_main);
AddExhaustStream (th_main, _V(0,0.1,-5), &exhaust_main);
//SetTouchdownPoints (_V(0,-1.5,-2.6), _V(-0.2,1.5,-2.6), _V(0.2,0,-1.6));
SetTouchdownPoints (_V(0,-3.5,2), _V(-1,-1.0,-1.5), _V(1,-1.0,-1.5));
AddMesh ("AAMissile");
SetReentryTexture(NULL);
}