summary refs log tree commit diff
path: root/src/GameDraw.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/GameDraw.cpp')
-rw-r--r--src/GameDraw.cpp466
1 files changed, 113 insertions, 353 deletions
diff --git a/src/GameDraw.cpp b/src/GameDraw.cpp
index f68ff54..1094dc7 100644
--- a/src/GameDraw.cpp
+++ b/src/GameDraw.cpp
@@ -21,6 +21,8 @@
 
 #include <stdio.h>
 
+#include <GL/glu.h>
+
 #include "Game.h"
 #include "misc.h"
 
@@ -58,15 +60,10 @@ void Game::DrawGLScene(void)
 		//Setup fast sine fluctuation
 		sinefluct=sin(sinefluctprog);
 		sinefluctprog+=multiplier*1.5;
-
 		glLoadIdentity();
-
 		glClearColor(0,0,0,1);
-
 		glDisable(GL_CLIP_PLANE0);
-
 		glDisable(GL_FOG);
-
 		glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
 
 		//"Black Shades"
@@ -76,444 +73,241 @@ void Game::DrawGLScene(void)
 		glDisable(GL_LIGHTING);
 		glBlendFunc(GL_SRC_ALPHA,GL_ONE);
 		glDepthMask(0);
-
 		glMatrixMode(GL_PROJECTION);						// Select The Projection Matrix
-
 		glPushMatrix();										// Store The Projection Matrix
-
 		glLoadIdentity();									// Reset The Projection Matrix
-
 		glOrtho(0,640,0,480,-100,100);						// Set Up An Ortho Screen
-
 		glMatrixMode(GL_MODELVIEW);							// Select The Modelview Matrix
 
 		//Draw smoke
-
 		glPushMatrix();										// Store The Modelview Matrix
-
 			glLoadIdentity();								// Reset The Modelview Matrix
-
 			glTranslatef(60+sinefluct*40,335-sinefluct*9,0);
-
 			glScalef(500-sinefluct*80,70+sinefluct*18,1);
-
 			glTranslatef(.5,.5,0);
-
 			glScalef(.5,.5,1);
-
 			glRotatef(sinefluctprog*50,0,0,1);
-
 			glEnable(GL_TEXTURE_2D);
-
 			glBindTexture(GL_TEXTURE_2D,  sprites.smoketextureptr);
-
 			glEnable(GL_BLEND);
-
 			glColor4f(1,1,1,.4+sinefluct/8);
-
 			glBegin(GL_TRIANGLES);
-
 				glTexCoord2f(1.0f, 1.0f); glVertex3f( 1, 1, 0.0f);
-
 				glTexCoord2f(0.0f, 1.0f); glVertex3f(-1, 1, 0.0f);
-
 				glTexCoord2f(1.0f, 0.0f); glVertex3f( 1,-1, 0.0f);
-
 				glTexCoord2f(0.0f, 0.0f); glVertex3f(-1,-1, 0.0f);
-
 				glTexCoord2f(1.0f, 0.0f); glVertex3f( 1, -1, 0.0f);
-
 				glTexCoord2f(0.0f, 1.0f); glVertex3f(-1, 1, 0.0f);
-
 			glEnd();
-
 		glPopMatrix();
-
 		glPushMatrix();										// Store The Modelview Matrix
-
 			glLoadIdentity();								// Reset The Modelview Matrix
-
 			glTranslatef(60+sinefluct*40,335-sinefluct*9,0);
-
 			glScalef(530-sinefluct*80,50+sinefluct*18,1);
-
 			glTranslatef(.5,.5,0);
-
 			glScalef(.5,.5,1);
-
 			glRotatef(-sinefluctprog*50,0,0,1);
-
 			glEnable(GL_TEXTURE_2D);
-
 			glBindTexture(GL_TEXTURE_2D,  sprites.smoketextureptr);
-
 			glEnable(GL_BLEND);
-
 			glColor4f(1,1,1,.4-sinefluct/8);
-
 			glBegin(GL_TRIANGLES);
-
 				glTexCoord2f(1.0f, 1.0f); glVertex3f( 1, 1, 0.0f);
