| 725 | } |
| 726 | |
| 727 | void RenderManager::rrDestroyRenderedMovableEntity(RenderedMovableEntity* curRenderedMovableEntity) |
| 728 | { |
| 729 | std::string tempString = curRenderedMovableEntity->getOgreNamePrefix() |
| 730 | + curRenderedMovableEntity->getName(); |
| 731 | Ogre::SceneNode* node = curRenderedMovableEntity->getEntityNode(); |
| 732 | if(mSceneManager->hasEntity(tempString)) |
| 733 | { |
| 734 | Ogre::Entity* ent = mSceneManager->getEntity(tempString); |
| 735 | node->detachObject(ent); |
| 736 | mSceneManager->destroyEntity(ent); |
| 737 | } |
| 738 | mSceneManager->destroySceneNode(node); |
| 739 | curRenderedMovableEntity->setParentSceneNode(nullptr); |
| 740 | curRenderedMovableEntity->setEntityNode(nullptr); |
| 741 | |
| 742 | // If it was hidden, we display the tile |
| 743 | if(curRenderedMovableEntity->getHideCoveredTile()) |
| 744 | { |
| 745 | Tile* posTile = curRenderedMovableEntity->getPositionTile(); |
| 746 | if(posTile == nullptr) |
| 747 | return; |
| 748 | |
| 749 | std::string tileName = posTile->getOgreNamePrefix() + posTile->getName(); |
| 750 | if (!mSceneManager->hasEntity(tileName)) |
| 751 | return; |
| 752 | |
| 753 | Ogre::Entity* entity = mSceneManager->getEntity(tileName); |
| 754 | if (posTile->getCoveringBuilding() != nullptr) |
| 755 | entity->setVisible(posTile->getCoveringBuilding()->shouldDisplayGroundTile()); |
| 756 | else |
| 757 | entity->setVisible(true); |
| 758 | } |
| 759 | } |
| 760 | |
| 761 | void RenderManager::rrUpdateEntityOpacity(RenderedMovableEntity* entity) |
| 762 | { |
no test coverage detected