about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/Game.h7
-rw-r--r--src/GameDraw.cpp21
-rw-r--r--src/GameInitDispose.cpp3
-rw-r--r--src/GameLoop.cpp8
-rw-r--r--src/GameTick.cpp11
-rw-r--r--src/Person.h11
6 files changed, 15 insertions, 46 deletions
diff --git a/src/Game.h b/src/Game.h
index a3b2a8c..5a0d831 100644
--- a/src/Game.h
+++ b/src/Game.h
@@ -60,10 +60,6 @@ struct Game {
 	int cityrotation[num_blocks][num_blocks];
 	int citytype[num_blocks][num_blocks];
 	int citypeoplenum[num_blocks][num_blocks];
-	bool drawn[num_blocks][num_blocks];
-	int onblockx, onblocky;
-	bool cubetest;
-	bool disttest;
 
 	bool initialized = false;
 
@@ -72,7 +68,6 @@ struct Game {
 
 	int enemystate;
 	float losedelay;
-	struct XYZ bodycoords;
 
 	Model blocks[4];
 	Model blockwalls[4];
@@ -90,7 +85,6 @@ struct Game {
 	int goodkills;
 	int badkills;
 	int civkills;
-	int machinegunsoundloop;
 
 	bool debug;
 
@@ -116,7 +110,6 @@ struct Game {
 	GLuint scopetextureptr;
 	GLuint flaretextureptr;
 
-	bool killedinnocent;
 	bool gameinprogress;
 	bool beatgame;
 	int murderer;
diff --git a/src/GameDraw.cpp b/src/GameDraw.cpp
index 5a59856..94e7e3b 100644
--- a/src/GameDraw.cpp
+++ b/src/GameDraw.cpp
@@ -479,18 +479,12 @@ void Game::DrawGLScene(void)
 		endz=(camera.position.z+viewdistance+block_spacing/2)/block_spacing+2;
 		if(endz>num_blocks-1)endz=num_blocks-1;
 
-		bool draw;
 		XYZ collpoint;
-		for(int i=beginx;i<=endx;i++){
-			for(int j=beginz;j<=endz;j++){
-				drawn[i][j]=1;
-			}
-		}
-
+		bool drawn[num_blocks][num_blocks]{};
 		if(beginx<endx&&beginz<endz)
 		for(int i=beginx;i<=endx;i++){
 			for(int j=beginz;j<=endz;j++){
-				draw=1;
+				bool draw = true;
 				//Only draw if visible
 				distsquared=((i)*block_spacing-camera.position.x)*((i)*block_spacing-camera.position.x)+((j)*block_spacing-camera.position.z)*((j)*block_spacing-camera.position.z);
 				if(distsquared>(viewdistance*viewdistance+block_spacing*block_spacing	))draw=0;
@@ -502,20 +496,21 @@ void Game::DrawGLScene(void)
 					blocks[citytype[i][j]].center.y,
 					blocks[citytype[i][j]].center.z + j * block_spacing,
 					blocks[citytype[i][j]].radius))
-				  draw = false;
-				if(draw){
+					draw = false;
+				if (draw) {
 					glPushMatrix();
 						glTranslatef(i*block_spacing,0,j*block_spacing);
 						glRotatef(cityrotation[i][j]*90,0,1,0);
 						drawModel(blocks + citytype[i][j],
 							visions ? BLACK : NULL);
 					glPopMatrix();
+					drawn[i][j] = true;
 				} else {
 					move.y=0;
 					move.x=i*block_spacing;
 					move.z=j*block_spacing;
-					if (sqrlen(move - camera.position) < 300000)
-						drawn[i][j] = 0;
+					if (sqrlen(move - camera.position) > 300000)
+						drawn[i][j] = true;
 				}
 			}
 		}
@@ -552,7 +547,7 @@ void Game::DrawGLScene(void)
 		glEnable(GL_COLOR_MATERIAL);
 		glEnable(GL_BLEND);
 		for(int i=0;i<numpeople;i++){
-			draw = true;
+			bool draw = true;
 			if (((!person[i].skeleton.free
 			      || !person[i].skeleton.broken)
 			     && !cubeInFrustum(frustum,
diff --git a/src/GameInitDispose.cpp b/src/GameInitDispose.cpp
index 1e58e77..145949d 100644
--- a/src/GameInitDispose.cpp
+++ b/src/GameInitDispose.cpp
@@ -230,8 +230,6 @@ Game* makeGame(Config config, Scores scores)
 
 	game->highscore = scores.high_score;
 	game->beatgame = scores.completed;
-	game->disttest = true;
-	game->cubetest = true;
 	setMenu(game, true);
 	return game;
 }
@@ -260,7 +258,6 @@ void initGame(Game* game)
 		bodyguard.reloads[i] = 0;
 
 	// Level setup
-	game->killedinnocent = 0; // haven't shot any civilians yet...
 	if (!game->gameinprogress)
 		game->score = 0;
 	auto& level = game->levels[game->mission];
diff --git a/src/GameLoop.cpp b/src/GameLoop.cpp
index 6123db7..3dc2bf5 100644
--- a/src/GameLoop.cpp
+++ b/src/GameLoop.cpp
@@ -119,7 +119,7 @@ void handleKey(Game* game, int key, int action, int mods)
 				alSourcef(gSourceID[game->whichsong],
 					AL_PITCH, 0.5f);
 			alSourcePlay(gSourceID[visionsound]);
-			game->bodycoords = player.oldplayercoords;
+			player.oldplayercoords = player.playercoords;
 		} else {
 			game->flashamount = 1;
 			game->flashr = game->flashg = game->flashb = 1;
@@ -129,7 +129,7 @@ void handleKey(Game* game, int key, int action, int mods)
 				alSourcef(gSourceID[game->whichsong],
 					AL_PITCH, 1.0f);
 
-			XYZ towards = player.playercoords - game->bodycoords;
+			XYZ towards = player.playercoords - player.oldplayercoords;
 			if (towards.x || towards.z) {
 				towards = normalize(towards);
 				camera.rotation = asin(towards.x) * 180.0f / M_PI;
@@ -139,9 +139,7 @@ void handleKey(Game* game, int key, int action, int mods)
 				camera.visrotation = camera.rotation;
 				camera.oldrotation = camera.rotation;
 			}
-
-			player.playercoords = game->bodycoords;
-			player.oldplayercoords = game->bodycoords;
+			player.playercoords = player.oldplayercoords;
 			player.velocity = {};
 		}
 	}
diff --git a/src/GameTick.cpp b/src/GameTick.cpp
index b0615e0..311ba9a 100644
--- a/src/GameTick.cpp
+++ b/src/GameTick.cpp
@@ -443,7 +443,8 @@ void nextLevel(Game* game)
 void checkPersonCollisions(Game* game, int k)
 {
 	auto& person = game->person[k];
-	person.oldplayercoords = person.playercoords;
+	if (k != 0 || !visions)
+		person.oldplayercoords = person.playercoords;
 	person.DoStuff(k);
 	if (person.skeleton.free)
 		return;
@@ -489,8 +490,6 @@ void checkPersonCollisions(Game* game, int k)
 
 			if (k != 0)
 				continue;
-			game->onblockx = i;
-			game->onblocky = j;
 
 			// Wall collision
 			const auto city_type = game->citytype[i][j];
@@ -512,8 +511,6 @@ void checkPersonCollisions(Game* game, int k)
 		person.onground = true;
 		person.playercoords.y = 0;
 		Splat(game, k);
-		if (k == 0)
-			game->onblockx = game->onblocky = -1;
 	}
 }
 
@@ -593,7 +590,7 @@ void spawnNpc(Game* game)
 	npc.pathtarget *= npc.pathsize;
 	npc.pathtarget.x += npc.whichblockx * block_spacing;
 	npc.pathtarget.z += npc.whichblocky * block_spacing;
-	npc.oldplayercoords =  npc.playercoords = npc.pathtarget;
+	npc.oldplayercoords = npc.playercoords = npc.pathtarget;
 
 	npc.skeleton.free = false;
 	npc.speed = 1;
@@ -956,7 +953,7 @@ void renderLaser(Game* game)
 
 void Game::Tick()
 {
-	if (person[1].health <= 0 || person[0].health <= 0 || killedinnocent)
+	if (person[1].health <= 0 || person[0].health <= 0)
 		losedelay -= multiplier / 6;
 	else
 		timeremaining -= multiplier;
diff --git a/src/Person.h b/src/Person.h
index 287d2b2..0074e8d 100644
--- a/src/Person.h
+++ b/src/Person.h
@@ -59,17 +59,6 @@ class Person
 		Skeleton skeleton;
 		Animation tempanimation;
 
-		bool freshshootkey;
-		bool freshkickkey;
-		int bufferattack;
-		int jump_key;
-		int left_key;
-		int right_key;
-		int duck_key;
-		int shoot_key;
-		int kick_key;
-		int block_key;
-
 		float speed;
 		bool aiming;
 		bool grenphase;