diff --git a/gen/obj_defines.h b/gen/obj_defines.h index 1baf5ea4ca4fb411197de1c7f51b91fd738117d5..8fb40a0c9998277869834d5e88a566a8449d0dd3 100644 --- a/gen/obj_defines.h +++ b/gen/obj_defines.h @@ -119,7 +119,8 @@ link_stack.pop_front(); \ #define A_PARTICLE_MODIFIER_GETREFS \ list<Ref<NiObject> > refs; \ refs = NiObject::GetRefs(); \ -refs.push_back(StaticCast<NiObject>(nextModifier)); \ +if ( nextModifier != NULL ) \ + refs.push_back(StaticCast<NiObject>(nextModifier)); \ return refs; \ #define BHK_REF_OBJECT_MEMBERS \ @@ -503,7 +504,8 @@ link_stack.pop_front(); \ #define BHK_ENTITY_GETREFS \ list<Ref<NiObject> > refs; \ refs = bhkWorldObject::GetRefs(); \ -refs.push_back(StaticCast<NiObject>(shape)); \ +if ( shape != NULL ) \ + refs.push_back(StaticCast<NiObject>(shape)); \ return refs; \ #define NI_COLLISION_OBJECT_MEMBERS \ @@ -565,7 +567,8 @@ link_stack.pop_front(); \ #define NI_COLLISION_OBJECT_GETREFS \ list<Ref<NiObject> > refs; \ refs = NiObject::GetRefs(); \ -refs.push_back(StaticCast<NiObject>(body)); \ +if ( body != NULL ) \ + refs.push_back(StaticCast<NiObject>(body)); \ return refs; \ #define NI_EXTRA_DATA_MEMBERS \ @@ -623,7 +626,8 @@ if ( version <= 0x04020200 ) { \ #define NI_EXTRA_DATA_GETREFS \ list<Ref<NiObject> > refs; \ refs = NiObject::GetRefs(); \ -refs.push_back(StaticCast<NiObject>(nextExtraData)); \ +if ( nextExtraData != NULL ) \ + refs.push_back(StaticCast<NiObject>(nextExtraData)); \ return refs; \ #define NI_INTERPOLATOR_MEMBERS \ @@ -827,11 +831,14 @@ link_stack.pop_front(); \ #define NI_OBJECT_N_E_T_GETREFS \ list<Ref<NiObject> > refs; \ refs = NiObject::GetRefs(); \ -refs.push_back(StaticCast<NiObject>(extraData)); \ +if ( extraData != NULL ) \ + refs.push_back(StaticCast<NiObject>(extraData)); \ for (uint i0 = 0; i0 < extraDataList.size(); i0++) { \ - refs.push_back(StaticCast<NiObject>(extraDataList[i0])); \ + if ( extraDataList[i0] != NULL ) \ + refs.push_back(StaticCast<NiObject>(extraDataList[i0])); \ }; \ -refs.push_back(StaticCast<NiObject>(controller)); \ +if ( controller != NULL ) \ + refs.push_back(StaticCast<NiObject>(controller)); \ return refs; \ #define NI_A_V_OBJECT_MEMBERS \ @@ -984,10 +991,13 @@ if ( version >= 0x14000005 ) { \ list<Ref<NiObject> > refs; \ refs = NiObjectNET::GetRefs(); \ for (uint i0 = 0; i0 < properties.size(); i0++) { \ - refs.push_back(StaticCast<NiObject>(properties[i0])); \ + if ( properties[i0] != NULL ) \ + refs.push_back(StaticCast<NiObject>(properties[i0])); \ }; \ -refs.push_back(StaticCast<NiObject>(collisionData)); \ -refs.push_back(StaticCast<NiObject>(collisionObject)); \ +if ( collisionData != NULL ) \ + refs.push_back(StaticCast<NiObject>(collisionData)); \ +if ( collisionObject != NULL ) \ + refs.push_back(StaticCast<NiObject>(collisionObject)); \ return refs; \ #define NI_DYNAMIC_EFFECT_MEMBERS \ @@ -1081,7 +1091,8 @@ if ( version >= 0x0A010000 ) { \ list<Ref<NiObject> > refs; \ refs = NiAVObject::GetRefs(); \ for (uint i0 = 0; i0 < affectedNodes.size(); i0++) { \ - refs.push_back(StaticCast<NiObject>(affectedNodes[i0])); \ + if ( affectedNodes[i0] != NULL ) \ + refs.push_back(StaticCast<NiObject>(affectedNodes[i0])); \ }; \ return refs; \ @@ -1407,7 +1418,8 @@ link_stack.pop_front(); \ #define NI_TIME_CONTROLLER_GETREFS \ list<Ref<NiObject> > refs; \ refs = NiObject::GetRefs(); \ -refs.push_back(StaticCast<NiObject>(nextController)); \ +if ( nextController != NULL ) \ + refs.push_back(StaticCast<NiObject>(nextController)); \ return refs; \ #define A_BONE_L_O_D_CONTROLLER_MEMBERS \ @@ -1490,7 +1502,8 @@ list<Ref<NiObject> > refs; \ refs = NiTimeController::GetRefs(); \ for (uint i0 = 0; i0 < nodeGroups.size(); i0++) { \ for (uint i1 = 0; i1 < nodeGroups[i0].nodes.size(); i1++) { \ - refs.push_back(StaticCast<NiObject>(nodeGroups[i0].nodes[i1])); \ + if ( nodeGroups[i0].nodes[i1] != NULL ) \ + refs.push_back(StaticCast<NiObject>(nodeGroups[i0].nodes[i1])); \ }; \ }; \ return refs; \ @@ -1542,7 +1555,8 @@ if ( version >= 0x0A020000 ) { \ #define NI_SINGLE_INTERPOLATOR_CONTROLLER_GETREFS \ list<Ref<NiObject> > refs; \ refs = NiTimeController::GetRefs(); \ -refs.push_back(StaticCast<NiObject>(interpolator)); \ +if ( interpolator != NULL ) \ + refs.push_back(StaticCast<NiObject>(interpolator)); \ return refs; \ #define A_P_SYS_CTLR_MEMBERS \ @@ -1667,9 +1681,12 @@ if ( version >= 0x0A000100 ) { \ #define NI_TRI_BASED_GEOM_GETREFS \ list<Ref<NiObject> > refs; \ refs = NiAVObject::GetRefs(); \ -refs.push_back(StaticCast<NiObject>(data)); \ -refs.push_back(StaticCast<NiObject>(skinInstance)); \ -refs.push_back(StaticCast<NiObject>(unknownLink)); \ +if ( data != NULL ) \ + refs.push_back(StaticCast<NiObject>(data)); \ +if ( skinInstance != NULL ) \ + refs.push_back(StaticCast<NiObject>(skinInstance)); \ +if ( unknownLink != NULL ) \ + refs.push_back(StaticCast<NiObject>(unknownLink)); \ return refs; \ #define NI_TRI_BASED_GEOM_DATA_MEMBERS \ @@ -1946,7 +1963,8 @@ if ( version >= 0x14000004 ) { \ #define NI_TRI_BASED_GEOM_DATA_GETREFS \ list<Ref<NiObject> > refs; \ refs = NiObject::GetRefs(); \ -refs.push_back(StaticCast<NiObject>(unknownLink)); \ +if ( unknownLink != NULL ) \ + refs.push_back(StaticCast<NiObject>(unknownLink)); \ return refs; \ #define A_P_SYS_DATA_MEMBERS \ @@ -2531,7 +2549,8 @@ for (uint i0 = 0; i0 < subShapes.size(); i0++) { \ list<Ref<NiObject> > refs; \ refs = AbhkShapeCollection::GetRefs(); \ for (uint i0 = 0; i0 < subShapes.size(); i0++) { \ - refs.push_back(StaticCast<NiObject>(subShapes[i0])); \ + if ( subShapes[i0] != NULL ) \ + refs.push_back(StaticCast<NiObject>(subShapes[i0])); \ }; \ return refs; \ @@ -2690,8 +2709,10 @@ link_stack.pop_front(); \ #define BHK_MALLEABLE_CONSTRAINT_GETREFS \ list<Ref<NiObject> > refs; \ refs = AbhkConstraint::GetRefs(); \ -refs.push_back(StaticCast<NiObject>(unknownLink1)); \ -refs.push_back(StaticCast<NiObject>(unknownLink2)); \ +if ( unknownLink1 != NULL ) \ + refs.push_back(StaticCast<NiObject>(unknownLink1)); \ +if ( unknownLink2 != NULL ) \ + refs.push_back(StaticCast<NiObject>(unknownLink2)); \ return refs; \ #define BHK_MOPP_BV_TREE_SHAPE_MEMBERS \ @@ -2784,7 +2805,8 @@ link_stack.pop_front(); \ #define BHK_MOPP_BV_TREE_SHAPE_GETREFS \ list<Ref<NiObject> > refs; \ refs = bhkShape::GetRefs(); \ -refs.push_back(StaticCast<NiObject>(shape)); \ +if ( shape != NULL ) \ + refs.push_back(StaticCast<NiObject>(shape)); \ return refs; \ #define BHK_MULTI_SPHERE_SHAPE_MEMBERS \ @@ -2969,7 +2991,8 @@ for (uint i0 = 0; i0 < stripsData.size(); i0++) { \ list<Ref<NiObject> > refs; \ refs = bhkSphereRepShape::GetRefs(); \ for (uint i0 = 0; i0 < stripsData.size(); i0++) { \ - refs.push_back(StaticCast<NiObject>(stripsData[i0])); \ + if ( stripsData[i0] != NULL ) \ + refs.push_back(StaticCast<NiObject>(stripsData[i0])); \ }; \ return refs; \ @@ -3071,7 +3094,8 @@ link_stack.pop_front(); \ #define BHK_PACKED_NI_TRI_STRIPS_SHAPE_GETREFS \ list<Ref<NiObject> > refs; \ refs = AbhkShapeCollection::GetRefs(); \ -refs.push_back(StaticCast<NiObject>(data)); \ +if ( data != NULL ) \ + refs.push_back(StaticCast<NiObject>(data)); \ return refs; \ #define BHK_PRISMATIC_CONSTRAINT_MEMBERS \ @@ -3382,7 +3406,8 @@ for (uint i0 = 0; i0 < constraints.size(); i0++) { \ list<Ref<NiObject> > refs; \ refs = bhkEntity::GetRefs(); \ for (uint i0 = 0; i0 < constraints.size(); i0++) { \ - refs.push_back(StaticCast<NiObject>(constraints[i0])); \ + if ( constraints[i0] != NULL ) \ + refs.push_back(StaticCast<NiObject>(constraints[i0])); \ }; \ return refs; \ @@ -3960,7 +3985,8 @@ if ( version <= 0x0A010000 ) { \ #define NI_ALPHA_CONTROLLER_GETREFS \ list<Ref<NiObject> > refs; \ refs = NiSingleInterpolatorController::GetRefs(); \ -refs.push_back(StaticCast<NiObject>(data)); \ +if ( data != NULL ) \ + refs.push_back(StaticCast<NiObject>(data)); \ return refs; \ #define NI_ALPHA_PROPERTY_MEMBERS \ @@ -4397,12 +4423,15 @@ list<Ref<NiObject> > refs; \ refs = ABoneLODController::GetRefs(); \ for (uint i0 = 0; i0 < shapeGroups1.size(); i0++) { \ for (uint i1 = 0; i1 < shapeGroups1[i0].linkPairs.size(); i1++) { \ - refs.push_back(StaticCast<NiObject>(shapeGroups1[i0].linkPairs[i1].shape)); \ - refs.push_back(StaticCast<NiObject>(shapeGroups1[i0].linkPairs[i1].skinInstance)); \ + if ( shapeGroups1[i0].linkPairs[i1].shape != NULL ) \ + refs.push_back(StaticCast<NiObject>(shapeGroups1[i0].linkPairs[i1].shape)); \ + if ( shapeGroups1[i0].linkPairs[i1].skinInstance != NULL ) \ + refs.push_back(StaticCast<NiObject>(shapeGroups1[i0].linkPairs[i1].skinInstance)); \ }; \ }; \ for (uint i0 = 0; i0 < shapeGroups2.size(); i0++) { \ - refs.push_back(StaticCast<NiObject>(shapeGroups2[i0])); \ + if ( shapeGroups2[i0] != NULL ) \ + refs.push_back(StaticCast<NiObject>(shapeGroups2[i0])); \ }; \ return refs; \ @@ -4537,7 +4566,8 @@ link_stack.pop_front(); \ #define NI_BOOL_INTERPOLATOR_GETREFS \ list<Ref<NiObject> > refs; \ refs = NiInterpolator::GetRefs(); \ -refs.push_back(StaticCast<NiObject>(data)); \ +if ( data != NULL ) \ + refs.push_back(StaticCast<NiObject>(data)); \ return refs; \ #define NI_BOOL_TIMELINE_INTERPOLATOR_MEMBERS \ @@ -4585,7 +4615,8 @@ link_stack.pop_front(); \ #define NI_BOOL_TIMELINE_INTERPOLATOR_GETREFS \ list<Ref<NiObject> > refs; \ refs = NiInterpolator::GetRefs(); \ -refs.push_back(StaticCast<NiObject>(data)); \ +if ( data != NULL ) \ + refs.push_back(StaticCast<NiObject>(data)); \ return refs; \ #define NI_B_S_BONE_L_O_D_CONTROLLER_MEMBERS \ @@ -4757,8 +4788,10 @@ link_stack.pop_front(); \ #define NI_B_SPLINE_COMP_POINT3_INTERPOLATOR_GETREFS \ list<Ref<NiObject> > refs; \ refs = NiBSplineInterpolator::GetRefs(); \ -refs.push_back(StaticCast<NiObject>(data)); \ -refs.push_back(StaticCast<NiObject>(unknownLink)); \ +if ( data != NULL ) \ + refs.push_back(StaticCast<NiObject>(data)); \ +if ( unknownLink != NULL ) \ + refs.push_back(StaticCast<NiObject>(unknownLink)); \ return refs; \ #define NI_B_SPLINE_COMP_TRANSFORM_INTERPOLATOR_MEMBERS \ @@ -4830,8 +4863,10 @@ link_stack.pop_front(); \ #define NI_B_SPLINE_COMP_TRANSFORM_INTERPOLATOR_GETREFS \ list<Ref<NiObject> > refs; \ refs = NiBSplineInterpolator::GetRefs(); \ -refs.push_back(StaticCast<NiObject>(data)); \ -refs.push_back(StaticCast<NiObject>(basisData)); \ +if ( data != NULL ) \ + refs.push_back(StaticCast<NiObject>(data)); \ +if ( basisData != NULL ) \ + refs.push_back(StaticCast<NiObject>(basisData)); \ return refs; \ #define NI_B_SPLINE_DATA_MEMBERS \ @@ -5004,7 +5039,8 @@ link_stack.pop_front(); \ #define NI_CAMERA_GETREFS \ list<Ref<NiObject> > refs; \ refs = NiAVObject::GetRefs(); \ -refs.push_back(StaticCast<NiObject>(unknownLink_)); \ +if ( unknownLink_ != NULL ) \ + refs.push_back(StaticCast<NiObject>(unknownLink_)); \ return refs; \ #define NI_COLLISION_DATA_MEMBERS \ @@ -5278,9 +5314,11 @@ link_stack.pop_front(); \ list<Ref<NiObject> > refs; \ refs = NiTimeController::GetRefs(); \ for (uint i0 = 0; i0 < controllerSequences.size(); i0++) { \ - refs.push_back(StaticCast<NiObject>(controllerSequences[i0])); \ + if ( controllerSequences[i0] != NULL ) \ + refs.push_back(StaticCast<NiObject>(controllerSequences[i0])); \ }; \ -refs.push_back(StaticCast<NiObject>(objectPalette)); \ +if ( objectPalette != NULL ) \ + refs.push_back(StaticCast<NiObject>(objectPalette)); \ return refs; \ #define NI_CONTROLLER_SEQUENCE_MEMBERS \ @@ -5767,18 +5805,28 @@ if ( version >= 0x0A020000 ) { \ #define NI_CONTROLLER_SEQUENCE_GETREFS \ list<Ref<NiObject> > refs; \ refs = NiObject::GetRefs(); \ -refs.push_back(StaticCast<NiObject>(textKeys.interpolator)); \ -refs.push_back(StaticCast<NiObject>(textKeys.unknownLink1)); \ -refs.push_back(StaticCast<NiObject>(textKeys.unknownLink2)); \ -refs.push_back(StaticCast<NiObject>(textKeys.stringPalette)); \ +if ( textKeys.interpolator != NULL ) \ + refs.push_back(StaticCast<NiObject>(textKeys.interpolator)); \ +if ( textKeys.unknownLink1 != NULL ) \ + refs.push_back(StaticCast<NiObject>(textKeys.unknownLink1)); \ +if ( textKeys.unknownLink2 != NULL ) \ + refs.push_back(StaticCast<NiObject>(textKeys.unknownLink2)); \ +if ( textKeys.stringPalette != NULL ) \ + refs.push_back(StaticCast<NiObject>(textKeys.stringPalette)); \ for (uint i0 = 0; i0 < controlledBlocks.size(); i0++) { \ - refs.push_back(StaticCast<NiObject>(controlledBlocks[i0].interpolator)); \ - refs.push_back(StaticCast<NiObject>(controlledBlocks[i0].unknownLink1)); \ - refs.push_back(StaticCast<NiObject>(controlledBlocks[i0].unknownLink2)); \ - refs.push_back(StaticCast<NiObject>(controlledBlocks[i0].stringPalette)); \ + if ( controlledBlocks[i0].interpolator != NULL ) \ + refs.push_back(StaticCast<NiObject>(controlledBlocks[i0].interpolator)); \ + if ( controlledBlocks[i0].unknownLink1 != NULL ) \ + refs.push_back(StaticCast<NiObject>(controlledBlocks[i0].unknownLink1)); \ + if ( controlledBlocks[i0].unknownLink2 != NULL ) \ + refs.push_back(StaticCast<NiObject>(controlledBlocks[i0].unknownLink2)); \ + if ( controlledBlocks[i0].stringPalette != NULL ) \ + refs.push_back(StaticCast<NiObject>(controlledBlocks[i0].stringPalette)); \ }; \ -refs.push_back(StaticCast<NiObject>(textKeys2)); \ -refs.push_back(StaticCast<NiObject>(stringPalette)); \ +if ( textKeys2 != NULL ) \ + refs.push_back(StaticCast<NiObject>(textKeys2)); \ +if ( stringPalette != NULL ) \ + refs.push_back(StaticCast<NiObject>(stringPalette)); \ return refs; \ #define NI_DEFAULT_A_V_OBJECT_PALETTE_MEMBERS \ @@ -5980,7 +6028,8 @@ for (uint i0 = 0; i0 < sources.size(); i0++) { \ list<Ref<NiObject> > refs; \ refs = NiSingleInterpolatorController::GetRefs(); \ for (uint i0 = 0; i0 < sources.size(); i0++) { \ - refs.push_back(StaticCast<NiObject>(sources[i0])); \ + if ( sources[i0] != NULL ) \ + refs.push_back(StaticCast<NiObject>(sources[i0])); \ }; \ return refs; \ @@ -6121,7 +6170,8 @@ if ( version >= 0x14000004 ) { \ #define NI_FLOAT_EXTRA_DATA_CONTROLLER_GETREFS \ list<Ref<NiObject> > refs; \ refs = NiTimeController::GetRefs(); \ -refs.push_back(StaticCast<NiObject>(unknownLink)); \ +if ( unknownLink != NULL ) \ + refs.push_back(StaticCast<NiObject>(unknownLink)); \ return refs; \ #define NI_FLOAT_INTERPOLATOR_MEMBERS \ @@ -6169,7 +6219,8 @@ link_stack.pop_front(); \ #define NI_FLOAT_INTERPOLATOR_GETREFS \ list<Ref<NiObject> > refs; \ refs = NiInterpolator::GetRefs(); \ -refs.push_back(StaticCast<NiObject>(data)); \ +if ( data != NULL ) \ + refs.push_back(StaticCast<NiObject>(data)); \ return refs; \ #define NI_FLOATS_EXTRA_DATA_MEMBERS \ @@ -6380,9 +6431,11 @@ if ( version >= 0x0A01006A ) { \ #define NI_GEOM_MORPHER_CONTROLLER_GETREFS \ list<Ref<NiObject> > refs; \ refs = NiTimeController::GetRefs(); \ -refs.push_back(StaticCast<NiObject>(data)); \ +if ( data != NULL ) \ + refs.push_back(StaticCast<NiObject>(data)); \ for (uint i0 = 0; i0 < interpolators.size(); i0++) { \ - refs.push_back(StaticCast<NiObject>(interpolators[i0])); \ + if ( interpolators[i0] != NULL ) \ + refs.push_back(StaticCast<NiObject>(interpolators[i0])); \ }; \ return refs; \ @@ -6554,7 +6607,8 @@ link_stack.pop_front(); \ #define NI_KEYFRAME_CONTROLLER_GETREFS \ list<Ref<NiObject> > refs; \ refs = NiTimeController::GetRefs(); \ -refs.push_back(StaticCast<NiObject>(data)); \ +if ( data != NULL ) \ + refs.push_back(StaticCast<NiObject>(data)); \ return refs; \ #define B_S_KEYFRAME_CONTROLLER_MEMBERS \ @@ -6598,7 +6652,8 @@ link_stack.pop_front(); \ #define B_S_KEYFRAME_CONTROLLER_GETREFS \ list<Ref<NiObject> > refs; \ refs = NiKeyframeController::GetRefs(); \ -refs.push_back(StaticCast<NiObject>(data2)); \ +if ( data2 != NULL ) \ + refs.push_back(StaticCast<NiObject>(data2)); \ return refs; \ #define NI_KEYFRAME_DATA_MEMBERS \ @@ -6846,8 +6901,10 @@ if ( version >= 0x0A020000 ) { \ #define NI_LIGHT_COLOR_CONTROLLER_GETREFS \ list<Ref<NiObject> > refs; \ refs = NiTimeController::GetRefs(); \ -refs.push_back(StaticCast<NiObject>(data)); \ -refs.push_back(StaticCast<NiObject>(interpolator)); \ +if ( data != NULL ) \ + refs.push_back(StaticCast<NiObject>(data)); \ +if ( interpolator != NULL ) \ + refs.push_back(StaticCast<NiObject>(interpolator)); \ return refs; \ #define NI_LIGHT_DIMMER_CONTROLLER_MEMBERS \ @@ -6891,7 +6948,8 @@ link_stack.pop_front(); \ #define NI_LIGHT_DIMMER_CONTROLLER_GETREFS \ list<Ref<NiObject> > refs; \ refs = NiTimeController::GetRefs(); \ -refs.push_back(StaticCast<NiObject>(unknownLink)); \ +if ( unknownLink != NULL ) \ + refs.push_back(StaticCast<NiObject>(unknownLink)); \ return refs; \ #define NI_LOOK_AT_CONTROLLER_MEMBERS \ @@ -6943,7 +7001,8 @@ link_stack.pop_front(); \ #define NI_LOOK_AT_CONTROLLER_GETREFS \ list<Ref<NiObject> > refs; \ refs = NiTimeController::GetRefs(); \ -refs.push_back(StaticCast<NiObject>(lookAtNode)); \ +if ( lookAtNode != NULL ) \ + refs.push_back(StaticCast<NiObject>(lookAtNode)); \ return refs; \ #define NI_LOOK_AT_INTERPOLATOR_MEMBERS \ @@ -7049,10 +7108,14 @@ link_stack.pop_front(); \ #define NI_LOOK_AT_INTERPOLATOR_GETREFS \ list<Ref<NiObject> > refs; \ refs = NiInterpolator::GetRefs(); \ -refs.push_back(StaticCast<NiObject>(lookAt)); \ -refs.push_back(StaticCast<NiObject>(unknownLink1)); \ -refs.push_back(StaticCast<NiObject>(unknownLink2)); \ -refs.push_back(StaticCast<NiObject>(unknownLink3)); \ +if ( lookAt != NULL ) \ + refs.push_back(StaticCast<NiObject>(lookAt)); \ +if ( unknownLink1 != NULL ) \ + refs.push_back(StaticCast<NiObject>(unknownLink1)); \ +if ( unknownLink2 != NULL ) \ + refs.push_back(StaticCast<NiObject>(unknownLink2)); \ +if ( unknownLink3 != NULL ) \ + refs.push_back(StaticCast<NiObject>(unknownLink3)); \ return refs; \ #define NI_MATERIAL_COLOR_CONTROLLER_MEMBERS \ @@ -7110,7 +7173,8 @@ if ( version <= 0x0A010000 ) { \ #define NI_MATERIAL_COLOR_CONTROLLER_GETREFS \ list<Ref<NiObject> > refs; \ refs = NiSingleInterpolatorController::GetRefs(); \ -refs.push_back(StaticCast<NiObject>(data)); \ +if ( data != NULL ) \ + refs.push_back(StaticCast<NiObject>(data)); \ return refs; \ #define NI_MATERIAL_PROPERTY_MEMBERS \ @@ -7388,11 +7452,14 @@ if ( version >= 0x0A020000 ) { \ #define NI_MESH_P_SYS_DATA_GETREFS \ list<Ref<NiObject> > refs; \ refs = APSysData::GetRefs(); \ -refs.push_back(StaticCast<NiObject>(modifier)); \ +if ( modifier != NULL ) \ + refs.push_back(StaticCast<NiObject>(modifier)); \ for (uint i0 = 0; i0 < unknownLinks.size(); i0++) { \ - refs.push_back(StaticCast<NiObject>(unknownLinks[i0])); \ + if ( unknownLinks[i0] != NULL ) \ + refs.push_back(StaticCast<NiObject>(unknownLinks[i0])); \ }; \ -refs.push_back(StaticCast<NiObject>(unknownLink2)); \ +if ( unknownLink2 != NULL ) \ + refs.push_back(StaticCast<NiObject>(unknownLink2)); \ return refs; \ #define NI_MORPH_DATA_MEMBERS \ @@ -7647,10 +7714,12 @@ for (uint i0 = 0; i0 < effects.size(); i0++) { \ list<Ref<NiObject> > refs; \ refs = NiAVObject::GetRefs(); \ for (uint i0 = 0; i0 < children.size(); i0++) { \ - refs.push_back(StaticCast<NiObject>(children[i0])); \ + if ( children[i0] != NULL ) \ + refs.push_back(StaticCast<NiObject>(children[i0])); \ }; \ for (uint i0 = 0; i0 < effects.size(); i0++) { \ - refs.push_back(StaticCast<NiObject>(effects[i0])); \ + if ( effects[i0] != NULL ) \ + refs.push_back(StaticCast<NiObject>(effects[i0])); \ }; \ return refs; \ @@ -7825,7 +7894,8 @@ for (uint i0 = 0; i0 < unknownLinks.size(); i0++) { \ list<Ref<NiObject> > refs; \ refs = FxWidget::GetRefs(); \ for (uint i0 = 0; i0 < unknownLinks.size(); i0++) { \ - refs.push_back(StaticCast<NiObject>(unknownLinks[i0])); \ + if ( unknownLinks[i0] != NULL ) \ + refs.push_back(StaticCast<NiObject>(unknownLinks[i0])); \ }; \ return refs; \ @@ -8004,7 +8074,8 @@ if ( (lodType == 1) ) { \ #define NI_L_O_D_NODE_GETREFS \ list<Ref<NiObject> > refs; \ refs = NiNode::GetRefs(); \ -refs.push_back(StaticCast<NiObject>(rangeData)); \ +if ( rangeData != NULL ) \ + refs.push_back(StaticCast<NiObject>(rangeData)); \ return refs; \ #define NI_PALETTE_MEMBERS \ @@ -8180,7 +8251,8 @@ link_stack.pop_front(); \ #define NI_PARTICLE_COLOR_MODIFIER_GETREFS \ list<Ref<NiObject> > refs; \ refs = AParticleModifier::GetRefs(); \ -refs.push_back(StaticCast<NiObject>(colorData)); \ +if ( colorData != NULL ) \ + refs.push_back(StaticCast<NiObject>(colorData)); \ return refs; \ #define NI_PARTICLE_GROW_FADE_MEMBERS \ @@ -8264,7 +8336,8 @@ link_stack.pop_front(); \ #define NI_PARTICLE_MESH_MODIFIER_GETREFS \ list<Ref<NiObject> > refs; \ refs = AParticleModifier::GetRefs(); \ -refs.push_back(StaticCast<NiObject>(particleMeshes)); \ +if ( particleMeshes != NULL ) \ + refs.push_back(StaticCast<NiObject>(particleMeshes)); \ return refs; \ #define NI_PARTICLE_ROTATION_MEMBERS \ @@ -8523,7 +8596,8 @@ link_stack.pop_front(); \ #define NI_PARTICLE_MESHES_DATA_GETREFS \ list<Ref<NiObject> > refs; \ refs = NiParticlesData::GetRefs(); \ -refs.push_back(StaticCast<NiObject>(unknownLink2)); \ +if ( unknownLink2 != NULL ) \ + refs.push_back(StaticCast<NiObject>(unknownLink2)); \ return refs; \ #define NI_PARTICLE_SYSTEM_MEMBERS \ @@ -8595,7 +8669,8 @@ if ( version >= 0x0A010000 ) { \ list<Ref<NiObject> > refs; \ refs = NiParticles::GetRefs(); \ for (uint i0 = 0; i0 < modifiers.size(); i0++) { \ - refs.push_back(StaticCast<NiObject>(modifiers[i0])); \ + if ( modifiers[i0] != NULL ) \ + refs.push_back(StaticCast<NiObject>(modifiers[i0])); \ }; \ return refs; \ @@ -8858,10 +8933,14 @@ link_stack.pop_front(); \ #define NI_PARTICLE_SYSTEM_CONTROLLER_GETREFS \ list<Ref<NiObject> > refs; \ refs = NiTimeController::GetRefs(); \ -refs.push_back(StaticCast<NiObject>(emitter)); \ -refs.push_back(StaticCast<NiObject>(unknownLink)); \ -refs.push_back(StaticCast<NiObject>(particleExtra)); \ -refs.push_back(StaticCast<NiObject>(unknownLink2)); \ +if ( emitter != NULL ) \ + refs.push_back(StaticCast<NiObject>(emitter)); \ +if ( unknownLink != NULL ) \ + refs.push_back(StaticCast<NiObject>(unknownLink)); \ +if ( particleExtra != NULL ) \ + refs.push_back(StaticCast<NiObject>(particleExtra)); \ +if ( unknownLink2 != NULL ) \ + refs.push_back(StaticCast<NiObject>(unknownLink2)); \ return refs; \ #define NI_B_S_P_ARRAY_CONTROLLER_MEMBERS \ @@ -8970,8 +9049,10 @@ link_stack.pop_front(); \ #define NI_PATH_CONTROLLER_GETREFS \ list<Ref<NiObject> > refs; \ refs = NiTimeController::GetRefs(); \ -refs.push_back(StaticCast<NiObject>(posData)); \ -refs.push_back(StaticCast<NiObject>(floatData)); \ +if ( posData != NULL ) \ + refs.push_back(StaticCast<NiObject>(posData)); \ +if ( floatData != NULL ) \ + refs.push_back(StaticCast<NiObject>(floatData)); \ return refs; \ #define NI_PATH_INTERPOLATOR_MEMBERS \ @@ -9041,8 +9122,10 @@ link_stack.pop_front(); \ #define NI_PATH_INTERPOLATOR_GETREFS \ list<Ref<NiObject> > refs; \ refs = NiBlendInterpolator::GetRefs(); \ -refs.push_back(StaticCast<NiObject>(posData)); \ -refs.push_back(StaticCast<NiObject>(floatData)); \ +if ( posData != NULL ) \ + refs.push_back(StaticCast<NiObject>(posData)); \ +if ( floatData != NULL ) \ + refs.push_back(StaticCast<NiObject>(floatData)); \ return refs; \ #define NI_PIXEL_DATA_MEMBERS \ @@ -9204,7 +9287,8 @@ link_stack.pop_front(); \ #define NI_PIXEL_DATA_GETREFS \ list<Ref<NiObject> > refs; \ refs = NiObject::GetRefs(); \ -refs.push_back(StaticCast<NiObject>(palette)); \ +if ( palette != NULL ) \ + refs.push_back(StaticCast<NiObject>(palette)); \ return refs; \ #define NI_PLANAR_COLLIDER_MEMBERS \ @@ -9360,7 +9444,8 @@ link_stack.pop_front(); \ #define NI_POINT3_INTERPOLATOR_GETREFS \ list<Ref<NiObject> > refs; \ refs = NiInterpolator::GetRefs(); \ -refs.push_back(StaticCast<NiObject>(data)); \ +if ( data != NULL ) \ + refs.push_back(StaticCast<NiObject>(data)); \ return refs; \ #define NI_POINT_LIGHT_MEMBERS \ @@ -9502,7 +9587,8 @@ link_stack.pop_front(); \ #define NI_P_SYS_AGE_DEATH_MODIFIER_GETREFS \ list<Ref<NiObject> > refs; \ refs = NiPSysModifier::GetRefs(); \ -refs.push_back(StaticCast<NiObject>(spawnModifier)); \ +if ( spawnModifier != NULL ) \ + refs.push_back(StaticCast<NiObject>(spawnModifier)); \ return refs; \ #define NI_P_SYS_BOMB_MODIFIER_MEMBERS \ @@ -9703,7 +9789,8 @@ link_stack.pop_front(); \ #define NI_P_SYS_COLLIDER_MANAGER_GETREFS \ list<Ref<NiObject> > refs; \ refs = NiPSysModifier::GetRefs(); \ -refs.push_back(StaticCast<NiObject>(collider)); \ +if ( collider != NULL ) \ + refs.push_back(StaticCast<NiObject>(collider)); \ return refs; \ #define NI_P_SYS_COLOR_MODIFIER_MEMBERS \ @@ -9747,7 +9834,8 @@ link_stack.pop_front(); \ #define NI_P_SYS_COLOR_MODIFIER_GETREFS \ list<Ref<NiObject> > refs; \ refs = NiPSysModifier::GetRefs(); \ -refs.push_back(StaticCast<NiObject>(data)); \ +if ( data != NULL ) \ + refs.push_back(StaticCast<NiObject>(data)); \ return refs; \ #define NI_P_SYS_CYLINDER_EMITTER_MEMBERS \ @@ -10040,7 +10128,8 @@ link_stack.pop_front(); \ #define NI_P_SYS_EMITTER_CTLR_GETREFS \ list<Ref<NiObject> > refs; \ refs = APSysCtlr::GetRefs(); \ -refs.push_back(StaticCast<NiObject>(visibilityInterpolator)); \ +if ( visibilityInterpolator != NULL ) \ + refs.push_back(StaticCast<NiObject>(visibilityInterpolator)); \ return refs; \ #define NI_P_SYS_EMITTER_CTLR_DATA_MEMBERS \ @@ -10461,7 +10550,8 @@ for (uint i0 = 0; i0 < emitterMeshes.size(); i0++) { \ list<Ref<NiObject> > refs; \ refs = NiPSysEmitter::GetRefs(); \ for (uint i0 = 0; i0 < emitterMeshes.size(); i0++) { \ - refs.push_back(StaticCast<NiObject>(emitterMeshes[i0])); \ + if ( emitterMeshes[i0] != NULL ) \ + refs.push_back(StaticCast<NiObject>(emitterMeshes[i0])); \ }; \ return refs; \ @@ -10524,7 +10614,8 @@ for (uint i0 = 0; i0 < meshes.size(); i0++) { \ list<Ref<NiObject> > refs; \ refs = NiPSysModifier::GetRefs(); \ for (uint i0 = 0; i0 < meshes.size(); i0++) { \ - refs.push_back(StaticCast<NiObject>(meshes[i0])); \ + if ( meshes[i0] != NULL ) \ + refs.push_back(StaticCast<NiObject>(meshes[i0])); \ }; \ return refs; \ @@ -10666,9 +10757,12 @@ link_stack.pop_front(); \ #define NI_P_SYS_PLANAR_COLLIDER_GETREFS \ list<Ref<NiObject> > refs; \ refs = NiObject::GetRefs(); \ -refs.push_back(StaticCast<NiObject>(spawnModifier)); \ -refs.push_back(StaticCast<NiObject>(unknownLink_)); \ -refs.push_back(StaticCast<NiObject>(colliderObject)); \ +if ( spawnModifier != NULL ) \ + refs.push_back(StaticCast<NiObject>(spawnModifier)); \ +if ( unknownLink_ != NULL ) \ + refs.push_back(StaticCast<NiObject>(unknownLink_)); \ +if ( colliderObject != NULL ) \ + refs.push_back(StaticCast<NiObject>(colliderObject)); \ return refs; \ #define NI_P_SYS_POSITION_MODIFIER_MEMBERS \ @@ -11245,7 +11339,8 @@ if ( version <= 0x0A010000 ) { \ #define NI_SKIN_DATA_GETREFS \ list<Ref<NiObject> > refs; \ refs = NiObject::GetRefs(); \ -refs.push_back(StaticCast<NiObject>(skinPartition)); \ +if ( skinPartition != NULL ) \ + refs.push_back(StaticCast<NiObject>(skinPartition)); \ return refs; \ #define NI_SKIN_INSTANCE_MEMBERS \ @@ -11353,8 +11448,10 @@ for (uint i0 = 0; i0 < bones.bones.size(); i0++) { \ #define NI_SKIN_INSTANCE_GETREFS \ list<Ref<NiObject> > refs; \ refs = NiObject::GetRefs(); \ -refs.push_back(StaticCast<NiObject>(data)); \ -refs.push_back(StaticCast<NiObject>(skinPartition)); \ +if ( data != NULL ) \ + refs.push_back(StaticCast<NiObject>(data)); \ +if ( skinPartition != NULL ) \ + refs.push_back(StaticCast<NiObject>(skinPartition)); \ for (uint i0 = 0; i0 < bones.bones.size(); i0++) { \ }; \ return refs; \ @@ -11767,8 +11864,10 @@ if ( (useExternal == 0) ) { \ #define NI_SOURCE_TEXTURE_GETREFS \ list<Ref<NiObject> > refs; \ refs = NiObjectNET::GetRefs(); \ -refs.push_back(StaticCast<NiObject>(unknownLink)); \ -refs.push_back(StaticCast<NiObject>(pixelData)); \ +if ( unknownLink != NULL ) \ + refs.push_back(StaticCast<NiObject>(unknownLink)); \ +if ( pixelData != NULL ) \ + refs.push_back(StaticCast<NiObject>(pixelData)); \ return refs; \ #define NI_SPECULAR_PROPERTY_MEMBERS \ @@ -12232,7 +12331,8 @@ link_stack.pop_front(); \ #define NI_TEXTURE_EFFECT_GETREFS \ list<Ref<NiObject> > refs; \ refs = NiDynamicEffect::GetRefs(); \ -refs.push_back(StaticCast<NiObject>(sourceTexture)); \ +if ( sourceTexture != NULL ) \ + refs.push_back(StaticCast<NiObject>(sourceTexture)); \ return refs; \ #define NI_TEXTURE_TRANSFORM_CONTROLLER_MEMBERS \ @@ -12294,7 +12394,8 @@ if ( version <= 0x0A010000 ) { \ #define NI_TEXTURE_TRANSFORM_CONTROLLER_GETREFS \ list<Ref<NiObject> > refs; \ refs = NiSingleInterpolatorController::GetRefs(); \ -refs.push_back(StaticCast<NiObject>(data)); \ +if ( data != NULL ) \ + refs.push_back(StaticCast<NiObject>(data)); \ return refs; \ #define NI_TEXTURING_PROPERTY_MEMBERS \ @@ -13105,16 +13206,25 @@ if ( version >= 0x0A000100 ) { \ #define NI_TEXTURING_PROPERTY_GETREFS \ list<Ref<NiObject> > refs; \ refs = NiProperty::GetRefs(); \ -refs.push_back(StaticCast<NiObject>(baseTexture.source)); \ -refs.push_back(StaticCast<NiObject>(darkTexture.source)); \ -refs.push_back(StaticCast<NiObject>(detailTexture.source)); \ -refs.push_back(StaticCast<NiObject>(glossTexture.source)); \ -refs.push_back(StaticCast<NiObject>(glowTexture.source)); \ -refs.push_back(StaticCast<NiObject>(bumpMapTexture.source)); \ -refs.push_back(StaticCast<NiObject>(decal0Texture.source)); \ -refs.push_back(StaticCast<NiObject>(decal1Texture.source)); \ +if ( baseTexture.source != NULL ) \ + refs.push_back(StaticCast<NiObject>(baseTexture.source)); \ +if ( darkTexture.source != NULL ) \ + refs.push_back(StaticCast<NiObject>(darkTexture.source)); \ +if ( detailTexture.source != NULL ) \ + refs.push_back(StaticCast<NiObject>(detailTexture.source)); \ +if ( glossTexture.source != NULL ) \ + refs.push_back(StaticCast<NiObject>(glossTexture.source)); \ +if ( glowTexture.source != NULL ) \ + refs.push_back(StaticCast<NiObject>(glowTexture.source)); \ +if ( bumpMapTexture.source != NULL ) \ + refs.push_back(StaticCast<NiObject>(bumpMapTexture.source)); \ +if ( decal0Texture.source != NULL ) \ + refs.push_back(StaticCast<NiObject>(decal0Texture.source)); \ +if ( decal1Texture.source != NULL ) \ + refs.push_back(StaticCast<NiObject>(decal1Texture.source)); \ for (uint i0 = 0; i0 < shaderTextures.size(); i0++) { \ - refs.push_back(StaticCast<NiObject>(shaderTextures[i0].textureData.source)); \ + if ( shaderTextures[i0].textureData.source != NULL ) \ + refs.push_back(StaticCast<NiObject>(shaderTextures[i0].textureData.source)); \ }; \ return refs; \ @@ -13243,7 +13353,8 @@ link_stack.pop_front(); \ #define NI_TRANSFORM_INTERPOLATOR_GETREFS \ list<Ref<NiObject> > refs; \ refs = NiInterpolator::GetRefs(); \ -refs.push_back(StaticCast<NiObject>(data)); \ +if ( data != NULL ) \ + refs.push_back(StaticCast<NiObject>(data)); \ return refs; \ #define NI_TRI_SHAPE_MEMBERS \ @@ -13557,7 +13668,8 @@ link_stack.pop_front(); \ #define NI_U_V_CONTROLLER_GETREFS \ list<Ref<NiObject> > refs; \ refs = NiTimeController::GetRefs(); \ -refs.push_back(StaticCast<NiObject>(data)); \ +if ( data != NULL ) \ + refs.push_back(StaticCast<NiObject>(data)); \ return refs; \ #define NI_U_V_DATA_MEMBERS \ @@ -13794,7 +13906,8 @@ if ( version <= 0x0A010000 ) { \ #define NI_VIS_CONTROLLER_GETREFS \ list<Ref<NiObject> > refs; \ refs = NiSingleInterpolatorController::GetRefs(); \ -refs.push_back(StaticCast<NiObject>(data)); \ +if ( data != NULL ) \ + refs.push_back(StaticCast<NiObject>(data)); \ return refs; \ #define NI_VIS_DATA_MEMBERS \