/* 
 * 
 * Confidential Information of Telekinesys Research Limited (t/a Havok). Not for disclosure or distribution without Havok's
 * prior written consent. This software contains code, techniques and know-how which is confidential and proprietary to Havok.
 * Level 2 and Level 3 source code contains trade secrets of Havok. Havok Software (C) Copyright 1999-2009 Telekinesys Research Limited t/a Havok. All Rights Reserved. Use of this software is subject to the terms of an end user license agreement.
 * 
 */

//=======
// 650b1
//=======

HK_PATCH_BEGIN(HK_NULL, HK_CLASS_ADDED, "hkdRemoveWeakConnectionsAction", 0)
	HK_PATCH_PARENT_SET(HK_NULL, "hkdAction")
	HK_PATCH_MEMBER_ADDED("minRelativeArea", TYPE_REAL, HK_NULL, 0)
	HK_PATCH_DEPENDS("hkBaseObject", 0)
	HK_PATCH_DEPENDS("hkdAction", 0)
	HK_PATCH_DEPENDS("hkReferencedObject", 0)
HK_PATCH_END()

HK_PATCH_BEGIN(HK_NULL, HK_CLASS_ADDED, "hkdRaycastGun", 0)
	HK_PATCH_PARENT_SET(HK_NULL, "hkpFirstPersonGun")
	HK_PATCH_MEMBER_ADDED("destructionRadius", TYPE_REAL, HK_NULL, 0)
	HK_PATCH_MEMBER_ADDED("forceRadius", TYPE_REAL, HK_NULL, 0)
	HK_PATCH_MEMBER_ADDED("mass", TYPE_REAL, HK_NULL, 0)
	HK_PATCH_MEMBER_ADDED("velocity", TYPE_REAL, HK_NULL, 0)
	HK_PATCH_MEMBER_ADDED("angImpulseFactor", TYPE_REAL, HK_NULL, 0)
	HK_PATCH_DEPENDS("hkBaseObject", 0)
	HK_PATCH_DEPENDS("hkpFirstPersonGun", 0)
	HK_PATCH_DEPENDS("hkReferencedObject", 0)
HK_PATCH_END()

HK_PATCH_BEGIN(HK_NULL, HK_CLASS_ADDED, "hkdMissileGun", 0)
	HK_PATCH_PARENT_SET(HK_NULL, "hkpProjectileGun")
	HK_PATCH_DEPENDS("hkBaseObject", 0)
	HK_PATCH_DEPENDS("hkpFirstPersonGun", 0)
	HK_PATCH_DEPENDS("hkpProjectileGun", 0)
	HK_PATCH_DEPENDS("hkReferencedObject", 0)
HK_PATCH_END()

HK_PATCH_BEGIN(HK_NULL, HK_CLASS_ADDED, "hkdAction", 0)
	HK_PATCH_PARENT_SET(HK_NULL, "hkReferencedObject")
	HK_PATCH_DEPENDS("hkBaseObject", 0)
	HK_PATCH_DEPENDS("hkReferencedObject", 0)
HK_PATCH_END()

HK_PATCH_BEGIN(HK_NULL, HK_CLASS_ADDED, "hkdFlexibleJointController", 0)
	HK_PATCH_PARENT_SET(HK_NULL, "hkdController")
	HK_PATCH_MEMBER_ADDED("activationStrength", TYPE_REAL, HK_NULL, 0)
	HK_PATCH_MEMBER_ADDED("inertiaMultiplier", TYPE_REAL, HK_NULL, 0)
	HK_PATCH_MEMBER_ADDED("maxInertiaRatio", TYPE_REAL, HK_NULL, 0)
	HK_PATCH_MEMBER_ADDED("connectToType", TYPE_BYTE, HK_NULL, 0)
	HK_PATCH_MEMBER_ADDED("supportJoints", TYPE_STRUCT, "hkdFlexibleJointControllerJointDef", 0)
	HK_PATCH_DEPENDS("hkBaseObject", 0)
	HK_PATCH_DEPENDS("hkdFlexibleJointControllerJointDef", 0)
	HK_PATCH_DEPENDS("hkReferencedObject", 0)
	HK_PATCH_DEPENDS("hkdController", 0)
HK_PATCH_END()

