summaryrefslogtreecommitdiffstats
path: root/render.c
diff options
context:
space:
mode:
authorneoraider <devnull@localhost>2007-05-14 19:38:01 +0200
committerneoraider <devnull@localhost>2007-05-14 19:38:01 +0200
commita5aa4b54e23d0793793384a6794cc543ea48ad34 (patch)
tree480f4686b8879347119803ac0973266216a5e6bc /render.c
parent4069752dbc64302b2fb64703644622cb2ec09eef (diff)
downloadlibzoom-a5aa4b54e23d0793793384a6794cc543ea48ad34.tar
libzoom-a5aa4b54e23d0793793384a6794cc543ea48ad34.zip
libzoom: XML level loader implemented.
zoom: Converted old test level to XML.
Diffstat (limited to 'render.c')
-rw-r--r--render.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/render.c b/render.c
index 7500281..ba57e2a 100644
--- a/render.c
+++ b/render.c
@@ -10,7 +10,7 @@
extern PLAYER player;
-extern LEVEL level;
+extern LEVEL *level;
extern GLuint sphere;
extern int nLights;
extern LIGHT *lights;
@@ -47,7 +47,7 @@ void Render() {
glTranslatef(-player.pos.x, -player.pos.y, -player.pos.z);
- room = DrawRoom(&level, player.room);
+ room = DrawRoom(level, player.room);
qsort(room->polygons, room->nPolygons, sizeof(POLYGON), SortByTex);
glDepthMask(GL_TRUE);
@@ -118,14 +118,14 @@ void Render() {
c = VectorMul(lights[i].diffuse, 1.0/(d*d));
glColor3fv((GLfloat*)&c);
- p = VectorAdd(lights[i].pos, VectorMul(room->polygons[j].normal, d));
-
v1 = VectorNormalize(VectorSub(room->polygons[j].vertices[0], room->polygons[j].vertices[1]));
- v2 = VectorCross(v1, room->polygons[j].normal);
for(k = 0; k < 3; k++) {
+ p = VectorAdd(lights[i].pos, VectorMul(room->polygons[j].normals[k], d));
v = VectorSub(room->polygons[j].vertices[k], p);
+ v2 = VectorCross(v1, room->polygons[j].normals[k]);
+
glMultiTexCoord2f(0, VectorDot(v, v1)*0.04 / d + 0.5, VectorDot(v, v2)*0.04 / d + 0.5);
glMultiTexCoord2fv(1, (GLfloat*)&room->polygons[j].texcoords[k]);
glVertex3fv((GLfloat*)&room->polygons[j].vertices[k]);