This file is part of Lugaru.
-Lugaru is free software; you can redistribute it and/or
-modify it under the terms of the GNU General Public License
-as published by the Free Software Foundation; either version 2
-of the License, or (at your option) any later version.
+Lugaru is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
-This program is distributed in the hope that it will be useful,
+Lugaru is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
-See the GNU General Public License for more details.
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+along with Lugaru. If not, see <http://www.gnu.org/licenses/>.
*/
#include "Game.h"
glDrawBuffer(GL_BACK);
glReadBuffer(GL_BACK);
- //glFinish();
static XYZ terrainlight;
static float distance;
if (drawmode == normalmode)
terrain.draw(0);
terraintexture2.bind();
terrain.draw(1);
- //glBindTexture( GL_TEXTURE_2D, terraintexture3);
- //glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);
- //terrain.draw(2);
terrain.drawdecals();
if (distance >= .5) {
checkpoint = DoRotation(Person::players[k]->skeleton.joints[abs(Random() % Person::players[k]->skeleton.num_joints)].position, 0, Person::players[k]->yaw, 0) * Person::players[k]->scale + Person::players[k]->coords;
checkpoint.y += 1;
- int i;
- if (!Person::players[k]->occluded == 0)
+ int i = -1;
+ if (Person::players[k]->occluded != 0)
i = checkcollide(viewer, checkpoint, Person::players[k]->lastoccluded);
- if (i == -1 || Person::players[k]->occluded == 0)
+ if (i == -1)
i = checkcollide(viewer, checkpoint);
if (i != -1) {
Person::players[k]->occluded += 1;
if (distance >= .5) {
checkpoint = DoRotation(Person::players[k]->skeleton.joints[abs(Random() % Person::players[k]->skeleton.num_joints)].position, 0, Person::players[k]->yaw, 0) * Person::players[k]->scale + Person::players[k]->coords;
checkpoint.y += 1;
- int i;
- if (!Person::players[k]->occluded == 0)
+ int i = -1;
+ if (Person::players[k]->occluded != 0)
i = checkcollide(viewer, checkpoint, Person::players[k]->lastoccluded);
- if (i == -1 || Person::players[k]->occluded == 0)
+ if (i == -1)
i = checkcollide(viewer, checkpoint);
if (i != -1) {
Person::players[k]->occluded += 1;
//Hot spots
if (numhotspots && (bonustime >= 1 || bonus <= 0 || bonustime < 0) && !tutoriallevel) {
- int closest = -1;
float closestdist = -1;
float distance = 0;
- closest = currenthotspot;
+ int closest = currenthotspot;
for (int i = 0; i < numhotspots; i++) {
distance = distsq(&Person::players[0]->coords, &hotspot[i]);
if (closestdist == -1 || distance < closestdist) {
}
}
}
- radius = fast_sqrt(maxdistance);
-
radius = 110;
glScalef(.25 / radius * 256 * terrain.scale * .4, .25 / radius * 256 * terrain.scale * .4, 1);
text->glPrint(1024 / 2 - 90, 768 / 2, string, 1, 2, 1024, 768);
}
loading = 2;
- //if(ismotionblur)drawmode=motionblurmode;
drawmode = normalmode;
}
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE_EXT);
GLfloat subtractColor[4] = { 0.5, 0.5, 0.5, 0.0 };
glTexEnvfv(GL_TEXTURE_ENV, GL_TEXTURE_ENV_COLOR, subtractColor);
- //glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_RGB_EXT, GL_SUBTRACT);
glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_RGB_EXT, GL_TEXTURE);
glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE1_RGB_EXT, GL_CONSTANT_EXT);
glTexEnvf(GL_TEXTURE_ENV, GL_RGB_SCALE_EXT, 2.0f);
glCopyTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, 0, 0, kTextureSize, kTextureSize, 0);
}
}
- //glFlush();
}
glClear(GL_DEPTH_BUFFER_BIT);
if (drawmode == motionblurmode) {
if (motionbluramount < .2)
motionbluramount = .2;
- //glColor4f(1,1,1,fast_sqrt(multiplier)*2.9*motionbluramount);
glColor4f(1, 1, 1, motionbluramount);
glPushMatrix();
glBegin(GL_QUADS);
}
if (drawmode == radialzoommode) {
for (int i = 0; i < 3; i++) {
- //glRotatef((float)i*.1,0,0,1);
glColor4f(1, 1, 1, 1 / ((float)i + 1));
glPushMatrix();
glScalef(1 + (float)i * .01, 1 + (float)i * .01, 1);
multiplier = 0;
}
- //glFlush();
if ( side == stereoRight || side == stereoCenter ) {
if (drawmode != motionblurmode || mainmenu) {
swap_gl_buffers();
}
}
- //myassert(glGetError() == GL_NO_ERROR);
glDrawBuffer(GL_BACK);
glReadBuffer(GL_BACK);
- //glFlush();
weapons.DoStuff();
glColor4f(1, 1, 1, 1);
Game::cursortexture.bind();
glPushMatrix();
- //glScalef(.25,.25,.25);
glBegin(GL_QUADS);
glTexCoord2f(0, 0);
glVertex3f(-1, -1, 0.0f);