diff options
-rw-r--r-- | src/Game.h | 7 | ||||
-rw-r--r-- | src/GameDraw.cpp | 21 | ||||
-rw-r--r-- | src/GameInitDispose.cpp | 3 | ||||
-rw-r--r-- | src/GameLoop.cpp | 8 | ||||
-rw-r--r-- | src/GameTick.cpp | 11 | ||||
-rw-r--r-- | src/Person.h | 11 |
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; |