HK_PATCH_BEGIN(HK_NULL, HK_CLASS_ADDED, "hkdGrenadeGun", 0)
	HK_PATCH_PARENT_SET(HK_NULL, "hkpProjectileGun")
	HK_PATCH_DEPENDS("hkBaseObject", 0)
	HK_PATCH_DEPENDS("hkpFirstPersonGun", 0)
	HK_PATCH_DEPENDS("hkpProjectileGun", 0)
	HK_PATCH_DEPENDS("hkReferencedObject", 0)
HK_PATCH_END()

HK_PATCH_BEGIN(HK_NULL, HK_CLASS_ADDED, "hkdExplosionForceAction", 0)
	HK_PATCH_PARENT_SET(HK_NULL, "hkdAction")
	HK_PATCH_MEMBER_ADDED("explosionCenter", TYPE_VEC_4, HK_NULL, 0)
	HK_PATCH_MEMBER_ADDED("velocity", TYPE_VEC_4, HK_NULL, 0)
	HK_PATCH_MEMBER_ADDED("expandingVelocity", TYPE_REAL, HK_NULL, 0)
	HK_PATCH_MEMBER_ADDED("virtMass", TYPE_REAL, HK_NULL, 0)
	HK_PATCH_MEMBER_ADDED("angularImpulseFactor", TYPE_REAL, HK_NULL, 0)
	HK_PATCH_DEPENDS("hkBaseObject", 0)
	HK_PATCH_DEPENDS("hkdAction", 0)
	HK_PATCH_DEPENDS("hkReferencedObject", 0)
HK_PATCH_END()

HK_PATCH_BEGIN(HK_NULL, HK_CLASS_ADDED, "hkdDebrisFracture", 0)
	HK_PATCH_PARENT_SET(HK_NULL, "hkdFracture")
	HK_PATCH_MEMBER_ADDED("gap", TYPE_REAL, HK_NULL, 0)
	HK_PATCH_MEMBER_ADDED("templateDebris", TYPE_OBJECT, "hkdBreakableShape", 0)
	HK_PATCH_DEPENDS("hkdFracture", 1)
	HK_PATCH_DEPENDS("hkBaseObject", 0)
	HK_PATCH_DEPENDS("hkdBreakableShape", 1)
	HK_PATCH_DEPENDS("hkReferencedObject", 0)
HK_PATCH_END()

HK_PATCH_BEGIN(HK_NULL, HK_CLASS_ADDED, "hkdFlexibleJointControllerJointDef", 0)
	HK_PATCH_MEMBER_ADDED("coneAngle", TYPE_REAL, HK_NULL, 0)
	HK_PATCH_MEMBER_ADDED("twistAngle", TYPE_REAL, HK_NULL, 0)
	HK_PATCH_MEMBER_ADDED("planeAngle", TYPE_REAL, HK_NULL, 0)
	HK_PATCH_MEMBER_ADDED("relBendingStrength", TYPE_REAL, HK_NULL, 0)
	HK_PATCH_MEMBER_ADDED("limitStiffness", TYPE_REAL, HK_NULL, 0)
	HK_PATCH_MEMBER_ADDED("relBreakingStrength", TYPE_REAL, HK_NULL, 0)
	HK_PATCH_MEMBER_ADDED("dropConstraintOnBreakage", TYPE_BYTE, HK_NULL, 0)
HK_PATCH_END()

HK_PATCH_BEGIN(HK_NULL, HK_CLASS_ADDED, "hkdSphereGun", 0)
	HK_PATCH_PARENT_SET(HK_NULL, "hkpProjectileGun")
	HK_PATCH_MEMBER_ADDED("sphereGeometry", TYPE_OBJECT, "hkdGeometry", 0)
	HK_PATCH_DEPENDS("hkBaseObject", 0)
	HK_PATCH_DEPENDS("hkdGeometry", 0)
	HK_PATCH_DEPENDS("hkpFirstPersonGun", 0)
	HK_PATCH_DEPENDS("hkpProjectileGun", 0)
	HK_PATCH_DEPENDS("hkReferencedObject", 0)
HK_PATCH_END()

