- eu, that are not expActor

This commit is contained in:
Christoph Oelckers 2021-12-26 00:02:17 +01:00
parent 7147d3c89e
commit e16caa0c62
2 changed files with 12 additions and 25 deletions

View file

@ -1133,7 +1133,6 @@ DSWActor* DoPickTarget(DSWActor* actor, uint32_t max_delta_ang, int skip_targets
short angle2, delta_ang;
int dist, zh;
SPRITEp ep;
USERp eu;
int16_t* shp;
USERp u = actor->u();
int ezh, ezhl, ezhm;
@ -1152,19 +1151,17 @@ DSWActor* DoPickTarget(DSWActor* actor, uint32_t max_delta_ang, int skip_targets
SWStatIterator it(*shp);
while (auto itActor = it.Next())
{
eu = itActor->u();
// don't pick yourself
if (actor == itActor)
continue;
if (skip_targets != 2) // Used for spriteinfo mode
{
if (skip_targets && TEST(eu->Flags, SPR_TARGETED))
if (skip_targets && TEST(itActor->user.Flags, SPR_TARGETED))
continue;
// don't pick a dead player
if (eu->PlayerP && TEST(eu->PlayerP->Flags, PF_DEAD))
if (itActor->user.PlayerP && TEST(itActor->user.PlayerP->Flags, PF_DEAD))
continue;
}

View file

@ -9831,7 +9831,6 @@ int DoSpear(DSWActor* actor)
int SpawnCoolieExp(DSWActor* actor)
{
USER* u = actor->u();
USERp eu;
int zh,nx,ny;
@ -9848,16 +9847,14 @@ int SpawnCoolieExp(DSWActor* actor)
auto actorNew = SpawnActor(STAT_MISSILE, BOLT_EXP, s_BoltExp, actor->spr.sector(),
nx, ny, zh, actor->spr.ang, 0);
eu = actorNew->u();
actorNew->spr.hitag = LUMINOUS; //Always full brightness
SetOwner(actor, actorNew);
actorNew->spr.shade = -40;
actorNew->spr.pal = eu->spal = u->spal;
actorNew->spr.pal = actorNew->user.spal = u->spal;
SET(actorNew->spr.cstat, CSTAT_SPRITE_YCENTER);
RESET(actorNew->spr.cstat, CSTAT_SPRITE_BLOCK | CSTAT_SPRITE_BLOCK_HITSCAN);
eu->Radius = DamageData[DMG_BOLT_EXP].radius;
actorNew->user.Radius = DamageData[DMG_BOLT_EXP].radius;
DoExpDamageTest(actorNew);
return 0;
}
@ -9865,26 +9862,24 @@ int SpawnCoolieExp(DSWActor* actor)
void SpawnFireballFlames(DSWActor* actor, DSWActor* enemyActor)
{
SPRITEp ep = nullptr;
USERp u = actor->u(), eu = nullptr;
USERp u = actor->u();
if (TEST(u->Flags, SPR_UNDERWATER))
return;
if (enemyActor != nullptr)
{
eu = enemyActor->u();
// test for already burned
if (TEST(enemyActor->spr.extra, SPRX_BURNABLE) && enemyActor->spr.shade > 40)
return;
if (!eu)
if (!enemyActor->hasU())
{
ASSERT(true == false);
return;
}
auto flameActor = eu->flameActor;
auto flameActor = enemyActor->user.flameActor;
if (flameActor != nullptr)
{
int sizez = ActorSizeZ(enemyActor) + (ActorSizeZ(enemyActor) >> 2);
@ -9923,7 +9918,7 @@ void SpawnFireballFlames(DSWActor* actor, DSWActor* enemyActor)
actorNew->spr.hitag = LUMINOUS; //Always full brightness
if (enemyActor != nullptr)
eu->flameActor = actorNew;
enemyActor->user.flameActor = actorNew;
actorNew->spr.xrepeat = 16;
actorNew->spr.yrepeat = 16;
@ -10042,7 +10037,6 @@ void SpawnBreakStaticFlames(DSWActor* actor)
void SpawnFireballExp(DSWActor* actor)
{
USERp u = actor->u();
USERp eu;
ASSERT(u);
@ -10053,16 +10047,14 @@ void SpawnFireballExp(DSWActor* actor)
auto actorNew = SpawnActor(STAT_MISSILE, FIREBALL_EXP, s_FireballExp, actor->spr.sector(),
actor->spr.pos.X, actor->spr.pos.Y, actor->spr.pos.Z, actor->spr.ang, 0);
eu = actorNew->u();
actorNew->spr.hitag = LUMINOUS; //Always full brightness
actorNew->spr.xrepeat = 52;
actorNew->spr.yrepeat = 52;
SetOwner(GetOwner(actor), actorNew);
actorNew->spr.shade = -40;
actorNew->spr.pal = eu->spal = u->spal;
actorNew->spr.pal = actorNew->user.spal = u->spal;
SET(actorNew->spr.cstat, CSTAT_SPRITE_YCENTER);
SET(eu->Flags, TEST(u->Flags,SPR_UNDERWATER));
SET(actorNew->user.Flags, TEST(u->Flags,SPR_UNDERWATER));
RESET(actorNew->spr.cstat, CSTAT_SPRITE_BLOCK | CSTAT_SPRITE_BLOCK_HITSCAN);
//
@ -10079,7 +10071,6 @@ void SpawnFireballExp(DSWActor* actor)
void SpawnGoroFireballExp(DSWActor* actor)
{
USERp u = actor->u();
USERp eu;
ASSERT(u);
@ -10090,14 +10081,13 @@ void SpawnGoroFireballExp(DSWActor* actor)
auto actorNew = SpawnActor(STAT_MISSILE, 0, s_FireballExp, actor->spr.sector(),
actor->spr.pos.X, actor->spr.pos.Y, actor->spr.pos.Z, actor->spr.ang, 0);
eu = actorNew->u();
actorNew->spr.hitag = LUMINOUS; //Always full brightness
actorNew->spr.xrepeat = 16;
actorNew->spr.yrepeat = 16;
SetOwner(GetOwner(actor), actorNew);
actorNew->spr.shade = -40;
actorNew->spr.pal = eu->spal = u->spal;
actorNew->spr.pal = actorNew->user.spal = u->spal;
SET(actorNew->spr.cstat, CSTAT_SPRITE_YCENTER);
RESET(actorNew->spr.cstat, CSTAT_SPRITE_BLOCK | CSTAT_SPRITE_BLOCK_HITSCAN);