mirror of
https://github.com/DrBeef/Raze.git
synced 2025-02-21 19:21:44 +00:00
- final part and cleanup of useTargetChanger.
This commit is contained in:
parent
6c465dff3c
commit
94ae3c22d5
1 changed files with 9 additions and 17 deletions
|
@ -6729,12 +6729,6 @@ void useSectorLigthChanger(DBloodActor* sourceactor, XSECTOR* pXSector)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
inline bool isActive(int nSprite)
|
|
||||||
{
|
|
||||||
return isActive(&bloodActors[nSprite]);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
//
|
//
|
||||||
//
|
//
|
||||||
|
@ -6763,8 +6757,6 @@ void useTargetChanger(DBloodActor* sourceactor, DBloodActor* actor)
|
||||||
auto pXSource = &sourceactor->x();
|
auto pXSource = &sourceactor->x();
|
||||||
XSPRITE* pXSprite = &actor->x();
|
XSPRITE* pXSprite = &actor->x();
|
||||||
|
|
||||||
spritetype* pTarget = NULL;
|
|
||||||
XSPRITE* pXTarget = NULL;
|
|
||||||
int receiveHp = 33 + Random(33);
|
int receiveHp = 33 + Random(33);
|
||||||
DUDEINFO* pDudeInfo = getDudeInfo(pSprite->type);
|
DUDEINFO* pDudeInfo = getDudeInfo(pSprite->type);
|
||||||
int matesPerEnemy = 1;
|
int matesPerEnemy = 1;
|
||||||
|
@ -6820,8 +6812,8 @@ void useTargetChanger(DBloodActor* sourceactor, DBloodActor* actor)
|
||||||
auto targetactor = actor->GetTarget();
|
auto targetactor = actor->GetTarget();
|
||||||
if (targetactor && targetactor->hasX() && playeractor == nullptr)
|
if (targetactor && targetactor->hasX() && playeractor == nullptr)
|
||||||
{
|
{
|
||||||
pTarget = &targetactor->s();
|
auto pTarget = &targetactor->s();
|
||||||
pXTarget = &targetactor->x();
|
auto pXTarget = &targetactor->x();
|
||||||
|
|
||||||
if (aiFightUnitCanFly(actor) && aiFightIsMeleeUnit(targetactor) && !aiFightUnitCanFly(targetactor))
|
if (aiFightUnitCanFly(actor) && aiFightIsMeleeUnit(targetactor) && !aiFightUnitCanFly(targetactor))
|
||||||
pSprite->flags |= 0x0002;
|
pSprite->flags |= 0x0002;
|
||||||
|
@ -7005,22 +6997,22 @@ void useTargetChanger(DBloodActor* sourceactor, DBloodActor* actor)
|
||||||
{
|
{
|
||||||
if (pXMateTarget->target_i < 0)
|
if (pXMateTarget->target_i < 0)
|
||||||
{
|
{
|
||||||
aiSetTarget_(pXMateTarget, pSprite->index);
|
aiSetTarget(pMateTargetActor, actor);
|
||||||
if (IsDudeSprite(pMateTarget) && !isActive(pMateTarget->index))
|
if (pMateTargetActor->IsDudeActor() && !isActive(pMateTargetActor))
|
||||||
aiActivateDude(&bloodActors[pXMateTarget->reference]);
|
aiActivateDude(pMateTargetActor);
|
||||||
}
|
}
|
||||||
|
|
||||||
aiSetTarget_(pXSprite, pMateTarget->index);
|
aiSetTarget(actor, pMateTargetActor);
|
||||||
if (!isActive(actor))
|
if (!isActive(actor))
|
||||||
aiActivateDude(actor);
|
aiActivateDude(actor);
|
||||||
return;
|
return;
|
||||||
|
|
||||||
// try walk in mate direction in case if not see the target
|
// try walk in mate direction in case if not see the target
|
||||||
}
|
}
|
||||||
else if (pXMateTarget->target_i >= 0 && aiFightDudeCanSeeTarget(actor, pDudeInfo, &bloodActors[pXMateTarget->target_i]))
|
else if (pMateTargetActor->GetTarget() && aiFightDudeCanSeeTarget(actor, pDudeInfo, pMateTargetActor->GetTarget()))
|
||||||
{
|
{
|
||||||
spritetype* pMate = &sprite[pXMateTarget->target_i];
|
actor->SetTarget(pMateTargetActor);
|
||||||
pXSprite->target_i = pMateTarget->index;
|
spritetype* pMate = &pMateTargetActor->GetTarget()->s();
|
||||||
pXSprite->targetX = pMate->x;
|
pXSprite->targetX = pMate->x;
|
||||||
pXSprite->targetY = pMate->y;
|
pXSprite->targetY = pMate->y;
|
||||||
pXSprite->targetZ = pMate->z;
|
pXSprite->targetZ = pMate->z;
|
||||||
|
|
Loading…
Reference in a new issue