mirror of
https://github.com/overte-org/overte.git
synced 2025-08-08 12:17:45 +02:00
Merge pull request #4529 from AndrewMeadows/inertia
fix crash for bad avatar body on login
This commit is contained in:
commit
2951d17bf3
1 changed files with 10 additions and 7 deletions
|
@ -787,13 +787,16 @@ void CharacterController::setEnabled(bool enabled) {
|
||||||
void CharacterController::setDynamicsWorld(btDynamicsWorld* world) {
|
void CharacterController::setDynamicsWorld(btDynamicsWorld* world) {
|
||||||
if (_dynamicsWorld != world) {
|
if (_dynamicsWorld != world) {
|
||||||
if (_dynamicsWorld) {
|
if (_dynamicsWorld) {
|
||||||
_dynamicsWorld->removeCollisionObject(getGhostObject());
|
if (_ghostObject) {
|
||||||
|
_dynamicsWorld->removeCollisionObject(_ghostObject);
|
||||||
_dynamicsWorld->removeAction(this);
|
_dynamicsWorld->removeAction(this);
|
||||||
}
|
}
|
||||||
|
_dynamicsWorld = NULL;
|
||||||
|
}
|
||||||
|
if (world && _ghostObject) {
|
||||||
_dynamicsWorld = world;
|
_dynamicsWorld = world;
|
||||||
if (_dynamicsWorld) {
|
|
||||||
_pendingFlags &= ~ PENDING_FLAG_JUMP;
|
_pendingFlags &= ~ PENDING_FLAG_JUMP;
|
||||||
_dynamicsWorld->addCollisionObject(getGhostObject(),
|
_dynamicsWorld->addCollisionObject(_ghostObject,
|
||||||
btBroadphaseProxy::CharacterFilter,
|
btBroadphaseProxy::CharacterFilter,
|
||||||
btBroadphaseProxy::StaticFilter | btBroadphaseProxy::DefaultFilter);
|
btBroadphaseProxy::StaticFilter | btBroadphaseProxy::DefaultFilter);
|
||||||
_dynamicsWorld->addAction(this);
|
_dynamicsWorld->addAction(this);
|
||||||
|
@ -876,7 +879,7 @@ void CharacterController::preSimulation(btScalar timeStep) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void CharacterController::postSimulation() {
|
void CharacterController::postSimulation() {
|
||||||
if (_enabled) {
|
if (_enabled && _ghostObject) {
|
||||||
const btTransform& avatarTransform = _ghostObject->getWorldTransform();
|
const btTransform& avatarTransform = _ghostObject->getWorldTransform();
|
||||||
glm::quat rotation = bulletToGLM(avatarTransform.getRotation());
|
glm::quat rotation = bulletToGLM(avatarTransform.getRotation());
|
||||||
glm::vec3 position = bulletToGLM(avatarTransform.getOrigin());
|
glm::vec3 position = bulletToGLM(avatarTransform.getOrigin());
|
||||||
|
|
Loading…
Reference in a new issue