HK_PATCH_BEGIN(HK_NULL, HK_CLASS_ADDED, "hkdVoronoiFracture", 0)
	HK_PATCH_PARENT_SET(HK_NULL, "hkdFracture")
	HK_PATCH_MEMBER_ADDED("splitPlaneGeometry", TYPE_OBJECT, "hkdGeometry", 0)
	HK_PATCH_MEMBER_ADDED("pivots", TYPE_ARRAY_VEC_4, HK_NULL, 0)
	HK_PATCH_DEPENDS("hkdFracture", 1)
	HK_PATCH_DEPENDS("hkBaseObject", 0)
	HK_PATCH_DEPENDS("hkdGeometry", 0)
	HK_PATCH_DEPENDS("hkReferencedObject", 0)
HK_PATCH_END()

HK_PATCH_BEGIN(HK_NULL, HK_CLASS_ADDED, "hkdStickyGun", 0)
	HK_PATCH_PARENT_SET(HK_NULL, "hkpProjectileGun")
	HK_PATCH_DEPENDS("hkBaseObject", 0)
	HK_PATCH_DEPENDS("hkpFirstPersonGun", 0)
	HK_PATCH_DEPENDS("hkpProjectileGun", 0)
	HK_PATCH_DEPENDS("hkReferencedObject", 0)
HK_PATCH_END()

HK_PATCH_BEGIN("hkdGrenadeGunBlueprint", 0, HK_NULL, HK_CLASS_REMOVED)
	HK_PATCH_PARENT_SET("hkdWeaponBlueprint", HK_NULL)
	HK_PATCH_MEMBER_REMOVED("maxProjectiles", TYPE_INT, HK_NULL, 0)
	HK_PATCH_MEMBER_REMOVED("reloadTime", TYPE_REAL, HK_NULL, 0)
	HK_PATCH_DEPENDS("hkBaseObject", 0)
	HK_PATCH_DEPENDS("hkdWeaponBlueprint", 0)
	HK_PATCH_DEPENDS("hkReferencedObject", 0)
HK_PATCH_END()

HK_PATCH_BEGIN("hkdWeaponBlueprint", 0, HK_NULL, HK_CLASS_REMOVED)
	HK_PATCH_PARENT_SET("hkReferencedObject", HK_NULL)
	HK_PATCH_MEMBER_REMOVED("name", TYPE_CSTRING, HK_NULL, 0)
	HK_PATCH_MEMBER_REMOVED("keyboardKey", TYPE_BYTE, HK_NULL, 0)
	HK_PATCH_DEPENDS("hkBaseObject", 0)
	HK_PATCH_DEPENDS("hkReferencedObject", 0)
HK_PATCH_END()

HK_PATCH_BEGIN("hkdBallGunBlueprint", 0, HK_NULL, HK_CLASS_REMOVED)
	HK_PATCH_PARENT_SET("hkdWeaponBlueprint", HK_NULL)
	HK_PATCH_MEMBER_REMOVED("bulletRadius", TYPE_REAL, HK_NULL, 0)
	HK_PATCH_MEMBER_REMOVED("bulletVelocity", TYPE_REAL, HK_NULL, 0)
	HK_PATCH_MEMBER_REMOVED("bulletMass", TYPE_REAL, HK_NULL, 0)
	HK_PATCH_MEMBER_REMOVED("damageMultiplier", TYPE_REAL, HK_NULL, 0)
	HK_PATCH_MEMBER_REMOVED("maxBulletsInWorld", TYPE_INT, HK_NULL, 0)
	HK_PATCH_DEPENDS("hkBaseObject", 0)
	HK_PATCH_DEPENDS("hkdWeaponBlueprint", 0)
	HK_PATCH_DEPENDS("hkReferencedObject", 0)
HK_PATCH_END()

HK_PATCH_BEGIN("hkdCompoundBreakableBodyBlueprint", 0, HK_NULL, HK_CLASS_REMOVED)
	HK_PATCH_PARENT_SET("hkReferencedObject", HK_NULL)
	HK_PATCH_MEMBER_REMOVED("attachToNearbyObjects", TYPE_BYTE, HK_NULL, 0)
	HK_PATCH_MEMBER_REMOVED("controller", TYPE_OBJECT, "hkdController", 0)
	HK_PATCH_MEMBER_REMOVED("groupName", TYPE_CSTRING, HK_NULL, 0)
	HK_PATCH_DEPENDS("hkBaseObject", 0)
	HK_PATCH_DEPENDS("hkReferencedObject", 0)
	HK_PATCH_DEPENDS("hkdController", 0)
