mirror of
https://github.com/ZDoom/raze-gles.git
synced 2025-01-26 00:40:56 +00:00
- some minor cleanup in aiunicult.cpp.
# Conflicts: # source/games/blood/src/aiunicult.cpp
This commit is contained in:
parent
05571de93a
commit
ea63229251
1 changed files with 13 additions and 9 deletions
|
@ -269,16 +269,17 @@ void genDudeAttack1(int, DBloodActor* actor)
|
||||||
spritetype* pSpawned = &spawned->s();
|
spritetype* pSpawned = &spawned->s();
|
||||||
pSpawned->owner = pSprite->index;
|
pSpawned->owner = pSprite->index;
|
||||||
|
|
||||||
if (xspriRangeIsFine(pSpawned->extra)) {
|
if (xspriRangeIsFine(pSpawned->extra))
|
||||||
xsprite[pSpawned->extra].target_i = pXSprite->target_i;
|
{
|
||||||
if (pXSprite->target_i > -1)
|
spawned->SetTarget(actor->GetTarget());
|
||||||
aiActivateDude(&bloodActors[pSpawned->index]);
|
if (spawned->GetTarget() != nullptr)
|
||||||
|
aiActivateDude(spawned);
|
||||||
}
|
}
|
||||||
|
|
||||||
gKillMgr.AddNewKill(1);
|
gKillMgr.AddNewKill(1);
|
||||||
pExtra->slave[pExtra->slaveCount++] = pSpawned->index;
|
pExtra->slave[pExtra->slaveCount++] = pSpawned->index;
|
||||||
if (!playGenDudeSound(pSprite, kGenDudeSndAttackNormal))
|
if (!playGenDudeSound(pSprite, kGenDudeSndAttackNormal))
|
||||||
sfxPlay3DSoundCP(pSprite, 379, 1, 0, 0x10000 - Random3(0x3000));
|
sfxPlay3DSoundCP(actor, 379, 1, 0, 0x10000 - Random3(0x3000));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -512,13 +513,15 @@ static void unicultThinkChase(DBloodActor* actor)
|
||||||
}
|
}
|
||||||
|
|
||||||
// check target
|
// check target
|
||||||
int dx = pTarget->x - pSprite->x; int dy = pTarget->y - pSprite->y;
|
int dx = pTarget->x - pSprite->x;
|
||||||
|
int dy = pTarget->y - pSprite->y;
|
||||||
int dist = ClipLow((int)approxDist(dx, dy), 1);
|
int dist = ClipLow((int)approxDist(dx, dy), 1);
|
||||||
|
|
||||||
// quick hack to prevent spinning around or changing attacker's sprite angle on high movement speeds
|
// quick hack to prevent spinning around or changing attacker's sprite angle on high movement speeds
|
||||||
// when attacking the target. It happens because vanilla function takes in account x and y velocity,
|
// when attacking the target. It happens because vanilla function takes in account x and y velocity,
|
||||||
// so i use fake velocity with fixed value and pass it as argument.
|
// so i use fake velocity with fixed value and pass it as argument.
|
||||||
int xvelocity = xvel[pSprite->index]; int yvelocity = yvel[pSprite->index];
|
int xvelocity = actor->xvel();
|
||||||
|
int yvelocity = actor->yvel();
|
||||||
if (inAttack(pXSprite->aiState))
|
if (inAttack(pXSprite->aiState))
|
||||||
xvelocity = yvelocity = ClipLow(pSprite->clipdist >> 1, 1);
|
xvelocity = yvelocity = ClipLow(pSprite->clipdist >> 1, 1);
|
||||||
|
|
||||||
|
@ -753,8 +756,9 @@ static void unicultThinkChase(DBloodActor* actor)
|
||||||
else if (weaponType == kGenDudeWeaponKamikaze)
|
else if (weaponType == kGenDudeWeaponKamikaze)
|
||||||
{
|
{
|
||||||
int nType = curWeapon - kTrapExploder; const EXPLOSION* pExpl = &explodeInfo[nType];
|
int nType = curWeapon - kTrapExploder; const EXPLOSION* pExpl = &explodeInfo[nType];
|
||||||
if (CheckProximity(pSprite, pTarget->x, pTarget->y, pTarget->z, pTarget->sectnum, pExpl->radius >> 1)) {
|
if (CheckProximity(pSprite, pTarget->x, pTarget->y, pTarget->z, pTarget->sectnum, pExpl->radius >> 1))
|
||||||
xvel[pSprite->index] = zvel[pSprite->index] = yvel[pSprite->index] = 0;
|
{
|
||||||
|
actor->xvel() = actor->yvel() = actor->zvel() = 0;
|
||||||
if (doExplosion(pSprite, nType) && pXSprite->health > 0)
|
if (doExplosion(pSprite, nType) && pXSprite->health > 0)
|
||||||
actDamageSprite(&bloodActors[pSprite->index], &bloodActors[pSprite->index], kDamageExplode, 65535);
|
actDamageSprite(&bloodActors[pSprite->index], &bloodActors[pSprite->index], kDamageExplode, 65535);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue