mirror of
https://github.com/ZDoom/Raze.git
synced 2025-02-21 19:11:06 +00:00
- drips and eels.
This commit is contained in:
parent
84e99a377d
commit
845cf124e1
1 changed files with 23 additions and 33 deletions
|
@ -16633,8 +16633,7 @@ InitCoolgFire(DSWActor* actor)
|
||||||
int DoCoolgDrip(DSWActor* actor)
|
int DoCoolgDrip(DSWActor* actor)
|
||||||
{
|
{
|
||||||
USER* u = actor->u();
|
USER* u = actor->u();
|
||||||
int SpriteNum = u->SpriteNum;
|
SPRITEp sp = &actor->s();
|
||||||
SPRITEp sp = &sprite[SpriteNum];
|
|
||||||
|
|
||||||
u->Counter += 220;
|
u->Counter += 220;
|
||||||
sp->z += u->Counter;
|
sp->z += u->Counter;
|
||||||
|
@ -16650,8 +16649,7 @@ int DoCoolgDrip(DSWActor* actor)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int InitCoolgDrip(DSWActor* actor)
|
||||||
InitCoolgDrip(DSWActor* actor)
|
|
||||||
{
|
{
|
||||||
SPRITEp sp = &actor->s(), wp;
|
SPRITEp sp = &actor->s(), wp;
|
||||||
USERp wu;
|
USERp wu;
|
||||||
|
@ -16662,14 +16660,13 @@ InitCoolgDrip(DSWActor* actor)
|
||||||
ny = sp->y;
|
ny = sp->y;
|
||||||
nz = sp->z;
|
nz = sp->z;
|
||||||
|
|
||||||
w = SpawnSprite(STAT_MISSILE, COOLG_DRIP, s_CoolgDrip, sp->sectnum,
|
auto actorNew = SpawnActor(STAT_MISSILE, COOLG_DRIP, s_CoolgDrip, sp->sectnum,
|
||||||
nx, ny, nz, sp->ang, 0);
|
nx, ny, nz, sp->ang, 0);
|
||||||
|
|
||||||
wp = &sprite[w];
|
wp = &actorNew->s();
|
||||||
wu = User[w].Data();
|
wu = actorNew->u();
|
||||||
|
|
||||||
|
SetOwner(actor, actorNew);
|
||||||
SetOwner(actor, &swActors[w]);
|
|
||||||
wp->yrepeat = wp->xrepeat = 20;
|
wp->yrepeat = wp->xrepeat = 20;
|
||||||
wp->shade = -5;
|
wp->shade = -5;
|
||||||
wp->zvel = 0;
|
wp->zvel = 0;
|
||||||
|
@ -16680,15 +16677,13 @@ InitCoolgDrip(DSWActor* actor)
|
||||||
|
|
||||||
DoFindGroundPoint(actor);
|
DoFindGroundPoint(actor);
|
||||||
|
|
||||||
return w;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int GenerateDrips(DSWActor* actor)
|
||||||
GenerateDrips(DSWActor* actor)
|
|
||||||
{
|
{
|
||||||
USER* u = actor->u();
|
USER* u = actor->u();
|
||||||
int SpriteNum = u->SpriteNum;
|
SPRITEp sp = &actor->s(), wp;
|
||||||
SPRITEp sp = &sprite[SpriteNum], wp;
|
|
||||||
USERp wu;
|
USERp wu;
|
||||||
int nx, ny, nz;
|
int nx, ny, nz;
|
||||||
short w = 0;
|
short w = 0;
|
||||||
|
@ -16710,14 +16705,13 @@ GenerateDrips(DSWActor* actor)
|
||||||
ny = sp->y;
|
ny = sp->y;
|
||||||
nz = sp->z;
|
nz = sp->z;
|
||||||
|
|
||||||
w = SpawnSprite(STAT_SHRAP, COOLG_DRIP, s_CoolgDrip, sp->sectnum,
|
auto actorNew = SpawnActor(STAT_SHRAP, COOLG_DRIP, s_CoolgDrip, sp->sectnum,
|
||||||
nx, ny, nz, sp->ang, 0);
|
nx, ny, nz, sp->ang, 0);
|
||||||
|
|
||||||
wp = &sprite[w];
|
wp = &actorNew->s();
|
||||||
wu = User[w].Data();
|
wu = actorNew->u();
|
||||||
|
|
||||||
|
SetOwner(actor, actorNew);
|
||||||
SetOwner(SpriteNum, w);
|
|
||||||
wp->yrepeat = wp->xrepeat = 20;
|
wp->yrepeat = wp->xrepeat = 20;
|
||||||
wp->shade = -10;
|
wp->shade = -10;
|
||||||
wp->zvel = 0;
|
wp->zvel = 0;
|
||||||
|
@ -16733,28 +16727,24 @@ GenerateDrips(DSWActor* actor)
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int InitEelFire(DSWActor* actor)
|
||||||
InitEelFire(DSWActor* actor)
|
|
||||||
{
|
{
|
||||||
USER* u = actor->u();
|
USER* u = actor->u();
|
||||||
int SpriteNum = u->SpriteNum;
|
SPRITEp sp = &actor->s();
|
||||||
USERp hu;
|
USERp hu;
|
||||||
SPRITEp sp = User[SpriteNum]->SpriteP;
|
|
||||||
SPRITEp hp;
|
SPRITEp hp;
|
||||||
int i;
|
|
||||||
unsigned stat;
|
unsigned stat;
|
||||||
int dist, a, b, c;
|
int dist, a, b, c;
|
||||||
|
|
||||||
for (stat = 0; stat < SIZ(StatDamageList); stat++)
|
for (stat = 0; stat < SIZ(StatDamageList); stat++)
|
||||||
{
|
{
|
||||||
StatIterator it(StatDamageList[stat]);
|
SWStatIterator it(StatDamageList[stat]);
|
||||||
while ((i = it.NextIndex()) >= 0)
|
while (auto itActor = it.Next())
|
||||||
{
|
{
|
||||||
auto itActor = &swActors[i];
|
hp = &itActor->s();
|
||||||
hp = &sprite[i];
|
hu = itActor->u();
|
||||||
hu = User[i].Data();
|
|
||||||
|
|
||||||
if (i == SpriteNum)
|
if (itActor == actor)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (itActor != u->targetActor)
|
if (itActor != u->targetActor)
|
||||||
|
@ -16767,8 +16757,8 @@ InitEelFire(DSWActor* actor)
|
||||||
|
|
||||||
if (dist < CLOSE_RANGE_DIST_FUDGE(sp, hp, 600) && FACING_RANGE(hp, sp, 150))
|
if (dist < CLOSE_RANGE_DIST_FUDGE(sp, hp, 600) && FACING_RANGE(hp, sp, 150))
|
||||||
{
|
{
|
||||||
PlaySound(DIGI_GIBS1, sp, v3df_none);
|
PlaySound(DIGI_GIBS1, actor, v3df_none);
|
||||||
DoDamage(i, SpriteNum);
|
DoDamage(itActor->GetSpriteIndex(), actor->GetSpriteIndex());
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
InitActorReposition(actor);
|
InitActorReposition(actor);
|
||||||
|
|
Loading…
Reference in a new issue