/// VManagedResource overrides just so we can register callbacks BOOL vHavokAiNavMeshResource::Reload() { const char* pszFilename = GetFilename(); if (pszFilename == NULL) { return FALSE; } IVFileInStream *pIn = GetParentManager()->CreateFileInStream(pszFilename,this); if (!pIn) { return FALSE; } VASSERT(m_navMesh == HK_NULL && m_mediator == HK_NULL); if (!LoadNavMesh(pIn, m_navMesh, m_mediator)) { return FALSE; } VASSERT(m_navMesh != HK_NULL && m_mediator != HK_NULL); VASSERT(m_navMesh->getReferenceCount() == 2 && m_mediator->getReferenceCount() == 1); FlagAsLoaded(); UpdateMemoryFootprint(); return TRUE; }
// unload from memory BOOL vHavokBehaviorResource::Unload() { // hkbProjectAssetManager will handle unloading FlagAsUnLoaded(); UpdateMemoryFootprint(); return true; }
vHavokAiNavMeshResource::vHavokAiNavMeshResource(hkaiNavMesh* navMesh, hkaiNavMeshQueryMediator* mediator) : VManagedResource(vHavokAiNavMeshResourceManager::GetInstance()), m_navMesh(navMesh), m_mediator(mediator) { Init(); FlagAsLoaded(); UpdateMemoryFootprint(); }
// unload from memory BOOL vHavokAiNavMeshResource::Unload() { VASSERT(m_mediator->getReferenceCount() == 1); m_mediator = HK_NULL; VASSERT(m_navMesh->getReferenceCount() == 1); m_navMesh = HK_NULL; FlagAsUnLoaded(); UpdateMemoryFootprint(); return true; }
BOOL vHavokBehaviorResource::Reload() { // Deserialize the project asset vHavokBehaviorResourceManager* manager = static_cast<vHavokBehaviorResourceManager*>( GetParentManager() ); const char* projectFilename = GetFilename(); // Load the project hkbProjectAssetManager* projectAssetManager = manager->GetProjectAssetManager(); projectAssetManager->loadProject( projectFilename ); FlagAsLoaded(); UpdateMemoryFootprint(); return TRUE; }