This repository has been archived on 2024-06-13. You can view files and clone it, but cannot push or open issues or pull requests.
nekohook/modules/source2013/sdk/game/client/flashlighteffect.h
2020-08-04 13:13:01 -04:00

67 lines
1.8 KiB
C++

//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose:
//
//=============================================================================//
#ifndef FLASHLIGHTEFFECT_H
#define FLASHLIGHTEFFECT_H
#ifdef _WIN32
#pragma once
#endif
struct dlight_t;
class CFlashlightEffect {
public:
CFlashlightEffect(int nEntIndex = 0);
virtual ~CFlashlightEffect();
virtual void UpdateLight(const Vector &vecPos, const Vector &vecDir,
const Vector &vecRight, const Vector &vecUp,
int nDistance);
void TurnOn();
void TurnOff();
bool IsOn(void) { return m_bIsOn; }
ClientShadowHandle_t GetFlashlightHandle(void) {
return m_FlashlightHandle;
}
void SetFlashlightHandle(ClientShadowHandle_t Handle) {
m_FlashlightHandle = Handle;
}
protected:
void LightOff();
void LightOffOld();
void LightOffNew();
void UpdateLightNew(const Vector &vecPos, const Vector &vecDir,
const Vector &vecRight, const Vector &vecUp);
void UpdateLightOld(const Vector &vecPos, const Vector &vecDir,
int nDistance);
bool m_bIsOn;
int m_nEntIndex;
ClientShadowHandle_t m_FlashlightHandle;
// Vehicle headlight dynamic light pointer
dlight_t *m_pPointLight;
float m_flDistMod;
// Texture for flashlight
CTextureReference m_FlashlightTexture;
};
class CHeadlightEffect : public CFlashlightEffect {
public:
CHeadlightEffect();
~CHeadlightEffect();
virtual void UpdateLight(const Vector &vecPos, const Vector &vecDir,
const Vector &vecRight, const Vector &vecUp,
int nDistance);
};
#endif // FLASHLIGHTEFFECT_H