mirror of
https://github.com/ZDoom/Raze.git
synced 2025-02-22 11:31:11 +00:00
- eu, that are not expActor
This commit is contained in:
parent
7147d3c89e
commit
e16caa0c62
2 changed files with 12 additions and 25 deletions
|
@ -1133,7 +1133,6 @@ DSWActor* DoPickTarget(DSWActor* actor, uint32_t max_delta_ang, int skip_targets
|
||||||
short angle2, delta_ang;
|
short angle2, delta_ang;
|
||||||
int dist, zh;
|
int dist, zh;
|
||||||
SPRITEp ep;
|
SPRITEp ep;
|
||||||
USERp eu;
|
|
||||||
int16_t* shp;
|
int16_t* shp;
|
||||||
USERp u = actor->u();
|
USERp u = actor->u();
|
||||||
int ezh, ezhl, ezhm;
|
int ezh, ezhl, ezhm;
|
||||||
|
@ -1152,19 +1151,17 @@ DSWActor* DoPickTarget(DSWActor* actor, uint32_t max_delta_ang, int skip_targets
|
||||||
SWStatIterator it(*shp);
|
SWStatIterator it(*shp);
|
||||||
while (auto itActor = it.Next())
|
while (auto itActor = it.Next())
|
||||||
{
|
{
|
||||||
eu = itActor->u();
|
|
||||||
|
|
||||||
// don't pick yourself
|
// don't pick yourself
|
||||||
if (actor == itActor)
|
if (actor == itActor)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (skip_targets != 2) // Used for spriteinfo mode
|
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;
|
continue;
|
||||||
|
|
||||||
// don't pick a dead player
|
// 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;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -9831,7 +9831,6 @@ int DoSpear(DSWActor* actor)
|
||||||
int SpawnCoolieExp(DSWActor* actor)
|
int SpawnCoolieExp(DSWActor* actor)
|
||||||
{
|
{
|
||||||
USER* u = actor->u();
|
USER* u = actor->u();
|
||||||
USERp eu;
|
|
||||||
|
|
||||||
int zh,nx,ny;
|
int zh,nx,ny;
|
||||||
|
|
||||||
|
@ -9848,16 +9847,14 @@ int SpawnCoolieExp(DSWActor* actor)
|
||||||
auto actorNew = SpawnActor(STAT_MISSILE, BOLT_EXP, s_BoltExp, actor->spr.sector(),
|
auto actorNew = SpawnActor(STAT_MISSILE, BOLT_EXP, s_BoltExp, actor->spr.sector(),
|
||||||
nx, ny, zh, actor->spr.ang, 0);
|
nx, ny, zh, actor->spr.ang, 0);
|
||||||
|
|
||||||
eu = actorNew->u();
|
|
||||||
|
|
||||||
actorNew->spr.hitag = LUMINOUS; //Always full brightness
|
actorNew->spr.hitag = LUMINOUS; //Always full brightness
|
||||||
SetOwner(actor, actorNew);
|
SetOwner(actor, actorNew);
|
||||||
actorNew->spr.shade = -40;
|
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(actorNew->spr.cstat, CSTAT_SPRITE_YCENTER);
|
||||||
RESET(actorNew->spr.cstat, CSTAT_SPRITE_BLOCK | CSTAT_SPRITE_BLOCK_HITSCAN);
|
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);
|
DoExpDamageTest(actorNew);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -9865,26 +9862,24 @@ int SpawnCoolieExp(DSWActor* actor)
|
||||||
void SpawnFireballFlames(DSWActor* actor, DSWActor* enemyActor)
|
void SpawnFireballFlames(DSWActor* actor, DSWActor* enemyActor)
|
||||||
{
|
{
|
||||||
SPRITEp ep = nullptr;
|
SPRITEp ep = nullptr;
|
||||||
USERp u = actor->u(), eu = nullptr;
|
USERp u = actor->u();
|
||||||
|
|
||||||
if (TEST(u->Flags, SPR_UNDERWATER))
|
if (TEST(u->Flags, SPR_UNDERWATER))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (enemyActor != nullptr)
|
if (enemyActor != nullptr)
|
||||||
{
|
{
|
||||||
eu = enemyActor->u();
|
|
||||||
|
|
||||||
// test for already burned
|
// test for already burned
|
||||||
if (TEST(enemyActor->spr.extra, SPRX_BURNABLE) && enemyActor->spr.shade > 40)
|
if (TEST(enemyActor->spr.extra, SPRX_BURNABLE) && enemyActor->spr.shade > 40)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (!eu)
|
if (!enemyActor->hasU())
|
||||||
{
|
{
|
||||||
ASSERT(true == false);
|
ASSERT(true == false);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
auto flameActor = eu->flameActor;
|
auto flameActor = enemyActor->user.flameActor;
|
||||||
if (flameActor != nullptr)
|
if (flameActor != nullptr)
|
||||||
{
|
{
|
||||||
int sizez = ActorSizeZ(enemyActor) + (ActorSizeZ(enemyActor) >> 2);
|
int sizez = ActorSizeZ(enemyActor) + (ActorSizeZ(enemyActor) >> 2);
|
||||||
|
@ -9923,7 +9918,7 @@ void SpawnFireballFlames(DSWActor* actor, DSWActor* enemyActor)
|
||||||
actorNew->spr.hitag = LUMINOUS; //Always full brightness
|
actorNew->spr.hitag = LUMINOUS; //Always full brightness
|
||||||
|
|
||||||
if (enemyActor != nullptr)
|
if (enemyActor != nullptr)
|
||||||
eu->flameActor = actorNew;
|
enemyActor->user.flameActor = actorNew;
|
||||||
|
|
||||||
actorNew->spr.xrepeat = 16;
|
actorNew->spr.xrepeat = 16;
|
||||||
actorNew->spr.yrepeat = 16;
|
actorNew->spr.yrepeat = 16;
|
||||||
|
@ -10042,7 +10037,6 @@ void SpawnBreakStaticFlames(DSWActor* actor)
|
||||||
void SpawnFireballExp(DSWActor* actor)
|
void SpawnFireballExp(DSWActor* actor)
|
||||||
{
|
{
|
||||||
USERp u = actor->u();
|
USERp u = actor->u();
|
||||||
USERp eu;
|
|
||||||
|
|
||||||
ASSERT(u);
|
ASSERT(u);
|
||||||
|
|
||||||
|
@ -10053,16 +10047,14 @@ void SpawnFireballExp(DSWActor* actor)
|
||||||
|
|
||||||
auto actorNew = SpawnActor(STAT_MISSILE, FIREBALL_EXP, s_FireballExp, actor->spr.sector(),
|
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);
|
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.hitag = LUMINOUS; //Always full brightness
|
||||||
actorNew->spr.xrepeat = 52;
|
actorNew->spr.xrepeat = 52;
|
||||||
actorNew->spr.yrepeat = 52;
|
actorNew->spr.yrepeat = 52;
|
||||||
SetOwner(GetOwner(actor), actorNew);
|
SetOwner(GetOwner(actor), actorNew);
|
||||||
actorNew->spr.shade = -40;
|
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(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);
|
RESET(actorNew->spr.cstat, CSTAT_SPRITE_BLOCK | CSTAT_SPRITE_BLOCK_HITSCAN);
|
||||||
|
|
||||||
//
|
//
|
||||||
|
@ -10079,7 +10071,6 @@ void SpawnFireballExp(DSWActor* actor)
|
||||||
void SpawnGoroFireballExp(DSWActor* actor)
|
void SpawnGoroFireballExp(DSWActor* actor)
|
||||||
{
|
{
|
||||||
USERp u = actor->u();
|
USERp u = actor->u();
|
||||||
USERp eu;
|
|
||||||
|
|
||||||
ASSERT(u);
|
ASSERT(u);
|
||||||
|
|
||||||
|
@ -10090,14 +10081,13 @@ void SpawnGoroFireballExp(DSWActor* actor)
|
||||||
|
|
||||||
auto actorNew = SpawnActor(STAT_MISSILE, 0, s_FireballExp, actor->spr.sector(),
|
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);
|
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.hitag = LUMINOUS; //Always full brightness
|
||||||
actorNew->spr.xrepeat = 16;
|
actorNew->spr.xrepeat = 16;
|
||||||
actorNew->spr.yrepeat = 16;
|
actorNew->spr.yrepeat = 16;
|
||||||
SetOwner(GetOwner(actor), actorNew);
|
SetOwner(GetOwner(actor), actorNew);
|
||||||
actorNew->spr.shade = -40;
|
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(actorNew->spr.cstat, CSTAT_SPRITE_YCENTER);
|
||||||
RESET(actorNew->spr.cstat, CSTAT_SPRITE_BLOCK | CSTAT_SPRITE_BLOCK_HITSCAN);
|
RESET(actorNew->spr.cstat, CSTAT_SPRITE_BLOCK | CSTAT_SPRITE_BLOCK_HITSCAN);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue