#pragma once // used: stronghandle #include "../../sdk/datatypes/stronghandle.h" static constexpr char szVMatBufferWhiteVisible[] = R"( { shader = "csgo_unlitgeneric.vfx" F_PAINT_VERTEX_COLORS = 1 F_TRANSLUCENT = 1 F_BLEND_MODE = 1 g_vColorTint = [1, 1, 1, 1] TextureAmbientOcclusion = resource:"materials/default/default_mask_tga_fde710a5.vtex" g_tAmbientOcclusion = resource:"materials/default/default_mask_tga_fde710a5.vtex" g_tColor = resource:"materials/default/default_mask_tga_fde710a5.vtex" g_tNormal = resource:"materials/default/default_mask_tga_fde710a5.vtex" g_tTintMask = resource:"materials/default/default_mask_tga_fde710a5.vtex" })"; static constexpr char szVMatBufferWhiteInvisible[] = R"( { shader = "csgo_unlitgeneric.vfx" F_PAINT_VERTEX_COLORS = 1 F_TRANSLUCENT = 1 F_BLEND_MODE = 1 F_DISABLE_Z_BUFFERING = 1 g_vColorTint = [1, 1, 1, 1] TextureAmbientOcclusion = resource:"materials/default/default_mask_tga_fde710a5.vtex" g_tAmbientOcclusion = resource:"materials/default/default_mask_tga_fde710a5.vtex" g_tColor = resource:"materials/default/default_mask_tga_fde710a5.vtex" g_tNormal = resource:"materials/default/default_mask_tga_fde710a5.vtex" g_tTintMask = resource:"materials/default/default_mask_tga_fde710a5.vtex" })"; static constexpr char szVMatBufferIlluminateVisible[] = R"( { shader = "csgo_complex.vfx" F_SELF_ILLUM = 1 F_PAINT_VERTEX_COLORS = 1 F_TRANSLUCENT = 1 g_vColorTint = [ 1.000000, 1.000000, 1.000000, 1.000000 ] g_flSelfIllumScale = [ 3.000000, 3.000000, 3.000000, 3.000000 ] g_flSelfIllumBrightness = [ 3.000000, 3.000000, 3.000000, 3.000000 ] g_vSelfIllumTint = [ 10.000000, 10.000000, 10.000000, 10.000000 ] g_tColor = resource:"materials/default/default_mask_tga_fde710a5.vtex" g_tNormal = resource:"materials/default/default_mask_tga_fde710a5.vtex" g_tSelfIllumMask = resource:"materials/default/default_mask_tga_fde710a5.vtex" TextureAmbientOcclusion = resource:"materials/debug/particleerror.vtex" g_tAmbientOcclusion = resource:"materials/debug/particleerror.vtex" })"; static constexpr char szVMatBufferIlluminateInvisible[] = R"( { shader = "csgo_complex.vfx" F_SELF_ILLUM = 1 F_PAINT_VERTEX_COLORS = 1 F_TRANSLUCENT = 1 F_DISABLE_Z_BUFFERING = 1 g_vColorTint = [ 1.000000, 1.000000, 1.000000, 1.000000 ] g_flSelfIllumScale = [ 3.000000, 3.000000, 3.000000, 3.000000 ] g_flSelfIllumBrightness = [ 3.000000, 3.000000, 3.000000, 3.000000 ] g_vSelfIllumTint = [ 10.000000, 10.000000, 10.000000, 10.000000 ] g_tColor = resource:"materials/default/default_mask_tga_fde710a5.vtex" g_tNormal = resource:"materials/default/default_mask_tga_fde710a5.vtex" g_tSelfIllumMask = resource:"materials/default/default_mask_tga_fde710a5.vtex" TextureAmbientOcclusion = resource:"materials/debug/particleerror.vtex" g_tAmbientOcclusion = resource:"materials/debug/particleerror.vtex" })"; class CMaterial2; class CMeshData; namespace F::VISUALS::CHAMS { bool Initialize(); void Destroy(); bool OnDrawObject(void* pAnimatableSceneObjectDesc, void* pDx11, CMeshData* arrMeshDraw, int nDataCount, void* pSceneView, void* pSceneLayer, void* pUnk, void* pUnk2); // @note: bDisableZBuffering == true to create invisible material CStrongHandle CreateMaterial(const char* szMaterialName, const char szVmatBuffer[]); bool OverrideMaterial(void* pAnimatableSceneObjectDesc, void* pDx11, CMeshData* arrMeshDraw, int nDataCount, void* pSceneView, void* pSceneLayer, void* pUnk, void* pUnk2); inline bool bInitialized = false; }