extern bool gamestarted;
+extern bool showdamagebar;
+
extern OPENAL_SAMPLE *samp[100];
extern int channels[100];
extern "C" void PlaySoundEx(int channel, OPENAL_SAMPLE *sptr, OPENAL_DSPUNIT *dsp, signed char startpaused);
}
glPopMatrix();
- //if(cellophane){
- /*glEnable(GL_CULL_FACE);
- glCullFace(GL_FRONT);
- glDepthMask(1);
- for(k=0;k<numplayers;k++){
- glEnable(GL_BLEND);
- glEnable(GL_LIGHTING);
- terrainlight=terrain.getLighting(player[k].coords.x,player[k].coords.z);
- distance=findDistancefast(&viewer,&player[k].coords);
- distance=(viewdistance*viewdistance-(distance-(viewdistance*viewdistance*fadestart))*(1/(1-fadestart)))/viewdistance/viewdistance;
- glColor4f(terrainlight.x,terrainlight.y,terrainlight.z,distance);
- if(distance>=1)glDisable(GL_BLEND);
- if(distance>0){
- checkpoint=DoRotation(player[k].skeleton.joints[abs(Random()%player[k].skeleton.num_joints)].position,0,player[k].rotation,0)*player[k].scale+player[k].coords;
- checkpoint.y+=1;
- if(checkcollide(viewer,checkpoint)){
- player[k].occluded+=1;
- }
- else player[k].occluded=0;
- if(player[k].occluded<25)player[k].DrawSkeleton();
- }
- }*/
-
glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);
glEnable(GL_CULL_FACE);
glCullFace(GL_FRONT);
text.glPrintOutline(1024/40-4,768/16-4+768*14/16,string,1,1.5*1.25,1024,768);
glColor4f(1,0,0,1);
text.glPrint(1024/40,768/16+768*14/16,string,1,1.5,1024,768);
+ if(showdamagebar) {
+ glDisable(GL_DEPTH_TEST); // Disables Depth Testing
+ glDisable(GL_CULL_FACE);
+ glDisable(GL_LIGHTING);
+ glDisable(GL_TEXTURE_2D);
+ glDepthMask(0);
+ glMatrixMode(GL_PROJECTION); // Select The Projection Matrix
+ glPushMatrix(); // Store The Projection Matrix
+ glLoadIdentity(); // Reset The Projection Matrix
+ glOrtho(0,screenwidth,0,screenheight,-100,100); // Set Up An Ortho Screen
+ glMatrixMode(GL_MODELVIEW); // Select The Modelview Matrix
+ glPushMatrix(); // Store The Modelview Matrix
+ glLoadIdentity(); // Reset The Modelview Matrix
+ glTranslatef(15,screenheight*17.5/20,0);
+ glScalef(screenwidth/3+20,screenheight/20,1);
+ glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);
+ glEnable(GL_BLEND);
+ glColor4f(0.0,0.4,0.0,0.7);
+ float bar=((float)player[0].damage)/player[0].damagetolerance;
+ glBegin(GL_QUADS);
+ glVertex3f((bar<1?bar:1),0,0.0f);
+ glVertex3f(1,0,0.0f);
+ glVertex3f(1,1,0.0f);
+ glVertex3f((bar<1?bar:1),1,0.0f);
+ glEnd();
+ glColor4f(0.1,0.0,0.0,1);
+ bar = ((float)player[0].bloodloss)/player[0].damagetolerance;
+ glBegin(GL_QUADS);
+ glVertex3f(0,0,0.0f);
+ glVertex3f((bar<1?bar:1),0,0.0f);
+ glVertex3f((bar<1?bar:1),1,0.0f);
+ glVertex3f(0,1,0.0f);
+ glEnd();
+ glColor4f(0.4,0.0,0.0,0.7);
+ bar = ((float)player[0].damage)/player[0].damagetolerance;
+ glBegin(GL_QUADS);
+ glVertex3f(0,0,0.0f);
+ glVertex3f((bar<1?bar:1),0,0.0f);
+ glVertex3f((bar<1?bar:1),1,0.0f);
+ glVertex3f(0,1,0.0f);
+ glEnd();
+ glColor4f(0.4,0.0,0.0,0.7);
+ bar = ((float)player[0].permanentdamage)/player[0].damagetolerance;
+ glBegin(GL_QUADS);
+ glVertex3f(0,0,0.0f);
+ glVertex3f((bar<1?bar:1),0,0.0f);
+ glVertex3f((bar<1?bar:1),1,0.0f);
+ glVertex3f(0,1,0.0f);
+ glEnd();
+ glColor4f(0.4,0.0,0.0,0.7);
+ bar = ((float)player[0].superpermanentdamage)/player[0].damagetolerance;
+ glBegin(GL_QUADS);
+ glVertex3f(0,0,0.0f);
+ glVertex3f((bar<1?bar:1),0,0.0f);
+ glVertex3f((bar<1?bar:1),1,0.0f);
+ glVertex3f(0,1,0.0f);
+ glEnd();
+ glColor4f(0.0,0.0,0.0,0.7);
+ glLineWidth(2.0);
+ glBegin(GL_LINE_STRIP);
+ glVertex3f(0,0,0.0f);
+ glVertex3f(1,0,0.0f);
+ glVertex3f(1,1,0.0f);
+ glVertex3f(0,1,0.0f);
+ glVertex3f(0,0,0.0f);
+ glEnd();
+
+ glMatrixMode(GL_PROJECTION); // Select The Projection Matrix
+ glPopMatrix(); // Restore The Old Projection Matrix
+ glMatrixMode(GL_MODELVIEW); // Select The Modelview Matrix
+ glPopMatrix(); // Restore The Old Projection Matrix
+ glEnable(GL_DEPTH_TEST); // Enables Depth Testing
+ glEnable(GL_CULL_FACE);
+ glDisable(GL_BLEND);
+ glDepthMask(1);
+ glEnable(GL_TEXTURE_2D);
+
+ // writing the numbers :
+ sprintf (string, "Damages : %d/%d (%d)",(int)(player[0].damage),(int)(player[0].damagetolerance),(int)(player[0].bloodloss));
+ glColor4f(0,0,0,1);
+ text.glPrintOutline(1024/40-4,768/16-4+768*14/16-40,string,1,1.5*1.25,1024,768);
+ glColor4f(1,0,0,1);
+ text.glPrint(1024/40,768/16+768*14/16-40,string,1,1.5,1024,768);
+ }
}
glColor4f(.5,.5,.5,1);
glMatrixMode(GL_MODELVIEW); // Select The Modelview Matrix
if(mainmenu==3){
- nummenuitems=13;
+ nummenuitems=14;
if((float)newscreenwidth>(float)newscreenheight*1.61||(float)newscreenwidth<(float)newscreenheight*1.59)sprintf (menustring[0], "Resolution: %d*%d",(int)newscreenwidth,(int)newscreenheight);
else sprintf (menustring[0], "Resolution: %d*%d (widescreen)",(int)newscreenwidth,(int)newscreenheight);
startx[0]=10+20;
sprintf (menustring[11], "Volume: %d%%", (int)(volume*100));
startx[11]=10+60;
- starty[11]=155;
+ starty[11]=160;
endx[11]=startx[11]+strlen(menustring[11])*10;
endy[11]=starty[11]+20;
movex[11]=0;
movey[11]=0;
+ sprintf (menustring[13], "Damage Bar: %s",(showdamagebar?"on":"off"));
+ startx[13]=30;
+ starty[13]=125;
+ endx[13]=startx[13]+strlen(menustring[13])*10;
+ endy[13]=starty[13]+20;
+ movex[13]=0;
+ movey[13]=0;
+
sprintf (menustring[7], "-Configure Controls-");
startx[7]=10+15;
- starty[7]=100;
+ starty[7]=90;
endx[7]=startx[7]+strlen(menustring[7])*10;
endy[7]=starty[7]+20;
movex[7]=0;
sprintf (menustring[12], "-Configure Stereo -");
startx[12]=10+15;
- starty[12]=60;
+ starty[12]=55;
endx[12]=startx[12]+strlen(menustring[7])*10;
endy[12]=starty[12]+20;
movex[12]=0;
//if(1-((float)i)/10-(1-selectedlong[j])>0){
glMatrixMode(GL_MODELVIEW); // Select The Modelview Matrix
glPushMatrix();
- if(mainmenu!=7||j!=0||!entername)text.glPrint(startx[j],starty[j],menustring[j],0,1,640,480);
+ if(mainmenu!=7||j!=0||!entername)
+ text.glPrint(startx[j],starty[j],menustring[j],0,1,640,480);
else
{
if(displayblink){
}
}
glPopMatrix();
- /*}
- else{
- glPushMatrix();
- sprintf (string, "Hooo!");
- text.glPrint(startx[0],starty[0],string,0,1,640,480);
- glPopMatrix();
- }*/
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA,GL_ONE);
for(i=0;i<15;i++)
if(mainmenu==4)text.glPrint(startx[j]-((float)i)+offsetx[j]*((float)i)/4/*-((((float)i)/70)*strlen(menustring[j]))*3*/,starty[j]/*-i*1/2*/+offsety[j]*((float)i)/4,menustring[j],0,1+((float)i)/70,640,480);
if(mainmenu==5)text.glPrint(startx[j]-((float)i)+offsetx[j]*((float)i)/4/*-((((float)i)/70)*strlen(menustring[j]))*3*/,starty[j]/*-i*1/2*/+offsety[j]*((float)i)/4,menustring[j],0,1+((float)i)/70,640,480);
if(mainmenu==6)text.glPrint(startx[j]-((float)i)+offsetx[j]*((float)i)/4/*-((((float)i)/70)*strlen(menustring[j]))*3*/,starty[j]/*-i*1/2*/+offsety[j]*((float)i)/4,menustring[j],0,1+((float)i)/70,640,480);
- if(mainmenu==7&&(j!=0||!entername))text.glPrint(startx[j]-((float)i)+offsetx[j]*((float)i)/4/*-((((float)i)/70)*strlen(menustring[j]))*3*/,starty[j]/*-i*1/2*/+offsety[j]*((float)i)/4,menustring[j],0,1+((float)i)/70,640,480);
+ if(mainmenu==7&&(j!=0||!entername)) text.glPrint(startx[j]-((float)i)+offsetx[j]*((float)i)/4,starty[j]+offsety[j]*((float)i)/4,menustring[j],0,1+((float)i)/70,640,480);
if(mainmenu==8)text.glPrint(startx[j]-((float)i)+offsetx[j]*((float)i)/4/*-((((float)i)/70)*strlen(menustring[j]))*3*/,starty[j]/*-i*1/2*/+offsety[j]*((float)i)/4,menustring[j],0,1+((float)i)/70,640,480);
if(mainmenu==9)text.glPrint(startx[j]-((float)i)+offsetx[j]*((float)i)/4/*-((((float)i)/70)*strlen(menustring[j]))*3*/,starty[j]/*-i*1/2*/+offsety[j]*((float)i)/4,menustring[j],0,1+((float)i)/70,640,480);
if(mainmenu==11)text.glPrint(startx[j]-((float)i)+offsetx[j]*((float)i)/4/*-((((float)i)/70)*strlen(menustring[j]))*3*/,starty[j]/*-i*1/2*/+offsety[j]*((float)i)/4,menustring[j],0,1+((float)i)/70,640,480);
multiplier=0;
}
-
//glFlush();
if ( side == stereoRight || side == stereoCenter ) {
if(drawmode!=motionblurmode||mainmenu){