mirror of
https://github.com/ZDoom/Raze.git
synced 2025-02-20 18:42:26 +00:00
- InitBloodSpray
This commit is contained in:
parent
5efb63b780
commit
3e91ac6417
9 changed files with 49 additions and 60 deletions
|
@ -985,7 +985,7 @@ int DoBunnyQuickJump(DSWActor* actor)
|
|||
tu->Health = 0;
|
||||
|
||||
// Blood fountains
|
||||
InitBloodSpray(hitActor->GetSpriteIndex(), true,-1);
|
||||
InitBloodSpray(hitActor, true,-1);
|
||||
|
||||
if (SpawnShrap(hitActor, actor))
|
||||
{
|
||||
|
@ -1197,7 +1197,7 @@ void BunnyHatch(DSWActor* actor)
|
|||
Bunny_Count--; // Bunny died
|
||||
|
||||
// Blood fountains
|
||||
InitBloodSpray(actor->GetSpriteIndex(), true, -1);
|
||||
InitBloodSpray(actor, true, -1);
|
||||
|
||||
if (SpawnShrap(actor, actorNew))
|
||||
{
|
||||
|
@ -1371,7 +1371,7 @@ int DoBunnyMove(DSWActor* actor)
|
|||
|
||||
int BunnySpew(DSWActor* actor)
|
||||
{
|
||||
InitBloodSpray(actor->GetSpriteIndex(), true, -1);
|
||||
InitBloodSpray(actor, true, -1);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -629,8 +629,8 @@ int DoCoolgMatchPlayerZ(DSWActor* actor)
|
|||
// If blocking bits get unset, just die
|
||||
if (!TEST(sp->cstat,CSTAT_SPRITE_BLOCK) || !TEST(sp->cstat,CSTAT_SPRITE_BLOCK_HITSCAN))
|
||||
{
|
||||
InitBloodSpray(actor->GetSpriteIndex(), true, 105);
|
||||
InitBloodSpray(actor->GetSpriteIndex(), true, 105);
|
||||
InitBloodSpray(actor, true, 105);
|
||||
InitBloodSpray(actor, true, 105);
|
||||
UpdateSinglePlayKills(actor);
|
||||
SetSuicide(actor);
|
||||
}
|
||||
|
|
|
@ -1919,15 +1919,13 @@ int InitPhosphorus(DSWActor* actor)
|
|||
return 0;
|
||||
}
|
||||
|
||||
int
|
||||
InitBloodSpray(int16_t SpriteNum, bool dogib, short velocity)
|
||||
int InitBloodSpray(DSWActor* actor, bool dogib, short velocity)
|
||||
{
|
||||
SPRITEp sp = &sprite[SpriteNum];
|
||||
USERp u = User[SpriteNum].Data();
|
||||
SPRITEp sp = &actor->s();
|
||||
USERp u = actor->u();
|
||||
USERp wu;
|
||||
SPRITEp wp;
|
||||
int nx, ny, nz;
|
||||
short w;
|
||||
short i, cnt, ang, vel, rnd;
|
||||
|
||||
|
||||
|
@ -1967,15 +1965,12 @@ InitBloodSpray(int16_t SpriteNum, bool dogib, short velocity)
|
|||
ny = sp->y;
|
||||
nz = SPRITEp_TOS(sp)-20;
|
||||
|
||||
//RESET(sp->cstat, CSTAT_SPRITE_BLOCK | CSTAT_SPRITE_BLOCK_HITSCAN);
|
||||
|
||||
// Spawn a shot
|
||||
// Inserting and setting up variables
|
||||
w = SpawnSprite(STAT_MISSILE, GOREDrip, s_BloodSprayChunk, sp->sectnum,
|
||||
auto actorNew = SpawnActor(STAT_MISSILE, GOREDrip, s_BloodSprayChunk, sp->sectnum,
|
||||
nx, ny, nz, ang, vel*2);
|
||||
|
||||
wp = &sprite[w];
|
||||
wu = User[w].Data();
|
||||
wp = &actorNew->s();
|
||||
wu = actorNew->u();
|
||||
|
||||
SET(wu->Flags, SPR_XFLIP_TOGGLE);
|
||||
if (dogib)
|
||||
|
@ -1984,7 +1979,7 @@ InitBloodSpray(int16_t SpriteNum, bool dogib, short velocity)
|
|||
SET(wp->cstat, CSTAT_SPRITE_YCENTER | CSTAT_SPRITE_INVISIBLE);
|
||||
wp->shade = -12;
|
||||
|
||||
SetOwner(SpriteNum, w);
|
||||
SetOwner(actor, actorNew);
|
||||
wp->yrepeat = 64-RandomRange(35);
|
||||
wp->xrepeat = 64-RandomRange(35);
|
||||
wp->shade = -15;
|
||||
|
@ -2002,7 +1997,7 @@ InitBloodSpray(int16_t SpriteNum, bool dogib, short velocity)
|
|||
wu->zchange = wp->zvel >> 1;
|
||||
|
||||
if (!GlobalSkipZrange)
|
||||
DoActorZrange(w);
|
||||
DoActorZrange(actorNew->GetSpriteIndex());
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
|
|
@ -1964,7 +1964,7 @@ DoNinjaHariKari(DSWActor* actor)
|
|||
|
||||
cnt = RandomRange(4)+1;
|
||||
for (i=0; i<=cnt; i++)
|
||||
InitBloodSpray(SpriteNum,true,-2);
|
||||
InitBloodSpray(actor,true,-2);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -134,8 +134,6 @@ PLAYER Player[MAX_SW_PLAYERS_REG + 1];
|
|||
|
||||
short NormalVisibility;
|
||||
|
||||
int InitBloodSpray(int16_t SpriteNum, bool dogib, short velocity);
|
||||
|
||||
SPRITEp FindNearSprite(SPRITEp sp, short stat);
|
||||
bool PlayerOnLadder(PLAYERp pp);
|
||||
void DoPlayerSlide(PLAYERp pp);
|
||||
|
@ -5992,7 +5990,7 @@ DoPlayerBeginDie(PLAYERp pp)
|
|||
pp->SpriteP->xrepeat = 48;
|
||||
pp->SpriteP->yrepeat = 48;
|
||||
// Blood fountains
|
||||
InitBloodSpray(pp->PlayerSprite,true,105);
|
||||
InitBloodSpray(pp->Actor(),true,105);
|
||||
break;
|
||||
case PLAYER_DEATH_EXPLODE:
|
||||
|
||||
|
@ -6007,9 +6005,9 @@ DoPlayerBeginDie(PLAYERp pp)
|
|||
pp->SpriteP->xrepeat = 48;
|
||||
pp->SpriteP->yrepeat = 48;
|
||||
// Blood fountains
|
||||
InitBloodSpray(pp->PlayerSprite,true,-1);
|
||||
InitBloodSpray(pp->PlayerSprite,true,-1);
|
||||
InitBloodSpray(pp->PlayerSprite,true,-1);
|
||||
InitBloodSpray(pp->Actor(),true,-1);
|
||||
InitBloodSpray(pp->Actor(),true,-1);
|
||||
InitBloodSpray(pp->Actor(),true,-1);
|
||||
break;
|
||||
case PLAYER_DEATH_SQUISH:
|
||||
|
||||
|
@ -6025,7 +6023,7 @@ DoPlayerBeginDie(PLAYERp pp)
|
|||
pp->SpriteP->xrepeat = 48;
|
||||
pp->SpriteP->yrepeat = 48;
|
||||
// Blood fountains
|
||||
InitBloodSpray(pp->PlayerSprite,true,105);
|
||||
InitBloodSpray(pp->Actor(),true,105);
|
||||
break;
|
||||
|
||||
}
|
||||
|
@ -6161,9 +6159,9 @@ void DoPlayerDeathCheckKeys(PLAYERp pp)
|
|||
else
|
||||
{
|
||||
// If he's not on the floor, then gib like a mo-fo!
|
||||
InitBloodSpray(pp->PlayerSprite,true,-1);
|
||||
InitBloodSpray(pp->PlayerSprite,true,-1);
|
||||
InitBloodSpray(pp->PlayerSprite,true,-1);
|
||||
InitBloodSpray(pp->Actor(),true,-1);
|
||||
InitBloodSpray(pp->Actor(),true,-1);
|
||||
InitBloodSpray(pp->Actor(),true,-1);
|
||||
}
|
||||
|
||||
PlayerSpawnPosition(pp);
|
||||
|
|
|
@ -43,7 +43,6 @@ BEGIN_SW_NS
|
|||
short DoVatorMatch(PLAYERp pp, short match);
|
||||
bool TestVatorMatchActive(short match);
|
||||
void InterpSectorSprites(short sectnum, bool state);
|
||||
int InitBloodSpray(short, bool, short);
|
||||
|
||||
void ReverseVator(short SpriteNum)
|
||||
{
|
||||
|
@ -532,9 +531,9 @@ int DoVator(DSWActor* actor)
|
|||
{
|
||||
if (labs(sectp->ceilingz - sectp->floorz) < SPRITEp_SIZE_Z(bsp))
|
||||
{
|
||||
InitBloodSpray(i, true, -1);
|
||||
InitBloodSpray(itActor, true, -1);
|
||||
UpdateSinglePlayKills(itActor);
|
||||
KillSprite(i);
|
||||
KillActor(itActor);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
@ -584,9 +583,9 @@ int DoVator(DSWActor* actor)
|
|||
{
|
||||
if (labs(sectp->ceilingz - sectp->floorz) < SPRITEp_SIZE_Z(bsp))
|
||||
{
|
||||
InitBloodSpray(i, true, -1);
|
||||
InitBloodSpray(itActor, true, -1);
|
||||
UpdateSinglePlayKills(itActor);
|
||||
KillSprite(i);
|
||||
KillActor(itActor);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -5073,8 +5073,8 @@ ActorChooseDeath(short SpriteNum, short Weapon)
|
|||
|
||||
// These are player zombies
|
||||
case ZOMBIE_RUN_R0:
|
||||
InitBloodSpray(SpriteNum,true,105);
|
||||
InitBloodSpray(SpriteNum,true,105);
|
||||
InitBloodSpray(actor,true,105);
|
||||
InitBloodSpray(actor,true,105);
|
||||
if (SpawnShrap(actor, weapActor))
|
||||
SetSuicide(actor);
|
||||
break;
|
||||
|
@ -5142,7 +5142,7 @@ ActorChooseDeath(short SpriteNum, short Weapon)
|
|||
|
||||
// Gib out the ones you can't cut in half
|
||||
// Blood fountains
|
||||
InitBloodSpray(SpriteNum,true,-1);
|
||||
InitBloodSpray(actor,true,-1);
|
||||
|
||||
if (SpawnShrap(actor, weapActor))
|
||||
{
|
||||
|
@ -5219,7 +5219,7 @@ ActorChooseDeath(short SpriteNum, short Weapon)
|
|||
ActorCoughItem(SpriteNum);
|
||||
|
||||
// Blood fountains
|
||||
InitBloodSpray(SpriteNum,true,-1);
|
||||
InitBloodSpray(actor,true,-1);
|
||||
|
||||
// Bosses do not gib
|
||||
if (u->ID == SERP_RUN_R0 || u->ID == SUMO_RUN_R0 || u->ID == ZILLA_RUN_R0)
|
||||
|
@ -5340,7 +5340,7 @@ ActorHealth(short SpriteNum, short amt)
|
|||
u->Health = 60;
|
||||
PlaySound(DIGI_NINJACHOKE, sp, v3df_follow);
|
||||
InitPlasmaFountain(nullptr, sp);
|
||||
InitBloodSpray(SpriteNum,false,105);
|
||||
InitBloodSpray(actor,false,105);
|
||||
sp->ang = NORM_ANGLE(getangle(u->targetActor->s().x - sp->x, u->targetActor->s().y - sp->y) + 1024);
|
||||
RESET(sp->cstat, CSTAT_SPRITE_YFLIP);
|
||||
if (sw_ninjahack)
|
||||
|
@ -6465,7 +6465,7 @@ DoDamage(short SpriteNum, short Weapon)
|
|||
break;
|
||||
default:
|
||||
if (RandomRange(1000) > 900)
|
||||
InitBloodSpray(SpriteNum,false,105);
|
||||
InitBloodSpray(actor,false,105);
|
||||
if (RandomRange(1000) > 900)
|
||||
SpawnMidSplash(actor);
|
||||
break;
|
||||
|
@ -6707,9 +6707,6 @@ DoDamage(short SpriteNum, short Weapon)
|
|||
}
|
||||
|
||||
SpawnBunnyExp(Weapon);
|
||||
//InitBloodSpray(Weapon,true,-1);
|
||||
//InitBloodSpray(Weapon,true,-1);
|
||||
//InitBloodSpray(Weapon,true,-1);
|
||||
SetSuicide(weapActor);
|
||||
break;
|
||||
|
||||
|
@ -8611,7 +8608,7 @@ DoPlasmaFountain(DSWActor* actor)
|
|||
{
|
||||
SpawnBlood(attachActor, actor, 0, 0, 0, 0);
|
||||
if (RandomRange(1000) > 600)
|
||||
InitBloodSpray(attachActor->GetSpriteIndex(), false, 105);
|
||||
InitBloodSpray(attachActor, false, 105);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -11045,9 +11042,9 @@ SpawnBunnyExp(int16_t Weapon)
|
|||
PlaySound(DIGI_BUNNYDIE3, sp, v3df_none);
|
||||
|
||||
u->ID = BOLT_EXP; // Change id
|
||||
InitBloodSpray(Weapon,true,-1);
|
||||
InitBloodSpray(Weapon,true,-1);
|
||||
InitBloodSpray(Weapon,true,-1);
|
||||
InitBloodSpray(actor, true, -1);
|
||||
InitBloodSpray(actor, true, -1);
|
||||
InitBloodSpray(actor, true, -1);
|
||||
DoExpDamageTest(actor);
|
||||
|
||||
return 0;
|
||||
|
@ -12188,9 +12185,9 @@ DoBloodWorm(DSWActor* actor)
|
|||
USERp tu;
|
||||
int i;
|
||||
|
||||
InitBloodSpray(Weapon, false, 1);
|
||||
InitBloodSpray(Weapon, false, 1);
|
||||
InitBloodSpray(Weapon, false, 1);
|
||||
InitBloodSpray(actor, false, 1);
|
||||
InitBloodSpray(actor, false, 1);
|
||||
InitBloodSpray(actor, false, 1);
|
||||
|
||||
// Kill any old zombies you own
|
||||
StatIterator it(STAT_ENEMY);
|
||||
|
@ -12204,8 +12201,8 @@ DoBloodWorm(DSWActor* actor)
|
|||
|
||||
if (tu->ID == ZOMBIE_RUN_R0 && tsp->owner == sp->owner)
|
||||
{
|
||||
InitBloodSpray(i,true,105);
|
||||
InitBloodSpray(i,true,105);
|
||||
InitBloodSpray(itActor, true, 105);
|
||||
InitBloodSpray(itActor, true, 105);
|
||||
SetSuicide(itActor);
|
||||
break;
|
||||
}
|
||||
|
@ -12234,7 +12231,7 @@ DoBloodWorm(DSWActor* actor)
|
|||
if (sectnum >= 0)
|
||||
{
|
||||
GlobalSkipZrange = true;
|
||||
InitBloodSpray(Weapon, false, 1);
|
||||
InitBloodSpray(actor, false, 1);
|
||||
GlobalSkipZrange = false;
|
||||
}
|
||||
|
||||
|
|
|
@ -179,7 +179,7 @@ void WallBounce(short SpriteNum, short ang);
|
|||
int PlayerInitChemBomb(PLAYERp pp);
|
||||
int InitChemBomb(DSWActor*);
|
||||
int PlayerInitCaltrops(PLAYERp pp);
|
||||
int InitBloodSpray(int16_t SpriteNum, bool dogib, short velocity);
|
||||
int InitBloodSpray(DSWActor* actor, bool dogib, short velocity);
|
||||
int SpawnBunnyExp(int16_t Weapon);
|
||||
int InitBunnyRocket(PLAYERp pp);
|
||||
|
||||
|
|
|
@ -888,9 +888,9 @@ DoZombieMove(DSWActor* actor)
|
|||
|
||||
if (u->Counter3++ >= ZOMBIE_TIME_LIMIT)
|
||||
{
|
||||
InitBloodSpray(SpriteNum,true,105);
|
||||
InitBloodSpray(SpriteNum,true,105);
|
||||
InitBloodSpray(SpriteNum,true,105);
|
||||
InitBloodSpray(actor,true,105);
|
||||
InitBloodSpray(actor,true,105);
|
||||
InitBloodSpray(actor,true,105);
|
||||
SetSuicide(actor);
|
||||
return 0;
|
||||
}
|
||||
|
@ -943,9 +943,9 @@ NullZombie(DSWActor* actor)
|
|||
|
||||
if (u->Counter3++ >= ZOMBIE_TIME_LIMIT)
|
||||
{
|
||||
InitBloodSpray(SpriteNum,true,105);
|
||||
InitBloodSpray(SpriteNum,true,105);
|
||||
InitBloodSpray(SpriteNum,true,105);
|
||||
InitBloodSpray(actor,true,105);
|
||||
InitBloodSpray(actor,true,105);
|
||||
InitBloodSpray(actor,true,105);
|
||||
SetSuicide(actor);
|
||||
return 0;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue