about 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.cpp21
1 files changed, 8 insertions, 13 deletions
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,