summaryrefslogtreecommitdiffstats
path: root/src/render/PointLights.h
diff options
context:
space:
mode:
authorFire_Head <Fire-Head@users.noreply.github.com>2019-06-02 05:15:00 +0200
committerGitHub <noreply@github.com>2019-06-02 05:15:00 +0200
commit809c81ea9ce66b998e0ebaf17965843337c4fdd9 (patch)
treec1b34122ddd4be0461a5310c964e8218b9f5781e /src/render/PointLights.h
parentskeleton updated, windows specific stuff added (diff)
parentimplemented splashes; fixed zones (diff)
downloadre3-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.h34
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);
};