void DrawEERIEInter(EERIE_3DOBJ * eobj, const TransformInfo & t, Entity * io, bool forceDraw, float invisibility ) { ARX_PROFILE_FUNC(); if(!eobj) return; // Avoids To treat an object that isn't Visible if(!forceDraw && io && io != entities.player() && !Cedric_IO_Visible(t.pos)) return; DrawEERIEInter_ModelTransform(eobj, t); if(io) { io->bbox3D = UpdateBbox3d(eobj); } DrawEERIEInter_ViewProjectTransform(eobj); if(io) { io->bbox2D = UpdateBbox2d(*eobj); } if(!forceDraw && ARX_SCENE_PORTAL_ClipIO(io, t.pos)) return; DrawEERIEInter_Render(eobj, t, io, invisibility); }
void ARX_THROWN_OBJECT_Render() { GRenderer->SetRenderState(Renderer::DepthWrite, true); GRenderer->SetRenderState(Renderer::DepthTest, true); for(size_t i = 0; i < MAX_THROWN_OBJECTS; i++) { ARX_THROWN_OBJECT *thrownObj = &Thrown[i]; if(!(thrownObj->flags & ATO_EXIST)) continue; TransformInfo t(thrownObj->position, thrownObj->quat); // Object has to be retransformed because arrows share the same object DrawEERIEInter_ModelTransform(thrownObj->obj, t); DrawEERIEInter_ViewProjectTransform(thrownObj->obj); DrawEERIEInter_Render(thrownObj->obj, t, NULL); if(thrownObj->pRuban) { thrownObj->pRuban->Render(); } } }
void ARX_THROWN_OBJECT_Render() { GRenderer->SetRenderState(Renderer::DepthWrite, true); GRenderer->SetRenderState(Renderer::DepthTest, true); for(size_t i = 0; i < MAX_THROWN_OBJECTS; i++) { Projectile & projectile = g_projectiles[i]; if(!(projectile.flags & ATO_EXIST)) continue; TransformInfo t(projectile.position, projectile.quat); // Object has to be retransformed because arrows share the same object DrawEERIEInter_ModelTransform(projectile.obj, t); DrawEERIEInter_ViewProjectTransform(projectile.obj); DrawEERIEInter_Render(projectile.obj, t, NULL); if(projectile.m_trail) { projectile.m_trail->Render(); } } }