//-----------------------------------------------------------------------------
// rendu de la d�chirure spatio temporelle
float CSummonCreature::Render(LPDIRECT3DDEVICE7 m_pd3dDevice)
{
    if (ulCurrentTime >= (ulDurationIntro + ulDurationRender + ulDurationOuttro)) return 0.f;

    SETTC(m_pd3dDevice, NULL);
    SETCULL(m_pd3dDevice, D3DCULL_NONE);
    SETZWRITE(m_pd3dDevice, false);

    SETTEXTUREWRAPMODE(m_pd3dDevice, D3DTADDRESS_CLAMP);
    m_pd3dDevice->SetRenderState(D3DRENDERSTATE_SRCBLEND,  D3DBLEND_ONE);
    m_pd3dDevice->SetRenderState(D3DRENDERSTATE_DESTBLEND, D3DBLEND_ONE);
    SETALPHABLEND(m_pd3dDevice, true);

    //-------------------------------------------------------------------------
    fTexWrap += 0.02f;

    if (fTexWrap >= 1.0f)
    {
        fTexWrap -= 1.0f;
    }

    //-------------------------------------------------------------------------
    // render intro (opening + rays)
    if (ulCurrentTime < ulDurationIntro)
    {
        if (ulCurrentTime < ulDurationIntro * 0.666f)
        {
            fSizeIntro = (end + 2) * fOneOnDurationIntro * (1.5f) * ulCurrentTime;
            sizeF = 1;
        }
        else
        {
            if (bIntro != false)
                bIntro = false;

            sizeF = (iSize) * (fOneOnDurationIntro * 3) * (ulCurrentTime - ulDurationIntro * 0.666f);
        }
    }
    // do nothing just render
    else if (ulCurrentTime < (ulDurationIntro + ulDurationRender))
    {
    }
    // close it all
    else if (ulCurrentTime < (ulDurationIntro + ulDurationRender + ulDurationOuttro))
    {
        //if (sizeF > 0)
        {
            sizeF = iSize - (iSize) * fOneOnDurationOuttro * (ulCurrentTime - (ulDurationIntro + ulDurationRender));
        }
    }

    SETALPHABLEND(m_pd3dDevice, false);
    RenderFissure(m_pd3dDevice);

    SETZWRITE(m_pd3dDevice, true);
    SETALPHABLEND(m_pd3dDevice, false);
    SETTEXTUREWRAPMODE(m_pd3dDevice, D3DTADDRESS_WRAP);

    return (fSizeIntro / end);
}
Exemple #2
0
//-----------------------------------------------------------------------------
// rendu de la déchirure spatio temporelle
float CSummonCreature::Render()
{
    if (ulCurrentTime >= (ulDurationIntro + ulDurationRender + ulDurationOuttro)) return 0.f;

    GRenderer->ResetTexture(0);
    GRenderer->SetCulling(Renderer::CullNone);
    GRenderer->SetRenderState(Renderer::DepthWrite, false);

    GRenderer->GetTextureStage(0)->SetWrapMode(TextureStage::WrapClamp);
    GRenderer->SetBlendFunc(Renderer::BlendOne, Renderer::BlendOne);
    GRenderer->SetRenderState(Renderer::AlphaBlending, true);

    //-------------------------------------------------------------------------
    fTexWrap += 0.02f;

    if (fTexWrap >= 1.0f)
    {
        fTexWrap -= 1.0f;
    }

    //-------------------------------------------------------------------------
    // render intro (opening + rays)
    if (ulCurrentTime < ulDurationIntro)
    {
        if (ulCurrentTime < ulDurationIntro * 0.666f)
        {
            fSizeIntro = (end + 2) * fOneOnDurationIntro * (1.5f) * ulCurrentTime;
            sizeF = 1;
        }
        else
        {
            if (bIntro != false)
                bIntro = false;

            sizeF = (iSize) * (fOneOnDurationIntro * 3) * (ulCurrentTime - ulDurationIntro * 0.666f);
        }
    }
    // do nothing just render
    else if (ulCurrentTime < (ulDurationIntro + ulDurationRender))
    {
    }
    // close it all
    else if (ulCurrentTime < (ulDurationIntro + ulDurationRender + ulDurationOuttro))
    {
        //if (sizeF > 0)
        {
            sizeF = iSize - (iSize) * fOneOnDurationOuttro * (ulCurrentTime - (ulDurationIntro + ulDurationRender));
        }
    }

    GRenderer->SetRenderState(Renderer::AlphaBlending, false);
    RenderFissure();

    GRenderer->SetRenderState(Renderer::DepthWrite, true);
    GRenderer->SetRenderState(Renderer::AlphaBlending, false);
    GRenderer->GetTextureStage(0)->SetWrapMode(TextureStage::WrapRepeat);

    return (fSizeIntro / end);
}
Exemple #3
0
//-----------------------------------------------------------------------------
// render the space time tearing
void CRiseDead::Render()
{
	if(ulCurrentTime >= (ulDurationIntro + ulDurationRender + ulDurationOuttro))
		return;
	
	if(fTexWrap >= 1.0f)
		fTexWrap -= 1.0f;

	//-------------------------------------------------------------------------
	// render intro (opening + rays)
	if(ulCurrentTime < ulDurationIntro) {
		if(ulCurrentTime < ulDurationIntro * 0.666f) {
			fSizeIntro = (end + 2) * fOneOnDurationIntro * (1.5f) * ulCurrentTime;
			sizeF = 1;
		} else {
			if(bIntro != false)
				bIntro = false;

			sizeF = (iSize) * (fOneOnDurationIntro * 3) * (ulCurrentTime - ulDurationIntro * 0.666f);
		}
	}
	// do nothing just render
	else if (ulCurrentTime < (ulDurationIntro + ulDurationRender))
	{
	}
	// close it all
	else if (ulCurrentTime < (ulDurationIntro + ulDurationRender + ulDurationOuttro))
	{
		//if (sizeF > 0)
		{
			sizeF = iSize - (iSize) * fOneOnDurationOuttro * (ulCurrentTime - (ulDurationIntro + ulDurationRender));
		}
	}
	
	//cailloux
	if(this->timestone <= 0) {
		this->timestone = Random::get(50, 150);
		Vec3f	pos;
		float r = 80.f * frand2();
		pos.x = this->eSrc.x + r;
		pos.y = this->eSrc.y;
		pos.z = this->eSrc.z + r;
		this->AddStone(&pos);
	}
	
	RenderFissure();
	
	this->DrawStone();
}
//-----------------------------------------------------------------------------
// rendu de la déchirure spatio temporelle
void CSummonCreature::Render()
{
	if(ulCurrentTime >= (ulDurationIntro + ulDurationRender + ulDurationOuttro))
		return;
	
	//-------------------------------------------------------------------------
	fTexWrap += 0.02f;

	if(fTexWrap >= 1.0f)
		fTexWrap -= 1.0f;

	//-------------------------------------------------------------------------
	// render intro (opening + rays)
	if(ulCurrentTime < ulDurationIntro) {
		if(ulCurrentTime < ulDurationIntro * 0.666f) {
			fSizeIntro = (end + 2) * fOneOnDurationIntro * (1.5f) * ulCurrentTime;
			sizeF = 1;
		} else {
			if(bIntro != false)
				bIntro = false;

			sizeF = (iSize) * (fOneOnDurationIntro * 3) * (ulCurrentTime - ulDurationIntro * 0.666f);
		}
	}
	// do nothing just render
	else if (ulCurrentTime < (ulDurationIntro + ulDurationRender))
	{
	}
	// close it all
	else if (ulCurrentTime < (ulDurationIntro + ulDurationRender + ulDurationOuttro))
	{
		//if (sizeF > 0)
		{
			sizeF = iSize - (iSize) * fOneOnDurationOuttro * (ulCurrentTime - (ulDurationIntro + ulDurationRender));
		}
	}
	
	RenderFissure();
	
	//return (fSizeIntro / end);
}
//-----------------------------------------------------------------------------
// rendu de la déchirure spatio temporelle
void CSummonCreature::Render()
{
	if(m_elapsed >= m_duration)
		return;
	
	//-------------------------------------------------------------------------
	// render intro (opening + rays)
	if(m_elapsed < ulDurationIntro) {
		float fOneOnDurationIntro = 1.f / (float)(ulDurationIntro);
		
		if(m_elapsed < ulDurationIntro * 0.666f) {
			fSizeIntro = (end + 2) * fOneOnDurationIntro * (1.5f) * m_elapsed;
			sizeF = 1;
		} else {
			if(bIntro != false)
				bIntro = false;

			sizeF = (iSize) * (fOneOnDurationIntro * 3) * (m_elapsed - ulDurationIntro * 0.666f);
		}
	}
	// do nothing just render
	else if (m_elapsed < (ulDurationIntro + ulDurationRender))
	{
	}
	// close it all
	else if (m_elapsed < m_duration)
	{
		float fOneOnDurationOuttro = 1.f / (float)(ulDurationOuttro);
		
		sizeF = iSize - (iSize) * fOneOnDurationOuttro * (m_elapsed - (ulDurationIntro + ulDurationRender));
	}
	
	RenderFissure();
	
	//return (fSizeIntro / end);
}