mirror of
https://github.com/ZDoom/raze-gles.git
synced 2024-11-11 07:11:39 +00:00
Hopefully finally fixed Lion AI. Should now attempt to go underground when shot
This commit is contained in:
parent
eb456e0dda
commit
fe24913d63
1 changed files with 20 additions and 14 deletions
|
@ -142,9 +142,9 @@ void FuncLion(int a, int nDamage, int nRun)
|
||||||
if (LionList[nLion].nHealth <= 0)
|
if (LionList[nLion].nHealth <= 0)
|
||||||
{
|
{
|
||||||
// R.I.P.
|
// R.I.P.
|
||||||
sprite[nSprite].zvel = 0;
|
|
||||||
sprite[nSprite].yvel = 0;
|
|
||||||
sprite[nSprite].xvel = 0;
|
sprite[nSprite].xvel = 0;
|
||||||
|
sprite[nSprite].yvel = 0;
|
||||||
|
sprite[nSprite].zvel = 0;
|
||||||
LionList[nLion].nHealth = 0;
|
LionList[nLion].nHealth = 0;
|
||||||
sprite[nSprite].cstat &= 0xFEFE;
|
sprite[nSprite].cstat &= 0xFEFE;
|
||||||
|
|
||||||
|
@ -168,7 +168,7 @@ void FuncLion(int a, int nDamage, int nRun)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (a >= 0)
|
if ((a & 0xFFFF) >= 0)
|
||||||
{
|
{
|
||||||
short nTarget = a & 0xFFFF;
|
short nTarget = a & 0xFFFF;
|
||||||
|
|
||||||
|
@ -181,8 +181,8 @@ void FuncLion(int a, int nDamage, int nRun)
|
||||||
if (RandomSize(8) <= (LionList[nLion].nHealth >> 2))
|
if (RandomSize(8) <= (LionList[nLion].nHealth >> 2))
|
||||||
{
|
{
|
||||||
LionList[nLion].nAction = 4;
|
LionList[nLion].nAction = 4;
|
||||||
sprite[nSprite].yvel = 0;
|
|
||||||
sprite[nSprite].xvel = 0;
|
sprite[nSprite].xvel = 0;
|
||||||
|
sprite[nSprite].yvel = 0;
|
||||||
}
|
}
|
||||||
else if (RandomSize(1))
|
else if (RandomSize(1))
|
||||||
{
|
{
|
||||||
|
@ -192,12 +192,17 @@ void FuncLion(int a, int nDamage, int nRun)
|
||||||
|
|
||||||
sprite[nSprite].ang = (sprite[nSprite].ang - (RandomSize(1) << 8)) + (RandomSize(1) << 8);
|
sprite[nSprite].ang = (sprite[nSprite].ang - (RandomSize(1) << 8)) + (RandomSize(1) << 8);
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
sprite[nSprite].xvel = 0;
|
||||||
|
sprite[nSprite].yvel = 0;
|
||||||
|
LionList[nLion].nAction = 8;
|
||||||
|
sprite[nSprite].cstat &= 0xFEFE;
|
||||||
|
}
|
||||||
|
|
||||||
LionList[nLion]._b = 0;
|
LionList[nLion]._b = 0;
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
|
@ -314,7 +319,14 @@ void FuncLion(int a, int nDamage, int nRun)
|
||||||
{
|
{
|
||||||
if ((nVal & 0x3FFF) == nTarget)
|
if ((nVal & 0x3FFF) == nTarget)
|
||||||
{
|
{
|
||||||
if (sprite[nSprite].cstat != 0x8000)
|
if (sprite[nSprite].cstat & 0x8000)
|
||||||
|
{
|
||||||
|
LionList[nLion].nAction = 9;
|
||||||
|
sprite[nSprite].cstat &= 0x7FFF;
|
||||||
|
sprite[nSprite].xvel = 0;
|
||||||
|
sprite[nSprite].yvel = 0;
|
||||||
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
int nAng = getangle(sprite[nTarget].x - sprite[nSprite].x, sprite[nTarget].y - sprite[nSprite].y);
|
int nAng = getangle(sprite[nTarget].x - sprite[nSprite].x, sprite[nTarget].y - sprite[nSprite].y);
|
||||||
|
|
||||||
|
@ -323,13 +335,6 @@ void FuncLion(int a, int nDamage, int nRun)
|
||||||
LionList[nLion].nAction = 3;
|
LionList[nLion].nAction = 3;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
LionList[nLion].nAction = 9;
|
|
||||||
sprite[nSprite].cstat &= 0x7FFF;
|
|
||||||
sprite[nSprite].xvel = 0;
|
|
||||||
sprite[nSprite].yvel = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
LionList[nLion]._b = 0;
|
LionList[nLion]._b = 0;
|
||||||
break;
|
break;
|
||||||
|
@ -481,6 +486,7 @@ void FuncLion(int a, int nDamage, int nRun)
|
||||||
sprite[nSprite].ang = (sprite[nSprite].ang + 256) & kAngleMask;
|
sprite[nSprite].ang = (sprite[nSprite].ang + 256) & kAngleMask;
|
||||||
sprite[nSprite].xvel = Sin(sprite[nSprite].ang + 512) >> 1;
|
sprite[nSprite].xvel = Sin(sprite[nSprite].ang + 512) >> 1;
|
||||||
sprite[nSprite].yvel = Sin(sprite[nSprite].ang) >> 1;
|
sprite[nSprite].yvel = Sin(sprite[nSprite].ang) >> 1;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue