- UpdateSinglePlayKills

This commit is contained in:
Christoph Oelckers 2021-10-30 21:07:15 +02:00
parent 49d43727ba
commit 1db4be60f0
9 changed files with 31 additions and 29 deletions

View file

@ -324,10 +324,10 @@ void DoDebrisCurrent(DSWActor* actor)
int DoActorSectorDamage(DSWActor* actor)
{
USER* u = actor->u();
int SpriteNum = u->SpriteNum;
SPRITEp sp = &actor->s();
SECT_USERp sectu = SectUser[sp->sectnum].Data();
SECTORp sectp = &sector[sp->sectnum];
int SpriteNum = actor->GetSpriteIndex();
if (u->Health <= 0)
return false;
@ -343,7 +343,7 @@ int DoActorSectorDamage(DSWActor* actor)
if (u->Health <= 0)
{
UpdateSinglePlayKills(SpriteNum);
UpdateSinglePlayKills(actor);
DoActorDie(actor, nullptr, WPN_NM_LAVA);
return true;
}
@ -358,7 +358,7 @@ int DoActorSectorDamage(DSWActor* actor)
if (u->Health <= 0)
{
UpdateSinglePlayKills(SpriteNum);
UpdateSinglePlayKills(actor);
DoActorDie(actor, nullptr, WPN_NM_LAVA);
return true;
}
@ -373,7 +373,7 @@ int DoActorSectorDamage(DSWActor* actor)
u->Health = 0;
if (SpawnShrap(SpriteNum, WPN_NM_SECTOR_SQUISH))
{
UpdateSinglePlayKills(SpriteNum);
UpdateSinglePlayKills(actor);
SetSuicide(SpriteNum);
}
else

View file

@ -632,7 +632,7 @@ int DoCoolgMatchPlayerZ(DSWActor* actor)
{
InitBloodSpray(SpriteNum, true, 105);
InitBloodSpray(SpriteNum, true, 105);
UpdateSinglePlayKills(SpriteNum);
UpdateSinglePlayKills(actor);
SetSuicide(SpriteNum);
}

View file

@ -637,7 +637,7 @@ int DoCoolieMove(DSWActor* actor)
if (Distance(sp->x, sp->y, u->targetActor->s().x, u->targetActor->s().y) < 1200)
{
//DoActorDie(SpriteNum, -3);
UpdateSinglePlayKills(SpriteNum);
UpdateSinglePlayKills(actor);
DoActorDie(actor, actor, 0);
return 0;
}

View file

@ -1946,7 +1946,7 @@ DoNinjaHariKari(DSWActor* actor)
SPRITEp sp = User[SpriteNum]->SpriteP;
short cnt,i;
UpdateSinglePlayKills(SpriteNum);
UpdateSinglePlayKills(actor);
change_actor_stat(actor, STAT_DEAD_ACTOR);
RESET(sp->cstat, CSTAT_SPRITE_BLOCK|CSTAT_SPRITE_BLOCK_HITSCAN);
SET(u->Flags, SPR_DEAD);
@ -1978,7 +1978,7 @@ DoNinjaGrabThroat(DSWActor* actor)
if ((u->WaitTics -= ACTORMOVETICS) <= 0)
{
UpdateSinglePlayKills(SpriteNum);
UpdateSinglePlayKills(actor);
RESET(u->Flags2, SPR2_DYING);
RESET(sp->cstat, CSTAT_SPRITE_YFLIP);
change_actor_stat(actor, STAT_DEAD_ACTOR);

View file

@ -2644,7 +2644,7 @@ DriveCrush(PLAYERp pp, int *x, int *y)
continue;
}
UpdateSinglePlayKills(i);
UpdateSinglePlayKills(actor);
if (SpawnShrap(i, -99))
SetSuicide(i);

View file

@ -321,7 +321,7 @@ DoSkullBeginDeath(DSWActor* actor)
break;
case 3:
UpdateSinglePlayKills(SpriteNum);
UpdateSinglePlayKills(actor);
InitFlashBomb(actor);
break;
@ -399,7 +399,7 @@ int DoSkullJump(DSWActor* actor)
if (dist < 1000 &&
SpriteOverlapZ(SpriteNum, short(u->tgt_sp() - sprite), Z(32)))
{
UpdateSinglePlayKills(SpriteNum);
UpdateSinglePlayKills(actor);
DoSkullBeginDeath(actor);
return 0;
}
@ -407,7 +407,7 @@ int DoSkullJump(DSWActor* actor)
if ((sp->z > u->loz - Z(36)))
{
sp->z = u->loz - Z(36);
UpdateSinglePlayKills(SpriteNum);
UpdateSinglePlayKills(actor);
DoSkullBeginDeath(actor);
return 0;
}
@ -417,7 +417,7 @@ int DoSkullJump(DSWActor* actor)
{
if (u->jump_speed > 200)
{
UpdateSinglePlayKills(SpriteNum);
UpdateSinglePlayKills(actor);
DoSkullBeginDeath(actor);
}
}
@ -425,7 +425,7 @@ int DoSkullJump(DSWActor* actor)
}
else
{
UpdateSinglePlayKills(SpriteNum);
UpdateSinglePlayKills(actor);
DoSkullBeginDeath(actor);
}
@ -818,7 +818,7 @@ int DoBettyJump(DSWActor* actor)
if (dist < 1000 &&
SpriteOverlapZ(SpriteNum, short(u->tgt_sp() - sprite), Z(32)))
{
UpdateSinglePlayKills(SpriteNum);
UpdateSinglePlayKills(actor);
DoBettyBeginDeath(actor);
return 0;
}
@ -826,7 +826,7 @@ int DoBettyJump(DSWActor* actor)
if ((sp->z > u->loz - Z(36)))
{
sp->z = u->loz - Z(36);
UpdateSinglePlayKills(SpriteNum);
UpdateSinglePlayKills(actor);
DoBettyBeginDeath(actor);
return 0;
}
@ -836,7 +836,7 @@ int DoBettyJump(DSWActor* actor)
{
if (u->jump_speed > 200)
{
UpdateSinglePlayKills(SpriteNum);
UpdateSinglePlayKills(actor);
DoBettyBeginDeath(actor);
}
}
@ -844,7 +844,7 @@ int DoBettyJump(DSWActor* actor)
}
else
{
UpdateSinglePlayKills(SpriteNum);
UpdateSinglePlayKills(actor);
DoBettyBeginDeath(actor);
}
return 0;

