| 513 | } |
| 514 | |
| 515 | void TSStatic::prepCollision() |
| 516 | { |
| 517 | // Let the client know that the collision was updated |
| 518 | setMaskBits(UpdateCollisionMask); |
| 519 | |
| 520 | // Allow the ShapeInstance to prep its collision if it hasn't already |
| 521 | if (mShapeInstance) |
| 522 | mShapeInstance->prepCollision(); |
| 523 | |
| 524 | // Cleanup any old collision data |
| 525 | mCollisionDetails.clear(); |
| 526 | mDecalDetails.clear(); |
| 527 | mDecalDetailsPtr = 0; |
| 528 | mLOSDetails.clear(); |
| 529 | mConvexList->nukeList(); |
| 530 | |
| 531 | if (mCollisionType == CollisionMesh || mCollisionType == VisibleMesh) |
| 532 | { |
| 533 | mShape->findColDetails(mCollisionType == VisibleMesh, &mCollisionDetails, &mLOSDetails); |
| 534 | if (mDecalType == mCollisionType) |
| 535 | { |
| 536 | mDecalDetailsPtr = &mCollisionDetails; |
| 537 | } |
| 538 | else if (mDecalType == CollisionMesh || mDecalType == VisibleMesh) |
| 539 | { |
| 540 | mShape->findColDetails(mDecalType == VisibleMesh, &mDecalDetails, 0); |
| 541 | mDecalDetailsPtr = &mDecalDetails; |
| 542 | } |
| 543 | } |
| 544 | else if (mDecalType == CollisionMesh || mDecalType == VisibleMesh) |
| 545 | { |
| 546 | mShape->findColDetails(mDecalType == VisibleMesh, &mDecalDetails, 0); |
| 547 | mDecalDetailsPtr = &mDecalDetails; |
| 548 | } |
| 549 | |
| 550 | _updatePhysics(); |
| 551 | } |
| 552 | |
| 553 | void TSStatic::_updatePhysics() |
| 554 | { |
no test coverage detected