Files
FC1/CryAnimation/CryCharInstanceRenderParams.cpp
romkazvo 34d6c5d489 123
2023-08-07 19:29:24 +08:00

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;
}