void LODManager::PurgeMesh(ID3DXBaseMesh *mesh, int MeshNum) { if (!EnabledLOD.Get()) return; MeshManager *mm = MeshManager::GetSingleton(); TextureManager *tm = TextureManager::GetSingleton(); for (int l = 0; l < GRID_LODS; l++) for (int x = 0; x < GRID_SIZE; x++) for (int y = 0; y < GRID_SIZE; y++) { if ((MeshIDs[l][y][x] == MeshNum)) { int mid = MeshIDs[l][y][x]; MeshIDs[l][y][x] = 0xFEFEFEFE; int cid = ColrIDs[l][y][x]; ColrIDs[l][y][x] = 0xFEFEFEFE; int nid = NormIDs[l][y][x]; NormIDs[l][y][x] = 0xFEFEFEFE; if (mid != MeshNum) mm->ReleaseMesh (MeshIDs[l][y][x]); if (cid >= 0) tm->ReleaseTexture(ColrIDs[l][y][x]); if (nid >= 0) tm->ReleaseTexture(NormIDs[l][y][x]); Meshes [l][y][x] = NULL; Colors [l][y][x] = NULL; Normals[l][y][x] = NULL; } } }