55#include " ../FakeAngle/FakeAngle.h"
66#include " ../../Backtrack/Backtrack.h"
77
8- void CChams::DrawModel (CBaseEntity* pEntity, Chams_t& tChams, IMatRenderContext* pRenderContext, bool bTwoModels )
8+ void CChams::Begin ( )
99{
10- const auto & vVisibleMaterials = !tChams.Visible .empty () ? tChams.Visible : std::vector<std::pair<std::string, Color_t>> { { " None" , {} } };
11- const auto & vOccludedMaterials = !tChams.Occluded .empty () ? tChams.Occluded : std::vector<std::pair<std::string, Color_t>> { { " None" , {} } };
12-
1310 m_tOriginalColor = I::RenderView->GetColorModulation ();
1411 m_flOriginalBlend = I::RenderView->GetBlend ();
1512 I::ModelRender->GetMaterialOverride (&m_pOriginalMaterial, &m_iOriginalOverride);
13+ }
14+ void CChams::End ()
15+ {
16+ I::RenderView->SetColorModulation (m_tOriginalColor);
17+ I::RenderView->SetBlend (m_flOriginalBlend);
18+ I::ModelRender->ForcedMaterialOverride (m_pOriginalMaterial, m_iOriginalOverride);
19+ }
1620
21+ void CChams::DrawModel (CBaseEntity* pEntity, Chams_t& tChams, IMatRenderContext* pRenderContext, bool bTwoModels)
22+ {
23+ const auto & vVisibleMaterials = !tChams.Visible .empty () ? tChams.Visible : std::vector<std::pair<std::string, Color_t>> { { " None" , {} } };
24+ const auto & vOccludedMaterials = !tChams.Occluded .empty () ? tChams.Occluded : std::vector<std::pair<std::string, Color_t>> { { " None" , {} } };
25+
26+ Begin ();
1727 if (bTwoModels)
1828 {
1929 pRenderContext->SetStencilEnable (true );
@@ -77,10 +87,7 @@ void CChams::DrawModel(CBaseEntity* pEntity, Chams_t& tChams, IMatRenderContext*
7787
7888 m_mEntities[pEntity->entindex ()];
7989 }
80-
81- I::RenderView->SetColorModulation (m_tOriginalColor);
82- I::RenderView->SetBlend (m_flOriginalBlend);
83- I::ModelRender->ForcedMaterialOverride (m_pOriginalMaterial, m_iOriginalOverride);
90+ End ();
8491}
8592
8693
@@ -161,8 +168,6 @@ void CChams::RenderBacktrack(const DrawModelState_t& pState, const ModelRenderIn
161168 if (!pEntity || !pEntity->IsPlayer ())
162169 return ;
163170
164-
165-
166171 std::vector<TickRecord*> vRecords = {};
167172 if (!F::Backtrack.GetRecords (pEntity, vRecords))
168173 return ;
@@ -214,11 +219,9 @@ void CChams::RenderBacktrack(const DrawModelState_t& pState, const ModelRenderIn
214219}
215220void CChams::RenderFakeAngle (const DrawModelState_t& pState, const ModelRenderInfo_t& pInfo)
216221{
217- auto pRenderContext = I::MaterialSystem->GetRenderContext ();
218- if (!pRenderContext)
219- return ;
220-
221-
222+ // auto pRenderContext = I::MaterialSystem->GetRenderContext();
223+ // if (!pRenderContext)
224+ // return;
222225
223226 // pRenderContext->DepthRange(0.f, Vars::Chams::FakeAngle::IgnoreZ.Value ? 0.2f : 1.f);
224227
@@ -252,16 +255,11 @@ bool CChams::RenderViewmodel(void* ecx, int flags, int* iReturn)
252255 if (!pRenderContext)
253256 return false ;
254257
255-
256-
257258 Group_t* pGroup = nullptr ;
258259 if (!F::Groups.GetGroup (TargetsEnum::ViewmodelWeapon, pGroup) || !pGroup->m_tChams (true ))
259260 return false ;
260261
261- m_tOriginalColor = I::RenderView->GetColorModulation ();
262- m_flOriginalBlend = I::RenderView->GetBlend ();
263- I::ModelRender->GetMaterialOverride (&m_pOriginalMaterial, &m_iOriginalOverride);
264-
262+ Begin ();
265263 for (auto & [sName , tColor] : pGroup->m_tChams .Visible )
266264 {
267265 auto pMaterial = F::Materials.GetMaterial (FNV1A::Hash32 (sName .c_str ()));
@@ -278,10 +276,7 @@ bool CChams::RenderViewmodel(void* ecx, int flags, int* iReturn)
278276 if (pMaterial && pMaterial->m_bInvertCull )
279277 pRenderContext->CullMode (G::FlipViewmodels ? MATERIAL_CULLMODE_CW : MATERIAL_CULLMODE_CCW);
280278 }
281-
282- I::RenderView->SetColorModulation (m_tOriginalColor);
283- I::RenderView->SetBlend (m_flOriginalBlend);
284- I::ModelRender->ForcedMaterialOverride (m_pOriginalMaterial, m_iOriginalOverride);
279+ End ();
285280
286281 return true ;
287282}
@@ -294,16 +289,11 @@ bool CChams::RenderViewmodel(const DrawModelState_t& pState, const ModelRenderIn
294289 if (!pRenderContext)
295290 return false ;
296291
297-
298-
299292 Group_t* pGroup = nullptr ;
300293 if (!F::Groups.GetGroup (TargetsEnum::ViewmodelHands, pGroup) || !pGroup->m_tChams (true ))
301294 return false ;
302295
303- m_tOriginalColor = I::RenderView->GetColorModulation ();
304- m_flOriginalBlend = I::RenderView->GetBlend ();
305- I::ModelRender->GetMaterialOverride (&m_pOriginalMaterial, &m_iOriginalOverride);
306-
296+ Begin ();
307297 for (auto & [sName , tColor] : pGroup->m_tChams .Visible )
308298 {
309299 auto pMaterial = F::Materials.GetMaterial (FNV1A::Hash32 (sName .c_str ()));
@@ -320,10 +310,7 @@ bool CChams::RenderViewmodel(const DrawModelState_t& pState, const ModelRenderIn
320310 if (pMaterial && pMaterial->m_bInvertCull )
321311 pRenderContext->CullMode (G::FlipViewmodels ? MATERIAL_CULLMODE_CW : MATERIAL_CULLMODE_CCW);
322312 }
323-
324- I::RenderView->SetColorModulation (m_tOriginalColor);
325- I::RenderView->SetBlend (m_flOriginalBlend);
326- I::ModelRender->ForcedMaterialOverride (m_pOriginalMaterial, m_iOriginalOverride);
313+ End ();
327314
328315 return true ;
329316}
0 commit comments