diff options
author | Fire_Head <Fire-Head@users.noreply.github.com> | 2019-06-02 05:15:00 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-06-02 05:15:00 +0200 |
commit | 809c81ea9ce66b998e0ebaf17965843337c4fdd9 (patch) | |
tree | c1b34122ddd4be0461a5310c964e8218b9f5781e /src/render/PointLights.h | |
parent | skeleton updated, windows specific stuff added (diff) | |
parent | implemented splashes; fixed zones (diff) | |
download | re3-809c81ea9ce66b998e0ebaf17965843337c4fdd9.tar re3-809c81ea9ce66b998e0ebaf17965843337c4fdd9.tar.gz re3-809c81ea9ce66b998e0ebaf17965843337c4fdd9.tar.bz2 re3-809c81ea9ce66b998e0ebaf17965843337c4fdd9.tar.lz re3-809c81ea9ce66b998e0ebaf17965843337c4fdd9.tar.xz re3-809c81ea9ce66b998e0ebaf17965843337c4fdd9.tar.zst re3-809c81ea9ce66b998e0ebaf17965843337c4fdd9.zip |
Diffstat (limited to 'src/render/PointLights.h')
-rw-r--r-- | src/render/PointLights.h | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/src/render/PointLights.h b/src/render/PointLights.h index e72e8ede..288571d0 100644 --- a/src/render/PointLights.h +++ b/src/render/PointLights.h @@ -1,9 +1,43 @@ #pragma once +class CRegisteredPointLight +{ +public: + CVector coors; + CVector dir; + float radius; + float red; + float green; + float blue; + int8 type; + int8 fogType; + bool castExtraShadows; +}; +static_assert(sizeof(CRegisteredPointLight) == 0x2C, "CRegisteredPointLight: error"); + class CPointLights { + // Probably have to make this public for shadows later static int16 &NumLights; + static CRegisteredPointLight *aLights; //[NUMPOINTLIGHTS] public: + enum { + LIGHT_POINT, + LIGHT_DIRECTIONAL, + LIGHT_DARKEN, // no effects at all + // these have only fog, otherwise no difference? + LIGHT_FOGONLY_3, + LIGHT_FOGONLY_4, + }; + enum { + FOG_NONE, + FOG_NORMAL, // taken from Foggyness + FOG_ALWAYS + }; + static void InitPerFrame(void); + static void AddLight(uint8 type, CVector coors, CVector dir, float radius, float red, float green, float blue, uint8 fogType, bool castExtraShadows); + static float GenerateLightsAffectingObject(CVector *objCoors); + static void RemoveLightsAffectingObject(void); static void RenderFogEffect(void); }; |