diff --git a/source/games/blood/src/actor.cpp b/source/games/blood/src/actor.cpp index 113fd5b09..93411a3e1 100644 --- a/source/games/blood/src/actor.cpp +++ b/source/games/blood/src/actor.cpp @@ -6616,7 +6616,7 @@ void actFireVector(DBloodActor* shooter, double offset, double zoffset, DVector3 const VECTORDATA* pVectorData = &gVectorData[vectorType]; double nRange = pVectorData->maxDist * inttoworld; // The vector for hitscan must be longer than what we got here as long as it works with integers. - int hit = VectorScan(shooter, offset, zoffset, dv * 1024, nRange, 1); + int hit = VectorScan(shooter, offset, zoffset, dv, nRange, 1); if (hit == 3) { auto hitactor = gHitInfo.actor(); diff --git a/source/games/blood/src/nnexts.cpp b/source/games/blood/src/nnexts.cpp index b579387e2..6276105a6 100644 --- a/source/games/blood/src/nnexts.cpp +++ b/source/games/blood/src/nnexts.cpp @@ -4649,12 +4649,12 @@ bool condCheckSprite(DBloodActor* aCond, int cmpOp, bool PUSH) var = HitScan(objActor, objActor->spr.pos.Z, DVector3(objActor->spr.angle.ToVector() * 1024, (!objActor->hasX()) ? 0 : objActor->dudeSlope * inttoworld), arg1, range); else if ((objActor->spr.cstat & CSTAT_SPRITE_ALIGNMENT_MASK) == CSTAT_SPRITE_ALIGNMENT_FLOOR) { - var3 = (objActor->spr.cstat & CSTAT_SPRITE_YFLIP) ? 8192 : -8192; // was 0x20000 - HitScan uses Q28.4 for dz! - var = HitScan(objActor, objActor->spr.pos.Z, DVector3(objActor->spr.angle.ToVector() * 1024, var3), arg1, range); + var3 = (objActor->spr.cstat & CSTAT_SPRITE_YFLIP) ? 8 : -8; // was 0x20000 - HitScan uses Q28.4 for dz! + var = HitScan(objActor, objActor->spr.pos.Z, DVector3(objActor->spr.angle.ToVector(), var3), arg1, range); } else { - var = HitScan(objActor, objActor->spr.pos.Z, DVector3(objActor->spr.angle.ToVector() * 1024, 0), arg1, range); + var = HitScan(objActor, objActor->spr.pos.Z, DVector3(objActor->spr.angle.ToVector(), 0), arg1, range); } if (var < 0)