MF_API void MFMaterial_UnregisterMaterialType(const char *pName) { MFCALLSTACK; MFMaterialType *pMatType = MaterialInternal_GetMaterialType(pName); MFDebug_Assert(pMatType, MFStr("Material type '%s' doesn't exist!", pName)); if(pMatType) { pMatType->materialCallbacks.pUnregisterMaterial(); gMaterialRegistry.Destroy(pMatType); MFHeap_Free(pMatType); } }
MF_API int MFMaterial_Destroy(MFMaterial *pMaterial) { MFCALLSTACK; --pMaterial->refCount; if(!pMaterial->refCount) { pMaterial->pType->materialCallbacks.pDestroyInstance(pMaterial); gMaterialList.Destroy(pMaterial); return 0; } return pMaterial->refCount; }
void MFCollision_DestroyCollisionItem(MFCollisionItem *pItem) { gItemList.Destroy(pItem); MFHeap_Free(pItem); }