| 109 | } |
| 110 | |
| 111 | void CCustomRocket::activate_physic_shell() |
| 112 | { |
| 113 | VERIFY(H_Parent()); |
| 114 | VERIFY(!m_pPhysicsShell); |
| 115 | create_physic_shell(); |
| 116 | if (m_pPhysicsShell->isActive()) |
| 117 | return; |
| 118 | VERIFY2(_valid(m_LaunchXForm), "CCustomRocket::activate_physic_shell. Invalid m_LaunchXForm!"); |
| 119 | |
| 120 | // if(m_pOwner->ID()==Actor()->ID()) |
| 121 | // { |
| 122 | // Msg("start v: %f,%f,%f \n",m_vLaunchVelocity.x,m_vLaunchVelocity.y,m_vLaunchVelocity.z); |
| 123 | // } |
| 124 | m_pPhysicsShell->Activate(m_LaunchXForm, m_vLaunchVelocity, m_vLaunchAngularVelocity); |
| 125 | m_pPhysicsShell->Update(); |
| 126 | |
| 127 | XFORM().set(m_pPhysicsShell->mXFORM); |
| 128 | Position().set(m_pPhysicsShell->mXFORM.c); |
| 129 | m_pPhysicsShell->set_PhysicsRefObject(this); |
| 130 | m_pPhysicsShell->set_ObjectContactCallback(ObjectContactCallback); |
| 131 | m_pPhysicsShell->set_ContactCallback(NULL); |
| 132 | m_pPhysicsShell->SetAirResistance(0.f, 0.f); |
| 133 | m_pPhysicsShell->set_DynamicScales(1.f, 1.f); |
| 134 | m_pPhysicsShell->SetAllGeomTraced(); |
| 135 | } |
| 136 | |
| 137 | void CCustomRocket::create_physic_shell() |
| 138 | { |
nothing calls this directly
no test coverage detected