diff --git a/source/games/blood/src/aibeast.cpp b/source/games/blood/src/aibeast.cpp
index f6a2da5f2..5338c65d3 100644
--- a/source/games/blood/src/aibeast.cpp
+++ b/source/games/blood/src/aibeast.cpp
@@ -239,7 +239,7 @@ static void beastThinkChase(DBloodActor* actor)
 			if (nDist < pDudeInfo->SeeDist() && nDeltaAngle <= pDudeInfo->Periphery())
 			{
 				aiSetTarget(actor, actor->GetTarget());
-				actor->dudeSlope = nDist == 0 ? 0 : int(target->spr.pos.Z - actor->spr.pos.Z / nDist) * 16384;
+				actor->_dudeSlope = nDist == 0 ? 0 : int(target->spr.pos.Z - actor->spr.pos.Z / nDist) * 16384;
 				if (nDist < 0x140 && nDist > 0xa0 && nDeltaAngle < DAngle15 && (target->spr.flags & 2)
 					&& target->IsPlayerActor() && Chance(0x8000))
 				{
diff --git a/source/games/blood/src/aicaleb.cpp b/source/games/blood/src/aicaleb.cpp
index bf6962c8d..2e7d92cfa 100644
--- a/source/games/blood/src/aicaleb.cpp
+++ b/source/games/blood/src/aicaleb.cpp
@@ -59,7 +59,7 @@ AISTATE tinycaleb139698 = { kAiStateOther, 8, -1, 120, NULL, aiMoveTurn, NULL, &
 
 void SeqAttackCallback(int, DBloodActor* actor)
 {
-	DVector3 vect(actor->spr.angle.ToVector(), actor->dudeSlope / 16384.);
+	DVector3 vect(actor->spr.angle.ToVector(), actor->_dudeSlope / 16384.);
 	vect.X += Random2F(1500, 4);
 	vect.Y += Random2F(1500, 4);
 	vect.Z += Random2F(1500, 8);
@@ -158,7 +158,7 @@ static void calebThinkChase(DBloodActor* actor)
 			if (nDist < pDudeInfo->SeeDist() && nDeltaAngle <= pDudeInfo->Periphery())
 			{
 				aiSetTarget(actor, actor->GetTarget());
-				actor->dudeSlope = nDist == 0 ? 0 : target->spr.pos.Z - actor->spr.pos.Z / nDist * 16384;
+				actor->_dudeSlope = nDist == 0 ? 0 : target->spr.pos.Z - actor->spr.pos.Z / nDist * 16384;
 				if (nDist < 89.5625 && abs(nDeltaAngle) < DAngle1 * 5)
 				{
 					int hit = HitScan(actor, actor->spr.pos.Z, DVector3(dvec, 0), CLIPMASK1, 0);
diff --git a/source/games/blood/src/aicerber.cpp b/source/games/blood/src/aicerber.cpp
index 3cac27edc..acc00f931 100644
--- a/source/games/blood/src/aicerber.cpp
+++ b/source/games/blood/src/aicerber.cpp
@@ -84,7 +84,7 @@ void cerberusBurnSeqCallback(int, DBloodActor* actor)
 	DVector3 pos(actor->spr.pos.XY(), height);
 	//auto pos = actor->spr.pos.plusZ(height); //  what it probably should be
 
-	DVector3 Aim(actor->spr.angle.ToVector(), actor->dudeSlope / 16384.);
+	DVector3 Aim(actor->spr.angle.ToVector(), actor->_dudeSlope / 16384.);
 	double nClosest = 0x7fffffff;
 	BloodStatIterator it(kStatDude);
 	while (auto actor2 = it.Next())
@@ -100,7 +100,7 @@ void cerberusBurnSeqCallback(int, DBloodActor* actor)
 		
 		DVector3 tvec = pos;
 		tvec.XY() += actor->spr.angle.ToVector() * nDist;
-		tvec.Z += actor->dudeSlope / 16384. * nDist;
+		tvec.Z += actor->_dudeSlope / 16384. * nDist;
 		double tsr = nDist * 9.23828125;
 		double top, bottom;
 		GetActorExtents(actor2, &top, &bottom);
@@ -145,7 +145,7 @@ void cerberusBurnSeqCallback2(int, DBloodActor* actor)
 	DVector3 pos(actor->spr.pos.XY(), height);
 	//auto pos = actor->spr.pos.plusZ(height); //  what it probably should be
 
-	DVector3 Aim(actor->spr.angle.ToVector(), actor->dudeSlope / 16384.);
+	DVector3 Aim(actor->spr.angle.ToVector(), actor->_dudeSlope / 16384.);
 	DVector3 Aim2(Aim.XY(), 0);
 
 	double nClosest = 0x7fffffff;
@@ -165,7 +165,7 @@ void cerberusBurnSeqCallback2(int, DBloodActor* actor)
 
 		DVector3 tvec = pos;
 		tvec.XY() += actor->spr.angle.ToVector() * nDist;
-		tvec.Z += actor->dudeSlope / 16384. * nDist;
+		tvec.Z += actor->_dudeSlope / 16384. * nDist;
 
 		double tsr = nDist * 9.23828125;
 		double top, bottom;
diff --git a/source/games/blood/src/aicult.cpp b/source/games/blood/src/aicult.cpp
index f0addbfe1..fc01b0a24 100644
--- a/source/games/blood/src/aicult.cpp
+++ b/source/games/blood/src/aicult.cpp
@@ -75,7 +75,7 @@ AISTATE cultistSwimRecoil = { kAiStateRecoil, 5, -1, 0, NULL, NULL, NULL, &culti
 
 void TommySeqCallback(int, DBloodActor* actor)
 {
-	DVector3 vect(actor->spr.angle.ToVector(), actor->dudeSlope / 16384);
+	DVector3 vect(actor->spr.angle.ToVector(), actor->_dudeSlope / 16384);
 	vect.X += Random3F((5 - gGameOptions.nDifficulty) * 1000, 14);
 	vect.Y += Random3F((5 - gGameOptions.nDifficulty) * 1000, 14);
 	vect.Z += Random3F((5 - gGameOptions.nDifficulty) * 500, 14);
@@ -87,7 +87,7 @@ void TeslaSeqCallback(int, DBloodActor* actor)
 {
 	if (Chance(gCultTeslaFireChance[gGameOptions.nDifficulty]))
 	{
-		DVector3 vect(actor->spr.angle.ToVector(), actor->dudeSlope / 16384);
+		DVector3 vect(actor->spr.angle.ToVector(), actor->_dudeSlope / 16384);
 		vect.X += Random3F((5 - gGameOptions.nDifficulty) * 1000, 14);
 		vect.Y += Random3F((5 - gGameOptions.nDifficulty) * 1000, 14);
 		vect.Z += Random3F((5 - gGameOptions.nDifficulty) * 500, 14);
@@ -98,7 +98,7 @@ void TeslaSeqCallback(int, DBloodActor* actor)
 
 void ShotSeqCallback(int, DBloodActor* actor)
 {
-	DVector3 vect(actor->spr.angle.ToVector(), actor->dudeSlope / 16384);
+	DVector3 vect(actor->spr.angle.ToVector(), actor->_dudeSlope / 16384);
 	vect.X += Random3F((5 - gGameOptions.nDifficulty) * 1000, 14);
 	vect.Y += Random3F((5 - gGameOptions.nDifficulty) * 1000, 14);
 	vect.Z += Random3F((5 - gGameOptions.nDifficulty) * 500, 14);
@@ -143,7 +143,7 @@ void cultThrowSeqCallback2(int, DBloodActor* actor)
 	if (gGameOptions.nDifficulty > 2)
 		nMissile = kThingArmedTNTBundle;
 	sfxPlay3DSound(actor, 455, -1, 0);
-	auto pMissile = actFireThing(actor, 0, 0, actor->dudeSlope - 9460, nMissile, 0x133333);
+	auto pMissile = actFireThing(actor, 0, 0, actor->_dudeSlope - 9460, nMissile, 0x133333);
 	evPostActor(pMissile, 120 * (2 + Random(2)), kCmdOn, actor);
 }
 
@@ -270,7 +270,7 @@ static void cultThinkChase(DBloodActor* actor)
 			if (nDist < pDudeInfo->SeeDist() && nDeltaAngle <= pDudeInfo->Periphery())
 			{
 				aiSetTarget(actor, actor->GetTarget());
-				actor->dudeSlope = nDist == 0 ? 0 : (target->spr.pos.Z - actor->spr.pos.Z) / nDist * 16384;
+				actor->_dudeSlope = nDist == 0 ? 0 : (target->spr.pos.Z - actor->spr.pos.Z) / nDist * 16384;
 				switch (actor->spr.type) 
 				{
 				case kDudeCultistTommy:
diff --git a/source/games/blood/src/aigarg.cpp b/source/games/blood/src/aigarg.cpp
index c4fe049e3..856882032 100644
--- a/source/games/blood/src/aigarg.cpp
+++ b/source/games/blood/src/aigarg.cpp
@@ -96,7 +96,7 @@ void SlashFSeqCallback(int, DBloodActor* actor)
 
 void ThrowFSeqCallback(int, DBloodActor* actor)
 {
-	actFireThing(actor, 0, 0, actor->dudeSlope - 7500, kThingBone, 0xeeeee);
+	actFireThing(actor, 0, 0, actor->_dudeSlope - 7500, kThingBone, 0xeeeee);
 }
 
 void BlastSSeqCallback(int, DBloodActor* actor)
@@ -107,7 +107,7 @@ void BlastSSeqCallback(int, DBloodActor* actor)
 	double height = (actor->spr.yrepeat * getDudeInfo(actor->spr.type)->eyeHeight) * REPEAT_SCALE;
 	DVector3 pos(actor->spr.pos.XY(), height);
 
-	DVector3 Aim(actor->spr.angle.ToVector(), actor->dudeSlope / 16384.);
+	DVector3 Aim(actor->spr.angle.ToVector(), actor->_dudeSlope / 16384.);
 	double nClosest = 0x7fffffff;
 
 	BloodStatIterator it(kStatDude);
@@ -125,7 +125,7 @@ void BlastSSeqCallback(int, DBloodActor* actor)
 
 		DVector3 tvec = pos;
 		tvec.XY() += actor->spr.angle.ToVector() * nDist;
-		tvec.Z += actor->dudeSlope / 16384. * nDist;
+		tvec.Z += actor->_dudeSlope / 16384. * nDist;
 
 		double tsr = nDist * 9.23828125;
 		double top, bottom;
@@ -169,7 +169,7 @@ void BlastSSeqCallback(int, DBloodActor* actor)
 
 void ThrowSSeqCallback(int, DBloodActor* actor)
 {
-	actFireThing(actor, 0., 0., actor->dudeSlope / 16384. * 0.25 - 0.11444, kThingBone, Chance(0x6000) ? 19.2 : 17.066666);
+	actFireThing(actor, 0., 0., actor->_dudeSlope / 16384. * 0.25 - 0.11444, kThingBone, Chance(0x6000) ? 19.2 : 17.066666);
 }
 
 static void gargThinkTarget(DBloodActor* actor)
diff --git a/source/games/blood/src/aighost.cpp b/source/games/blood/src/aighost.cpp
index 129adf4bd..397d942a0 100644
--- a/source/games/blood/src/aighost.cpp
+++ b/source/games/blood/src/aighost.cpp
@@ -82,7 +82,7 @@ void ghostSlashSeqCallback(int, DBloodActor* actor)
 
 void ghostThrowSeqCallback(int, DBloodActor* actor)
 {
-	actFireThing(actor, 0., 0., actor->dudeSlope / 16384. * 0.25 - 0.11444, kThingBone, 14.93333);
+	actFireThing(actor, 0., 0., actor->_dudeSlope / 16384. * 0.25 - 0.11444, kThingBone, 14.93333);
 }
 
 // This functions seems to be identical with BlastSSeqCallback except for the spawn calls at the end.
@@ -94,7 +94,7 @@ void ghostBlastSeqCallback(int, DBloodActor* actor)
 	double height = (actor->spr.yrepeat * getDudeInfo(actor->spr.type)->eyeHeight) * REPEAT_SCALE;
 	DVector3 pos(actor->spr.pos.XY(), height);
 
-	DVector3 Aim(actor->spr.angle.ToVector(), actor->dudeSlope / 16384.);
+	DVector3 Aim(actor->spr.angle.ToVector(), actor->_dudeSlope / 16384.);
 	double nClosest = 0x7fffffff;
 
 	BloodStatIterator it(kStatDude);
@@ -112,7 +112,7 @@ void ghostBlastSeqCallback(int, DBloodActor* actor)
 
 		DVector3 tvec = pos;
 		tvec.XY() += actor->spr.angle.ToVector() * nDist;
-		tvec.Z += actor->dudeSlope / 16384. * nDist;
+		tvec.Z += actor->_dudeSlope / 16384. * nDist;
 
 		double tsr = nDist * 9.23828125;
 		double top, bottom;
diff --git a/source/games/blood/src/aigilbst.cpp b/source/games/blood/src/aigilbst.cpp
index 94b2c5f89..7090586f8 100644
--- a/source/games/blood/src/aigilbst.cpp
+++ b/source/games/blood/src/aigilbst.cpp
@@ -143,7 +143,7 @@ static void gillThinkChase(DBloodActor* actor)
 			if (nDist < pDudeInfo->SeeDist() && nDeltaAngle <= pDudeInfo->Periphery())
 			{
 				aiSetTarget(actor, actor->GetTarget());
-				actor->dudeSlope = nDist == 0 ? 0 : (target->spr.pos.Z - actor->spr.pos.Z) / nDist * 16384;
+				actor->_dudeSlope = nDist == 0 ? 0 : (target->spr.pos.Z - actor->spr.pos.Z) / nDist * 16384;
 				if (nDist < 57.5625 && abs(nDeltaAngle) < DAngle1 * 5)
 				{
 					int hit = HitScan(actor, actor->spr.pos.Z, DVector3(dv, 0), CLIPMASK1, 0);
diff --git a/source/games/blood/src/aitchern.cpp b/source/games/blood/src/aitchern.cpp
index 36e5b3785..a56b3b1f3 100644
--- a/source/games/blood/src/aitchern.cpp
+++ b/source/games/blood/src/aitchern.cpp
@@ -65,7 +65,7 @@ void tchernobogBurnSeqCallback(int, DBloodActor* actor)
 	if (!actor->ValidateTarget(__FUNCTION__)) return;
 	DVector3 pos(actor->spr.pos.XY(), height);
 
-	DVector3 Aim(actor->spr.angle.ToVector(), actor->dudeSlope / 16384.);
+	DVector3 Aim(actor->spr.angle.ToVector(), actor->_dudeSlope / 16384.);
 	double nClosest = 0x7fffffff;
 
 	BloodStatIterator it(kStatDude);
@@ -83,7 +83,7 @@ void tchernobogBurnSeqCallback(int, DBloodActor* actor)
 
 		DVector3 tvec = pos;
 		tvec.XY() += actor->spr.angle.ToVector() * nDist;
-		tvec.Z += actor->dudeSlope / 16384. * nDist;
+		tvec.Z += actor->_dudeSlope / 16384. * nDist;
 
 		double tsr = nDist * 9.23828125;
 		double top, bottom;
@@ -123,7 +123,7 @@ void tchernobogBurnSeqCallback2(int, DBloodActor* actor)
 	double height = actor->spr.yrepeat * pDudeInfo->eyeHeight * REPEAT_SCALE * 0.25;
 	
 	DVector3 pos(actor->spr.pos.XY(), height);
-	DVector3 Aim(actor->spr.angle.ToVector(), -actor->dudeSlope / 16384.);
+	DVector3 Aim(actor->spr.angle.ToVector(), -actor->_dudeSlope / 16384.);
 	DVector3 Aim2(Aim.XY(), 0);
 	double nClosest = 0x7fffffff;
 
@@ -139,7 +139,7 @@ void tchernobogBurnSeqCallback2(int, DBloodActor* actor)
 
 		DVector3 tvec = pos;
 		tvec.XY() += actor->spr.angle.ToVector() * nDist;
-		tvec.Z += actor->dudeSlope / 16384. * nDist;
+		tvec.Z += actor->_dudeSlope / 16384. * nDist;
 
 		double tsr = nDist * 9.23828125;
 		double top, bottom;
diff --git a/source/games/blood/src/aiunicult.cpp b/source/games/blood/src/aiunicult.cpp
index e3d63c724..ce1f0bad5 100644
--- a/source/games/blood/src/aiunicult.cpp
+++ b/source/games/blood/src/aiunicult.cpp
@@ -152,12 +152,12 @@ static bool genDudeAdjustSlope(DBloodActor* actor, int dist, int weaponType, int
 		{
 			if (weaponType == kGenDudeWeaponHitscan)
 			{
-				actor->dudeSlope = fStart - ((fStart - fEnd) >> 2);
+				actor->_dudeSlope = fStart - ((fStart - fEnd) >> 2);
 			}
 			else if (weaponType == kGenDudeWeaponMissile)
 			{
 				const MissileType* pMissile = &missileInfo[pExtra->curWeapon - kMissileBase];
-				actor->dudeSlope = (fStart - ((fStart - fEnd) >> 2)) - (pMissile->clipDist << 1);
+				actor->_dudeSlope = (fStart - ((fStart - fEnd) >> 2)) - (pMissile->clipDist << 1);
 			}
 			return true;
 		}
@@ -225,7 +225,7 @@ void genDudeAttack1(int, DBloodActor* actor)
 
 	if (pExtra->weaponType == kGenDudeWeaponHitscan)
 	{
-		dv = DVector3(actor->spr.angle.ToVector(), actor->dudeSlope / 16384.);
+		dv = DVector3(actor->spr.angle.ToVector(), actor->_dudeSlope / 16384.);
 		// dispersal modifiers here in case if non-melee enemy
 		if (!dudeIsMelee(actor))
 		{
@@ -264,7 +264,7 @@ void genDudeAttack1(int, DBloodActor* actor)
 	}
 	else if (pExtra->weaponType == kGenDudeWeaponMissile)
 	{
-		dv = DVector3(actor->spr.angle.ToVector(), actor->dudeSlope / 16384.);
+		dv = DVector3(actor->spr.angle.ToVector(), actor->_dudeSlope / 16384.);
 
 		// dispersal modifiers here
 		dv.X += Random3F(dispersion, 14);
@@ -529,7 +529,7 @@ static void unicultThinkChase(DBloodActor* actor)
 		if ((PlayClock & 64) == 0 && Chance(0x3000) && !spriteIsUnderwater(actor, false))
 			playGenDudeSound(actor, kGenDudeSndChasing);
 
-		actor->dudeSlope = dist == 0 ? 0 : target->spr.pos.Z - actor->spr.pos.Z / dist * 16384;
+		actor->_dudeSlope = dist == 0 ? 0 : target->spr.pos.Z - actor->spr.pos.Z / dist * 16384;
 
 		int curWeapon = actor->genDudeExtra.curWeapon;
 		int weaponType = actor->genDudeExtra.weaponType;
@@ -746,9 +746,9 @@ static void unicultThinkChase(DBloodActor* actor)
 					double targetDist = -1; 
 					int hit = -1;
 					if (weaponType == kGenDudeWeaponHitscan)
-						hit = HitScan(actor, actor->spr.pos.Z, DVector3(actor->spr.angle.ToVector(), actor->dudeSlope / 16384.), CLIPMASK1, dist);
+						hit = HitScan(actor, actor->spr.pos.Z, DVector3(actor->spr.angle.ToVector(), actor->_dudeSlope / 16384.), CLIPMASK1, dist);
 					else if (weaponType == kGenDudeWeaponMissile)
-						hit = HitScan(actor, actor->spr.pos.Z, DVector3(actor->spr.angle.ToVector(), actor->dudeSlope / 16384.), CLIPMASK0, dist);
+						hit = HitScan(actor, actor->spr.pos.Z, DVector3(actor->spr.angle.ToVector(), actor->_dudeSlope / 16384.), CLIPMASK0, dist);
 
 					if (hit >= 0)
 					{
@@ -861,7 +861,7 @@ static void unicultThinkChase(DBloodActor* actor)
 							else if (weaponType == kGenDudeWeaponHitscan && hscn)
 							{
 								if (genDudeAdjustSlope(actor, dist * worldtoint, weaponType)) break;
-								VectorScan(actor, 0, 0, DVector3(actor->spr.angle.ToVector(), actor->dudeSlope / 16384.), dist, 1);
+								VectorScan(actor, 0, 0, DVector3(actor->spr.angle.ToVector(), actor->_dudeSlope / 16384.), dist, 1);
 								if (actor == gHitInfo.actor()) break;
 
 								bool immune = nnExtIsImmune(hitactor, gVectorData[curWeapon].dmgType);
@@ -922,7 +922,7 @@ static void unicultThinkChase(DBloodActor* actor)
 							if (hit == 4 && weaponType == kGenDudeWeaponHitscan && hscn)
 							{
 								bool masked = (pHWall->cstat & CSTAT_WALL_MASKED);
-								if (masked) VectorScan(actor, 0, 0, DVector3(actor->spr.angle.ToVector(), actor->dudeSlope / 16384.), dist, 1);
+								if (masked) VectorScan(actor, 0, 0, DVector3(actor->spr.angle.ToVector(), actor->_dudeSlope / 16384.), dist, 1);
 
 								if ((actor != gHitInfo.actor()) && (pHWall->type != kWallGib || !masked || pXHWall == NULL || !pXHWall->triggerVector || pXHWall->locked))
 								{
diff --git a/source/games/blood/src/bloodactor.h b/source/games/blood/src/bloodactor.h
index 1e8ac41c8..17877a9be 100644
--- a/source/games/blood/src/bloodactor.h
+++ b/source/games/blood/src/bloodactor.h
@@ -18,7 +18,7 @@ class DBloodActor : public DCoreActor
 	HAS_OBJECT_POINTERS
 
 public:
-	int dudeSlope; // Q18.14 format
+	int _dudeSlope; // Q18.14 format
 	bool hasx;
 	XSPRITE xspr;
 	SPRITEHIT hit;
diff --git a/source/games/blood/src/loadsave.cpp b/source/games/blood/src/loadsave.cpp
index 814166a40..c8951abdd 100644
--- a/source/games/blood/src/loadsave.cpp
+++ b/source/games/blood/src/loadsave.cpp
@@ -479,7 +479,7 @@ void DBloodActor::Serialize(FSerializer& arc)
 	if (hasX())
 	{
 		arc("xsprite", xspr)
-			("dudeslope", dudeSlope)
+			("dudeslope", _dudeSlope)
 			("dudeextra", dudeExtra)
 			("explosionflag", explosionhackflag)
 			("spritehit", hit)
diff --git a/source/games/blood/src/nnexts.cpp b/source/games/blood/src/nnexts.cpp
index 6276105a6..47312a24a 100644
--- a/source/games/blood/src/nnexts.cpp
+++ b/source/games/blood/src/nnexts.cpp
@@ -4646,7 +4646,7 @@ bool condCheckSprite(DBloodActor* aCond, int cmpOp, bool PUSH)
 			if ((pPlayer = getPlayerById(objActor->spr.type)) != NULL)
 				var = HitScan_(objActor, pPlayer->zWeapon, pPlayer->aim.dx, pPlayer->aim.dy, pPlayer->aim.dz, arg1, arg3 << 1);
 			else if (objActor->IsDudeActor())
-				var = HitScan(objActor, objActor->spr.pos.Z, DVector3(objActor->spr.angle.ToVector() * 1024, (!objActor->hasX()) ? 0 : objActor->dudeSlope * inttoworld), arg1, range);
+				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) ? 8 : -8; // was 0x20000 - HitScan uses Q28.4 for dz!
diff --git a/source/games/blood/src/player.h b/source/games/blood/src/player.h
index ad7a4c31d..9c78ae502 100644
--- a/source/games/blood/src/player.h
+++ b/source/games/blood/src/player.h
@@ -114,7 +114,7 @@ struct PLAYER
 	double              ozWeapon;
 	double              zWeaponVel;
 	double              slope;
-	int int_slope() const { return slope * 16384; }
+	[[deprecated]] int int_slope() const { return slope * 16384; }
 	bool                isUnderwater;
 	bool                hasKey[8];
 	int8_t              hasFlag;