mirror of
https://github.com/DrBeef/Raze.git
synced 2025-02-21 03:01:36 +00:00
- convert all set/add_int_x/yvel calls
This commit is contained in:
parent
39d8591ffc
commit
47ad4fccdc
13 changed files with 44 additions and 171 deletions
|
@ -149,16 +149,6 @@ public:
|
|||
return vel.Y * worldtoint;
|
||||
}
|
||||
|
||||
void set_int_yvel(int v)
|
||||
{
|
||||
vel.Y = v * inttoworld;
|
||||
}
|
||||
|
||||
void add_int_yvel(int v)
|
||||
{
|
||||
vel.Y += v * inttoworld;
|
||||
}
|
||||
|
||||
vec3_t int_vel() const
|
||||
{
|
||||
return vec3_t(FloatToFixed(vel.X), FloatToFixed(vel.Y), FloatToFixed(vel.Z));
|
||||
|
|
|
@ -207,7 +207,6 @@ extern Collision hiHit;
|
|||
extern TObjPtr<DExhumedActor*> nChunkSprite[];
|
||||
extern TObjPtr<DExhumedActor*> nBodySprite[];
|
||||
|
||||
signed int lsqrt(int a1);
|
||||
void MoveThings();
|
||||
void ResetMoveFifo();
|
||||
void InitChunks();
|
||||
|
|
|
@ -223,23 +223,18 @@ void BulletHitsSprite(Bullet *pBullet, DExhumedActor* pBulletActor, DExhumedActo
|
|||
|
||||
if (nStat == kStatAnubisDrum)
|
||||
{
|
||||
int nAngle = (pActor->int_ang() + 256) - RandomSize(9);
|
||||
auto nAngle = (pActor->spr.angle + DAngle22_5) - DAngle::fromBuild(RandomSize(9));
|
||||
|
||||
pHitActor->set_int_xvel(bcos(nAngle, 1));
|
||||
pHitActor->set_int_yvel(bsin(nAngle, 1));
|
||||
pHitActor->set_int_zvel((-(RandomSize(3) + 1)) << 8);
|
||||
pHitActor->vel.XY() = nAngle.ToVector() * 2048;
|
||||
pHitActor->vel.Z = -(RandomSize(3) + 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
int xVel = pHitActor->int_xvel();
|
||||
int yVel = pHitActor->int_yvel();
|
||||
|
||||
auto Vel = pHitActor->vel.XY();
|
||||
pHitActor->VelFromAngle(-2);
|
||||
|
||||
MoveCreature(pHitActor);
|
||||
|
||||
pHitActor->set_int_xvel(xVel);
|
||||
pHitActor->set_int_yvel(yVel);
|
||||
pHitActor->vel.XY() = Vel;
|
||||
}
|
||||
|
||||
break;
|
||||
|
|
|
@ -51,8 +51,8 @@ void BuildFishLimb(DExhumedActor* pActor, int anim)
|
|||
pChunkActor->spr.cstat = 0;
|
||||
pChunkActor->spr.shade = -12;
|
||||
pChunkActor->spr.pal = 0;
|
||||
pChunkActor->set_int_xvel((RandomSize(5) - 16) << 8);
|
||||
pChunkActor->set_int_yvel((RandomSize(5) - 16) << 8);
|
||||
pChunkActor->vel.X = ((RandomSize(5) - 16) << 4);
|
||||
pChunkActor->vel.Y = ((RandomSize(5) - 16) << 4);
|
||||
pChunkActor->spr.xrepeat = 64;
|
||||
pChunkActor->spr.yrepeat = 64;
|
||||
pChunkActor->spr.xoffset = 0;
|
||||
|
|
|
@ -45,9 +45,9 @@ DExhumedActor* BuildLavaLimb(DExhumedActor* pActor, int move, int ebx)
|
|||
pLimbActor->spr.cstat = 0;
|
||||
pLimbActor->spr.shade = -127;
|
||||
pLimbActor->spr.pal = 1;
|
||||
pLimbActor->set_int_xvel((RandomSize(5) - 16) << 8);
|
||||
pLimbActor->set_int_yvel((RandomSize(5) - 16) << 8);
|
||||
pLimbActor->set_int_zvel(2560 - (RandomSize(5) << 8));
|
||||
pLimbActor->vel.X = ((RandomSize(5) - 16) << 4);
|
||||
pLimbActor->vel.Y = ((RandomSize(5) - 16) << 4);
|
||||
pLimbActor->vel.Z = 10 - RandomSize(5);
|
||||
pLimbActor->spr.xoffset = 0;
|
||||
pLimbActor->spr.yoffset = 0;
|
||||
pLimbActor->spr.xrepeat = 90;
|
||||
|
|
|
@ -276,13 +276,11 @@ void AILion::Tick(RunListEvent* ev)
|
|||
|
||||
if (pActor->spr.cstat & CSTAT_SPRITE_INVISIBLE)
|
||||
{
|
||||
pActor->set_int_xvel(bcos(nAng, 1));
|
||||
pActor->set_int_yvel(bsin(nAng, 1));
|
||||
pActor->vel.XY() = pActor->spr.angle.ToVector() * 2048;
|
||||
}
|
||||
else
|
||||
{
|
||||
pActor->set_int_xvel(bcos(nAng, -1));
|
||||
pActor->set_int_yvel(bsin(nAng, -1));
|
||||
pActor->vel.XY() = pActor->spr.angle.ToVector() * 512;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -92,98 +92,6 @@ void SerializeMove(FSerializer& arc)
|
|||
}
|
||||
}
|
||||
|
||||
signed int lsqrt(int a1)
|
||||
{
|
||||
int v1;
|
||||
int v2;
|
||||
signed int result;
|
||||
|
||||
v1 = a1;
|
||||
v2 = a1 - 0x40000000;
|
||||
|
||||
result = 0;
|
||||
|
||||
if (v2 >= 0)
|
||||
{
|
||||
result = 32768;
|
||||
v1 = v2;
|
||||
}
|
||||
if (v1 - ((result << 15) + 0x10000000) >= 0)
|
||||
{
|
||||
v1 -= (result << 15) + 0x10000000;
|
||||
result += 16384;
|
||||
}
|
||||
if (v1 - ((result << 14) + 0x4000000) >= 0)
|
||||
{
|
||||
v1 -= (result << 14) + 0x4000000;
|
||||
result += 8192;
|
||||
}
|
||||
if (v1 - ((result << 13) + 0x1000000) >= 0)
|
||||
{
|
||||
v1 -= (result << 13) + 0x1000000;
|
||||
result += 4096;
|
||||
}
|
||||
if (v1 - ((result << 12) + 0x400000) >= 0)
|
||||
{
|
||||
v1 -= (result << 12) + 0x400000;
|
||||
result += 2048;
|
||||
}
|
||||
if (v1 - ((result << 11) + 0x100000) >= 0)
|
||||
{
|
||||
v1 -= (result << 11) + 0x100000;
|
||||
result += 1024;
|
||||
}
|
||||
if (v1 - ((result << 10) + 0x40000) >= 0)
|
||||
{
|
||||
v1 -= (result << 10) + 0x40000;
|
||||
result += 512;
|
||||
}
|
||||
if (v1 - ((result << 9) + 0x10000) >= 0)
|
||||
{
|
||||
v1 -= (result << 9) + 0x10000;
|
||||
result += 256;
|
||||
}
|
||||
if (v1 - ((result << 8) + 0x4000) >= 0)
|
||||
{
|
||||
v1 -= (result << 8) + 0x4000;
|
||||
result += 128;
|
||||
}
|
||||
if (v1 - ((result << 7) + 4096) >= 0)
|
||||
{
|
||||
v1 -= (result << 7) + 4096;
|
||||
result += 64;
|
||||
}
|
||||
if (v1 - ((result << 6) + 1024) >= 0)
|
||||
{
|
||||
v1 -= (result << 6) + 1024;
|
||||
result += 32;
|
||||
}
|
||||
if (v1 - (32 * result + 256) >= 0)
|
||||
{
|
||||
v1 -= 32 * result + 256;
|
||||
result += 16;
|
||||
}
|
||||
if (v1 - (16 * result + 64) >= 0)
|
||||
{
|
||||
v1 -= 16 * result + 64;
|
||||
result += 8;
|
||||
}
|
||||
if (v1 - (8 * result + 16) >= 0)
|
||||
{
|
||||
v1 -= 8 * result + 16;
|
||||
result += 4;
|
||||
}
|
||||
if (v1 - (4 * result + 4) >= 0)
|
||||
{
|
||||
v1 -= 4 * result + 4;
|
||||
result += 2;
|
||||
}
|
||||
if (v1 - (2 * result + 1) >= 0)
|
||||
result += 1;
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
void MoveThings()
|
||||
{
|
||||
thinktime.Reset();
|
||||
|
@ -1275,9 +1183,9 @@ DExhumedActor* BuildCreatureChunk(DExhumedActor* pSrc, int nPic, bool bSpecial)
|
|||
pActor->spr.shade = -12;
|
||||
pActor->spr.pal = 0;
|
||||
|
||||
pActor->set_int_xvel((RandomSize(5) - 16) << 7);
|
||||
pActor->set_int_yvel((RandomSize(5) - 16) << 7);
|
||||
pActor->set_int_zvel((-(RandomSize(8) + 512)) << 3);
|
||||
pActor->vel.X = ((RandomSize(5) - 16) << 3);
|
||||
pActor->vel.Y = ((RandomSize(5) - 16) << 3);
|
||||
pActor->vel.Z = -(RandomSize(8) / 32. + 16);
|
||||
|
||||
if (bSpecial)
|
||||
{
|
||||
|
@ -1330,7 +1238,7 @@ void AICreatureChunk::Tick(RunListEvent* ev)
|
|||
if (!nVal.type && !nVal.exbits)
|
||||
return;
|
||||
|
||||
int nAngle;
|
||||
DAngle nAngle;
|
||||
|
||||
if (nVal.exbits & kHitAux2)
|
||||
{
|
||||
|
@ -1347,11 +1255,11 @@ void AICreatureChunk::Tick(RunListEvent* ev)
|
|||
}
|
||||
else if (nVal.type == kHitSprite)
|
||||
{
|
||||
nAngle = nVal.actor()->int_ang();
|
||||
nAngle = nVal.actor()->spr.angle;
|
||||
}
|
||||
else if (nVal.type == kHitWall)
|
||||
{
|
||||
nAngle = GetWallNormal(nVal.hitWall);
|
||||
nAngle = DAngle::fromBuild(GetWallNormal(nVal.hitWall));
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -1359,11 +1267,10 @@ void AICreatureChunk::Tick(RunListEvent* ev)
|
|||
}
|
||||
|
||||
// loc_16E0C
|
||||
int nSqrt = lsqrt(((pActor->int_yvel() >> 10) * (pActor->int_yvel() >> 10)
|
||||
+ (pActor->int_xvel() >> 10) * (pActor->int_xvel() >> 10)) >> 8);
|
||||
double nSqrt = pActor->vel.Length();
|
||||
|
||||
pActor->set_int_xvel(bcos(nAngle) * (nSqrt >> 1));
|
||||
pActor->set_int_yvel(bsin(nAngle) * (nSqrt >> 1));
|
||||
|
||||
pActor->vel.XY() = nAngle.ToVector() * nSqrt * 0.5;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1380,20 +1380,18 @@ DExhumedActor* BuildSpark(DExhumedActor* pActor, int nVal)
|
|||
}
|
||||
else
|
||||
{
|
||||
int nAngle = (pActor->int_ang() + 256) - RandomSize(9);
|
||||
auto nAngle = (pActor->spr.angle + DAngle22_5) - DAngle::fromBuild(RandomSize(9));
|
||||
|
||||
if (nVal)
|
||||
{
|
||||
pSpark->set_int_xvel(bcos(nAngle, -5));
|
||||
pSpark->set_int_yvel(bsin(nAngle, -5));
|
||||
pSpark->vel.XY() = nAngle.ToVector() * 32;
|
||||
}
|
||||
else
|
||||
{
|
||||
pSpark->set_int_xvel(bcos(nAngle, -6));
|
||||
pSpark->set_int_yvel(bsin(nAngle, -6));
|
||||
pSpark->vel.XY() = nAngle.ToVector() * 16;
|
||||
}
|
||||
|
||||
pSpark->set_int_zvel(-(RandomSize(4) << 7));
|
||||
pSpark->vel.Z = -RandomSize(4) * 0.5;
|
||||
pSpark->spr.picnum = kTile985 + nVal;
|
||||
}
|
||||
|
||||
|
|
|
@ -737,8 +737,8 @@ void AIPlayer::Tick(RunListEvent* ev)
|
|||
PlayerList[nPlayer].horizon.resetadjustment();
|
||||
PlayerList[nPlayer].oeyelevel = PlayerList[nPlayer].eyelevel;
|
||||
|
||||
pPlayerActor->set_int_xvel(sPlayerInput[nPlayer].xVel >> 14);
|
||||
pPlayerActor->set_int_yvel(sPlayerInput[nPlayer].yVel >> 14);
|
||||
pPlayerActor->vel.X = FixedToFloat<18>(sPlayerInput[nPlayer].xVel);
|
||||
pPlayerActor->vel.Y = FixedToFloat<18>(sPlayerInput[nPlayer].yVel);
|
||||
|
||||
if (sPlayerInput[nPlayer].nItem > -1)
|
||||
{
|
||||
|
|
|
@ -278,10 +278,7 @@ void DestroyAllEggs()
|
|||
|
||||
void SetHeadVel(DExhumedActor* pActor)
|
||||
{
|
||||
int nAngle = pActor->int_ang();
|
||||
|
||||
pActor->set_int_xvel(bcos(nAngle, nVelShift));
|
||||
pActor->set_int_yvel(bsin(nAngle, nVelShift));
|
||||
pActor->vel.XY() = pActor->spr.angle.ToVector() * 1024 * (1 << nVelShift);
|
||||
}
|
||||
|
||||
Collision QueenAngleChase(DExhumedActor* pActor, DExhumedActor* pActor2, int val1, int val2)
|
||||
|
@ -570,8 +567,7 @@ void AIQueenEgg::Tick(RunListEvent* ev)
|
|||
}
|
||||
|
||||
pActor->set_int_ang(nAngle);
|
||||
pActor->set_int_xvel(bcos(nAngle, -1));
|
||||
pActor->set_int_yvel(bsin(nAngle, -1));
|
||||
pActor->vel.XY() = pActor->spr.angle.ToVector() * 512;
|
||||
}
|
||||
|
||||
break;
|
||||
|
|
|
@ -253,9 +253,7 @@ void AIRex::Tick(RunListEvent* ev)
|
|||
{
|
||||
if (((PlotCourseToSprite(pActor, pTarget) >> 8) >= 60) || pActor->nCount > 0)
|
||||
{
|
||||
int nAngle = pActor->int_ang() & 0xFFF8;
|
||||
pActor->set_int_xvel(bcos(nAngle, -2));
|
||||
pActor->set_int_yvel(bsin(nAngle, -2));
|
||||
pActor->vel.XY() = pActor->spr.angle.ToVector() * 256;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -331,25 +329,21 @@ void AIRex::Tick(RunListEvent* ev)
|
|||
|
||||
if (pHitActor->spr.statnum && pHitActor->spr.statnum < 107)
|
||||
{
|
||||
int nAngle = pActor->int_ang();
|
||||
|
||||
runlist_DamageEnemy(nMov.actor(), pActor, 15);
|
||||
|
||||
int xVel = bcos(nAngle) * 15;
|
||||
int yVel = bsin(nAngle) * 15;
|
||||
auto vel = pActor->spr.angle.ToVector() * 1024 * 15;
|
||||
|
||||
if (pHitActor->spr.statnum == 100)
|
||||
{
|
||||
auto nPlayer = GetPlayerFromActor(nMov.actor());
|
||||
PlayerList[nPlayer].nDamage.X += (xVel << 4);
|
||||
PlayerList[nPlayer].nDamage.Y += (yVel << 4);
|
||||
pHitActor->set_int_zvel(-3584);
|
||||
PlayerList[nPlayer].nDamage.X += (int(vel.X * worldtoint) << 4);
|
||||
PlayerList[nPlayer].nDamage.Y += (int(vel.Y * worldtoint) << 4);
|
||||
pHitActor->vel.Z = -14;
|
||||
}
|
||||
else
|
||||
{
|
||||
pHitActor->add_int_xvel( (xVel >> 3));
|
||||
pHitActor->add_int_yvel((yVel >> 3));
|
||||
pHitActor->set_int_zvel(-2880);
|
||||
pHitActor->vel.XY() = vel / 8.;
|
||||
pHitActor->vel.Z = 11.25;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1606,7 +1606,6 @@ int runlist_CheckRadialDamage(DExhumedActor* pActor)
|
|||
|
||||
auto pos = (pActor->spr.pos - pRadialActor->spr.pos) / 16.;
|
||||
|
||||
int edi = 0;
|
||||
|
||||
if (abs(pos.X) > nDamageRadius) {
|
||||
return 0;
|
||||
|
@ -1622,6 +1621,7 @@ int runlist_CheckRadialDamage(DExhumedActor* pActor)
|
|||
|
||||
double nDist = pos.XY().Length();
|
||||
|
||||
int edi = 0;
|
||||
if (nDist < nDamageRadius)
|
||||
{
|
||||
auto nCStat = pActor->spr.cstat;
|
||||
|
@ -1633,22 +1633,20 @@ int runlist_CheckRadialDamage(DExhumedActor* pActor)
|
|||
pActor->spr.pos.plusZ(-32),
|
||||
pActor->sector()))
|
||||
{
|
||||
edi = int((nRadialDamage * (nDamageRadius - nDist)) / (nDamageRadius));
|
||||
edi = int((nRadialDamage * (nDamageRadius - nDist)) / nDamageRadius);
|
||||
|
||||
if (edi < 0) {
|
||||
edi = 0;
|
||||
}
|
||||
else if (edi > 20)
|
||||
{
|
||||
int nAngle = getangle(pos);
|
||||
auto nAngle = VecToAngle(pos);
|
||||
pActor->vel.XY() += nAngle.ToVector() * edi * 128;
|
||||
|
||||
pActor->add_int_xvel( (edi * bcos(nAngle)) >> 3);
|
||||
pActor->add_int_yvel((edi * bsin(nAngle)) >> 3);
|
||||
pActor->add_int_zvel(- edi * 24);
|
||||
pActor->vel.Z = (- edi * 24) / 256.;
|
||||
|
||||
if (pActor->vel.Z < -14) {
|
||||
pActor->set_int_zvel(-3584);
|
||||
}
|
||||
if (pActor->vel.Z < -14)
|
||||
pActor->vel.Z = -14;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -387,9 +387,7 @@ void AISet::Tick(RunListEvent* ev)
|
|||
}
|
||||
|
||||
// loc_338E2
|
||||
int nAngle = pActor->int_ang() & 0xFFF8;
|
||||
pActor->set_int_xvel(bcos(nAngle, -1));
|
||||
pActor->set_int_yvel(bsin(nAngle, -1));
|
||||
pActor->vel.XY() = pActor->spr.angle.ToVector() * 512;
|
||||
|
||||
if (pActor->nIndex2)
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue