Hi folks! I've got an hkCharacterRigidBody who is being blown out an airlock, so I'm applying a force to push the character around.
I'm getting an assert sometimes when my character smashes into a wall / door:
.\Solve\hkpSolverGetToiVelocities.cpp(253): [0xADE4EAD2] Assert : hkpJacobianSchema::getType(com) == hkpJacobianSchema::SCHEMA_TYPE_GOTO || hkpJacobianSchema::getType(com) == hkpJacobianSchema::SCHEMA_TYPE_HEADER || hkpJacobianSchema::getType(com) == hkpJacobianSchema::SCHEMA_TYPE_END || hkpJacobianSchema::getType(com) == hkpJacobianSchema::SCHEMA_TYPE_SET_MASS || hkpJacobianSchema::getType(com) == hkpJacobianSchema::SCHEMA_TYPE_ADD_VELOCITY || hkpJacobianSchema::getType(com) == hkpJacobianSchema::SCHEMA_TYPE_SET_CENTER_OF_MASS || hkpJacob
This occurs with the following callstack:
RodinaDebug.exe!hkSolveGetToiViolatingConstraintVelocity(hkpSolverInfo & i, const hkpJacobianSchema * schemas, const hkpVelocityAccumulator * accums, int maxNumVelocities, float * velocitiesOut) Line 253 + 0xb2 bytes C++ RodinaDebug.exe!hkLs_toiCheckFinalValidityOfCriticalConstraints(hkpConstraintSolverResources & solverResources, const hkArray<hkpConstraintSchemaInfo,hkContainerHeapAllocator> & constraintStatus, hkpProcessCollisionInput & processInput, hkArray<hkpToiResourceMgr::ConstraintViolationInfo,hkContainerHeapAllocator> * violatedConstraints) Line 2501 C++ RodinaDebug.exe!hkLs_localizedSolveToi(const hkpToiResources & toiResources, hkpConstraintSolverResources & solverResources, hkpToiEvent & event, hkpToiResourceMgr & toiResourceMgr, hkpWorld * world, hkArray<hkpEntity *,hkContainerHeapAllocator> & activeEntities, hkFixedArray<unsigned char> & entityState, float rotateNormal) Line 2837 C++ RodinaDebug.exe!hkpContinuousSimulation::simulateToi(hkpWorld * world, hkpToiEvent & event, float physicsDeltaTime, float rotateNormal) Line 1720 + 0x3e bytes C++ RodinaDebug.exe!hkpContinuousSimulation::handleAllToisTill(float minTime) Line 378 C++ RodinaDebug.exe!hkpContinuousSimulation::advanceTimeInternal() Line 473 + 0xf bytes C++ RodinaDebug.exe!hkpContinuousSimulation::advanceTime() Line 408 + 0x5 bytes C++ RodinaDebug.exe!hkpSimulation::stepDeltaTime(float physicsDeltaTime) Line 370 C++ RodinaDebug.exe!hkpWorld::stepDeltaTime(float physicsDeltaTime) Line 2431 C++
The game doesn't crash, and I seem to be able to just ignore it and keep going.
I should mention that I am using a very old version of havok (ack!!) hk2010_2_0_r1