diff options
Diffstat (limited to 'src/GameTick.cpp')
-rw-r--r-- | src/GameTick.cpp | 28 |
1 files changed, 9 insertions, 19 deletions
diff --git a/src/GameTick.cpp b/src/GameTick.cpp index 311ba9a..68fe508 100644 --- a/src/GameTick.cpp +++ b/src/GameTick.cpp @@ -23,6 +23,7 @@ // along with Black Shades. If not, see <https://www.gnu.org/licenses/>. #include <algorithm> +#include <cassert> #include "Game.h" #include "misc.h" @@ -41,7 +42,6 @@ extern float snowdelay; extern float precipitationdensity; extern float soundscalefactor; extern int slomo; -extern Decals decals; #define maxfallvel 40 @@ -722,18 +722,9 @@ void bleed(Game* game, size_t i) XYZ move {(float) x * block_spacing, 0.0f, (float) y * block_spacing, }; auto whichtri = segCrossModelTrans(overpoint, underpoint, &game->sidewalkcollide, move, rot, &loc); - - XYZ normish {0.0f, 1.0f, 0.0f}; - if (whichtri >= 0) { - addDecal(&decals, BLOOD_POOL, loc, 12, normish, - whichtri, &game->sidewalkcollide, move, rot); - } else { - loc = person.skeleton.joints[abdomen].position; - loc.y = -0.5f; - move = {0.0f}; - addDecal(&decals, BLOOD_POOL, loc, 12, normish, - 0, &game->sidewalkcollide, move, 0); - } + assert(whichtri >= 0); + addDecal(game->decals, BLOOD_POOL, loc, 12, {0.0f, 1.0f, 0.0f}, + whichtri, &game->sidewalkcollide, move, rot); person.firstlongdead = true; return; } @@ -974,7 +965,6 @@ void Game::Tick() spawnNpc(this); sprites.DoStuff(); - updateDecals(&decals); // Facing XYZ facing {0, 0, -1}; @@ -1739,7 +1729,7 @@ void Game::Tick() hitNorm = {0.0f, 1.0f, 0.0f}; hit_terrain: whichhit = -1; - addDecal(&decals, BULLET_HOLE, wallhit, 0.7f, + addDecal(this->decals, BULLET_HOLE, wallhit, 0.7f, hitNorm, whichtri, model, move, hitRot); const auto& velocity = hitNorm * 3; switch (person[j].whichgun) { @@ -2096,7 +2086,7 @@ hit_terrain: const auto& normalrotated = rotate(blocks[citytype[wherex][wherey]].faces[whichtri][0].normal, 0, cityrotation[wherex][wherey] * 90, 0); if (sprites.size[i] > 1) - addDecal(&decals, CRATER, wallhit, 9.0f, + addDecal(this->decals, CRATER, wallhit, 9.0f, normalrotated, whichtri, &blocks[citytype[wherex][wherey]], move, cityrotation[wherex][wherey] * 90); @@ -2132,7 +2122,7 @@ hit_terrain: move = {}; sprites.location[i].y=-.5; XYZ normish = {0.0f, 1.0f, 0.0f}; - addDecal(&decals, CRATER, sprites.location[i], 9.0f, + addDecal(this->decals, CRATER, sprites.location[i], 9.0f, normish, 0, blocks + citytype[wherex][wherey], move, 0); } @@ -2257,14 +2247,14 @@ hit_terrain: move, cityrotation[wherex][wherey] * 90, &temp); XYZ normish = {0.0f, 1.0f, 0.0f}; if (whichtri > -1) { - addDecal(&decals, CRATER, sprites.location[i], 9.0f, + addDecal(this->decals, CRATER, sprites.location[i], 9.0f, normish, 0, &sidewalkcollide, move, cityrotation[wherex][wherey]*90); } else { temp = sprites.location[i]; temp.y = -0.5f; move = {0.0f}; - addDecal(&decals, CRATER, sprites.location[i], 9.0f, + addDecal(this->decals, CRATER, sprites.location[i], 9.0f, normish, 0, &sidewalkcollide, move, 0); } |