diff options
| author | Nguyễn Gia Phong <cnx@loang.net> | 2023-08-25 04:06:49 +0900 |
|---|---|---|
| committer | Nguyễn Gia Phong <cnx@loang.net> | 2023-08-25 04:11:13 +0900 |
| commit | 371906f5fb958691a8bfce85c28eb4dfaf63559c (patch) | |
| tree | c5c2d42600045cc080a18eb6488992974dbc5313 /src/GameTick.cpp | |
| parent | d08aaf50515cf3fcf03e6523976258b02f6b2e95 (diff) | |
| download | blackshades-371906f5fb958691a8bfce85c28eb4dfaf63559c.tar.gz | |
Hide laser sight in psychic visions
Fixes: 2c44d2e60bb8 ("Make laser always and only availble in 3rd person")
Diffstat (limited to 'src/GameTick.cpp')
| -rw-r--r-- | src/GameTick.cpp | 30 |
1 files changed, 18 insertions, 12 deletions
diff --git a/src/GameTick.cpp b/src/GameTick.cpp index e71d8dd..b628637 100644 --- a/src/GameTick.cpp +++ b/src/GameTick.cpp @@ -609,6 +609,7 @@ void spawnNpc(Game* game) npc.speedmult = 1.0f + 0.3f * game->difficulty; npc.targetanimation = walkanim; break; + default: break; } npc.pathnum = -1; @@ -845,6 +846,7 @@ void recoil(Game* game, size_t i) break; } break; + default: break; } if (person.recoil < 0) person.recoil = 0; @@ -896,7 +898,7 @@ void controlZombie(Game* game, size_t i) void renderLaser(Game* game) { auto& player = game->person[0]; - if (!player.aiming) + if (visions || !player.aiming) return; switch (player.currentanimation) { case walkanim: @@ -1520,7 +1522,9 @@ void Game::Tick() person[i].averageloc /= max_joints; person[i].playercoords=person[i].averageloc; - if(person[i].longdead<multiplier/2&&person[i].longdead>0)person[i].DrawSkeleton(i); + if (person[i].longdead < multiplier * 0.5f + && person[i].longdead > 0) + person[i].drawSkeleton(); if (sqrlen(person[i].averageloc - person[i].oldaverageloc) < 0.2 * multiplier) person[i].longdead -= multiplier / 2; } @@ -1640,7 +1644,7 @@ void Game::Tick() XYZ aim; if (j) aim = aimBot(this, j); - else if (!zoom) + else if (!this->zoom) aim = aimPlayer(this); else aim = facing; @@ -2154,9 +2158,10 @@ void Game::Tick() if(person[j].whichgun==shotgun&&p==numshots-1)sprites.MakeSprite(smokesprite, .4, 1, 1, 1, start+aim*1.5, velocity, 5); - if(person[j].whichgun==sniperrifle&&!zoom)sprites.MakeSprite(smokesprite, .3, 1, 1, 1, start+aim*2.2, velocity, 4); - - if(j!=0||zoom==0)sprites.MakeSprite(bullet, .07, 1, 1, .7, lastshot[0]+aim*1, lastshot[1], .2); + if (person[j].whichgun == sniperrifle && !this->zoom) + sprites.MakeSprite(smokesprite, 0.3f, 1, 1, 1.0f, start + aim * 2.2f, velocity, 4.0f); + if (j != 0 || !this->zoom) + sprites.MakeSprite(bullet, 0.07f, 1, 1, 0.7f, lastshot[0] +aim, lastshot[1], 0.2f); // Nearby bullet whoosh XYZ* a = &lastshot[0]; @@ -2188,7 +2193,7 @@ void Game::Tick() } } - if (thirdperson && !zoom) + if (thirdperson && !this->zoom) renderLaser(this); //Snow @@ -2476,12 +2481,13 @@ void Game::Tick() camerashake-=multiplier; if(camerashake<0)camerashake=0; - //camera position + // camera position XYZ average; - - if(!zoom)average=person[0].skeleton.joints[head].position*(person[0].aimamount/2+.5)+person[0].skeleton.joints[neck].position*((1-person[0].aimamount)/2); - - if(zoom)average=person[0].skeleton.joints[righthand].position; + if (this->zoom) + average = person[0].skeleton.joints[righthand].position; + else + average = person[0].skeleton.joints[head].position * (0.5f + person[0].aimamount * 0.5f) + + person[0].skeleton.joints[neck].position * (0.5f - person[0].aimamount * 0.5f); if(person[0].skeleton.free==0&&thirdperson!=2)camera.position=person[0].playercoords+rotate(average,0,person[0].playerrotation,0); |
