MCPcopy Create free account
hub / github.com/OpenDungeons/OpenDungeons / rrDestroyRenderedMovableEntity

Method rrDestroyRenderedMovableEntity

source/render/RenderManager.cpp:727–759  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

725}
726
727void 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
761void RenderManager::rrUpdateEntityOpacity(RenderedMovableEntity* entity)
762{

Callers 1

destroyMeshLocalMethod · 0.80

Calls 9

getEntityNodeMethod · 0.80
setParentSceneNodeMethod · 0.80
setEntityNodeMethod · 0.80
getHideCoveredTileMethod · 0.80
getPositionTileMethod · 0.80
getCoveringBuildingMethod · 0.80
setVisibleMethod · 0.80
getOgreNamePrefixMethod · 0.45

Tested by

no test coverage detected