59 lines
1.6 KiB
C++
59 lines
1.6 KiB
C++
#include "Stdafx.h"
|
|
#include "CryAnimationBase.h"
|
|
#include "CryCharInstanceRenderParams.h"
|
|
|
|
// creates a new CCObject with the most common parameters
|
|
CCObject* CryCharInstanceRenderParams::NewCryCharCCObject(const struct SRendParams & RendParams, const Matrix44& mtxObjMatrix, IDeformableRenderMesh* pCharInstance)
|
|
{
|
|
IRenderer* pRenderer = g_GetIRenderer();
|
|
CCObject * pObj = pRenderer->EF_GetObject(true);
|
|
|
|
pObj->m_ObjFlags |= FOB_TRANS_MASK;
|
|
|
|
// set scissor
|
|
//pObj->m_nScissorX1 = RendParams.nScissorX1;
|
|
//pObj->m_nScissorY1 = RendParams.nScissorY1;
|
|
//pObj->m_nScissorX2 = RendParams.nScissorX2;
|
|
//pObj->m_nScissorY2 = RendParams.nScissorY2;
|
|
|
|
//checl if it should be drawn close to the player
|
|
if ((RendParams.dwFObjFlags & FOB_NEAREST) || (m_nFlags & CS_FLAG_DRAW_NEAR))
|
|
{
|
|
pObj->m_ObjFlags|=FOB_NEAREST;
|
|
}
|
|
else
|
|
pObj->m_ObjFlags&=~FOB_NEAREST;
|
|
|
|
pObj->m_Color = m_Color;
|
|
pObj->m_Color.a *= RendParams.fAlpha;
|
|
|
|
pObj->m_AmbColor = RendParams.vAmbientColor;
|
|
|
|
if (pRenderer->EF_GetHeatVision())
|
|
pObj->m_ObjFlags |= FOB_HOTAMBIENT;
|
|
|
|
pObj->m_ObjFlags |= RendParams.dwFObjFlags;
|
|
|
|
int nTemplID = RendParams.nShaderTemplate;
|
|
|
|
pObj->m_pShadowCasters = RendParams.pShadowMapCasters;
|
|
|
|
if(RendParams.pShadowMapCasters && RendParams.pShadowMapCasters->size())
|
|
pObj->m_ObjFlags |= FOB_INSHADOW;
|
|
else
|
|
pObj->m_ObjFlags &= ~FOB_INSHADOW;
|
|
|
|
pObj->m_nTemplId = nTemplID;
|
|
|
|
pObj->m_DynLMMask = RendParams.nDLightMask;
|
|
pObj->m_SortId = RendParams.fCustomSortOffset;
|
|
pObj->m_fDistanceToCam = RendParams.fSQDistance;
|
|
|
|
|
|
pObj->m_Matrix = mtxObjMatrix;
|
|
// pObj->m_Matrix = mtxObjMatrix;
|
|
pObj->m_pCharInstance = pCharInstance;
|
|
|
|
return pObj;
|
|
}
|