View file

@ -550,6 +550,7 @@ int DoVator(DSWActor* actor)
SectIterator it(sp->sectnum);
while ((i = it.NextIndex()) >= 0)
{
auto itActor = &swActors[i];
bsp = &sprite[i];
bu = User[i].Data();
@ -558,7 +559,7 @@ int DoVator(DSWActor* actor)
if (labs(sectp->ceilingz - sectp->floorz) < SPRITEp_SIZE_Z(bsp))
{
InitBloodSpray(i, true, -1);
UpdateSinglePlayKills(i);
UpdateSinglePlayKills(itActor);
KillSprite(i);
continue;
}
@ -602,6 +603,7 @@ int DoVator(DSWActor* actor)
SectIterator it(sp->sectnum);
while ((i = it.NextIndex()) >= 0)
{
auto itActor = &swActors[i];
bsp = &sprite[i];
if (bsp->statnum == STAT_ENEMY)
@ -609,7 +611,7 @@ int DoVator(DSWActor* actor)
if (labs(sectp->ceilingz - sectp->floorz) < SPRITEp_SIZE_Z(bsp))
{
InitBloodSpray(i, true, -1);
UpdateSinglePlayKills(i);
UpdateSinglePlayKills(itActor);
KillSprite(i);
continue;
}

View file

@ -4948,19 +4948,19 @@ DoRipperGrow(DSWActor* actor)
return 0;
}
void UpdateSinglePlayKills(short SpriteNum)
void UpdateSinglePlayKills(DSWActor* actor)
{
// single play and coop kill count
if (gNet.MultiGameType != MULTI_GAME_COMMBAT)
if (gNet.MultiGameType != MULTI_GAME_COMMBAT && actor->hasU())
{
ASSERT(User[SpriteNum].Data());
auto u = actor->u();
if (TEST(User[SpriteNum]->Flags, SPR_SUICIDE))
if (TEST(u->Flags, SPR_SUICIDE))
{
return;
}
switch (User[SpriteNum]->ID)
switch (u->ID)
{
case COOLIE_RUN_R0:
case NINJA_RUN_R0:
@ -5004,7 +5004,7 @@ ActorChooseDeath(short SpriteNum, short Weapon)
if (u == nullptr || u->Health > 0)
return false;
UpdateSinglePlayKills(SpriteNum);
UpdateSinglePlayKills(actor);
if (u->Attrib)
PlaySpriteSound(SpriteNum,attr_die,v3df_follow);
@ -5034,7 +5034,7 @@ ActorChooseDeath(short SpriteNum, short Weapon)
break;
default:
ActorCoughItem(SpriteNum);
//UpdateSinglePlayKills(SpriteNum);
//UpdateSinglePlayKills(actor);
break;
}
@ -12754,7 +12754,7 @@ DoSerpRing(DSWActor* actor)
// kill off all of his skull children
if (sp->owner == -1 || ou->RotNum < 5)
{
UpdateSinglePlayKills(Weapon);
UpdateSinglePlayKills(actor);
DoSkullBeginDeath(actor);
// +2 does not spawn shrapnel
u->ID = SKULL_SERP;

View file

@ -201,7 +201,7 @@ enum ShrapPos
};
int SetSuicide(short SpriteNum);
void UpdateSinglePlayKills(short SpriteNum);
void UpdateSinglePlayKills(DSWActor* actor);
int InitPlasmaFountain(SPRITEp wp, SPRITEp sp);
int InitCoolgDrip(short SpriteNum);
int InitFireball(PLAYERp pp);