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);
}
Example #2
0
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();
		}
	}
}
Example #3
0
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();
		}
	}
}