HK_PATCH_END()

HK_PATCH_BEGIN("hkdGravityGunBlueprint", 0, HK_NULL, HK_CLASS_REMOVED)
	HK_PATCH_PARENT_SET("hkdWeaponBlueprint", HK_NULL)
	HK_PATCH_MEMBER_REMOVED("maxNumObjectsPicked", TYPE_INT, HK_NULL, 0)
	HK_PATCH_MEMBER_REMOVED("maxMassOfObjectPicked", TYPE_REAL, HK_NULL, 0)
	HK_PATCH_MEMBER_REMOVED("maxDistOfObjectPicked", TYPE_REAL, HK_NULL, 0)
	HK_PATCH_MEMBER_REMOVED("impulseAppliedWhenObjectNotPicked", TYPE_REAL, HK_NULL, 0)
	HK_PATCH_MEMBER_REMOVED("throwVelocity", TYPE_REAL, HK_NULL, 0)
	HK_PATCH_MEMBER_REMOVED("capturedObjectPosition", TYPE_VEC_4, HK_NULL, 0)
	HK_PATCH_MEMBER_REMOVED("capturedObjectsOffset", TYPE_VEC_4, HK_NULL, 0)
	HK_PATCH_DEPENDS("hkBaseObject", 0)
	HK_PATCH_DEPENDS("hkdWeaponBlueprint", 0)
	HK_PATCH_DEPENDS("hkReferencedObject", 0)
HK_PATCH_END()

HK_PATCH_BEGIN("hkdChangeMassGunBlueprint", 0, HK_NULL, HK_CLASS_REMOVED)
	HK_PATCH_PARENT_SET("hkdWeaponBlueprint", HK_NULL)
	HK_PATCH_MEMBER_REMOVED("massChangeRatio", TYPE_REAL, HK_NULL, 0)
	HK_PATCH_MEMBER_REMOVED("maxDistOfObjectPicked", TYPE_REAL, HK_NULL, 0)
	HK_PATCH_DEPENDS("hkBaseObject", 0)
	HK_PATCH_DEPENDS("hkdWeaponBlueprint", 0)
	HK_PATCH_DEPENDS("hkReferencedObject", 0)
HK_PATCH_END()

HK_PATCH_BEGIN("hkdBody", 0, "hkdBody", 1)
	HK_PATCH_MEMBER_REMOVED("findInitialContactPoints", TYPE_BYTE, HK_NULL, 0)
HK_PATCH_END()

HK_PATCH_BEGIN("hkdBody", 1, "hkdBody", 2)
	HK_PATCH_MEMBER_ADDED("attributes", TYPE_ARRAY_STRUCT, "hkxAttribute", 0)
	HK_PATCH_DEPENDS("hkxAttribute", 0)
HK_PATCH_END()

HK_PATCH_BEGIN("hkdBreakableBodyBlueprint", 0, "hkdBreakableBodyBlueprint", 1)
	HK_PATCH_MEMBER_REMOVED("findInitialContactPoints", TYPE_BYTE, HK_NULL, 0)
HK_PATCH_END()

HK_PATCH_BEGIN("hkdBreakableBody", 0, "hkdBreakableBody", 1)
	HK_PATCH_PARENT_SET("hkReferencedObject", "hkpBreakableBody")
	HK_PATCH_MEMBER_ADDED("properties", TYPE_STRUCT, "hkdProperties", 0)
	HK_PATCH_DEPENDS("hkdProperties", 0)
HK_PATCH_END()

HK_PATCH_BEGIN("hkdBreakableShape", 0, "hkdBreakableShape", 1)
	HK_PATCH_MEMBER_RENAMED("breakingPropogationRate", "breakingPropagationRate")
	HK_PATCH_MEMBER_ADDED("flexibleJointType", TYPE_BYTE, HK_NULL, 0)
	HK_PATCH_MEMBER_ADDED("qualityType", TYPE_BYTE, HK_NULL, 0)
	HK_PATCH_MEMBER_ADDED("properties", TYPE_STRUCT, "hkdProperties", 0)
	HK_PATCH_MEMBER_ADDED("actions", TYPE_ARRAY_OBJECT, "hkdAction", 0)
	HK_PATCH_MEMBER_ADDED("userData", TYPE_INT, HK_NULL, 0)
	HK_PATCH_DEPENDS("hkdProperties", 0)
	HK_PATCH_DEPENDS("hkdAction", 0)
