void VFmodCollisionMeshInstance::Serialize( VArchive &ar ) { if (ar.IsLoading()) { char iVersion = -1; bool bActive; int iMeshType; ar >> iVersion; VASSERT(iVersion >= V_FMODCOLLISIONMESHINSTANCE_VERSION_0 && iVersion <= V_FMODCOLLISIONMESHINSTANCE_VERSION_CURRENT); VisObject3D_cl::Serialize(ar); ar >> bActive; m_vScale.SerializeAsVec3(ar); ar >> m_fDirectOcclusion >> m_fReverbOcclusion; ar >> iMeshType; // mesh type; 0==VBaseMesh if (iMeshType==0) { VBaseMesh *pMesh = (VBaseMesh *)ar.ReadProxyObject(); SetCollisionMesh(pMesh, m_fDirectOcclusion, m_fReverbOcclusion); } else { VASSERT(!"Yet unsupported mesh type for sound collision geometry"); } SetActive(bActive); }
/// \brief /// Removes current collision mesh inline void RemoveCollisionMesh() {SetCollisionMesh(0, 0, NULL, NULL, 1.0f, 1.0f); }