-
 				glTexCoord2f(0.0f, 1.0f); glVertex3f(-1, 1, 0.0f);
-
 				glTexCoord2f(1.0f, 0.0f); glVertex3f( 1,-1, 0.0f);
-
 				glTexCoord2f(0.0f, 0.0f); glVertex3f(-1,-1, 0.0f);
-
 				glTexCoord2f(1.0f, 0.0f); glVertex3f( 1, -1, 0.0f);
-
 				glTexCoord2f(0.0f, 1.0f); glVertex3f(-1, 1, 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
-
 		glDepthMask(1);
 
-		//Text
-
+		// Text
+		static char str[256];
 		glEnable(GL_TEXTURE_2D);
+		glColor4f(0, 0, 0, 1);
+		glPrint(&this->text, 100, 175, "Black Shades", 1, 2, 640, 480);
 
-		glColor4f(0,0,0,1);
-
-		static char string[256]="";
-
-		sprintf (string, "Black Shades");
-
-		text.glPrint(100,175,string,1,2,640,480);
-
-		//"New Game"
-
+		// "New Game"
 		glDisable(GL_TEXTURE_2D);
-
-		glDisable(GL_DEPTH_TEST);							// Disables Depth Testing
-
+		glDisable(GL_DEPTH_TEST);
 		glDisable(GL_CULL_FACE);
-
 		glDisable(GL_LIGHTING);
-
 		glBlendFunc(GL_SRC_ALPHA,GL_ONE);
-
 		glDepthMask(0);
-
-		glMatrixMode(GL_PROJECTION);						// Select The Projection Matrix
-
-		glPushMatrix();										// Store The Projection Matrix
-
-		glLoadIdentity();									// Reset The Projection Matrix
-
-		glOrtho(0,640,0,480,-100,100);						// Set Up An Ortho Screen
-
-		glMatrixMode(GL_MODELVIEW);							// Select The Modelview Matrix
+		glMatrixMode(GL_PROJECTION);
+		glPushMatrix();
+		glLoadIdentity();
+		glOrtho(0, 640, 0, 480, -100, 100);
+		glMatrixMode(GL_MODELVIEW);
 
 		//Draw smoke
-
-		glPushMatrix();										// Store The Modelview Matrix
-
-			glLoadIdentity();								// Reset The Modelview Matrix
-
+		glPushMatrix();
+			glLoadIdentity();
 			glTranslatef(120-sinefluct*40,235+sinefluct*9,0);
-
 			glScalef(440+sinefluct*80,70-sinefluct*18,1);
-
 			glTranslatef(.5,.5,0);
-
 			glScalef(.5,.5,1);
-
 			glRotatef(sinefluctprog*50,0,0,1);
-
 			glEnable(GL_TEXTURE_2D);
-
 			if(mouseoverbutton!=1)glBindTexture(GL_TEXTURE_2D,  sprites.smoketextureptr);
-
 			if(mouseoverbutton==1)glBindTexture(GL_TEXTURE_2D,  flaretextureptr);
-
 			glEnable(GL_BLEND);
-
 			glColor4f(1,0,0,.5+sinefluct/6);
-
 			glBegin(GL_TRIANGLES);
-
 				glTexCoord2f(1.0f, 1.0f); glVertex3f( 1, 1, 0.0f);
-
 				glTexCoord2f(0.0f, 1.0f); glVertex3f(-1, 1, 0.0f);
-
 				glTexCoord2f(1.0f, 0.0f); glVertex3f( 1,-1, 0.0f);
-
 				glTexCoord2f(0.0f, 0.0f); glVertex3f(-1,-1, 0.0f);
-
 				glTexCoord2f(1.0f, 0.0f); glVertex3f( 1, -1, 0.0f);
-
 				glTexCoord2f(0.0f, 1.0f); glVertex3f(-1, 1, 0.0f);
-
 			glEnd();
-
 		glPopMatrix();
-
 		glPushMatrix();										// Store The Modelview Matrix
-
 			glLoadIdentity();								// Reset The Modelview Matrix
-
 			glTranslatef(120-sinefluct*40,235+sinefluct*9,0);
-
 			glScalef(460+sinefluct*80,50-sinefluct*18,1);
-
 			glTranslatef(.5,.5,0);
-
 			glScalef(.5,.5,1);
-
 			glRotatef(-sinefluctprog*50,0,0,1);
-
 			glEnable(GL_TEXTURE_2D);
-
 			if(mouseoverbutton!=1)glBindTexture(GL_TEXTURE_2D,  sprites.smoketextureptr);
-
 			if(mouseoverbutton==1)glBindTexture(GL_TEXTURE_2D,  flaretextureptr);
-
 			glEnable(GL_BLEND);
-
 			glColor4f(1,0,0,.5-sinefluct/6);
-
 			glBegin(GL_TRIANGLES);
-
 				glTexCoord2f(1.0f, 1.0f); glVertex3f( 1, 1, 0.0f);
-
 				glTexCoord2f(0.0f, 1.0f); glVertex3f(-1, 1, 0.0f);
-
 				glTexCoord2f(1.0f, 0.0f); glVertex3f( 1,-1, 0.0f);
-
 				glTexCoord2f(0.0f, 0.0f); glVertex3f(-1,-1, 0.0f);
-
 				glTexCoord2f(1.0f, 0.0f); glVertex3f( 1, -1, 0.0f);
-
 				glTexCoord2f(0.0f, 1.0f); glVertex3f(-1, 1, 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
-
 		glDepthMask(1);
 
-		//Text
-
+		// Text
 		glEnable(GL_TEXTURE_2D);
-
 		glColor4f(0,0,0,1);
+		glPrint(&this->text, 190 - this->gameinprogress * 10, 170,
+			this->gameinprogress ? "Resume Game" : "New Game",
+			1, 1.5, 640, 480);
 
-		if(!gameinprogress)sprintf (string, "New Game");
-
-		if(gameinprogress)sprintf (string, "Resume Game");
-
-		text.glPrint(190-gameinprogress*10,170,string,1,1.5,640,480);
-
-		//"Quit"
-
+		// "Quit"
 		glDisable(GL_TEXTURE_2D);
-
 		glDisable(GL_DEPTH_TEST);							// Disables Depth Testing
-
 		glDisable(GL_CULL_FACE);
-
 		glDisable(GL_LIGHTING);
-
 		glBlendFunc(GL_SRC_ALPHA,GL_ONE);
-
 		glDepthMask(0);
-
 		glMatrixMode(GL_PROJECTION);						// Select The Projection Matrix
-
 		glPushMatrix();										// Store The Projection Matrix
-
 		glLoadIdentity();									// Reset The Projection Matrix
-
 		glOrtho(0,640,0,480,-100,100);						// Set Up An Ortho Screen
-
 		glMatrixMode(GL_MODELVIEW);							// Select The Modelview Matrix
 
-		//Draw smoke
-
+		// Draw smoke
 		glPushMatrix();										// Store The Modelview Matrix
-
 			glLoadIdentity();								// Reset The Modelview Matrix
-
 			glTranslatef(120-sinefluct*40,112+sinefluct*9,0);
-
 			glScalef(440+sinefluct*80,70-sinefluct*18,1);
-
 			glTranslatef(.5,.5,0);
-
 			glScalef(.5,.5,1);
-
 			glRotatef(sinefluctprog*50,0,0,1);
-
 			glEnable(GL_TEXTURE_2D);
 
 			if(mouseoverbutton!=2)glBindTexture(GL_TEXTURE_2D,  sprites.smoketextureptr);
-
 			if(mouseoverbutton==2)glBindTexture(GL_TEXTURE_2D,  flaretextureptr);
 
 			glEnable(GL_BLEND);
-
 			glColor4f(1,0,0,.5+sinefluct/6);
-
 			glBegin(GL_TRIANGLES);
-
 				glTexCoord2f(1.0f, 1.0f); glVertex3f( 1, 1, 0.0f);
-
 				glTexCoord2f(0.0f, 1.0f); glVertex3f(-1, 1, 0.0f);
-
 				glTexCoord2f(1.0f, 0.0f); glVertex3f( 1,-1, 0.0f);
-
 				glTexCoord2f(0.0f, 0.0f); glVertex3f(-1,-1, 0.0f);
-
 				glTexCoord2f(1.0f, 0.0f); glVertex3f( 1, -1, 0.0f);
-
 				glTexCoord2f(0.0f, 1.0f); glVertex3f(-1, 1, 0.0f);
-
 			glEnd();
-
 		glPopMatrix();
-
 		glPushMatrix();										// Store The Modelview Matrix
-
 			glLoadIdentity();								// Reset The Modelview Matrix
-
 			glTranslatef(120-sinefluct*40,112+sinefluct*9,0);
-
 			glScalef(460+sinefluct*80,50-sinefluct*18,1);
-
 			glTranslatef(.5,.5,0);
-
 			glScalef(.5,.5,1);
-
 			glRotatef(-sinefluctprog*50,0,0,1);
-
 			glEnable(GL_TEXTURE_2D);
-
 			if(mouseoverbutton!=2)glBindTexture(GL_TEXTURE_2D,  sprites.smoketextureptr);
-
 			if(mouseoverbutton==2)glBindTexture(GL_TEXTURE_2D,  flaretextureptr);
-
 			glEnable(GL_BLEND);
-
 			glColor4f(1,0,0,.5-sinefluct/6);
-
 			glBegin(GL_TRIANGLES);
-
 				glTexCoord2f(1.0f, 1.0f); glVertex3f( 1, 1, 0.0f);
-
 				glTexCoord2f(0.0f, 1.0f); glVertex3f(-1, 1, 0.0f);
-
 				glTexCoord2f(1.0f, 0.0f); glVertex3f( 1,-1, 0.0f);
-
 				glTexCoord2f(0.0f, 0.0f); glVertex3f(-1,-1, 0.0f);
-
 				glTexCoord2f(1.0f, 0.0f); glVertex3f( 1, -1, 0.0f);
-
 				glTexCoord2f(0.0f, 1.0f); glVertex3f(-1, 1, 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
-
 		glDepthMask(1);
 
 		// Text
 		glEnable(GL_TEXTURE_2D);
-		glColor4f(0.0f ,0.0f ,0.0f ,1.0f);
-		sprintf(string, gameinprogress ? "End Game" : "Quit");
-		text.glPrint(197 - gameinprogress * 15, 87, string, 1, 1.5, 640, 480);
+		glColor4f(0.0f, 0.0f, 0.0f, 1.0f);
+		glPrint(&this->text, 197 - this->gameinprogress * 15, 87,
+			this->gameinprogress ? "End Game" : "Quit",
+			1, 1.5, 640, 480);
 
 		// High score
 		glColor4f(0.5f + sinefluct / 5.0f, 0.0f, 0.0f, 1.0f);
-		sprintf(string, "High Score: %d%s", highscore,
+		sprintf(str, "High Score: %d%s", highscore,
 			beatgame ? " *COMPLETED*" : "");
-		text.glPrint(0, 0, string, 1, 0.8, 640, 480);
+		glPrint(&this->text, 0, 0, str, 1, 0.8, 640, 480);
 
 		// Flash
-		if(flashamount>0){
-
+		if (flashamount > 0) {
 			if(flashamount>1)flashamount=1;
-
 			flashamount-=multiplier;
-
 			if(flashamount<0)flashamount=0;
-
 			glDisable(GL_DEPTH_TEST);							// Disables Depth Testing
-
 			glDisable(GL_CULL_FACE);
-
 			glDisable(GL_LIGHTING);
-
 			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
-
 			glScalef(screenwidth,screenheight,1);
-
 			glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);
-
 			glEnable(GL_BLEND);
-
 			glColor4f(flashr,flashg,flashb,flashamount);
-
 			glBegin(GL_QUADS);
-
 				glVertex3f(0,		0, 	 0.0f);
-
 				glVertex3f(256,	0, 	 0.0f);
-
 				glVertex3f(256,	256, 0.0f);
-
 				glVertex3f(0, 	256, 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);
 		}
 	} else { // in-game
@@ -1294,129 +1088,95 @@ void Game::DrawGLScene(void)
 		}
 
 		//Text
-
 		glEnable(GL_TEXTURE_2D);
-
-		glColor4f(1,1,1,1);
-
-		static char string[256]="";
-
-		if(!debug){
-
-		if(person[0].whichgun==nogun)sprintf (string, "UNARMED");
-
-		if(person[0].whichgun==knife)sprintf (string, "KNIFE");
-
-		if(person[0].whichgun==assaultrifle)sprintf (string, "ASSAULT RIFLE");
-
-		if(person[0].whichgun==shotgun)sprintf (string, "SHOTGUN");
-
-		if(person[0].whichgun==sniperrifle)sprintf (string, "SNIPER RIFLE");
-
-		if(person[0].whichgun==grenade)sprintf (string, "HAND GRENADE");
-
-		if(person[0].whichgun==handgun1)sprintf (string, "MAGNUM");
-
-		if(person[0].whichgun==handgun2)sprintf (string, "HANDGUN");
-
-		text.glPrint(10,90,string,1,.8,640,480);
-
-		if(person[0].whichgun!=nogun&&person[0].whichgun!=knife&&person[0].whichgun!=grenade){
-
-			glColor4f(0,1,0,1);
-
-			sprintf (string, "Magazines");
-
-			text.glPrint(10,30,string,0,.8,640,480);
-
-			glColor4f(1,1,1,1);
-
-			sprintf (string, "0%d",(int)person[0].reloads[person[0].whichgun]);
-
-			text.glPrint(10,10,string,1,1,640,480);
-
-			if(person[0].ammo>=0){
-
+		glColor4f(1.0f, 1.0f, 1.0f, 1.0f);
+		static char str[256] = "";
+
+		if (!debug) {
+			char *s;
+			switch (person[0].whichgun) {
+			case nogun:
+				s = "UNARMED";
+				break;
+			case knife:
+				s = "KNIFE";
+				break;
+			case assaultrifle:
+				s = "ASSAULT RIFLE";
+				break;
+			case shotgun:
+				s = "SHOTGUN";
+				break;
+			case sniperrifle:
+				s = "SNIPER RIFLE";
+				break;
+			case grenade:
+				s = "HAND GRENADE";
+				break;
+			case handgun1:
+				s = "MAGNUM";
+				break;
+			case handgun2:
+				s = "HANDGUN";
+				break;
+			}
+			glPrint(&this->text, 10, 90, s, 1, 0.8, 640, 480);
+			if(person[0].whichgun!=nogun&&person[0].whichgun!=knife&&person[0].whichgun!=grenade){
 				glColor4f(0,1,0,1);
-
-				sprintf (string, "Ammo");
-
-				text.glPrint(10,65,string,0,.8,640,480);
-
+				glPrint(&this->text, 10, 30, "Magazines",
+					0, 0.8, 640, 480);
 				glColor4f(1,1,1,1);
-
-				if(person[0].ammo>=10)sprintf (string, "%d",(int)person[0].ammo);
-
-				if(person[0].ammo<10)sprintf (string, "0%d",(int)person[0].ammo);
-
-				text.glPrint(10,40,string,1,1,640,480);
-
+				sprintf (str, "0%d",(int)person[0].reloads[person[0].whichgun]);
+				glPrint(&this->text, 10,10,str,1,1,640,480);
+				if(person[0].ammo>=0){
+					glColor4f(0,1,0,1);
+					glPrint(&this->text, 10, 65, "Ammo",
+						0, 0.8, 640, 480);
+					glColor4f(1,1,1,1);
+					if(person[0].ammo>=10)sprintf (str, "%d",(int)person[0].ammo);
+					if(person[0].ammo<10)sprintf (str, "0%d",(int)person[0].ammo);
+					glPrint(&this->text, 10,40,str,1,1,640,480);
+				}
 			}
-
-		}
-
-		if(person[0].whichgun==grenade){
-
-			sprintf (string, "Grenades Left:  %d",(int)person[0].reloads[person[0].whichgun]+1);
-
-			text.glPrint(10,20,string,0,.8,640,480);
-
-		}
-
-		glColor4f(1,1,0,1);
-
-		sprintf (string, "Score");
-
-		text.glPrint(725,575,string,0,.8,640,480);
-
-		glColor4f(1,1,1,1);
-
-		sprintf (string, "%d", score);
-
-		text.glPrint(580,440,string,1,1,640,480);
-
-		glColor4f(1,1,0,1);
-
-		sprintf (string, "Time Remaining");
-
-		text.glPrint(50,575,string,0,.8,640,480);
-
-		glColor4f(1,1,1,1);
-
-		if((int)timeremaining%60>=10)sprintf (string, "%d:%d", (int)(timeremaining/60),(int)timeremaining%60);
-
-		if((int)timeremaining%60<10)sprintf (string, "%d:0%d", (int)(timeremaining/60),(int)timeremaining%60);
-
-		text.glPrint(72, 440, string, 1, 1, 640, 480);
-
-		}
-
-		if(debug){
-
-		sprintf (string, "FPS: %.0f", 1.0f / multiplier);
-
-		text.glPrint(10,30,string,0,.8,screenwidth,screenheight);
-
-		if(enemystate==0)sprintf (string, "Enemies are in random assassination mode.");
-
-		if(enemystate==1)sprintf (string, "Enemies are in passive mode.");
-
-		if(enemystate==2)sprintf (string, "Enemies are in DIE!!!! mode.");
-
-		text.glPrint(10,20,string,0,.8,screenwidth,screenheight);
-
-		sprintf (string, "You have pointlessly shot or beaten %d unarmed civilians.",civkills);
-
-		text.glPrint(10,60,string,0,.8,screenwidth,screenheight);
-
-		sprintf (string, "You have incapacitated %d assassins.",goodkills);
-
-		text.glPrint(10,70,string,0,.8,screenwidth,screenheight);
-
-		sprintf (string, "You have allowed %d successful murders.",badkills);
-
-		text.glPrint(10,80,string,0,.8,screenwidth,screenheight);
-
+			if(person[0].whichgun==grenade){
+				sprintf (str, "Grenades Left:  %d",(int)person[0].reloads[person[0].whichgun]+1);
+				glPrint(&this->text, 10,20,str,0,.8,640,480);
+			}
+			glColor4f(1,1,0,1);
+			glPrint(&this->text, 725, 575, "Score", 0, 0.8, 640, 480);
+			glColor4f(1,1,1,1);
+			sprintf(str, "%d", score);
+			glPrint(&this->text, 580,440,str,1,1,640,480);
+			glColor4f(1,1,0,1);
+			glPrint(&this->text, 50, 575, "Time Remaining",
+				0, 0.8, 640, 480);
+			glColor4f(1,1,1,1);
+			if((int)timeremaining%60>=10)sprintf (str, "%d:%d", (int)(timeremaining/60),(int)timeremaining%60);
+			if((int)timeremaining%60<10)sprintf (str, "%d:0%d", (int)(timeremaining/60),(int)timeremaining%60);
+			glPrint(&this->text, 72, 440, str, 1, 1, 640, 480);
+		} else {
+			sprintf(str, "FPS: %.0f", 1.0f / multiplier);
+			glPrint(&this->text, 10,30,str,0,.8,screenwidth,screenheight);
+			char *s;
+			switch (enemystate) {
+			case 0:
+				s = "Enemies are in random assassination mode.";
+				break;
+			case 1:
+				s = "Enemies are in passive mode.";
+				break;
+			case 2:
+				s = "Enemies are in DIE!!!! mode.";
+				break;
+			}
+			glPrint(&this->text, 10, 20, s, 0, 0.8,
+				screenwidth, screenheight);
+			sprintf(str, "You have pointlessly shot or beaten %d unarmed civilians.", civkills);
+			glPrint(&this->text, 10,60,str,0,.8,screenwidth,screenheight);
+			sprintf(str, "You have incapacitated %d assassins.", goodkills);
+			glPrint(&this->text, 10,70,str,0,.8,screenwidth,screenheight);
+			sprintf(str, "You have allowed %d successful murders.", badkills);
+			glPrint(&this->text, 10,80,str,0,.8,screenwidth,screenheight);
 		}
 	}
 }