mirror of
https://github.com/ZDoom/Raze.git
synced 2025-03-13 20:42:11 +00:00
- AngleDiff
This commit is contained in:
parent
9d5acf8350
commit
7d9406bf01
10 changed files with 20 additions and 23 deletions
|
@ -180,9 +180,7 @@ void AIAnubis::Tick(RunListEvent* ev)
|
|||
{
|
||||
if (move.actor() == pTarget)
|
||||
{
|
||||
int nAng = getangle(pTarget->spr.pos - ap->spr.pos);
|
||||
int nAngDiff = AngleDiff(ap->int_ang(), nAng);
|
||||
|
||||
auto nAngDiff = AngleDiff(ap->spr.angle, VecToAngle(pTarget->spr.pos - ap->spr.pos));
|
||||
if (nAngDiff < 64)
|
||||
{
|
||||
ap->nAction = 2;
|
||||
|
|
|
@ -125,7 +125,7 @@ int RandomSize(int nSize);
|
|||
|
||||
int GetMyAngle(int x, int y);
|
||||
|
||||
int AngleDiff(int a, int b);
|
||||
int AngleDiff(DAngle a, DAngle b);
|
||||
int AngleDelta(int a, int b, int c);
|
||||
|
||||
END_PS_NS
|
||||
|
|
|
@ -310,8 +310,8 @@ void AILavaDude::Tick(RunListEvent* ev)
|
|||
{
|
||||
if (coll.actor() == pTarget)
|
||||
{
|
||||
int nAng = getangle(pTarget->spr.pos - pActor->spr.pos);
|
||||
if (AngleDiff(pActor->int_ang(), nAng) < 64)
|
||||
auto nAngDiff = AngleDiff(pActor->spr.angle, VecToAngle(pTarget->spr.pos - pActor->spr.pos));
|
||||
if (nAngDiff < 64)
|
||||
{
|
||||
pActor->nAction = 2;
|
||||
pActor->nFrame = 0;
|
||||
|
|
|
@ -309,9 +309,8 @@ void AILion::Tick(RunListEvent* ev)
|
|||
}
|
||||
else
|
||||
{
|
||||
int nAng = getangle(pTarget->spr.pos - pActor->spr.pos);
|
||||
|
||||
if (AngleDiff(pActor->int_ang(), nAng) < 64)
|
||||
auto nAngDiff = AngleDiff(pActor->spr.angle, VecToAngle(pTarget->spr.pos - pActor->spr.pos));
|
||||
if (nAngDiff < 64)
|
||||
{
|
||||
pActor->nAction = 3;
|
||||
}
|
||||
|
@ -442,8 +441,8 @@ void AILion::Tick(RunListEvent* ev)
|
|||
{
|
||||
if (nMov.actor() == pTarget)
|
||||
{
|
||||
int nAng = getangle(pTarget->spr.pos - pActor->spr.pos);
|
||||
if (AngleDiff(pActor->int_ang(), nAng) < 64)
|
||||
auto nAngDiff = AngleDiff(pActor->spr.angle, VecToAngle(pTarget->spr.pos - pActor->spr.pos));
|
||||
if (nAngDiff < 64)
|
||||
{
|
||||
pActor->nAction = 3;
|
||||
pActor->nFrame = 0;
|
||||
|
|
|
@ -270,8 +270,8 @@ void AIMummy::Tick(RunListEvent* ev)
|
|||
{
|
||||
if (nMov.actor() == pTarget)
|
||||
{
|
||||
int nAngle = getangle(pTarget->spr.pos - pActor->spr.pos);
|
||||
if (AngleDiff(pActor->int_ang(), nAngle) < 64)
|
||||
auto nAngDiff = AngleDiff(pActor->spr.angle, VecToAngle(pTarget->spr.pos - pActor->spr.pos));
|
||||
if (nAngDiff < 64)
|
||||
{
|
||||
pActor->nAction = 2;
|
||||
pActor->nFrame = 0;
|
||||
|
|
|
@ -1014,7 +1014,7 @@ void AIPlayer::Tick(RunListEvent* ev)
|
|||
{
|
||||
if ((sect->hitag == 45) && bTouchFloor)
|
||||
{
|
||||
int nDiff = AngleDiff(nNormal, (pPlayerActor->int_ang() + 1024) & kAngleMask);
|
||||
int nDiff = AngleDiff(DAngle::fromBuild(nNormal), DAngle::fromBuild((pPlayerActor->int_ang() + 1024) & kAngleMask));
|
||||
|
||||
if (nDiff < 0) {
|
||||
nDiff = -nDiff;
|
||||
|
|
|
@ -245,8 +245,8 @@ void AIScorp::Tick(RunListEvent* ev)
|
|||
{
|
||||
if (pTarget == nMov.actor())
|
||||
{
|
||||
int nAngle = getangle(pTarget->spr.pos - pActor->spr.pos);
|
||||
if (AngleDiff(pActor->int_ang(), nAngle) < 64)
|
||||
auto nAngDiff = AngleDiff(pActor->spr.angle, VecToAngle(pTarget->spr.pos - pActor->spr.pos));
|
||||
if (nAngDiff < 64)
|
||||
{
|
||||
pActor->nAction = 2;
|
||||
pActor->nFrame = 0;
|
||||
|
|
|
@ -427,9 +427,9 @@ void AISet::Tick(RunListEvent* ev)
|
|||
{
|
||||
if (pTarget == nMov.actor())
|
||||
{
|
||||
int nAng = getangle(pTarget->spr.pos - pActor->spr.pos);
|
||||
if (AngleDiff(pActor->int_ang(), nAng) < 64)
|
||||
{
|
||||
auto nAngDiff = AngleDiff(pActor->spr.angle, VecToAngle(pTarget->spr.pos - pActor->spr.pos));
|
||||
if (nAngDiff < 64)
|
||||
{
|
||||
pActor->nAction = 4;
|
||||
pActor->nFrame = 0;
|
||||
}
|
||||
|
|
|
@ -308,8 +308,8 @@ void AISpider::Tick(RunListEvent* ev)
|
|||
{
|
||||
if (nMov.actor() == pTarget)
|
||||
{
|
||||
int nAng = getangle(pTarget->spr.pos - spp->spr.pos);
|
||||
if (AngleDiff(spp->int_ang(), nAng) < 64)
|
||||
auto nAngDiff = AngleDiff(spp->spr.angle, VecToAngle(pTarget->spr.pos - spp->spr.pos));
|
||||
if (nAngDiff < 64)
|
||||
{
|
||||
spp->nAction = 2;
|
||||
spp->nFrame = 0;
|
||||
|
|
|
@ -120,9 +120,9 @@ int GetMyAngle(int x, int y)
|
|||
}
|
||||
|
||||
// 100% done
|
||||
int AngleDiff(int a, int b)
|
||||
int AngleDiff(DAngle a, DAngle b)
|
||||
{
|
||||
int diff = (b - a) & kAngleMask;
|
||||
int diff = (b - a).Buildang();
|
||||
|
||||
if (diff > 1024) {
|
||||
diff = 2048 - diff;
|
||||
|
|
Loading…
Reference in a new issue