- Duke: fixed operator precedence in scrap spawning code.

This commit is contained in:
Christoph Oelckers 2022-11-21 10:48:47 +01:00
parent ae37461feb
commit 6cb3e2f457
4 changed files with 6 additions and 5 deletions

View file

@ -1699,7 +1699,7 @@ static void greenslime(DDukeActor *actor)
auto spawned = CreateActor(actor->sector(), actor->spr.pos.plusZ(-8), PClass::FindActor("DukeScrap"), -8, DVector2(0.75, 0.75), a, vel, zvel, actor, STAT_MISC);
if (spawned)
{
if (spawned) spawned->spriteextra = Scrap3 + krand() & 3;
if (spawned) spawned->spriteextra = Scrap3 + (krand() & 3);
spawned->spr.pal = 6;
}
}
@ -1815,7 +1815,7 @@ static void greenslime(DDukeActor *actor)
auto spawned = CreateActor(actor->sector(), actor->spr.pos.plusZ(-8), PClass::FindActor("DukeScrap"), -8, DVector2(0.75, 0.75), a, vel, zvel, actor, STAT_MISC);
if (spawned)
{
if (spawned) spawned->spriteextra = Scrap3 + krand() & 3;
if (spawned) spawned->spriteextra = Scrap3 + (krand() & 3);
spawned->spr.pal = 6;
}
}

View file

@ -1147,7 +1147,7 @@ void checkhitsprite_d(DDukeActor* targ, DDukeActor* proj)
auto vel = krandf(4) + 4;
auto zvel = -krandf(16) - targ->vel.Z * 0.25;
auto spawned = CreateActor(targ->sector(), targ->spr.pos.plusZ(-8), PClass::FindActor("DukeScrap"), -8, DVector2(0.75, 0.75), a, vel, zvel, targ, STAT_MISC);
if (spawned) spawned->spriteextra = Scrap1 + krand() & 15;
if (spawned) spawned->spriteextra = Scrap1 + (krand() & 15);
}
S_PlayActorSound(GLASS_HEAVYBREAK, targ);
targ->Destroy();
@ -1177,7 +1177,7 @@ void checkhitsprite_d(DDukeActor* targ, DDukeActor* proj)
auto zvel = -krandf(2) - 1;
auto spawned = CreateActor(targ->sector(), DVector3(targ->spr.pos.XY(), targ->sector()->floorz - 12 - j * 2), PClass::FindActor("DukeScrap"), -8, DVector2(1, 1), a, vel, zvel, targ, 5);
if (spawned) spawned->spriteextra = Scrap1 + krand() & 15;
if (spawned) spawned->spriteextra = Scrap1 + (krand() & 15);
}
spawn(targ, EXPLOSION2);

View file

@ -2175,7 +2175,7 @@ void checkhitsprite_r(DDukeActor* targ, DDukeActor* proj)
auto spawned = CreateActor(targ->sector(), DVector3(targ->spr.pos.XY(), targ->sector()->floorz - 12 - j * 2), PClass::FindActor("DukeScrap"), -8, DVector2(1, 1),
a, vel, zvel, targ, 5);
if (spawned) spawned->spriteextra = Scrap1 + krand() & 15;
if (spawned) spawned->spriteextra = Scrap1 + (krand() & 15);
}
spawn(targ, EXPLOSION2);
targ->Destroy();

View file

@ -93,6 +93,7 @@ class DukeScrap : DukeActor
else
{
let frame = self.spriteextra + self.temp_data[0];
Console.Printf("extra = %d, temp = %d", self.spriteextra, self.temp_data[0]);
if (frame < 0 || frame >= ScrapMax) frame = Scrap3;
tspr.setSpritePic(self, frame);
if (brighter[frame]) tspr.shade -= 6;