summaryrefslogtreecommitdiff
path: root/src/render.c
diff options
context:
space:
mode:
authorSteven Fuller <relnev@icculus.org>2001-08-09 22:34:20 +0000
committerPatryk Obara <dreamer.tan@gmail.com>2019-08-20 02:22:36 +0200
commitd19a2069c6d51b6e8aaf3f47742316e4808db49f (patch)
tree548a3541d80f57ef285b3aaf0758fe91bc2f5f8d /src/render.c
parent9d32d897052160c98bd2348f91226f4012147bf4 (diff)
Implemented keyboard input.
Copied some functions from pldnet and d3d_render (now the player image shows in the mirror).
Diffstat (limited to 'src/render.c')
-rw-r--r--src/render.c67
1 files changed, 67 insertions, 0 deletions
diff --git a/src/render.c b/src/render.c
new file mode 100644
index 0000000..8ffd801
--- /dev/null
+++ b/src/render.c
@@ -0,0 +1,67 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <SDL.h>
+#include <GL/gl.h>
+#include <GL/glext.h>
+
+#include "fixer.h"
+
+#include "3dc.h"
+#include "platform.h"
+#include "inline.h"
+#include "gamedef.h"
+#include "module.h"
+#include "stratdef.h"
+#include "projfont.h"
+#include "krender.h"
+#include "kshape.h"
+#include "prototyp.h"
+#include "d3d_hud.h"
+#include "bh_types.h"
+#include "equipmnt.h"
+#include "pldghost.h"
+
+#define UseLocalAssert Yes
+#include "ourasert.h"
+
+extern DISPLAYBLOCK *ActiveBlockList[];
+extern int NumActiveBlocks;
+extern int GlobalAmbience;
+
+int LightIntensityAtPoint(VECTORCH *pointPtr)
+{
+ int intensity = 0;
+ int i, j;
+
+ DISPLAYBLOCK **activeBlockListPtr = ActiveBlockList;
+ for(i = NumActiveBlocks; i != 0; i--) {
+ DISPLAYBLOCK *dispPtr = *activeBlockListPtr++;
+
+ if (dispPtr->ObNumLights) {
+ for(j = 0; j < dispPtr->ObNumLights; j++) {
+ LIGHTBLOCK *lptr = dispPtr->ObLights[j];
+ VECTORCH disp = lptr->LightWorld;
+ int dist;
+
+ disp.vx -= pointPtr->vx;
+ disp.vy -= pointPtr->vy;
+ disp.vz -= pointPtr->vz;
+
+ dist = Approximate3dMagnitude(&disp);
+
+ if (dist<lptr->LightRange) {
+ intensity += WideMulNarrowDiv(lptr->LightBright,lptr->LightRange-dist,lptr->LightRange);
+ }
+ }
+ }
+ }
+ if (intensity>ONE_FIXED) intensity=ONE_FIXED;
+ else if (intensity<GlobalAmbience) intensity=GlobalAmbience;
+
+ /* KJL 20:31:39 12/1/97 - limit how dark things can be so blood doesn't go green */
+ if (intensity<10*256) intensity = 10*256;
+
+ return intensity;
+}