mirror of
https://github.com/ZDoom/Raze.git
synced 2025-05-10 16:00:58 +00:00
- splash functions.
This commit is contained in:
parent
cf8aaf7ff2
commit
e3e9e4030e
3 changed files with 28 additions and 33 deletions
|
@ -2150,7 +2150,7 @@ int PlayerInitChemBomb(PLAYERp pp); // jweapon.c
|
||||||
int PlayerInitFlashBomb(PLAYERp pp); // jweapon.c
|
int PlayerInitFlashBomb(PLAYERp pp); // jweapon.c
|
||||||
int PlayerInitCaltrops(PLAYERp pp); // jweapon.c
|
int PlayerInitCaltrops(PLAYERp pp); // jweapon.c
|
||||||
int InitPhosphorus(int16_t SpriteNum); // jweapon.c
|
int InitPhosphorus(int16_t SpriteNum); // jweapon.c
|
||||||
void SpawnFloorSplash(short SpriteNum); // jweapon.c
|
void SpawnFloorSplash(DSWActor*); // jweapon.c
|
||||||
|
|
||||||
int SaveGame(short save_num); // save.c
|
int SaveGame(short save_num); // save.c
|
||||||
int LoadGame(short save_num); // save.c
|
int LoadGame(short save_num); // save.c
|
||||||
|
|
|
@ -256,12 +256,10 @@ STATE s_BloodSprayDrip[] =
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
int
|
int DoWallBloodDrip(DSWActor* actor)
|
||||||
DoWallBloodDrip(DSWActor* actor)
|
|
||||||
{
|
{
|
||||||
USER* u = actor->u();
|
USER* u = actor->u();
|
||||||
int SpriteNum = u->SpriteNum;
|
SPRITEp sp = &actor->s();
|
||||||
SPRITEp sp = &sprite[SpriteNum];
|
|
||||||
|
|
||||||
//sp->z += (300+RandomRange(2300)) >> 1;
|
//sp->z += (300+RandomRange(2300)) >> 1;
|
||||||
|
|
||||||
|
@ -289,7 +287,7 @@ DoWallBloodDrip(DSWActor* actor)
|
||||||
if (sp->z >= u->loz)
|
if (sp->z >= u->loz)
|
||||||
{
|
{
|
||||||
sp->z = u->loz;
|
sp->z = u->loz;
|
||||||
SpawnFloorSplash(SpriteNum);
|
SpawnFloorSplash(actor);
|
||||||
KillActor(actor);
|
KillActor(actor);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -298,19 +296,18 @@ DoWallBloodDrip(DSWActor* actor)
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
SpawnMidSplash(short SpriteNum)
|
SpawnMidSplash(DSWActor* actor)
|
||||||
{
|
{
|
||||||
SPRITEp sp = &sprite[SpriteNum];
|
SPRITEp sp = &actor->s();
|
||||||
USERp u = User[SpriteNum].Data();
|
USERp u = actor->u();
|
||||||
SPRITEp np;
|
SPRITEp np;
|
||||||
USERp nu;
|
USERp nu;
|
||||||
short New;
|
|
||||||
|
|
||||||
New = SpawnSprite(STAT_MISSILE, GOREDrip, s_GoreSplash, sp->sectnum,
|
auto actorNew = SpawnActor(STAT_MISSILE, GOREDrip, s_GoreSplash, sp->sectnum,
|
||||||
sp->x, sp->y, SPRITEp_MID(sp), sp->ang, 0);
|
sp->x, sp->y, SPRITEp_MID(sp), sp->ang, 0);
|
||||||
|
|
||||||
np = &sprite[New];
|
np = &actorNew->s();
|
||||||
nu = User[New].Data();
|
nu = actorNew->u();
|
||||||
|
|
||||||
np->shade = -12;
|
np->shade = -12;
|
||||||
np->xrepeat = 70-RandomRange(20);
|
np->xrepeat = 70-RandomRange(20);
|
||||||
|
@ -330,20 +327,18 @@ SpawnMidSplash(short SpriteNum)
|
||||||
SET(nu->Flags, SPR_UNDERWATER);
|
SET(nu->Flags, SPR_UNDERWATER);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void SpawnFloorSplash(DSWActor* actor)
|
||||||
SpawnFloorSplash(short SpriteNum)
|
|
||||||
{
|
{
|
||||||
SPRITEp sp = &sprite[SpriteNum];
|
SPRITEp sp = &actor->s();
|
||||||
USERp u = User[SpriteNum].Data();
|
USERp u = actor->u();
|
||||||
SPRITEp np;
|
SPRITEp np;
|
||||||
USERp nu;
|
USERp nu;
|
||||||
short New;
|
|
||||||
|
|
||||||
New = SpawnSprite(STAT_MISSILE, GOREDrip, s_GoreFloorSplash, sp->sectnum,
|
auto actorNew = SpawnActor(STAT_MISSILE, GOREDrip, s_GoreFloorSplash, sp->sectnum,
|
||||||
sp->x, sp->y, sp->z, sp->ang, 0);
|
sp->x, sp->y, sp->z, sp->ang, 0);
|
||||||
|
|
||||||
np = &sprite[New];
|
np = &actorNew->s();
|
||||||
nu = User[New].Data();
|
nu = actorNew->u();
|
||||||
|
|
||||||
np->shade = -12;
|
np->shade = -12;
|
||||||
np->xrepeat = 70-RandomRange(20);
|
np->xrepeat = 70-RandomRange(20);
|
||||||
|
@ -395,7 +390,7 @@ DoBloodSpray(DSWActor* actor)
|
||||||
if (sp->z >= fz)
|
if (sp->z >= fz)
|
||||||
{
|
{
|
||||||
sp->z = fz;
|
sp->z = fz;
|
||||||
SpawnFloorSplash(Weapon);
|
SpawnFloorSplash(actor);
|
||||||
KillActor(actor);
|
KillActor(actor);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -425,7 +420,7 @@ DoBloodSpray(DSWActor* actor)
|
||||||
if (TEST(hsp->cstat, CSTAT_SPRITE_ALIGNMENT_WALL))
|
if (TEST(hsp->cstat, CSTAT_SPRITE_ALIGNMENT_WALL))
|
||||||
{
|
{
|
||||||
wall_ang = NORM_ANGLE(hsp->ang);
|
wall_ang = NORM_ANGLE(hsp->ang);
|
||||||
SpawnMidSplash(Weapon);
|
SpawnMidSplash(actor);
|
||||||
QueueWallBlood(Weapon, hsp->ang);
|
QueueWallBlood(Weapon, hsp->ang);
|
||||||
WallBounce(Weapon, wall_ang);
|
WallBounce(Weapon, wall_ang);
|
||||||
ScaleSpriteVector(Weapon, 32000);
|
ScaleSpriteVector(Weapon, 32000);
|
||||||
|
@ -433,7 +428,7 @@ DoBloodSpray(DSWActor* actor)
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
u->xchange = u->ychange = 0;
|
u->xchange = u->ychange = 0;
|
||||||
SpawnMidSplash(Weapon);
|
SpawnMidSplash(actor);
|
||||||
QueueWallBlood(Weapon, hsp->ang);
|
QueueWallBlood(Weapon, hsp->ang);
|
||||||
KillActor(actor);
|
KillActor(actor);
|
||||||
return true;
|
return true;
|
||||||
|
@ -463,7 +458,7 @@ DoBloodSpray(DSWActor* actor)
|
||||||
nw = wall[hit_wall].point2;
|
nw = wall[hit_wall].point2;
|
||||||
wall_ang = NORM_ANGLE(getangle(wall[nw].x - wph->x, wall[nw].y - wph->y) + 512);
|
wall_ang = NORM_ANGLE(getangle(wall[nw].x - wph->x, wall[nw].y - wph->y) + 512);
|
||||||
|
|
||||||
SpawnMidSplash(Weapon);
|
SpawnMidSplash(actor);
|
||||||
wb = QueueWallBlood(Weapon, NORM_ANGLE(wall_ang+1024));
|
wb = QueueWallBlood(Weapon, NORM_ANGLE(wall_ang+1024));
|
||||||
|
|
||||||
if (wb < 0)
|
if (wb < 0)
|
||||||
|
@ -522,7 +517,7 @@ DoBloodSpray(DSWActor* actor)
|
||||||
#if 0
|
#if 0
|
||||||
if (!TEST(u->Flags, SPR_BOUNCE))
|
if (!TEST(u->Flags, SPR_BOUNCE))
|
||||||
{
|
{
|
||||||
SpawnFloorSplash(Weapon);
|
SpawnFloorSplash(actor);
|
||||||
SET(u->Flags, SPR_BOUNCE);
|
SET(u->Flags, SPR_BOUNCE);
|
||||||
SetCollision(u, 0);
|
SetCollision(u, 0);
|
||||||
u->Counter = 0;
|
u->Counter = 0;
|
||||||
|
@ -534,7 +529,7 @@ DoBloodSpray(DSWActor* actor)
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
u->xchange = u->ychange = 0;
|
u->xchange = u->ychange = 0;
|
||||||
SpawnFloorSplash(Weapon);
|
SpawnFloorSplash(actor);
|
||||||
KillActor(actor);
|
KillActor(actor);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -108,7 +108,7 @@ bool TestDontStickSector(short hit_sect);
|
||||||
ANIMATOR SpawnShrapX;
|
ANIMATOR SpawnShrapX;
|
||||||
bool WeaponMoveHit(short SpriteNum);
|
bool WeaponMoveHit(short SpriteNum);
|
||||||
int HelpMissileLateral(int16_t Weapon, int dist);
|
int HelpMissileLateral(int16_t Weapon, int dist);
|
||||||
void SpawnMidSplash(short SpriteNum);
|
void SpawnMidSplash(DSWActor* actor);
|
||||||
|
|
||||||
int SopDamage(SECTOR_OBJECTp sop,short amt);
|
int SopDamage(SECTOR_OBJECTp sop,short amt);
|
||||||
int SopCheckKill(SECTOR_OBJECTp sop);
|
int SopCheckKill(SECTOR_OBJECTp sop);
|
||||||
|
@ -6467,7 +6467,7 @@ DoDamage(short SpriteNum, short Weapon)
|
||||||
if (RandomRange(1000) > 900)
|
if (RandomRange(1000) > 900)
|
||||||
InitBloodSpray(SpriteNum,false,105);
|
InitBloodSpray(SpriteNum,false,105);
|
||||||
if (RandomRange(1000) > 900)
|
if (RandomRange(1000) > 900)
|
||||||
SpawnMidSplash(SpriteNum);
|
SpawnMidSplash(actor);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -6517,7 +6517,7 @@ DoDamage(short SpriteNum, short Weapon)
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
if (RandomRange(1000) > 950)
|
if (RandomRange(1000) > 950)
|
||||||
SpawnMidSplash(SpriteNum);
|
SpawnMidSplash(actor);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -21036,7 +21036,7 @@ ShrapKillSprite(short SpriteNum)
|
||||||
case GORE_Lung:
|
case GORE_Lung:
|
||||||
if (RandomRange(1000) > 500) break;
|
if (RandomRange(1000) > 500) break;
|
||||||
sp->clipdist = SPRITEp_SIZE_X(sp);
|
sp->clipdist = SPRITEp_SIZE_X(sp);
|
||||||
SpawnFloorSplash(SpriteNum);
|
SpawnFloorSplash(actor);
|
||||||
if (RandomRange(1000) < 500)
|
if (RandomRange(1000) < 500)
|
||||||
PlaySound(DIGI_GIBS1, sp, v3df_none);
|
PlaySound(DIGI_GIBS1, sp, v3df_none);
|
||||||
else
|
else
|
||||||
|
@ -21058,7 +21058,7 @@ ShrapKillSprite(short SpriteNum)
|
||||||
case GORE_Liver:
|
case GORE_Liver:
|
||||||
if (RandomRange(1000) > 500) break;
|
if (RandomRange(1000) > 500) break;
|
||||||
sp->clipdist = SPRITEp_SIZE_X(sp);
|
sp->clipdist = SPRITEp_SIZE_X(sp);
|
||||||
SpawnFloorSplash(SpriteNum);
|
SpawnFloorSplash(actor);
|
||||||
if (RandomRange(1000) < 500)
|
if (RandomRange(1000) < 500)
|
||||||
PlaySound(DIGI_GIBS1, sp, v3df_none);
|
PlaySound(DIGI_GIBS1, sp, v3df_none);
|
||||||
else
|
else
|
||||||
|
@ -21080,7 +21080,7 @@ ShrapKillSprite(short SpriteNum)
|
||||||
case GORE_SkullCap:
|
case GORE_SkullCap:
|
||||||
if (RandomRange(1000) > 500) break;
|
if (RandomRange(1000) > 500) break;
|
||||||
sp->clipdist = SPRITEp_SIZE_X(sp);
|
sp->clipdist = SPRITEp_SIZE_X(sp);
|
||||||
SpawnFloorSplash(SpriteNum);
|
SpawnFloorSplash(actor);
|
||||||
if (rnd_num > 683)
|
if (rnd_num > 683)
|
||||||
{
|
{
|
||||||
QueueGeneric(SpriteNum,930);
|
QueueGeneric(SpriteNum,930);
|
||||||
|
|
Loading…
Reference in a new issue