HK_PATCH_END()

HK_PATCH_BEGIN("hkdWoodFracture", 0, "hkdWoodFracture", 1)
	HK_PATCH_MEMBER_RENAMED("flattenHierarchy", "old_flattenHierarchy")
	HK_PATCH_FUNCTION(hkdWoodFracture_0_to_1)
	HK_PATCH_MEMBER_REMOVED("old_flattenHierarchy", TYPE_BYTE, HK_NULL, 0)
	HK_PATCH_DEPENDS("hkdFracture", 1)
HK_PATCH_END()

HK_PATCH_BEGIN("hkdShape", 0, "hkdShape", 1)
	HK_PATCH_MEMBER_RENAMED("breakingPropogationRate", "breakingPropagationRate")
	HK_PATCH_MEMBER_ADDED("flattenChildCompounds", TYPE_BYTE, HK_NULL, 0)
	HK_PATCH_MEMBER_ADDED("bodyQualityType", TYPE_BYTE, HK_NULL, 0)
	HK_PATCH_MEMBER_ADDED("flexibleJointType", TYPE_BYTE, HK_NULL, 0)
	HK_PATCH_MEMBER_ADDED("attributes", TYPE_ARRAY_STRUCT, "hkxAttribute", 0)
	HK_PATCH_DEPENDS("hkxAttribute", 0)
	HK_PATCH_FUNCTION(hkdShape_0_to_1)
HK_PATCH_END()

HK_PATCH_BEGIN("hkdSliceFracture", 0, "hkdSliceFracture", 1)
	HK_PATCH_MEMBER_RENAMED("childFracture", "old_childFracture")
	HK_PATCH_FUNCTION(hkdSliceFracture_0_to_1)
	HK_PATCH_MEMBER_REMOVED("old_childFracture", TYPE_OBJECT, "hkdFracture", 0)
	HK_PATCH_DEPENDS("hkdFracture", 1)
HK_PATCH_END()

HK_PATCH_BEGIN("hkdFracture", 0, "hkdFracture", 1)
	HK_PATCH_MEMBER_REMOVED("padding", TYPE_INT, HK_NULL, 0)
	HK_PATCH_MEMBER_ADDED("flattenHierarchy", TYPE_BYTE, HK_NULL, 0)
	HK_PATCH_MEMBER_ADDED("childFracture", TYPE_OBJECT, "hkdFracture", 0)
HK_PATCH_END()

HK_PATCH_BEGIN("hkdSplitInHalfFracture", 0, "hkdSplitInHalfFracture", 1)
	HK_PATCH_MEMBER_RENAMED("flattenHierarchy", "old_flattenHierarchy")
	HK_PATCH_FUNCTION(hkdSplitInHalfFracture_0_to_1)
	HK_PATCH_MEMBER_REMOVED("old_flattenHierarchy", TYPE_BYTE, HK_NULL, 0)
	HK_PATCH_DEPENDS("hkdFracture", 1)
HK_PATCH_END()

HK_PATCH_BEGIN("hkdDeformationController", 0, "hkdDeformationController", 1)
	HK_PATCH_MEMBER_ADDED("strength", TYPE_REAL, HK_NULL, 0)
HK_PATCH_END()

HK_PATCH_BEGIN(HK_NULL, HK_CLASS_ADDED, "hkdDecorateFractureFaceActionFractureFaceInfo2", 0)
	HK_PATCH_PARENT_SET(HK_NULL, "hkdDecorateFractureFaceActionFractureFaceInfo")
	HK_PATCH_MEMBER_ADDED("maxSlope", TYPE_REAL, HK_NULL, 0)
	HK_PATCH_DEPENDS("hkdDecorateFractureFaceActionFractureFaceInfo", 0)
HK_PATCH_END()

HK_PATCH_BEGIN(HK_NULL, HK_CLASS_ADDED, "hkdDecorateFractureFaceActionFractureFaceInfo", 0)
	HK_PATCH_MEMBER_ADDED("decorations", TYPE_OBJECT, "hkdBreakableShape", 0)
	HK_PATCH_MEMBER_ADDED("density", TYPE_REAL, HK_NULL, 0)
	HK_PATCH_MEMBER_ADDED("gap", TYPE_REAL, HK_NULL, 0)
	HK_PATCH_DEPENDS("hkBaseObject", 0)
	HK_PATCH_DEPENDS("hkdBreakableShape", 1)
	HK_PATCH_DEPENDS("hkReferencedObject", 0)
