| 596 | } |
| 597 | |
| 598 | void RenderManager::rrDestroyTile(Tile& tile) |
| 599 | { |
| 600 | if (tile.getEntityNode() == nullptr) |
| 601 | return; |
| 602 | |
| 603 | std::string tileName = tile.getOgreNamePrefix() + tile.getName(); |
| 604 | std::string selectorName = tileName + "_selection_indicator"; |
| 605 | if(mSceneManager->hasEntity(selectorName)) |
| 606 | { |
| 607 | Ogre::SceneNode* selectorNode = mSceneManager->getSceneNode(selectorName + "Node"); |
| 608 | Ogre::Entity* selectorEnt = mSceneManager->getEntity(selectorName); |
| 609 | tile.getEntityNode()->removeChild(selectorNode); |
| 610 | selectorNode->detachObject(selectorEnt); |
| 611 | mSceneManager->destroySceneNode(selectorNode); |
| 612 | mSceneManager->destroyEntity(selectorEnt); |
| 613 | } |
| 614 | |
| 615 | const std::string tileMeshName = tileName + "_tileMesh"; |
| 616 | if(mSceneManager->hasSceneNode(tileMeshName + "_node")) |
| 617 | { |
| 618 | Ogre::SceneNode* tileMeshNode = mSceneManager->getSceneNode(tileMeshName + "_node"); |
| 619 | if(mSceneManager->hasEntity(tileMeshName)) |
| 620 | { |
| 621 | Ogre::Entity* ent = mSceneManager->getEntity(tileMeshName); |
| 622 | tileMeshNode->detachObject(ent); |
| 623 | mSceneManager->destroyEntity(ent); |
| 624 | } |
| 625 | tile.getEntityNode()->removeChild(tileMeshNode); |
| 626 | mSceneManager->destroySceneNode(tileMeshNode); |
| 627 | } |
| 628 | |
| 629 | const std::string customMeshName = tileName + "_customMesh"; |
| 630 | if(mSceneManager->hasSceneNode(customMeshName + "_node")) |
| 631 | { |
| 632 | Ogre::SceneNode* customMeshNode = mSceneManager->getSceneNode(customMeshName + "_node"); |
| 633 | if(mSceneManager->hasEntity(customMeshName)) |
| 634 | { |
| 635 | Ogre::Entity* ent = mSceneManager->getEntity(customMeshName); |
| 636 | customMeshNode->detachObject(ent); |
| 637 | mSceneManager->destroyEntity(ent); |
| 638 | } |
| 639 | tile.getEntityNode()->removeChild(customMeshNode); |
| 640 | mSceneManager->destroySceneNode(customMeshNode); |
| 641 | } |
| 642 | |
| 643 | mSceneManager->destroySceneNode(tile.getEntityNode()); |
| 644 | tile.setParentSceneNode(nullptr); |
| 645 | tile.setEntityNode(nullptr); |
| 646 | } |
| 647 | |
| 648 | void RenderManager::rrTemporalMarkTile(Tile* curTile) |
| 649 | { |
no test coverage detected