Code:
if(pDevice->GetStreamSource(0, &Stream_Data, &Offset, &Stride) == D3D_OK) Stream_Data->Release();
if(Stride == 20 || Stride == 32 ||Stride == 36 || Stride == 44 || (Stride == 40 && NumVertices == 436))
{
pDevice->SetRenderState(D3DRS_ZENABLE,false);
if( Menu.mOpt[4].nopt == 1 )
{
//Ghost Chams
pDevice->SetRenderState(D3DRS_ALPHABLENDENABLE,true);////
pDevice->SetRenderState(D3DRS_DESTBLEND,D3DBLEND_INVDESTCOLOR);////
pDevice->SetRenderState(D3DRS_SRCBLEND,D3DBLEND_INVSRCCOLOR);////
pDevice->SetRenderState(D3DRS_ZENABLE,false);
pDIP(pDevice, Type, BaseVertexIndex, MinVertexIndex, NumVertices, startIndex, primCount);
pDevice->SetRenderState(D3DRS_ALPHABLENDENABLE,true);////
pDevice->SetRenderState(D3DRS_DESTBLEND,D3DBLEND_INVDESTCOLOR);////
pDevice->SetRenderState(D3DRS_SRCBLEND,D3DBLEND_INVSRCCOLOR);////
pDevice->SetRenderState(D3DRS_ZENABLE,true);
}
else if( Menu.mOpt[4].nopt == 2 )
{
//Phantom Chams
pDevice->SetRenderState(D3DRS_ALPHABLENDENABLE,true);
pDevice->SetRenderState(D3DRS_DESTBLEND,D3DBLEND_INVDESTCOLOR);
pDevice->SetRenderState(D3DRS_SRCBLEND,D3DBLEND_INVSRCALPHA);
pDevice->SetRenderState(D3DRS_ZENABLE,false);
pDIP(pDevice, Type, BaseVertexIndex, MinVertexIndex, NumVertices, startIndex, primCount);
pDevice->SetRenderState(D3DRS_ALPHABLENDENABLE,true);
pDevice->SetRenderState(D3DRS_DESTBLEND,D3DBLEND_INVDESTCOLOR);
pDevice->SetRenderState(D3DRS_SRCBLEND,D3DBLEND_INVSRCALPHA);
pDevice->SetRenderState(D3DRS_ZENABLE,true);
}
else if( Menu.mOpt[4].nopt == 3 )
{
//Paint Chams
pDevice->SetRenderState(D3DRS_ZENABLE,false);
pDevice->SetTexture(0, texBack);
texBack->Release();
pDIP(pDevice, Type, BaseVertexIndex, MinVertexIndex, NumVertices, startIndex, primCount);
pDevice->SetRenderState(D3DRS_ZENABLE,true);
pDevice->SetTexture(0, texFront);
}
else if( Menu.mOpt[4].nopt == 4 )
{
//Wallhack
pDevice->SetRenderState(D3DRS_ZENABLE,false);
}
}
return pDIP(pDevice, Type, BaseVertexIndex, MinVertexIndex, NumVertices, startIndex, primCount);
}