mirror of
https://github.com/DrBeef/Raze.git
synced 2025-02-21 19:21:44 +00:00
- SpawnGrenadeSecondaryExp
This commit is contained in:
parent
f3037a0b0c
commit
120a14a9a7
1 changed files with 14 additions and 23 deletions
|
@ -11339,25 +11339,23 @@ SpawnBigGunFlames(int16_t Weapon, int16_t Operator, SECTOR_OBJECTp sop, bool sma
|
||||||
return expActor->GetSpriteIndex();
|
return expActor->GetSpriteIndex();
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
void SpawnGrenadeSecondaryExp(DSWActor* actor, int ang)
|
||||||
SpawnGrenadeSecondaryExp(int16_t Weapon, short ang)
|
|
||||||
{
|
{
|
||||||
SPRITEp sp = &sprite[Weapon];
|
SPRITEp sp = &actor->s();
|
||||||
USERp u = User[Weapon].Data();
|
USERp u = actor->u();
|
||||||
SPRITEp exp;
|
SPRITEp exp;
|
||||||
USERp eu;
|
USERp eu;
|
||||||
short explosion;
|
|
||||||
int vel;
|
int vel;
|
||||||
|
|
||||||
|
|
||||||
ASSERT(u);
|
ASSERT(u);
|
||||||
explosion = SpawnSprite(STAT_MISSILE, GRENADE_EXP, s_GrenadeSmallExp, sp->sectnum,
|
auto expActor = SpawnActor(STAT_MISSILE, GRENADE_EXP, s_GrenadeSmallExp, sp->sectnum,
|
||||||
sp->x, sp->y, sp->z, sp->ang, 1024);
|
sp->x, sp->y, sp->z, sp->ang, 1024);
|
||||||
exp = &sprite[explosion];
|
exp = &expActor->s();
|
||||||
eu = User[explosion].Data();
|
eu = expActor->u();
|
||||||
|
|
||||||
exp->hitag = LUMINOUS; //Always full brightness
|
exp->hitag = LUMINOUS; //Always full brightness
|
||||||
SetOwner(sp->owner, explosion);
|
SetOwner(GetOwner(actor), expActor);
|
||||||
exp->shade = -40;
|
exp->shade = -40;
|
||||||
exp->xrepeat = 32;
|
exp->xrepeat = 32;
|
||||||
exp->yrepeat = 32;
|
exp->yrepeat = 32;
|
||||||
|
@ -11372,30 +11370,23 @@ SpawnGrenadeSecondaryExp(int16_t Weapon, short ang)
|
||||||
eu->xchange = MOVEx(vel, ang);
|
eu->xchange = MOVEx(vel, ang);
|
||||||
eu->ychange = MOVEy(vel, ang);
|
eu->ychange = MOVEy(vel, ang);
|
||||||
|
|
||||||
SetCollision(eu, move_missile(explosion, eu->xchange, eu->ychange, 0,
|
SetCollision(eu, move_missile(expActor->GetSpriteIndex(), eu->xchange, eu->ychange, 0,
|
||||||
eu->ceiling_dist, eu->floor_dist, CLIPMASK_MISSILE, MISSILEMOVETICS));
|
eu->ceiling_dist, eu->floor_dist, CLIPMASK_MISSILE, MISSILEMOVETICS));
|
||||||
|
|
||||||
if (FindDistance3D(exp->x - sp->x, exp->y - sp->y, exp->z - sp->z) < 1024)
|
if (FindDistance3D(exp->x - sp->x, exp->y - sp->y, exp->z - sp->z) < 1024)
|
||||||
{
|
{
|
||||||
KillSprite(explosion);
|
KillActor(expActor);
|
||||||
return -1;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
SpawnExpZadjust(Weapon, exp, Z(50), Z(10));
|
SpawnExpZadjust(actor->GetSpriteIndex(), exp, Z(50), Z(10));
|
||||||
|
|
||||||
exp->backuppos();
|
exp->backuppos();
|
||||||
|
|
||||||
return explosion;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int SpawnGrenadeSmallExp(DSWActor* actor)
|
||||||
SpawnGrenadeSmallExp(DSWActor* actor)
|
|
||||||
{
|
{
|
||||||
USER* u = actor->u();
|
int ang = RANDOM_P2(2048);
|
||||||
short ang;
|
SpawnGrenadeSecondaryExp(actor, ang);
|
||||||
|
|
||||||
ang = RANDOM_P2(2048);
|
|
||||||
SpawnGrenadeSecondaryExp(u->SpriteNum, ang);
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue