- removed all references to tgt_sp from ai.cpp, plus a few others found with search&replace.

This commit is contained in:
Christoph Oelckers 2021-10-30 15:01:38 +02:00
parent b8b90d2825
commit 34d0c12b60
4 changed files with 25 additions and 22 deletions

View file

@ -681,7 +681,7 @@ DoActorActionDecide(short SpriteNum)
}
// if player is facing me and I'm being attacked
if (FACING(sp, u->tgt_sp()) && TEST(u->Flags, SPR_ATTACKED) && ICanSee)
if (Facing(actor, u->targetActor) && TEST(u->Flags, SPR_ATTACKED) && ICanSee)
{
// if I'm a target - at least one missile comming at me
if (TEST(u->Flags, SPR_TARGETED))
@ -745,7 +745,7 @@ DoActorActionDecide(short SpriteNum)
dist = Distance(sp->x, sp->y, u->targetActor->s().x, u->targetActor->s().y);
if (dist < 15000 || ICanSee)
{
if ((FACING(sp, u->tgt_sp()) && dist < 10000) || ICanSee)
if ((Facing(actor, u->targetActor) && dist < 10000) || ICanSee)
{
DoActorOperate(actor);
@ -821,14 +821,14 @@ int DoActorDecide(DSWActor* actor)
return 0;
// zombie is attacking a player
if (actor_action == InitActorAttack && u->ID == ZOMBIE_RUN_R0 && User[u->tgt_sp()-sprite]->PlayerP)
if (actor_action == InitActorAttack && u->ID == ZOMBIE_RUN_R0 && u->targetActor->u()->PlayerP)
{
// Don't let zombies shoot at master
if (sp->owner == (u->tgt_sp() - sprite))
if (sp->owner == u->targetActor->GetSpriteIndex())
return 0;
// if this player cannot take damage from this zombie(weapon) return out
if (!PlayerTakeDamage(User[u->tgt_sp()-sprite]->PlayerP, SpriteNum))
if (!PlayerTakeDamage(u->targetActor->u()->PlayerP, SpriteNum))
return 0;
}
@ -1314,25 +1314,24 @@ int InitActorAttack(DSWActor* actor)
SPRITEp sp = User[SpriteNum]->SpriteP;
// zombie is attacking a player
if (u->ID == ZOMBIE_RUN_R0 && User[u->tgt_sp()-sprite]->PlayerP)
if (u->ID == ZOMBIE_RUN_R0 && u->targetActor->hasU() && u->targetActor->u()->PlayerP)
{
// Don't let zombies shoot at master
if (sp->owner == (u->tgt_sp() - sprite))
if (sp->owner == u->targetActor->GetSpriteIndex())
return 0;
// if this player cannot take damage from this zombie(weapon) return out
if (!PlayerTakeDamage(User[u->tgt_sp()-sprite]->PlayerP, SpriteNum))
if (!PlayerTakeDamage(u->targetActor->u()->PlayerP, SpriteNum))
return 0;
}
if (TEST(sprite[u->tgt_sp()-sprite].cstat, CSTAT_SPRITE_TRANSLUCENT))
if (TEST(u->targetActor->s().cstat, CSTAT_SPRITE_TRANSLUCENT))
{
InitActorRunAway(actor);
return 0;
}
if (User[u->tgt_sp()-sprite].Data() &&
User[u->tgt_sp()-sprite]->Health <= 0)
if (u->targetActor->hasU() && u->targetActor->u()->Health <= 0)
{
DoActorPickClosePlayer(actor);
InitActorReposition(actor);
@ -1347,9 +1346,8 @@ int InitActorAttack(DSWActor* actor)
// if the guy you are after is dead, look for another and
// reposition
if (User[u->tgt_sp()-sprite].Data() &&
User[u->tgt_sp()-sprite]->PlayerP &&
TEST(User[u->tgt_sp()-sprite]->PlayerP->Flags, PF_DEAD))
if (u->targetActor->hasU() && u->targetActor->u()->PlayerP &&
TEST(u->targetActor->u()->PlayerP->Flags, PF_DEAD))
{
DoActorPickClosePlayer(actor);
InitActorReposition(actor);
@ -1365,7 +1363,7 @@ int InitActorAttack(DSWActor* actor)
sp->ang = NORM_ANGLE(getangle(u->targetActor->s().x - sp->x, u->targetActor->s().y - sp->y));
// If it's your own kind, lay off!
if (u->ID == User[u->tgt_sp() - sprite]->ID && !User[u->tgt_sp() - sprite]->PlayerP)
if (u->ID == u->targetActor->u()->ID && !u->targetActor->u()->PlayerP)
{
InitActorRunAway(actor);
return 0;

View file

@ -1042,8 +1042,8 @@ DoBunnyQuickJump(DSWActor* actor)
DoActorPickClosePlayer(actor);
if (User[u->tgt_sp()-sprite]->PlayerP)
pp = User[u->tgt_sp()-sprite]->PlayerP;
if (u->targetActor->u()->PlayerP)
pp = u->targetActor->u()->PlayerP;
if (tu->spal != PALETTE_PLAYER0)
{
@ -1058,7 +1058,7 @@ DoBunnyQuickJump(DSWActor* actor)
if (pp == Player+myconnectindex)
{
choose_snd = STD_RANDOM_RANGE(2<<8)>>8;
if (FAFcansee(sp->x,sp->y,SPRITEp_TOS(sp),sp->sectnum,pp->posx, pp->posy, pp->posz, pp->cursectnum) && FACING(sp, u->tgt_sp()))
if (FAFcansee(sp->x,sp->y,SPRITEp_TOS(sp),sp->sectnum,pp->posx, pp->posy, pp->posz, pp->cursectnum) && Facing(actor, u->targetActor))
PlayerSound(fagsnds[choose_snd], v3df_doppler|v3df_follow|v3df_dontpan,pp);
}
}
@ -1074,7 +1074,7 @@ DoBunnyQuickJump(DSWActor* actor)
if (pp == Player+myconnectindex)
{
choose_snd = STD_RANDOM_RANGE(3<<8)>>8;
if (FAFcansee(sp->x,sp->y,SPRITEp_TOS(sp),sp->sectnum,pp->posx, pp->posy, pp->posz, pp->cursectnum) && FACING(sp, u->tgt_sp()))
if (FAFcansee(sp->x,sp->y,SPRITEp_TOS(sp),sp->sectnum,pp->posx, pp->posy, pp->posz, pp->cursectnum) && Facing(actor, u->targetActor))
PlayerSound(straightsnds[choose_snd], v3df_doppler|v3df_follow|v3df_dontpan,pp);
}
}

View file

@ -295,7 +295,6 @@ inline int SPRITEp_SIZE_BOS(const spritetype* sp)
#define KENFACING_PLAYER(pp,sp) (bcos(sp->ang)*(pp->posy-sp->y) >= bsin(sp-ang)*(pp->posx-sp->x))
#define FACING_PLAYER(pp,sp) (abs(getincangle(getangle((pp)->posx - (sp)->x, (pp)->posy - (sp)->y), (sp)->ang)) < 512)
#define PLAYER_FACING(pp,sp) (abs(getincangle(getangle((sp)->x - (pp)->posx, (sp)->y - (pp)->posy), (pp)->angle.ang.asbuild())) < 320)
#define FACING(sp1,sp2) (abs(getincangle(getangle((sp1)->x - (sp2)->x, (sp1)->y - (sp2)->y), (sp2)->ang)) < 512)
#define FACING_PLAYER_RANGE(pp,sp,range) (abs(getincangle(getangle((pp)->posx - (sp)->x, (pp)->posy - (sp)->y), (sp)->ang)) < (range))
#define PLAYER_FACING_RANGE(pp,sp,range) (abs(getincangle(getangle((sp)->x - (pp)->posx, (sp)->y - (pp)->posy), (pp)->angle.ang.asbuild())) < (range))
@ -2262,6 +2261,12 @@ inline int ActorMid(DSWActor* actor)
return SPRITEp_MID(&actor->s());
}
inline int Facing(DSWActor* actor1, DSWActor* actor2)
{
auto sp1 = &actor1->s();
auto sp2 = &actor2->s();
return (abs(getincangle(getangle((sp1)->x - (sp2)->x, (sp1)->y - (sp2)->y), (sp2)->ang)) < 512);
}
END_SW_NS
#endif

View file

@ -572,9 +572,9 @@ int DoCheckSwarm(DSWActor* actor)
// Who's the closest meat!?
DoActorPickClosePlayer(actor);
if (User[u->tgt_sp() - sprite]->PlayerP)
if (u->targetActor->u()->PlayerP)
{
pp = User[u->tgt_sp() - sprite]->PlayerP;
pp = u->targetActor->u()->PlayerP;
DISTANCE(sp->x, sp->y, pp->posx, pp->posy, pdist, a, b, c);
}
else