ld33_umonster

diff src/game.cc @ 2:35349df5392d

wtf?
author John Tsiombikas <nuclear@member.fsf.org>
date Sat, 22 Aug 2015 23:55:21 +0300
parents 4a6683050e29
children 93ff21458a16
line diff
     1.1 --- a/src/game.cc	Sat Aug 22 23:17:57 2015 +0300
     1.2 +++ b/src/game.cc	Sat Aug 22 23:55:21 2015 +0300
     1.3 @@ -7,6 +7,8 @@
     1.4  #include "shadow.h"
     1.5  #include "opt.h"
     1.6  
     1.7 +#include "room.h"
     1.8 +
     1.9  static void draw_scene();
    1.10  
    1.11  int win_width, win_height;
    1.12 @@ -35,7 +37,7 @@
    1.13  	glEnable(GL_LIGHTING);
    1.14  	glEnable(GL_LIGHT0);
    1.15  
    1.16 -	float amb[] = {0.3, 0.3, 0.3, 1.0};
    1.17 +	float amb[] = {0.1, 0.1, 0.1, 1.0};
    1.18  	glLightModelfv(GL_LIGHT_MODEL_AMBIENT, amb);
    1.19  
    1.20  	if(glcaps.sep_spec) {
    1.21 @@ -58,6 +60,9 @@
    1.22  	}
    1.23  	set_uniform_int(sdr_shadow_notex, "shadowmap", 1);
    1.24  
    1.25 +	if(!init_room()) {
    1.26 +		return false;
    1.27 +	}
    1.28  
    1.29  	assert(glGetError() == GL_NO_ERROR);
    1.30  	return true;
    1.31 @@ -65,6 +70,7 @@
    1.32  
    1.33  void game_cleanup()
    1.34  {
    1.35 +	cleanup_room();
    1.36  }
    1.37  
    1.38  void game_update(unsigned long time_msec)
    1.39 @@ -82,9 +88,10 @@
    1.40  	glRotatef(cam_phi, 1, 0, 0);
    1.41  	glRotatef(cam_theta, 0, 1, 0);
    1.42  
    1.43 -	float lpos[] = {-10, 20, 10, 1};
    1.44 +	float lpos[] = {-0, 0, 0, 1};
    1.45  	glLightfv(GL_LIGHT0, GL_POSITION, lpos);
    1.46  
    1.47 +	opt.shadows = false;
    1.48  	if(opt.shadows && sdr_shadow) {
    1.49  		begin_shadow_pass(Vector3(lpos[0], lpos[1], lpos[2]), Vector3(0, 0, 0), 5);
    1.50  		draw_scene();
    1.51 @@ -100,7 +107,7 @@
    1.52  		glActiveTexture(GL_TEXTURE0);
    1.53  		glMatrixMode(GL_MODELVIEW);
    1.54  
    1.55 -		set_shader(sdr_shadow_notex);
    1.56 +		override_shader(sdr_shadow_notex);
    1.57  
    1.58  		draw_scene();
    1.59  
    1.60 @@ -109,6 +116,7 @@
    1.61  		glActiveTexture(GL_TEXTURE0);
    1.62  		glBindTexture(GL_TEXTURE_2D, 0);
    1.63  	} else {
    1.64 +		override_shader(sdr_shadow_notex);
    1.65  		draw_scene();
    1.66  	}
    1.67  }
    1.68 @@ -124,23 +132,15 @@
    1.69  
    1.70  static void draw_scene()
    1.71  {
    1.72 +	draw_room();
    1.73 +
    1.74  	glPushMatrix();
    1.75 -	glTranslatef(0, -1, 0);
    1.76 -
    1.77 -	glmaterial(0.5, 0.5, 0.5, 0.8, 40.0);
    1.78 -
    1.79 -	glBegin(GL_QUADS);
    1.80 -	glNormal3f(0, 1, 0);
    1.81 -	glVertex3f(-10, 0, 10);
    1.82 -	glVertex3f(10, 0, 10);
    1.83 -	glVertex3f(10, 0, -10);
    1.84 -	glVertex3f(-10, 0, -10);
    1.85 -	glEnd();
    1.86 -
    1.87 -	glPopMatrix();
    1.88 +	glTranslatef(0, 0.75, 0);
    1.89  
    1.90  	glmaterial(0.2, 0.3, 1.0, 0.8, 60.0);
    1.91  	draw_teapot();
    1.92 +
    1.93 +	glPopMatrix();
    1.94  }
    1.95  
    1.96