diff --git a/source/games/blood/src/actor.cpp b/source/games/blood/src/actor.cpp index c41f5c39e..164940be2 100644 --- a/source/games/blood/src/actor.cpp +++ b/source/games/blood/src/actor.cpp @@ -2613,10 +2613,9 @@ int actWallBounceVector(int* x, int* y, walltype* pWall, int a4) // //--------------------------------------------------------------------------- -int actFloorBounceVector(int* x, int* y, int* z, int nSector, int a5) +int actFloorBounceVector(int* x, int* y, int* z, sectortype* pSector, int a5) { int t = 0x10000 - a5; - auto pSector = §or[nSector]; if (pSector->floorheinum == 0) { int t2 = MulScale(*z, t, 16); @@ -4695,7 +4694,7 @@ static Collision MoveThing(DBloodActor* actor) { pSprite->flags |= 4; - int vax = actFloorBounceVector(&actor->xvel, &actor->yvel, (int*)&v20, pSprite->sectnum, pThingInfo->elastic); + int vax = actFloorBounceVector(&actor->xvel, &actor->yvel, (int*)&v20, pSprite->sector(), pThingInfo->elastic); int nDamage = MulScale(vax, vax, 30) - pThingInfo->dmgResist; if (nDamage > 0) actDamageSprite(actor, actor, kDamageFall, nDamage); @@ -5187,7 +5186,7 @@ void MoveDude(DBloodActor* actor) int v30 = actor->zvel - pSprite->sector()->velFloor; if (v30 > 0) { - int vax = actFloorBounceVector((int*)&actor->xvel, (int*)&actor->yvel, (int*)&v30, pSprite->sectnum, 0); + int vax = actFloorBounceVector((int*)&actor->xvel, (int*)&actor->yvel, (int*)&v30, pSprite->sector(), 0); int nDamage = MulScale(vax, vax, 30); if (pPlayer) { diff --git a/source/games/blood/src/actor.h b/source/games/blood/src/actor.h index f176251bc..bdbf7ae0e 100644 --- a/source/games/blood/src/actor.h +++ b/source/games/blood/src/actor.h @@ -214,7 +214,7 @@ bool IsUnderwaterSector(sectortype* pSector); void actInit(); int actWallBounceVector(int *x, int *y, walltype* pWall, int a4); int actFloorBounceVector(int *x, int *y, int *z, int nSector, int a5); -void actRadiusDamage(DBloodActor* source, int x, int y, int z, int nSector, int nDist, int a7, int a8, DAMAGE_TYPE a9, int a10, int a11); +void actRadiusDamage(DBloodActor* source, int x, int y, int z, sectortype* pSector, int nDist, int a7, int a8, DAMAGE_TYPE a9, int a10, int a11); DBloodActor *actDropObject(DBloodActor *pSprite, int nType); bool actHealDude(DBloodActor* pXDude, int a2, int a3); void actKillDude(DBloodActor* a1, DBloodActor* pSprite, DAMAGE_TYPE a3, int a4); diff --git a/source/games/blood/src/callback.cpp b/source/games/blood/src/callback.cpp index ee6d35b0d..dd35a3f78 100644 --- a/source/games/blood/src/callback.cpp +++ b/source/games/blood/src/callback.cpp @@ -449,7 +449,7 @@ void fxBouncingSleeve(DBloodActor* actor, int) // 16 if (actor->zvel == 0) sleeveStopBouncing(actor); else if (zv > 0) { - actFloorBounceVector((int*)& actor->xvel, (int*)& actor->yvel, &zv, pSprite->sectnum, 0x9000); + actFloorBounceVector((int*)& actor->xvel, (int*)& actor->yvel, &zv, pSprite->sector(), 0x9000); actor->zvel = zv; if (pSprite->sector()->velFloor == 0 && abs(actor->zvel) < 0x20000) { sleeveStopBouncing(actor); diff --git a/source/games/blood/src/nnexts.cpp b/source/games/blood/src/nnexts.cpp index 746433254..8fc40593f 100644 --- a/source/games/blood/src/nnexts.cpp +++ b/source/games/blood/src/nnexts.cpp @@ -1819,7 +1819,7 @@ void debrisMove(int listIndex) if (v30 > 0) { pXSprite->physAttr |= kPhysFalling; - actFloorBounceVector(&actor->xvel, &actor->yvel, &v30, pSprite->sectnum, tmpFraction); + actFloorBounceVector(&actor->xvel, &actor->yvel, &v30, pSprite->sector(), tmpFraction); actor->zvel = v30; if (abs(actor->zvel) < 0x10000) diff --git a/source/games/blood/src/prediction.cpp b/source/games/blood/src/prediction.cpp index c75df1b91..fb77e1c89 100644 --- a/source/games/blood/src/prediction.cpp +++ b/source/games/blood/src/prediction.cpp @@ -509,7 +509,7 @@ static void fakeMoveDude(spritetype *pSprite) int var44 = predict.zvel-predict.sector()->velFloor; if (var44 > 0) { - actFloorBounceVector(&predict.xvel, &predict.yvel, &var44, predict.sectnum, 0); + actFloorBounceVector(&predict.xvel, &predict.yvel, &var44, predict.sector, 0); predict.zvel = var44; if (abs(predict.zvel) < 0x10000) {