62 lines
1.4 KiB
C
62 lines
1.4 KiB
C
|
#pragma once
|
|||
|
|
|||
|
|
|||
|
struct ModelRenderInfo_t
|
|||
|
{
|
|||
|
Vector origin;
|
|||
|
Vector angles;
|
|||
|
void* renderable;
|
|||
|
const void *pModel;
|
|||
|
const matrix3x4_t *pModelToWorld;
|
|||
|
const matrix3x4_t *pLightingOffset;
|
|||
|
const Vector* lightingOrigin;
|
|||
|
int flags;
|
|||
|
int entity_index;
|
|||
|
};
|
|||
|
|
|||
|
enum MaterialVarFlag
|
|||
|
{
|
|||
|
NO_DRAW = (1 << 2),
|
|||
|
ZNEARER = (1 << 10),
|
|||
|
NOCULL = (1 << 13),
|
|||
|
NOFOG = (1 << 14),
|
|||
|
IGNOREZ = (1 << 15),
|
|||
|
HALFLAMBERT = (1 << 27)
|
|||
|
};
|
|||
|
|
|||
|
class IMaterial
|
|||
|
{
|
|||
|
public:
|
|||
|
void ColorModulate(float r, float g, float b)
|
|||
|
{
|
|||
|
typedef void(__thiscall* ColorModulateFn)(void*, float, float, float);
|
|||
|
getvfunc<ColorModulateFn>(this, 28)(this, r, g, b);
|
|||
|
}
|
|||
|
|
|||
|
void SetMaterialVarFlag(MaterialVarFlag flag, bool on)
|
|||
|
{
|
|||
|
typedef void(__thiscall* SetMaterialVarFlagFn)(void*, MaterialVarFlag, bool);
|
|||
|
getvfunc<SetMaterialVarFlagFn>(this, 29)(this, flag, on);
|
|||
|
}
|
|||
|
};
|
|||
|
|
|||
|
class IMaterialSystem
|
|||
|
{
|
|||
|
public:
|
|||
|
IMaterial *FindMaterial(char const* pMaterialName, const char *pTextureGroupName, bool complain = true, const char *pComplainPrefix = NULL)
|
|||
|
{
|
|||
|
typedef IMaterial*(__thiscall* OriginalFn)(PVOID, char const*, const char*, bool, const char*);
|
|||
|
return getvfunc<OriginalFn>(this, 71)(this, pMaterialName, pTextureGroupName, complain, pComplainPrefix);
|
|||
|
}
|
|||
|
};
|
|||
|
|
|||
|
class IVModelRender
|
|||
|
{
|
|||
|
public:
|
|||
|
void ForcedMaterialOverride(IMaterial* mat)
|
|||
|
{
|
|||
|
typedef void(__thiscall *OriginalFn)(void*, IMaterial*, int);
|
|||
|
return getvfunc<OriginalFn>(this, 1)(this, mat, 0);
|
|||
|
}
|
|||
|
};
|