HK_PATCH_END()

HK_PATCH_BEGIN(HK_NULL, HK_CLASS_ADDED, "hkdDecorateFractureFaceAction", 0)
	HK_PATCH_MEMBER_ADDED("upDir", TYPE_VEC_4, HK_NULL, 0)
	HK_PATCH_MEMBER_ADDED("frontDir", TYPE_VEC_4, HK_NULL, 0)
	HK_PATCH_MEMBER_ADDED("vertGridDist", TYPE_REAL, HK_NULL, 0)
	HK_PATCH_MEMBER_ADDED("vertGridOffset", TYPE_REAL, HK_NULL, 0)
	HK_PATCH_MEMBER_ADDED("horGridDist", TYPE_REAL, HK_NULL, 0)
	HK_PATCH_MEMBER_ADDED("horGridOffset", TYPE_REAL, HK_NULL, 0)
	HK_PATCH_MEMBER_ADDED("top", TYPE_STRUCT, "hkdDecorateFractureFaceActionFractureFaceInfo2", 0)
	HK_PATCH_MEMBER_ADDED("bottom", TYPE_STRUCT, "hkdDecorateFractureFaceActionFractureFaceInfo2", 0)
	HK_PATCH_MEMBER_ADDED("right", TYPE_STRUCT, "hkdDecorateFractureFaceActionFractureFaceInfo", 0)
	HK_PATCH_MEMBER_ADDED("left", TYPE_STRUCT, "hkdDecorateFractureFaceActionFractureFaceInfo", 0)
	HK_PATCH_DEPENDS("hkBaseObject", 0)
	HK_PATCH_DEPENDS("hkdDecorateFractureFaceActionFractureFaceInfo2", 0)
	HK_PATCH_DEPENDS("hkdDecorateFractureFaceActionFractureFaceInfo", 0)
	HK_PATCH_DEPENDS("hkReferencedObject", 0)
HK_PATCH_END()

HK_PATCH_BEGIN("hkdFlexibleJointControllerJointDef", 0, "hkdFlexibleJointControllerJointDef", 1)
	HK_PATCH_MEMBER_ADDED("relPullingStrength", TYPE_REAL, HK_NULL, 0)
	HK_PATCH_FUNCTION(hkdFlexibleJointControllerJointDef_0_to_1) // set defaults
HK_PATCH_END()

HK_PATCH_BEGIN("hkdDeformationController", 1, "hkdDeformationController", 2)
	HK_PATCH_MEMBER_ADDED("deformationRadius", TYPE_REAL, HK_NULL, 0)
	HK_PATCH_FUNCTION(hkdDeformationController_0_to_1) // set defaults
HK_PATCH_END()

HK_PATCH_BEGIN("hkdVoronoiFracture", 0, "hkdVoronoiFracture", 1)
	HK_PATCH_MEMBER_ADDED("graphicsOverlap", TYPE_REAL, HK_NULL, 0)
HK_PATCH_END()

HK_PATCH_BEGIN("hkdDecorateFractureFaceAction", 0, "hkdDecorateFractureFaceAction", 1)
	HK_PATCH_PARENT_SET(HK_NULL, "hkdAction")
	HK_PATCH_MEMBER_ADDED("decorationPivot", TYPE_BYTE, HK_NULL, 0)
HK_PATCH_END()

/*
* Havok SDK - NO SOURCE PC DOWNLOAD, BUILD(#20090216)
* 
* Confidential Information of Havok.  (C) Copyright 1999-2009
* Telekinesys Research Limited t/a Havok. All Rights Reserved. The Havok
* Logo, and the Havok buzzsaw logo are trademarks of Havok.  Title, ownership
* rights, and intellectual property rights in the Havok software remain in
* Havok and/or its suppliers.
* 
* Use of this software for evaluation purposes is subject to and indicates
* acceptance of the End User licence Agreement for this product. A copy of
* the license is included with this software and is also available at www.havok.com/tryhavok.
* 
*/
