//------------------------------------------------------------------------ void CItem::ResetRenderFlags() { if (!GetRenderProxy()) return; IRenderNode *pRenderNode = GetRenderProxy()->GetRenderNode(); if (pRenderNode) { pRenderNode->SetViewDistRatio(127); pRenderNode->SetLodRatio(127); GetEntity()->SetFlags(GetEntity()->GetFlags()|ENTITY_FLAG_CASTSHADOW); } }
//------------------------------------------------------------------------ void CItem::CopyRenderFlags(IEntity *pOwner) { if (!pOwner || !GetRenderProxy()) return; IRenderNode *pRenderNode = GetRenderProxy()->GetRenderNode(); if (pRenderNode) { IEntityRenderProxy *pOwnerRenderProxy = (IEntityRenderProxy *)pOwner->GetProxy(ENTITY_PROXY_RENDER); IRenderNode *pOwnerRenderNode = pOwnerRenderProxy?pOwnerRenderProxy->GetRenderNode():NULL; if (pOwnerRenderNode) { pRenderNode->SetViewDistRatio(pOwnerRenderNode->GetViewDistRatio()); pRenderNode->SetLodRatio(pOwnerRenderNode->GetLodRatio()); uint32 flags = pOwner->GetFlags()&(ENTITY_FLAG_CASTSHADOW); uint32 mflags = GetEntity()->GetFlags()&(~(ENTITY_FLAG_CASTSHADOW)); GetEntity()->SetFlags(mflags|flags); } } }